ima-claude 2.18.0 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/README.md +7 -0
  2. package/dist/cli.js +5 -1
  3. package/package.json +1 -1
  4. package/plugins/ima-claude/.claude-plugin/plugin.json +2 -2
  5. package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +133 -0
  6. package/plugins/ima-claude/skills/agentic-workflows/references/phases/deliver.md +181 -0
  7. package/plugins/ima-claude/skills/agentic-workflows/references/phases/draft.md +99 -0
  8. package/plugins/ima-claude/skills/agentic-workflows/references/phases/gather.md +130 -0
  9. package/plugins/ima-claude/skills/agentic-workflows/references/phases/outline.md +106 -0
  10. package/plugins/ima-claude/skills/agentic-workflows/references/phases/review.md +137 -0
  11. package/plugins/ima-claude/skills/agentic-workflows/references/standards/draft-format.md +159 -0
  12. package/plugins/ima-claude/skills/agentic-workflows/references/standards/editorial-standards.md +160 -0
  13. package/plugins/ima-claude/skills/agentic-workflows/references/standards/outline-format.md +110 -0
  14. package/plugins/ima-claude/skills/agentic-workflows/references/templates/avada-construction-guide.md +263 -0
  15. package/plugins/ima-claude/skills/agentic-workflows/references/templates/avada-webinar-example.txt +275 -0
  16. package/plugins/ima-claude/skills/agentic-workflows/references/templates/cta-block-catalog.md +169 -0
  17. package/plugins/ima-claude/skills/agentic-workflows/references/templates/espo-email-preparation.md +241 -0
  18. package/plugins/ima-claude/skills/agentic-workflows/references/templates/webinar-recap-email-espo.html +339 -0
  19. package/plugins/ima-claude/skills/agentic-workflows/references/templates/webinar-reminder-email-espo.html +458 -0
  20. package/plugins/ima-claude/skills/agentic-workflows/references/workflows/editorial/webinar-summary.md +81 -0
  21. package/plugins/ima-claude/skills/design-to-code/SKILL.md +126 -0
  22. package/plugins/ima-claude/skills/design-to-code/references/guardrails.md +46 -0
  23. package/plugins/ima-claude/skills/design-to-code/references/phase-a-design-to-prompt.md +141 -0
  24. package/plugins/ima-claude/skills/design-to-code/references/phase-b-prompt-to-code.md +155 -0
  25. package/plugins/ima-claude/skills/design-to-code/references/prompt-template.md +95 -0
  26. package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +94 -14
  27. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-attachments.md +115 -0
  28. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-auth.md +103 -0
  29. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-bulk.md +149 -0
  30. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-misc.md +195 -0
  31. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-sprints.md +158 -0
  32. package/plugins/ima-claude/skills/prompt-starter/SKILL.md +9 -6
