ima-claude 2.18.0 → 2.25.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 (103) hide show
  1. package/README.md +55 -9
  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/agents/explorer.md +29 -15
  6. package/plugins/ima-claude/agents/implementer.md +58 -13
  7. package/plugins/ima-claude/agents/memory.md +19 -19
  8. package/plugins/ima-claude/agents/reviewer.md +56 -34
  9. package/plugins/ima-claude/agents/tester.md +59 -16
  10. package/plugins/ima-claude/agents/wp-developer.md +66 -21
  11. package/plugins/ima-claude/hooks/bootstrap.sh +42 -44
  12. package/plugins/ima-claude/hooks/prompt_coach_digest.md +14 -17
  13. package/plugins/ima-claude/hooks/prompt_coach_system.md +10 -12
  14. package/plugins/ima-claude/personalities/README.md +17 -6
  15. package/plugins/ima-claude/personalities/enable-efficient.md +61 -0
  16. package/plugins/ima-claude/personalities/enable-terse.md +71 -0
  17. package/plugins/ima-claude/skills/agentic-workflows/SKILL.md +97 -0
  18. package/plugins/ima-claude/skills/agentic-workflows/references/phases/deliver.md +181 -0
  19. package/plugins/ima-claude/skills/agentic-workflows/references/phases/draft.md +99 -0
  20. package/plugins/ima-claude/skills/agentic-workflows/references/phases/gather.md +130 -0
  21. package/plugins/ima-claude/skills/agentic-workflows/references/phases/outline.md +106 -0
  22. package/plugins/ima-claude/skills/agentic-workflows/references/phases/review.md +137 -0
  23. package/plugins/ima-claude/skills/agentic-workflows/references/standards/draft-format.md +159 -0
  24. package/plugins/ima-claude/skills/agentic-workflows/references/standards/editorial-standards.md +160 -0
  25. package/plugins/ima-claude/skills/agentic-workflows/references/standards/outline-format.md +110 -0
  26. package/plugins/ima-claude/skills/agentic-workflows/references/templates/avada-construction-guide.md +263 -0
  27. package/plugins/ima-claude/skills/agentic-workflows/references/templates/avada-webinar-example.txt +275 -0
  28. package/plugins/ima-claude/skills/agentic-workflows/references/templates/cta-block-catalog.md +169 -0
  29. package/plugins/ima-claude/skills/agentic-workflows/references/templates/espo-email-preparation.md +241 -0
  30. package/plugins/ima-claude/skills/agentic-workflows/references/templates/webinar-recap-email-espo.html +339 -0
  31. package/plugins/ima-claude/skills/agentic-workflows/references/templates/webinar-reminder-email-espo.html +458 -0
  32. package/plugins/ima-claude/skills/agentic-workflows/references/workflows/editorial/webinar-summary.md +81 -0
  33. package/plugins/ima-claude/skills/architect/SKILL.md +54 -168
  34. package/plugins/ima-claude/skills/compound-bridge/SKILL.md +41 -94
  35. package/plugins/ima-claude/skills/design-to-code/SKILL.md +91 -0
  36. package/plugins/ima-claude/skills/design-to-code/references/guardrails.md +46 -0
  37. package/plugins/ima-claude/skills/design-to-code/references/phase-a-design-to-prompt.md +141 -0
  38. package/plugins/ima-claude/skills/design-to-code/references/phase-b-prompt-to-code.md +155 -0
  39. package/plugins/ima-claude/skills/design-to-code/references/prompt-template.md +95 -0
  40. package/plugins/ima-claude/skills/discourse/SKILL.md +79 -194
  41. package/plugins/ima-claude/skills/discourse-admin/SKILL.md +41 -103
  42. package/plugins/ima-claude/skills/docs-organize/SKILL.md +63 -203
  43. package/plugins/ima-claude/skills/ember-discourse/SKILL.md +90 -200
  44. package/plugins/ima-claude/skills/espocrm/SKILL.md +14 -23
  45. package/plugins/ima-claude/skills/espocrm-api/SKILL.md +79 -192
  46. package/plugins/ima-claude/skills/functional-programmer/SKILL.md +33 -237
  47. package/plugins/ima-claude/skills/gh-cli/SKILL.md +26 -65
  48. package/plugins/ima-claude/skills/ima-bootstrap/SKILL.md +71 -104
  49. package/plugins/ima-claude/skills/ima-bootstrap/references/ima-brand.md +32 -22
  50. package/plugins/ima-claude/skills/ima-brand/SKILL.md +18 -23
  51. package/plugins/ima-claude/skills/ima-copywriting/SKILL.md +68 -179
  52. package/plugins/ima-claude/skills/ima-doc2pdf/SKILL.md +32 -102
  53. package/plugins/ima-claude/skills/ima-editorial-scorecard/SKILL.md +38 -63
  54. package/plugins/ima-claude/skills/ima-editorial-workflow/SKILL.md +69 -114
  55. package/plugins/ima-claude/skills/ima-email-creator/SKILL.md +16 -22
  56. package/plugins/ima-claude/skills/ima-forms-expert/SKILL.md +21 -37
  57. package/plugins/ima-claude/skills/jira-checkpoint/SKILL.md +39 -120
  58. package/plugins/ima-claude/skills/jquery/SKILL.md +107 -233
  59. package/plugins/ima-claude/skills/js-fp/SKILL.md +75 -296
  60. package/plugins/ima-claude/skills/js-fp-api/SKILL.md +52 -162
  61. package/plugins/ima-claude/skills/js-fp-react/SKILL.md +47 -270
  62. package/plugins/ima-claude/skills/js-fp-vue/SKILL.md +55 -209
  63. package/plugins/ima-claude/skills/js-fp-wordpress/SKILL.md +59 -204
  64. package/plugins/ima-claude/skills/livecanvas/SKILL.md +19 -32
  65. package/plugins/ima-claude/skills/mcp-atlassian/SKILL.md +146 -136
  66. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-attachments.md +115 -0
  67. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-auth.md +103 -0
  68. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-bulk.md +149 -0
  69. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-misc.md +195 -0
  70. package/plugins/ima-claude/skills/mcp-atlassian/references/direct-api-sprints.md +158 -0
  71. package/plugins/ima-claude/skills/mcp-context7/SKILL.md +32 -64
  72. package/plugins/ima-claude/skills/mcp-gitea/SKILL.md +98 -188
  73. package/plugins/ima-claude/skills/mcp-github/SKILL.md +60 -124
  74. package/plugins/ima-claude/skills/mcp-memory/SKILL.md +1 -177
  75. package/plugins/ima-claude/skills/mcp-qdrant/SKILL.md +58 -115
  76. package/plugins/ima-claude/skills/mcp-sequential/SKILL.md +32 -87
  77. package/plugins/ima-claude/skills/mcp-serena/SKILL.md +54 -80
  78. package/plugins/ima-claude/skills/mcp-tavily/SKILL.md +40 -63
  79. package/plugins/ima-claude/skills/mcp-vestige/SKILL.md +75 -116
  80. package/plugins/ima-claude/skills/php-authnet/SKILL.md +32 -65
  81. package/plugins/ima-claude/skills/php-fp/SKILL.md +50 -129
  82. package/plugins/ima-claude/skills/php-fp-wordpress/SKILL.md +25 -73
  83. package/plugins/ima-claude/skills/phpunit-wp/SKILL.md +103 -463
  84. package/plugins/ima-claude/skills/playwright/SKILL.md +69 -220
  85. package/plugins/ima-claude/skills/prompt-starter/SKILL.md +35 -82
  86. package/plugins/ima-claude/skills/prompt-starter/references/code-review.md +38 -0
  87. package/plugins/ima-claude/skills/py-fp/SKILL.md +78 -384
  88. package/plugins/ima-claude/skills/quasar-fp/SKILL.md +54 -255
  89. package/plugins/ima-claude/skills/quickstart/SKILL.md +7 -11
  90. package/plugins/ima-claude/skills/rails/SKILL.md +63 -184
  91. package/plugins/ima-claude/skills/resume-session/SKILL.md +14 -35
  92. package/plugins/ima-claude/skills/rg/SKILL.md +61 -146
  93. package/plugins/ima-claude/skills/ruby-fp/SKILL.md +66 -163
  94. package/plugins/ima-claude/skills/save-session/SKILL.md +10 -39
  95. package/plugins/ima-claude/skills/scorecard/SKILL.md +24 -38
  96. package/plugins/ima-claude/skills/skill-analyzer/SKILL.md +42 -71
  97. package/plugins/ima-claude/skills/skill-creator/SKILL.md +79 -250
  98. package/plugins/ima-claude/skills/task-master/SKILL.md +11 -31
  99. package/plugins/ima-claude/skills/task-planner/SKILL.md +44 -153
  100. package/plugins/ima-claude/skills/task-runner/SKILL.md +61 -143
  101. package/plugins/ima-claude/skills/unit-testing/SKILL.md +59 -134
  102. package/plugins/ima-claude/skills/wp-ddev/SKILL.md +38 -120
  103. package/plugins/ima-claude/skills/wp-local/SKILL.md +26 -108
