create-change-issue
Use when creating a Jira CAB ticket in the CHANGE (Change Management) project — these tickets use a different field layout from CRD/CO. Triggers on phrases like "create a change ticket", "open a CAB", "deploy X", "Updated X", or any mention of CHANGE-#### tickets that need shaping.
What this skill does
# Create CHANGE Issue
Create a Jira ticket in the **CHANGE** (Change Management) project with the right fields populated. CHANGE is a Service Desk project with a different field layout from CRD/CO — the standard `description` field is unused; content lives in **Change Description** (`customfield_10090`), and three select fields are required at create time.
## Project Configuration
- **CloudId:** the Jira CloudId from `## Configuration` in CLAUDE.md (referred to as `<CloudId>` below)
- **Project key:** `CHANGE`
- **Issue type:** `Change` (id `10026`)
- **Default assignee:** the User Account ID from `## Configuration` in CLAUDE.md
- **Default reporter:** same as assignee unless specified
## The Two Gotchas
These are the things that will fail silently or noisily if you skip them:
1. **Content goes in `customfield_10090` (Change Description), NOT `description`.** The standard `description` field is unused on this project's UI; if you put content there, the ticket appears blank.
2. **Textarea custom fields require ADF format** despite the schema reporting `textarea`. Passing markdown errors with `Failed to convert markdown to adf`. You must pass an ADF doc object AND set `contentFormat: "adf"` on the edit/create call. To clear `description`, pass `{"type":"doc","version":1,"content":[]}` — passing `null` errors.
## Required Fields
| Field | Key | Type | Notes |
|---|---|---|---|
| Summary | `summary` | string | Concise: "Updated Socure Matching Logic", "Deploy Foo Service", etc. |
| Issue Type | `issuetype` | `{"id":"10026"}` | Always Change |
| Project | `project` | `{"key":"CHANGE"}` | |
| Reporter | `reporter` | `{"accountId":"..."}` | Auto-defaults; usually fine |
| **Change Risk** | `customfield_10086` | option | Pick from PCI risk matrix (see below) |
| **Change Reason** | `customfield_10092` | option | Enhancement / Maintenance / New Product / Refactor / Repair / Update / Upgrade |
| **Change Classification** | `customfield_10100` | option | ASM / BAR / DATA / FACILITIES / INF / SERVDESK / **SOFTDEV** (default for app-team work) |
### Change Risk options (`customfield_10086`)
Pass as `{"value": "..."}` or `{"id": "..."}`. Shorthand → full value:
| Probability \ Impact | Low Impact | Medium Impact | High Impact |
|---|---|---|---|
| **Low Probability** | `9 - ... Low/Low` | `6 - ... Low/Medium` | `5 - ... Low/High` |
| **Medium Probability** | `8 - ... Medium/Low` | `4 - ... Medium/Medium` | `2 - ... Medium/High` |
| **High Probability** | `7 - ... High/Low` | `3 - ... High/Medium` | `1 - ... High/High` |
Most app-team deploys land in **6** (Low Prob / Medium Impact) or **9** (Low Prob / Low Impact). The full text is verbose ("Issues are UNLIKELY and would have MODERATE/DEPT LEVEL EFFECT on PCI operations…") — fetch via `getJiraIssueTypeMetaWithFields` if you need the exact string, or pass `{"id":"10154"}` for option 6.
Option IDs: 9=10151, 8=10152, 7=10153, 6=10154, 5=10155, 4=10156, 3=10157, 2=10158, 1=10159.
### Change Reason values (`customfield_10092`)
Pass as `{"value":"Enhancement"}`. Allowed: Enhancement, Maintenance, New Product, Refactor, Repair, Update, Upgrade.
### Change Classification values (`customfield_10100`)
Pass as `{"value":"SOFTDEV"}`. Allowed: ASM, BAR, DATA, FACILITIES, INF, SERVDESK, **SOFTDEV** (typical for our work).
## Optional Fields (commonly populated)
| Field | Key | Type |
|---|---|---|
| Change Description | `customfield_10090` | ADF textarea — main narrative (Summary / Background / Risk) |
| Validation Plan | `customfield_10091` | ADF textarea |
| Release Steps | `customfield_10094` | ADF textarea — usually a link to the TFS/Azure release |
| Rollback Plan | `customfield_10101` | ADF textarea |
| Post-Change Monitoring | `customfield_10105` | ADF textarea |
| Dependencies | `customfield_10103` | ADF textarea |
| Environment | `customfield_10095` | option — Production / Stage / QA / Dev / data-center options |
| Change Start Date | `customfield_10099` | datetime ISO 8601 |
| Change Completion Date | `customfield_10093` | datetime ISO 8601 |
| Approver | `customfield_10107` | user picker |
| Approver 2 | `customfield_10096` | user picker |
| Validator | `customfield_10084` | user picker |
| Needs CRB | `customfield_10104` | option — `Y` / `N` |
Cascading selects (Infrastructure 10087, Interface/Service 10102, Application 10108, Website 10106, Desktop Software 10098) and multi-selects (Printers 10089, Transmissions 10088) exist but are usually skipped for app-team SOFTDEV tickets. Look up via the metadata file if needed.
## Workflow
Mirrors the conversational shape → confirm → create flow from the global Creating Issues docs.
1. **Shape.** From the user's request, draft:
- Summary (under ~70 chars)
- Change Description body (Summary / Background / Risk sections — skip Release Steps and Rollback if those custom fields will be populated separately)
- Change Reason (default Enhancement unless they said otherwise)
- Change Classification (default SOFTDEV)
- Change Risk (default Low Prob / Medium Impact = option `6` / id `10154` for typical deploys; ask if uncertain)
- Environment (default Production)
2. **Confirm.** Show the user the proposed values before calling the API. Especially confirm Change Risk and any user-pickers (Approver, etc.).
3. **Create.** Call `mcp__...__createJiraIssue` with `contentFormat: "adf"` and the field payload below. Then verify the response.
4. **Link the dev ticket.** If the CAB is deploying work from a CRD/CO/NGO/etc. ticket, add a "Relates" link from the new CHANGE issue to the dev ticket. See "Linking the dev ticket" below.
## Linking the dev ticket
When the CAB is deploying or implementing work from a dev ticket (CRD-###, CO-###, NGO-###, etc.), link them with a **Relates** issue link. This is the team-wide convention — confirmed across 26 of 26 dev-ticket references on recent CHANGE tickets. Parent/sub-issue relationships are **not** used for CHANGE → dev.
```
mcp__...__createIssueLink(
cloudId: "<CloudId>",
type: "1Relates", # local instance's name for "Relates" (id 10003); leading "1" is a picker-sort hack
inwardIssue: "CO-424", # the dev ticket
outwardIssue: "CHANGE-10655" # the new CHANGE ticket
)
```
Notes:
- "Relates" is symmetric, so the choice of inward vs outward is cosmetic.
- The link type's name in this instance is `1Relates`, not `Relates`. Either passes validation since the MCP wrapper matches case-insensitively, but `1Relates` matches what shows up in the UI.
- Mentioning the dev ticket only as a hyperlink inside the Change Description does **not** count — add the formal link.
## ADF examples
The literal JSON — working example payload, minimum-viable doc, and node-type cheat sheet (heading, paragraph, link, inline code, bullet list) — lives in [references/adf-examples.md](../../references/adf-examples.md). Pull that in when actually composing the request body. Same shape applies to `editJiraIssue` under `fields:` instead of `additional_fields:`.
## Common Mistakes
| Mistake | Symptom | Fix |
|---|---|---|
| Content in `description` field | Ticket appears blank in CAB UI | Move to `customfield_10090` |
| Markdown passed to textarea field | Error: `Failed to convert markdown to adf` | Use ADF doc object, pass `contentFormat: "adf"` |
| Missing required field | 400 with field-name error | Always include `customfield_10086`, `_10092`, `_10100` at create |
| Passing `null` to clear `description` | Error: `Expected an ADF document` | Pass empty doc: `{"type":"doc","version":1,"content":[]}` |
| Passing markdown body via `description` field on edit | Same convert error if `contentFormat: "adf"` is set | Either send ADF doc OR drop `contentFormat` and send markdown — but not mixed |
| Forgetting Approver | Ticket sits without approval sub-task progressing | Set `customfield_10107` if known; otherwise note and continue |
| Skipping the Relates link to the dev ticket | CAB has no formal trace to the work itRelated in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.