@@ -0,0 +1,195 @@
1
+ # Atlassian Direct API — Miscellaneous Operations
2
+
3
+ MCP gaps: comment edit/delete, watchers, components, versions, page deletion.
4
+
5
+ See [direct-api-auth.md](direct-api-auth.md) for auth setup.
6
+
7
+ All examples use Gateway (Bearer) auth.
8
+
9
+ ---
10
+
11
+ ## Comments
12
+
13
+ ### Edit a Jira Comment
14
+
15
+ **API:** `PUT /rest/api/3/issue/{issueKey}/comment/{commentId}`
16
+ **When:** Correcting or updating an existing comment.
17
+
18
+ ```bash
19
+ curl -s -X PUT \
20
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
21
+ -H "Content-Type: application/json" \
22
+ -d '{
23
+ "body": {
24
+ "type": "doc",
25
+ "version": 1,
26
+ "content": [
27
+ {
28
+ "type": "paragraph",
29
+ "content": [{"type": "text", "text": "Updated comment text"}]
30
+ }
31
+ ]
32
+ }
33
+ }' \
34
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/PROJ-123/comment/10042"
35
+ ```
36
+
37
+ #### Notes
38
+ - Comment body must be ADF (not Markdown) for the v3 API
39
+ - Get comment IDs from `getJiraIssue` with `fields: ["comment"]`
40
+ - Only the comment author or an admin can edit
41
+
42
+ ### Delete a Jira Comment
43
+
44
+ **API:** `DELETE /rest/api/3/issue/{issueKey}/comment/{commentId}`
45
+ **When:** Removing erroneous or sensitive comments.
46
+
47
+ ```bash
48
+ curl -s -X DELETE \
49
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
50
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/PROJ-123/comment/10042"
51
+ ```
52
+
53
+ #### Notes
54
+ - Returns HTTP 204 on success (no body)
55
+ - Only the comment author or an admin can delete
56
+
57
+ ---
58
+
59
+ ## Watchers
60
+
61
+ ### Get Watchers
62
+
63
+ **API:** `GET /rest/api/3/issue/{issueKey}/watchers`
64
+ **When:** Checking who is watching an issue.
65
+
66
+ ```bash
67
+ curl -s \
68
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
69
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/PROJ-123/watchers" \
70
+ | jq '.watchers[] | {accountId, displayName}'
71
+ ```
72
+
73
+ ### Add a Watcher
74
+
75
+ **API:** `POST /rest/api/3/issue/{issueKey}/watchers`
76
+ **When:** Subscribing someone to issue notifications.
77
+
78
+ ```bash
79
+ curl -s -X POST \
80
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
81
+ -H "Content-Type: application/json" \
82
+ -d '"5b10a2844c20165700ede21g"' \
83
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/PROJ-123/watchers"
84
+ ```
85
+
86
+ #### Notes
87
+ - Body is a **raw JSON string** (the accountId in quotes), not an object
88
+ - Get `accountId` from MCP `lookupJiraAccountId`
89
+
90
+ ### Remove a Watcher
91
+
92
+ **API:** `DELETE /rest/api/3/issue/{issueKey}/watchers?accountId={accountId}`
93
+ **When:** Unsubscribing someone from issue notifications.
94
+
95
+ ```bash
96
+ curl -s -X DELETE \
97
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
98
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/PROJ-123/watchers?accountId=5b10a2844c20165700ede21g"
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Components
104
+
105
+ ### List Project Components
106
+
107
+ **API:** `GET /rest/api/3/project/{projectKey}/components`
108
+ **When:** Finding component IDs for issue creation or filtering.
109
+
110
+ ```bash
111
+ curl -s \
112
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
113
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/project/PROJ/components" \
114
+ | jq '.[] | {id, name, lead: .lead.displayName}'
115
+ ```
116
+
117
+ ### Create a Component
118
+
119
+ **API:** `POST /rest/api/3/component`
120
+ **When:** Adding a new component to a project.
121
+
122
+ ```bash
123
+ curl -s -X POST \
124
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
125
+ -H "Content-Type: application/json" \
126
+ -d '{
127
+ "name": "Authentication",
128
+ "project": "PROJ",
129
+ "description": "Auth and identity management",
130
+ "leadAccountId": "5b10a2844c20165700ede21g"
131
+ }' \
132
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/component" \
133
+ | jq '{id, name}'
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Versions (Releases)
139
+
140
+ ### List Project Versions
141
+
142
+ **API:** `GET /rest/api/3/project/{projectKey}/versions`
143
+ **When:** Finding version IDs for fix-version assignment.
144
+
145
+ ```bash
146
+ curl -s \
147
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
148
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/project/PROJ/versions" \
149
+ | jq '.[] | {id, name, released, releaseDate}'
150
+ ```
151
+
152
+ ### Create a Version
153
+
154
+ **API:** `POST /rest/api/3/version`
155
+ **When:** Setting up a new release version.
156
+
157
+ ```bash
158
+ curl -s -X POST \
159
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
160
+ -H "Content-Type: application/json" \
161
+ -d '{
162
+ "name": "v2.1.0",
163
+ "projectId": 10001,
164
+ "description": "Q2 release",
165
+ "releaseDate": "2026-06-30",
166
+ "released": false
167
+ }' \
168
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/version" \
169
+ | jq '{id, name}'
170
+ ```
171
+
172
+ #### Notes
173
+ - Uses numeric `projectId`, not project key — get it from `getVisibleJiraProjects`
174
+
175
+ ---
176
+
177
+ ## Confluence Page Deletion
178
+
179
+ ### Delete a Confluence Page
180
+
181
+ **API:** `DELETE /wiki/api/v2/pages/{pageId}`
182
+ **When:** Removing outdated or draft Confluence pages.
183
+
184
+ ```bash
185
+ curl -s -X DELETE \
186
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
187
+ "https://api.atlassian.com/ex/confluence/$ATLASSIAN_CLOUD_ID/wiki/api/v2/pages/12345"
188
+ ```
189
+
190
+ #### Notes
191
+ - Uses Confluence **v2 API** (not v1)
192
+ - Returns HTTP 204 on success
193
+ - Page is moved to trash first (recoverable for 30 days)
194
+ - Get page ID from MCP `getConfluencePage` or `searchConfluenceUsingCql`
195
+ - Child pages become orphans — reassign or delete them first
@@ -0,0 +1,158 @@
1
+ # Atlassian Direct API — Sprint & Board Management
2
+
3
+ MCP gap: no Scrum/Kanban board or sprint tools. The Agile API uses a different base path.
4
+
5
+ See [direct-api-auth.md](direct-api-auth.md) for auth setup.
6
+
7
+ All examples use Gateway (Bearer) auth. The Agile API base is:
8
+ ```
9
+ https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0
10
+ ```
11
+
12
+ ---
13
+
14
+ ### List Boards
15
+
16
+ **API:** `GET /rest/agile/1.0/board`
17
+ **When:** Finding the board ID for a project.
18
+
19
+ ```bash
20
+ curl -s \
21
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
22
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/board?projectKeyOrId=PROJ" \
23
+ | jq '.values[] | {id, name, type}'
24
+ ```
25
+
26
+ #### Notes
27
+ - Filter by project with `projectKeyOrId` param
28
+ - `type` is `scrum` or `kanban`
29
+ - Board ID is needed for all subsequent sprint operations
30
+
31
+ ---
32
+
33
+ ### Get Active Sprint
34
+
35
+ **API:** `GET /rest/agile/1.0/board/{boardId}/sprint?state=active`
36
+ **When:** Finding the current sprint to add issues to.
37
+
38
+ ```bash
39
+ curl -s \
40
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
41
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/board/42/sprint?state=active" \
42
+ | jq '.values[] | {id, name, state, startDate, endDate}'
43
+ ```
44
+
45
+ #### Notes
46
+ - `state` filter accepts: `future`, `active`, `closed`
47
+ - Multiple states: `state=active,future`
48
+ - Only Scrum boards have sprints — Kanban boards return empty
49
+
50
+ ---
51
+
52
+ ### Get Issues in a Sprint
53
+
54
+ **API:** `GET /rest/agile/1.0/sprint/{sprintId}/issue`
55
+ **When:** Reviewing what's in a sprint.
56
+
57
+ ```bash
58
+ curl -s \
59
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
60
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/sprint/100/issue?fields=summary,status,assignee" \
61
+ | jq '.issues[] | {key, summary: .fields.summary, status: .fields.status.name}'
62
+ ```
63
+
64
+ #### Notes
65
+ - Use `fields` param to limit response size (same as Jira REST API v3)
66
+ - Supports `jql` param for additional filtering within the sprint
67
+ - Paginated: use `startAt` and `maxResults` for large sprints
68
+
69
+ ---
70
+
71
+ ### Move Issues to a Sprint
72
+
73
+ **API:** `POST /rest/agile/1.0/sprint/{sprintId}/issue`
74
+ **When:** Adding issues to a sprint (sprint planning).
75
+
76
+ ```bash
77
+ curl -s -X POST \
78
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
79
+ -H "Content-Type: application/json" \
80
+ -d '{"issues": ["PROJ-101", "PROJ-102", "PROJ-103"]}' \
81
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/sprint/100/issue"
82
+ ```
83
+
84
+ #### Notes
85
+ - Accepts issue keys or issue IDs
86
+ - Issues are moved from their current sprint (or backlog) to the target sprint
87
+ - No response body on success (HTTP 204)
88
+ - To move to backlog: use `POST /rest/agile/1.0/backlog/issue` with same body
89
+
90
+ ---
91
+
92
+ ### Create a Sprint
93
+
94
+ **API:** `POST /rest/agile/1.0/sprint`
95
+ **When:** Setting up a new sprint.
96
+
97
+ ```bash
98
+ curl -s -X POST \
99
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
100
+ -H "Content-Type: application/json" \
101
+ -d '{
102
+ "name": "Sprint 42",
103
+ "originBoardId": 42,
104
+ "startDate": "2026-04-06T09:00:00.000Z",
105
+ "endDate": "2026-04-20T17:00:00.000Z",
106
+ "goal": "Complete auth migration"
107
+ }' \
108
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/sprint" \
109
+ | jq '{id, name, state}'
110
+ ```
111
+
112
+ #### Notes
113
+ - `originBoardId` is required — use the board ID from "List Boards"
114
+ - Dates are ISO 8601
115
+ - Sprint starts in `future` state
116
+
117
+ ---
118
+
119
+ ### Start or Close a Sprint
120
+
121
+ **API:** `PUT /rest/agile/1.0/sprint/{sprintId}`
122
+ **When:** Starting a planned sprint or closing a completed one.
123
+
124
+ ```bash
125
+ # Start a sprint
126
+ curl -s -X PUT \
127
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
128
+ -H "Content-Type: application/json" \
129
+ -d '{"state": "active"}' \
130
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/sprint/100"
131
+
132
+ # Close a sprint (must specify where incomplete issues go)
133
+ curl -s -X PUT \
134
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
135
+ -H "Content-Type: application/json" \
136
+ -d '{"state": "closed"}' \
137
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/sprint/100"
138
+ ```
139
+
140
+ #### Notes
141
+ - Only one sprint can be `active` per board at a time
142
+ - When closing, incomplete issues move to the backlog by default
143
+ - To move incomplete issues to a specific sprint, close the sprint via the Jira UI (API doesn't support the move-to-sprint parameter natively)
144
+
145
+ ---
146
+
147
+ ### Move Issues to Backlog
148
+
149
+ **API:** `POST /rest/agile/1.0/backlog/issue`
150
+ **When:** Removing issues from a sprint without deleting them.
151
+
152
+ ```bash
153
+ curl -s -X POST \
154
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
155
+ -H "Content-Type: application/json" \
156
+ -d '{"issues": ["PROJ-101", "PROJ-102"]}' \
157
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/agile/1.0/backlog/issue"
158
+ ```
@@ -1,11 +1,13 @@
1
1
  ---
2
2
  name: prompt-starter
3
- description: Zero-friction prompt templates (quick, brainstorm, plan-implement). Selects template, pre-fills from Jira, opens in GUI editor, reads back on close.
3
+ description: Build better prompts from rough ideas. Selects template, pre-fills from Jira, opens in GUI editor, returns refined prompt. Does NOT execute the work — only crafts the prompt.
4
4
  ---
5
5
 
6
6
  # Prompt Starter
7
7
 
8
- Load a structured prompt template, pre-fill it with Jira context, open it in the user's GUI editor, and execute the result when they close the file.
8
+ **You are a prompt builder, not an executor.** Your job is to take a rough idea and produce a well-structured, context-rich prompt. You NEVER execute the work described in the prompt — you only craft and return it.
9
+
10
+ Load a structured prompt template, pre-fill it with Jira context, open it in the user's GUI editor, and return the refined prompt for the user to run.
9
11
 
10
12
  **Trigger words:**
11
13
  - `brainstorm`, `research`, `explore` → `references/brainstorm.md`
@@ -103,12 +105,13 @@ When the background task completes (editor closed), read the file back:
103
105
  Read ~/.claude/prompts/{session-name}.md
104
106
  ```
105
107
 
106
- ### Step 7: Confirm and execute
108
+ ### Step 7: Present the finished prompt — STOP
109
+
110
+ Present the final prompt to the user. Your job is done.
107
111
 
108
- Present the final prompt to the user. Ask for confirmation:
109
- > Here's your prompt. Ready to execute, or want to adjust anything?
112
+ > Here's your refined prompt. You can paste it into a new conversation, adjust it further, or tell me to run it.
110
113
 
111
- On confirmation, treat the prompt content as working instructions and execute accordingly.
114
+ **CRITICAL: Do NOT execute the prompt.** The user decides when and where to run it. If the user explicitly says "run it" or "execute this", only then should you treat it as working instructions. Unsolicited execution defeats the entire purpose of this skill — the value is in the better prompt, not in skipping ahead to the work.
112
115
 
113
116
  ---
114
117