@@ -0,0 +1,149 @@
1
+ # Atlassian Direct API — Bulk Operations
2
+
3
+ MCP gap: no batch/bulk endpoints. Use these patterns for multi-issue operations.
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
+ ### Bulk Edit Issues (Jira v3)
12
+
13
+ **API:** `POST /rest/api/3/issue/bulk`
14
+ **When:** Updating the same fields on many issues at once.
15
+
16
+ ```bash
17
+ curl -s -X POST \
18
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
19
+ -H "Content-Type: application/json" \
20
+ -d '{
21
+ "issueUpdates": [
22
+ {
23
+ "issueIdOrKey": "PROJ-101",
24
+ "fields": {"priority": {"name": "High"}, "labels": ["urgent"]}
25
+ },
26
+ {
27
+ "issueIdOrKey": "PROJ-102",
28
+ "fields": {"priority": {"name": "High"}, "labels": ["urgent"]}
29
+ }
30
+ ]
31
+ }' \
32
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/bulk" \
33
+ | jq '.errors'
34
+ ```
35
+
36
+ #### Notes
37
+ - Max ~50 issues per request (Atlassian soft limit)
38
+ - Response includes per-issue errors — check `.errors` for partial failures
39
+ - Each issue can have different field updates
40
+ - This endpoint may not be available on all Jira Cloud plans
41
+
42
+ ---
43
+
44
+ ### Bulk Transition (Loop Pattern)
45
+
46
+ **When:** Moving many issues through a workflow step (e.g., close all done issues).
47
+
48
+ This uses the MCP `transitionJiraIssue` in a loop. No direct bulk transition API exists.
49
+
50
+ **Pattern:**
51
+ 1. Find issues with JQL via MCP `searchJiraIssuesUsingJql`
52
+ 2. Get transitions for one representative issue via MCP `getTransitionsForJiraIssue`
53
+ 3. Loop `transitionJiraIssue` for each issue
54
+
55
+ ```
56
+ # Step 1: Find issues
57
+ searchJiraIssuesUsingJql
58
+ cloudId: "<cloudId>"
59
+ jql: "project = PROJ AND status = 'In Review'"
60
+ maxResults: 50
61
+ fields: ["summary", "status"]
62
+
63
+ # Step 2: Get transition ID (same for all issues in the same workflow)
64
+ getTransitionsForJiraIssue
65
+ cloudId: "<cloudId>"
66
+ issueIdOrKey: "PROJ-101" # any issue from the results
67
+
68
+ # Step 3: Transition each issue
69
+ # Repeat for each issue key from Step 1:
70
+ transitionJiraIssue
71
+ cloudId: "<cloudId>"
72
+ issueIdOrKey: "PROJ-101"
73
+ transition: {"id": "<transitionId>"}
74
+ ```
75
+
76
+ #### Notes
77
+ - Rate limit: ~100 requests/minute for Jira Cloud
78
+ - For large batches (50+ issues), add a brief delay between calls
79
+ - If issues span different workflows, group by issue type and get transitions per group
80
+
81
+ ---
82
+
83
+ ### Paginated JQL Fetch
84
+
85
+ **When:** Fetching more results than the default page size (50).
86
+
87
+ Use MCP `searchJiraIssuesUsingJql` with pagination:
88
+
89
+ ```
90
+ # Page 1
91
+ searchJiraIssuesUsingJql
92
+ cloudId: "<cloudId>"
93
+ jql: "project = PROJ AND status != Done"
94
+ maxResults: 50
95
+ startAt: 0
96
+ fields: ["summary", "status"]
97
+
98
+ # Page 2
99
+ searchJiraIssuesUsingJql
100
+ cloudId: "<cloudId>"
101
+ jql: "project = PROJ AND status != Done"
102
+ maxResults: 50
103
+ startAt: 50
104
+ fields: ["summary", "status"]
105
+ ```
106
+
107
+ Or via direct API for more control:
108
+
109
+ ```bash
110
+ curl -s \
111
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
112
+ -H "Content-Type: application/json" \
113
+ -d '{
114
+ "jql": "project = PROJ AND status != Done ORDER BY created DESC",
115
+ "maxResults": 100,
116
+ "startAt": 0,
117
+ "fields": ["summary", "status", "assignee"]
118
+ }' \
119
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/search" \
120
+ | jq '{total: .total, count: (.issues | length), issues: [.issues[] | {key, summary: .fields.summary, status: .fields.status.name}]}'
121
+ ```
122
+
123
+ #### Notes
124
+ - MCP `searchJiraIssuesUsingJql` max is typically 50 per page
125
+ - Direct API `POST /search` supports up to 100 per page
126
+ - Check `.total` in response to know when to stop paginating
127
+ - Use `POST` (not `GET`) for the search endpoint — JQL strings can exceed URL length limits
128
+
129
+ ---
130
+
131
+ ### Bulk Add Labels
132
+
133
+ **When:** Tagging many issues with the same label.
134
+
135
+ ```bash
136
+ # For each issue, use the update operations syntax
137
+ for KEY in PROJ-101 PROJ-102 PROJ-103; do
138
+ curl -s -X PUT \
139
+ -H "Authorization: Bearer $ATLASSIAN_BEARER_TOKEN" \
140
+ -H "Content-Type: application/json" \
141
+ -d '{"update": {"labels": [{"add": "reviewed"}]}}' \
142
+ "https://api.atlassian.com/ex/jira/$ATLASSIAN_CLOUD_ID/rest/api/3/issue/$KEY"
143
+ echo "Labeled: $KEY"
144
+ done
145
+ ```
146
+
147
+ #### Notes
148
+ - Uses Jira's `update` operations (add/remove/set) — more precise than replacing the entire `fields.labels` array
149
+ - Same pattern works for `components`, `fixVersions`, and other array fields
@@ -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
+ ```
@@ -5,105 +5,73 @@ description: Use Context7 MCP for official library documentation, framework APIs
5
5
 
6
6
  # Context7 MCP - Library Documentation
7
7
 
8
- Use Context7 for official library documentation instead of web searching or guessing APIs.
8
+ Use Context7 for official library docs instead of web searching or guessing APIs.
9
9
 
10
- ## MCP Tools
10
+ ## Tool
11
11
 
12
12
  | Tool | Purpose |
13
13
  |------|---------|
14
- | `mcp__context7__search` | Search for libraries and get documentation |
15
-
16
- ## Basic Usage
17
-
18
- Context7 combines library resolution and documentation retrieval into a single tool.
14
+ | `mcp__context7__search` | Search libraries and retrieve documentation |
19
15
 
20
16
  ```
21
17
  mcp__context7__search
22
18
  query: "How to use QDialog component in Quasar"
23
19
  ```
24
20
 
25
- **Parameters**:
26
- - `query` (required): Your question or search query including the library name
27
-
28
- The tool will:
29
- 1. Identify the library from your query
30
- 2. Find the relevant documentation
31
- 3. Return focused, relevant docs
32
-
33
21
  ## Query Optimization
34
22
 
35
- **Be specific and include**:
36
- - Component/function names: "QDialog component API props events slots"
37
- - What you want to do: "How to set up authentication with JWT"
38
- - Context: "React useState hook example with TypeScript"
23
+ Include component/function name + what you want to do + context. Be specific.
39
24
 
40
- **Good queries**:
41
- | Query | Why It's Good |
42
- |-------|---------------|
25
+ | Good Query | Why |
26
+ |------------|-----|
43
27
  | "Quasar QDialog props and events" | Specific component, clear intent |
44
- | "React useEffect cleanup function" | Specific hook, specific aspect |
45
- | "Prisma findMany where clause syntax" | Specific method, specific feature |
28
+ | "React useEffect cleanup function" | Specific hook + aspect |
29
+ | "Prisma findMany where clause syntax" | Specific method + feature |
46
30
  | "Express middleware error handling" | Framework + feature |
47
31
 
48
- **Avoid vague queries**:
49
- - ❌ "How does Quasar work?"
50
- - ✅ "How to create a Quasar button with icon"
32
+ Avoid: "How does Quasar work?" — use: "How to create a Quasar button with icon"
51
33
 
52
34
  ## Decision Logic
53
35
 
54
36
  ```
55
- IF question about library/framework API:
56
- Use Context7
57
- ELSE IF import statement detected AND user asks about that library:
58
- Use Context7
59
- ELSE IF general programming concept (closures, promises, etc.):
60
- → Use native Claude knowledge
61
- ELSE IF library not found:
62
- → Fallback to WebSearch or Tavily
63
- ELSE IF asking for "latest" or "new" features post-cutoff:
64
- → Use Tavily instead
37
+ IF library/framework API question → Context7
38
+ IF import detected AND user asks about that library → Context7
39
+ IF general programming concept (closures, promises) native Claude knowledge
40
+ IF library not found fallback to Tavily
41
+ IF "latest" / post-cutoff features Tavily instead
65
42
  ```
66
43
 
67
44
  ## When NOT to Use
68
45
 
69
- - General programming questions (no specific library)
70
- - Debugging code that doesn't involve library APIs
71
- - Simple syntax questions Claude already knows
72
- - User wants current/latest info post-cutoff (use Tavily instead)
46
+ - No specific library involved
47
+ - Debugging business logic (no library APIs)
48
+ - Simple syntax Claude already knows
49
+ - Current/latest info post-cutoff use Tavily
73
50
 
74
- ## Common Libraries Supported
51
+ ## Supported Libraries
75
52
 
76
- **Frontend**: React, Vue, Quasar, Next.js, Nuxt, Svelte, Angular, Tailwind, Bootstrap
77
- **Backend**: Express, Fastify, Nest.js, tRPC, Prisma, Sequelize, TypeORM
78
- **Utilities**: Lodash, Ramda, date-fns, Zod, Yup, Joi
79
- **Build**: Vite, Webpack, Rollup, ESBuild
53
+ **Frontend**: React, Vue, Quasar, Next.js, Nuxt, Svelte, Angular, Tailwind, Bootstrap
54
+ **Backend**: Express, Fastify, Nest.js, tRPC, Prisma, Sequelize, TypeORM
55
+ **Utilities**: Lodash, Ramda, date-fns, Zod, Yup, Joi
56
+ **Build**: Vite, Webpack, Rollup, ESBuild
80
57
  **Testing**: Jest, Vitest, Playwright, Cypress
81
58
 
82
59
  ## Examples
83
60
 
84
- | User Request | Action |
85
- |--------------|--------|
86
- | "How to use QDialog in Vue?" | search(query: "QDialog component Quasar Vue") |
87
- | "React useState example" | search(query: "React useState hook example") |
88
- | "Prisma query syntax" | search(query: "Prisma findMany where query") |
89
- | "What's a closure?" | Native Claude (no library) |
90
- | "Latest React 19 features" | Use Tavily (current info needed) |
61
+ | Request | Action |
62
+ |---------|--------|
63
+ | "How to use QDialog in Vue?" | `search("QDialog component Quasar Vue")` |
64
+ | "React useState example" | `search("React useState hook example")` |
65
+ | "Prisma query syntax" | `search("Prisma findMany where query")` |
66
+ | "What's a closure?" | Native Claude |
67
+ | "Latest React 19 features" | Tavily |
91
68
 
92
- ## Multiple Queries
93
-
94
- If initial results aren't sufficient, refine your query:
95
- 1. First attempt: "Quasar form validation"
96
- 2. If needed: "Quasar QForm validation rules API"
97
- 3. If needed: "Quasar field validation with Vuelidate"
69
+ If initial results insufficient, refine: "Quasar form validation" → "Quasar QForm validation rules API"
98
70
 
99
71
  ## Setup
100
72
 
101
- No API key required. Install with:
102
73
  ```bash
103
74
  bun run scripts/setup-mcp.ts
104
- ```
105
-
106
- Or manually:
107
- ```bash
75
+ # or manually:
108
76
  claude mcp add --scope user context7 -- npx -y @upstash/context7-mcp@latest
109
77
  ```