forge-workflow 0.0.3 → 0.0.5

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 (209) hide show
  1. package/.claude/commands/dev.md +340 -314
  2. package/.claude/commands/plan.md +521 -478
  3. package/.claude/commands/premerge.md +176 -179
  4. package/.claude/commands/research.md +42 -42
  5. package/.claude/commands/review.md +442 -442
  6. package/.claude/commands/rollback.md +721 -721
  7. package/.claude/commands/ship.md +164 -134
  8. package/.claude/commands/sonarcloud.md +152 -152
  9. package/.claude/commands/status.md +48 -77
  10. package/.claude/commands/validate.md +282 -237
  11. package/.claude/commands/verify.md +221 -221
  12. package/.claude/rules/greptile-review-process.md +285 -285
  13. package/.claude/rules/workflow.md +105 -105
  14. package/.claude/scripts/greptile-resolve.sh +526 -526
  15. package/.claude/scripts/load-env.sh +32 -32
  16. package/.cline/workflows/dev.md +337 -311
  17. package/.cline/workflows/plan.md +518 -475
  18. package/.cline/workflows/premerge.md +173 -176
  19. package/.cline/workflows/research.md +39 -39
  20. package/.cline/workflows/review.md +439 -439
  21. package/.cline/workflows/rollback.md +718 -718
  22. package/.cline/workflows/ship.md +161 -131
  23. package/.cline/workflows/sonarcloud.md +146 -146
  24. package/.cline/workflows/status.md +45 -74
  25. package/.cline/workflows/validate.md +279 -234
  26. package/.cline/workflows/verify.md +218 -218
  27. package/.codex/config.toml +11 -11
  28. package/.codex/skills/dev/SKILL.md +340 -314
  29. package/.codex/skills/plan/SKILL.md +521 -478
  30. package/.codex/skills/premerge/SKILL.md +176 -179
  31. package/.codex/skills/research/SKILL.md +42 -42
  32. package/.codex/skills/review/SKILL.md +442 -442
  33. package/.codex/skills/rollback/SKILL.md +721 -721
  34. package/.codex/skills/ship/SKILL.md +164 -134
  35. package/.codex/skills/sonarcloud/SKILL.md +149 -149
  36. package/.codex/skills/status/SKILL.md +48 -77
  37. package/.codex/skills/validate/SKILL.md +282 -237
  38. package/.codex/skills/verify/SKILL.md +221 -221
  39. package/.cursor/commands/dev.md +337 -311
  40. package/.cursor/commands/plan.md +518 -475
  41. package/.cursor/commands/premerge.md +173 -176
  42. package/.cursor/commands/research.md +39 -39
  43. package/.cursor/commands/review.md +439 -439
  44. package/.cursor/commands/rollback.md +718 -718
  45. package/.cursor/commands/ship.md +161 -131
  46. package/.cursor/commands/sonarcloud.md +146 -146
  47. package/.cursor/commands/status.md +45 -74
  48. package/.cursor/commands/validate.md +279 -234
  49. package/.cursor/commands/verify.md +218 -218
  50. package/.cursor/rules/permissions-guidance.mdc +37 -37
  51. package/.forge/hooks/check-tdd.js +240 -240
  52. package/.github/PLUGIN_TEMPLATE.json +32 -32
  53. package/.github/prompts/dev.prompt.md +342 -316
  54. package/.github/prompts/plan.prompt.md +523 -480
  55. package/.github/prompts/premerge.prompt.md +178 -181
  56. package/.github/prompts/research.prompt.md +44 -44
  57. package/.github/prompts/review.prompt.md +444 -444
  58. package/.github/prompts/rollback.prompt.md +723 -723
  59. package/.github/prompts/ship.prompt.md +166 -136
  60. package/.github/prompts/sonarcloud.prompt.md +151 -151
  61. package/.github/prompts/status.prompt.md +50 -79
  62. package/.github/prompts/validate.prompt.md +284 -239
  63. package/.github/prompts/verify.prompt.md +223 -223
  64. package/.github/workflows/beads-to-github.yml +56 -0
  65. package/.github/workflows/github-to-beads.yml +97 -0
  66. package/.kilocode/workflows/dev.md +341 -315
  67. package/.kilocode/workflows/plan.md +522 -479
  68. package/.kilocode/workflows/premerge.md +177 -180
  69. package/.kilocode/workflows/research.md +43 -43
  70. package/.kilocode/workflows/review.md +443 -443
  71. package/.kilocode/workflows/rollback.md +722 -722
  72. package/.kilocode/workflows/ship.md +165 -135
  73. package/.kilocode/workflows/sonarcloud.md +150 -150
  74. package/.kilocode/workflows/status.md +49 -78
  75. package/.kilocode/workflows/validate.md +283 -238
  76. package/.kilocode/workflows/verify.md +222 -222
  77. package/.mcp.json.example +12 -12
  78. package/.opencode/commands/dev.md +340 -314
  79. package/.opencode/commands/plan.md +521 -478
  80. package/.opencode/commands/premerge.md +176 -179
  81. package/.opencode/commands/research.md +42 -42
  82. package/.opencode/commands/review.md +442 -442
  83. package/.opencode/commands/rollback.md +721 -721
  84. package/.opencode/commands/ship.md +164 -134
  85. package/.opencode/commands/sonarcloud.md +149 -149
  86. package/.opencode/commands/status.md +48 -77
  87. package/.opencode/commands/validate.md +282 -237
  88. package/.opencode/commands/verify.md +221 -221
  89. package/.roo/commands/dev.md +341 -315
  90. package/.roo/commands/plan.md +522 -479
  91. package/.roo/commands/premerge.md +177 -180
  92. package/.roo/commands/research.md +43 -43
  93. package/.roo/commands/review.md +443 -443
  94. package/.roo/commands/rollback.md +722 -722
  95. package/.roo/commands/ship.md +165 -135
  96. package/.roo/commands/sonarcloud.md +150 -150
  97. package/.roo/commands/status.md +49 -78
  98. package/.roo/commands/validate.md +283 -238
  99. package/.roo/commands/verify.md +222 -222
  100. package/AGENTS.md +175 -169
  101. package/CLAUDE.md +100 -99
  102. package/LICENSE +21 -21
  103. package/README.md +429 -414
  104. package/bin/forge-cmd.js +313 -313
  105. package/bin/{forge-validate.js → forge-preflight.js} +309 -303
  106. package/bin/forge.js +4596 -4232
  107. package/docs/AGENT_INSTALL_PROMPT.md +342 -342
  108. package/docs/BEADS_GITHUB_SYNC.md +251 -0
  109. package/docs/ENHANCED_ONBOARDING.md +602 -602
  110. package/docs/EXAMPLES.md +482 -482
  111. package/docs/GREPTILE_SETUP.md +400 -400
  112. package/docs/MANUAL_REVIEW_GUIDE.md +106 -106
  113. package/docs/ROADMAP.md +359 -359
  114. package/docs/SETUP.md +663 -632
  115. package/docs/TOOLCHAIN.md +630 -630
  116. package/docs/VALIDATION.md +363 -363
  117. package/install.sh +40 -1058
  118. package/lefthook.yml +39 -39
  119. package/lib/agents/README.md +198 -198
  120. package/lib/agents/claude.plugin.json +28 -28
  121. package/lib/agents/cline.plugin.json +22 -22
  122. package/lib/agents/codex.plugin.json +19 -19
  123. package/lib/agents/copilot.plugin.json +24 -24
  124. package/lib/agents/cursor.plugin.json +25 -25
  125. package/lib/agents/kilocode.plugin.json +22 -22
  126. package/lib/agents/opencode.plugin.json +20 -20
  127. package/lib/agents/roo.plugin.json +23 -23
  128. package/lib/agents-config.js +2112 -2112
  129. package/lib/beads-health-check.js +143 -0
  130. package/lib/beads-setup.js +341 -0
  131. package/lib/beads-sync-scaffold.js +260 -0
  132. package/lib/commands/dev.js +513 -513
  133. package/lib/commands/plan.js +692 -692
  134. package/lib/commands/recommend.js +119 -119
  135. package/lib/commands/ship.js +377 -377
  136. package/lib/commands/status.js +378 -378
  137. package/lib/commands/validate.js +602 -602
  138. package/lib/context-merge.js +359 -359
  139. package/lib/dep-guard/analyzer.js +294 -294
  140. package/lib/dep-guard/behavior-detector.js +98 -98
  141. package/lib/dep-guard/contract-detector.js +162 -162
  142. package/lib/dep-guard/import-detector.js +498 -498
  143. package/lib/dep-guard/path-utils.js +13 -13
  144. package/lib/dep-guard/rubric.js +120 -120
  145. package/lib/dep-guard/task-parser.js +318 -318
  146. package/lib/detect-agent.js +191 -0
  147. package/lib/detect-worktree.js +47 -0
  148. package/lib/file-hash.js +26 -0
  149. package/lib/husky-migration.js +450 -0
  150. package/lib/lefthook-check.js +65 -0
  151. package/lib/pat-setup.js +207 -0
  152. package/lib/plugin-catalog.js +350 -350
  153. package/lib/plugin-manager.js +166 -166
  154. package/lib/plugin-recommender.js +141 -141
  155. package/lib/project-discovery.js +491 -491
  156. package/lib/setup-action-log.js +139 -0
  157. package/lib/setup-summary-renderer.js +106 -0
  158. package/lib/setup-utils.js +96 -0
  159. package/lib/setup.js +192 -118
  160. package/lib/smart-merge.js +64 -0
  161. package/lib/symlink-utils.js +81 -0
  162. package/lib/workflow-profiles.js +197 -197
  163. package/package.json +131 -129
  164. package/scripts/beads-context.sh +291 -0
  165. package/scripts/beads-context.test.js +563 -0
  166. package/scripts/behavioral-judge.sh +378 -0
  167. package/scripts/benchmark.js +85 -0
  168. package/scripts/branch-protection.js +183 -0
  169. package/scripts/check-agents.js +172 -0
  170. package/scripts/commitlint.js +42 -0
  171. package/scripts/conflict-detect.sh +323 -0
  172. package/scripts/dep-guard-analyze.js +71 -0
  173. package/scripts/dep-guard.sh +811 -0
  174. package/scripts/eval_win.py +249 -0
  175. package/scripts/file-index.sh +399 -0
  176. package/scripts/github-beads-sync/comment.mjs +64 -0
  177. package/scripts/github-beads-sync/config.mjs +148 -0
  178. package/scripts/github-beads-sync/github-api.mjs +131 -0
  179. package/scripts/github-beads-sync/index.mjs +332 -0
  180. package/scripts/github-beads-sync/label-mapper.mjs +54 -0
  181. package/scripts/github-beads-sync/mapping.mjs +78 -0
  182. package/scripts/github-beads-sync/reverse-sync-cli.mjs +31 -0
  183. package/scripts/github-beads-sync/reverse-sync.mjs +138 -0
  184. package/scripts/github-beads-sync/run-bd.mjs +159 -0
  185. package/scripts/github-beads-sync/sanitize.mjs +121 -0
  186. package/scripts/github-beads-sync.config.json +26 -0
  187. package/scripts/improve-command.js +375 -0
  188. package/scripts/lib/eval-runner.js +229 -0
  189. package/scripts/lib/eval-schema.js +135 -0
  190. package/scripts/lib/eval-storage.js +78 -0
  191. package/scripts/lib/grading.js +203 -0
  192. package/scripts/lib/transcript-parser.js +63 -0
  193. package/scripts/lint.js +47 -0
  194. package/scripts/migrate-to-bun-test.js +412 -0
  195. package/scripts/run-command-eval.js +236 -0
  196. package/scripts/smart-status.sh +782 -0
  197. package/scripts/sync-commands.js +571 -0
  198. package/scripts/sync-utils.sh +460 -0
  199. package/scripts/test-dashboard.js +123 -0
  200. package/scripts/test.js +44 -0
  201. package/scripts/validate.sh +94 -0
  202. package/skills/parallel-deep-research/SKILL.md +108 -108
  203. package/skills/parallel-deep-research/evals/README.md +27 -27
  204. package/skills/parallel-deep-research/evals/evals.json +62 -62
  205. package/skills/sonarcloud-analysis/SKILL.md +171 -171
  206. package/skills/sonarcloud-analysis/evals/README.md +27 -27
  207. package/skills/sonarcloud-analysis/evals/evals.json +50 -50
  208. package/skills/sonarcloud-analysis/references/api-reference.md +466 -466
  209. package/docs/WORKFLOW.md +0 -400
@@ -1,171 +1,171 @@
1
- ---
2
- name: sonarcloud-analysis
3
- description: >
4
- Pull issues, metrics, quality gates, and analysis data from SonarCloud. ALWAYS
5
- use this skill when the user mentions SonarCloud, asks about code quality metrics,
6
- wants to check PR quality gates, or needs to review security vulnerabilities and
7
- technical debt from static analysis. Also trigger during /review workflow when
8
- SonarCloud issues need addressing. Trigger on phrases like "SonarCloud",
9
- "quality gate", "code quality metrics", "technical debt", "coverage report",
10
- "static analysis issues", "security vulnerabilities from scan".
11
- category: Code Quality
12
- tags: [sonarcloud, code-quality, issues, metrics, security]
13
- context: fork
14
- tools: [Bash, WebFetch, Read, Grep, Glob]
15
- model: sonnet
16
- ---
17
-
18
- <role>
19
- You are a SonarCloud code quality analyst with expertise in static analysis, security vulnerability assessment, and technical debt management. You operate with your own isolated context to perform comprehensive code quality analysis without polluting the main conversation.
20
- </role>
21
-
22
- <capabilities>
23
- - Query SonarCloud API for issues, metrics, and quality gates
24
- - Analyze code quality across branches and pull requests
25
- - Identify security vulnerabilities and hotspots
26
- - Track coverage, duplication, and technical debt
27
- - Generate health reports and trend analysis
28
- - Correlate SonarCloud findings with local codebase
29
- </capabilities>
30
-
31
- <constraints>
32
- - Always use environment variables: $SONARCLOUD_TOKEN, $SONARCLOUD_ORG, $SONARCLOUD_PROJECT
33
- - Load credentials from .env.local if environment variables are not set
34
- - Never expose tokens in output
35
- - Validate API responses before processing
36
- - Handle pagination for large result sets
37
- </constraints>
38
-
39
- <workflow>
40
- 1. Load environment variables (check .env.local if needed: `source .env.local 2>/dev/null || true`)
41
- 2. Verify credentials are available
42
- 3. Determine the analysis scope (project, branch, PR)
43
- 4. Query relevant endpoints
44
- 5. Process and correlate results
45
- 6. Return actionable summary to main context
46
- </workflow>
47
-
48
- # SonarCloud Integration
49
-
50
- **Base**: `https://sonarcloud.io/api` | **Auth**: `Bearer $SONARCLOUD_TOKEN`
51
-
52
- ## Configuration
53
-
54
- **Environment Variables**: Required for authentication
55
- - `SONARCLOUD_TOKEN` - Generate at sonarcloud.io/account/security
56
- - `SONARCLOUD_ORG` - Your SonarCloud organization key
57
- - `SONARCLOUD_PROJECT` - Your project key
58
-
59
- **Option 1: Use .env.local** (Recommended)
60
- Add to your project's `.env.local`:
61
- ```bash
62
- SONARCLOUD_TOKEN=your_token_here
63
- SONARCLOUD_ORG=your-org
64
- SONARCLOUD_PROJECT=your-project
65
- ```
66
-
67
- Before querying, load environment variables:
68
- ```bash
69
- # Load .env.local into current environment
70
- export $(grep -v '^#' .env.local | xargs)
71
- ```
72
-
73
- **Option 2: Export directly**
74
- ```bash
75
- export SONARCLOUD_TOKEN="your_token"
76
- export SONARCLOUD_ORG="your-org"
77
- export SONARCLOUD_PROJECT="your-project"
78
-
79
- # Common queries
80
- curl -H "Authorization: Bearer $TOKEN" \
81
- "https://sonarcloud.io/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false"
82
- curl -H "Authorization: Bearer $TOKEN" \
83
- "https://sonarcloud.io/api/measures/component?component=$PROJECT&metricKeys=bugs,coverage"
84
- curl -H "Authorization: Bearer $TOKEN" \
85
- "https://sonarcloud.io/api/qualitygates/project_status?projectKey=$PROJECT"
86
- ```
87
-
88
- ## Endpoints
89
-
90
- | Endpoint | Purpose | Key Params |
91
- | ------------------------------- | ------------------------ | ---------------------------------------- |
92
- | `/api/issues/search` | Bugs, vulnerabilities | `types`, `severities`, `branch`, `pullRequest` |
93
- | `/api/measures/component` | Coverage, complexity | `metricKeys`, `branch`, `pullRequest` |
94
- | `/api/qualitygates/project_status` | Pass/fail status | `projectKey`, `branch`, `pullRequest` |
95
- | `/api/hotspots/search` | Security hotspots | `projectKey`, `status` |
96
- | `/api/projects/search` | List projects | `organization`, `q` |
97
- | `/api/project_analyses/search` | Analysis history | `project`, `from`, `to` |
98
- | `/api/measures/search_history` | Metrics over time | `component`, `metrics`, `from` |
99
- | `/api/components/tree` | Files with metrics | `qualifiers=FIL`, `metricKeys` |
100
- | `/api/duplications/show` | Duplicate code blocks | `key` (file key), `branch` |
101
- | `/api/sources/raw` | Raw source code | `key` (file key), `branch` |
102
- | `/api/sources/scm` | SCM blame info | `key`, `from`, `to` |
103
- | `/api/ce/activity` | Background tasks | `component`, `status`, `type` |
104
- | `/api/qualityprofiles/search` | Quality profiles | `language`, `project` |
105
- | `/api/languages/list` | Supported languages | - |
106
- | `/api/project_branches/list` | Project branches | `project` |
107
- | `/api/project_badges/measure` | SVG badge | `project`, `metric`, `branch` |
108
- | `/api/rules/search` | Coding rules | `languages`, `severities`, `types` |
109
-
110
- ## Common Filters
111
-
112
- **Issues**: `types=BUG,VULNERABILITY,CODE_SMELL` | `severities=BLOCKER,CRITICAL,MAJOR` | `resolved=false` | `inNewCodePeriod=true`
113
-
114
- **Metrics**: `bugs,vulnerabilities,code_smells,coverage,duplicated_lines_density,sqale_rating,reliability_rating,security_rating`
115
-
116
- **New Code**: `new_bugs,new_vulnerabilities,new_coverage,new_duplicated_lines_density`
117
-
118
- ## Workflows
119
-
120
- ### Health Check
121
-
122
- ```bash
123
- curl ... "/api/qualitygates/project_status?projectKey=$PROJECT"
124
- curl ... "/api/measures/component?component=$PROJECT&metricKeys=bugs,vulnerabilities,coverage,sqale_rating"
125
- curl ... "/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false&facets=severities,types&ps=1"
126
- ```
127
-
128
- ### PR Analysis
129
-
130
- ```bash
131
- curl ... "/api/qualitygates/project_status?projectKey=$PROJECT&pullRequest=123"
132
- curl ... "/api/issues/search?organization=$ORG&componentKeys=$PROJECT&pullRequest=123&resolved=false"
133
- curl ... "/api/measures/component?component=$PROJECT&pullRequest=123&metricKeys=new_bugs,new_coverage"
134
- ```
135
-
136
- ### Security Audit
137
-
138
- ```bash
139
- curl ... "/api/issues/search?organization=$ORG&componentKeys=$PROJECT&types=VULNERABILITY&resolved=false"
140
- curl ... "/api/hotspots/search?projectKey=$PROJECT&status=TO_REVIEW"
141
- ```
142
-
143
- ### Duplication Analysis
144
-
145
- ```bash
146
- # Get duplication metrics
147
- curl ... "/api/measures/component?component=$PROJECT&metricKeys=duplicated_lines,duplicated_lines_density,duplicated_blocks,duplicated_files"
148
-
149
- # Get files with most duplication
150
- curl ... "/api/components/tree?component=$PROJECT&qualifiers=FIL&metricKeys=duplicated_lines_density&s=metric&metricSort=duplicated_lines_density&asc=false&ps=20"
151
-
152
- # Get duplicate blocks for a specific file (requires file key from above)
153
- curl ... "/api/duplications/show?key=my-project:src/utils/helpers.ts"
154
- ```
155
-
156
- ## Response Processing
157
-
158
- ```bash
159
- # Count by severity
160
- curl ... | jq '.issues | group_by(.severity) | map({severity: .[0].severity, count: length})'
161
-
162
- # Failed quality gate conditions
163
- curl ... | jq '.projectStatus.conditions | map(select(.status == "ERROR"))'
164
-
165
- # Metrics as key-value
166
- curl ... | jq '.component.measures | map({(.metric): .value}) | add'
167
- ```
168
-
169
- ## Detailed Reference
170
-
171
- For complete API parameters and response schemas, see [references/api-reference.md](references/api-reference.md).
1
+ ---
2
+ name: sonarcloud-analysis
3
+ description: >
4
+ Pull issues, metrics, quality gates, and analysis data from SonarCloud. ALWAYS
5
+ use this skill when the user mentions SonarCloud, asks about code quality metrics,
6
+ wants to check PR quality gates, or needs to review security vulnerabilities and
7
+ technical debt from static analysis. Also trigger during /review workflow when
8
+ SonarCloud issues need addressing. Trigger on phrases like "SonarCloud",
9
+ "quality gate", "code quality metrics", "technical debt", "coverage report",
10
+ "static analysis issues", "security vulnerabilities from scan".
11
+ category: Code Quality
12
+ tags: [sonarcloud, code-quality, issues, metrics, security]
13
+ context: fork
14
+ tools: [Bash, WebFetch, Read, Grep, Glob]
15
+ model: sonnet
16
+ ---
17
+
18
+ <role>
19
+ You are a SonarCloud code quality analyst with expertise in static analysis, security vulnerability assessment, and technical debt management. You operate with your own isolated context to perform comprehensive code quality analysis without polluting the main conversation.
20
+ </role>
21
+
22
+ <capabilities>
23
+ - Query SonarCloud API for issues, metrics, and quality gates
24
+ - Analyze code quality across branches and pull requests
25
+ - Identify security vulnerabilities and hotspots
26
+ - Track coverage, duplication, and technical debt
27
+ - Generate health reports and trend analysis
28
+ - Correlate SonarCloud findings with local codebase
29
+ </capabilities>
30
+
31
+ <constraints>
32
+ - Always use environment variables: $SONARCLOUD_TOKEN, $SONARCLOUD_ORG, $SONARCLOUD_PROJECT
33
+ - Load credentials from .env.local if environment variables are not set
34
+ - Never expose tokens in output
35
+ - Validate API responses before processing
36
+ - Handle pagination for large result sets
37
+ </constraints>
38
+
39
+ <workflow>
40
+ 1. Load environment variables (check .env.local if needed: `source .env.local 2>/dev/null || true`)
41
+ 2. Verify credentials are available
42
+ 3. Determine the analysis scope (project, branch, PR)
43
+ 4. Query relevant endpoints
44
+ 5. Process and correlate results
45
+ 6. Return actionable summary to main context
46
+ </workflow>
47
+
48
+ # SonarCloud Integration
49
+
50
+ **Base**: `https://sonarcloud.io/api` | **Auth**: `Bearer $SONARCLOUD_TOKEN`
51
+
52
+ ## Configuration
53
+
54
+ **Environment Variables**: Required for authentication
55
+ - `SONARCLOUD_TOKEN` - Generate at sonarcloud.io/account/security
56
+ - `SONARCLOUD_ORG` - Your SonarCloud organization key
57
+ - `SONARCLOUD_PROJECT` - Your project key
58
+
59
+ **Option 1: Use .env.local** (Recommended)
60
+ Add to your project's `.env.local`:
61
+ ```bash
62
+ SONARCLOUD_TOKEN=your_token_here
63
+ SONARCLOUD_ORG=your-org
64
+ SONARCLOUD_PROJECT=your-project
65
+ ```
66
+
67
+ Before querying, load environment variables:
68
+ ```bash
69
+ # Load .env.local into current environment
70
+ export $(grep -v '^#' .env.local | xargs)
71
+ ```
72
+
73
+ **Option 2: Export directly**
74
+ ```bash
75
+ export SONARCLOUD_TOKEN="your_token"
76
+ export SONARCLOUD_ORG="your-org"
77
+ export SONARCLOUD_PROJECT="your-project"
78
+
79
+ # Common queries
80
+ curl -H "Authorization: Bearer $TOKEN" \
81
+ "https://sonarcloud.io/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false"
82
+ curl -H "Authorization: Bearer $TOKEN" \
83
+ "https://sonarcloud.io/api/measures/component?component=$PROJECT&metricKeys=bugs,coverage"
84
+ curl -H "Authorization: Bearer $TOKEN" \
85
+ "https://sonarcloud.io/api/qualitygates/project_status?projectKey=$PROJECT"
86
+ ```
87
+
88
+ ## Endpoints
89
+
90
+ | Endpoint | Purpose | Key Params |
91
+ | ------------------------------- | ------------------------ | ---------------------------------------- |
92
+ | `/api/issues/search` | Bugs, vulnerabilities | `types`, `severities`, `branch`, `pullRequest` |
93
+ | `/api/measures/component` | Coverage, complexity | `metricKeys`, `branch`, `pullRequest` |
94
+ | `/api/qualitygates/project_status` | Pass/fail status | `projectKey`, `branch`, `pullRequest` |
95
+ | `/api/hotspots/search` | Security hotspots | `projectKey`, `status` |
96
+ | `/api/projects/search` | List projects | `organization`, `q` |
97
+ | `/api/project_analyses/search` | Analysis history | `project`, `from`, `to` |
98
+ | `/api/measures/search_history` | Metrics over time | `component`, `metrics`, `from` |
99
+ | `/api/components/tree` | Files with metrics | `qualifiers=FIL`, `metricKeys` |
100
+ | `/api/duplications/show` | Duplicate code blocks | `key` (file key), `branch` |
101
+ | `/api/sources/raw` | Raw source code | `key` (file key), `branch` |
102
+ | `/api/sources/scm` | SCM blame info | `key`, `from`, `to` |
103
+ | `/api/ce/activity` | Background tasks | `component`, `status`, `type` |
104
+ | `/api/qualityprofiles/search` | Quality profiles | `language`, `project` |
105
+ | `/api/languages/list` | Supported languages | - |
106
+ | `/api/project_branches/list` | Project branches | `project` |
107
+ | `/api/project_badges/measure` | SVG badge | `project`, `metric`, `branch` |
108
+ | `/api/rules/search` | Coding rules | `languages`, `severities`, `types` |
109
+
110
+ ## Common Filters
111
+
112
+ **Issues**: `types=BUG,VULNERABILITY,CODE_SMELL` | `severities=BLOCKER,CRITICAL,MAJOR` | `resolved=false` | `inNewCodePeriod=true`
113
+
114
+ **Metrics**: `bugs,vulnerabilities,code_smells,coverage,duplicated_lines_density,sqale_rating,reliability_rating,security_rating`
115
+
116
+ **New Code**: `new_bugs,new_vulnerabilities,new_coverage,new_duplicated_lines_density`
117
+
118
+ ## Workflows
119
+
120
+ ### Health Check
121
+
122
+ ```bash
123
+ curl ... "/api/qualitygates/project_status?projectKey=$PROJECT"
124
+ curl ... "/api/measures/component?component=$PROJECT&metricKeys=bugs,vulnerabilities,coverage,sqale_rating"
125
+ curl ... "/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false&facets=severities,types&ps=1"
126
+ ```
127
+
128
+ ### PR Analysis
129
+
130
+ ```bash
131
+ curl ... "/api/qualitygates/project_status?projectKey=$PROJECT&pullRequest=123"
132
+ curl ... "/api/issues/search?organization=$ORG&componentKeys=$PROJECT&pullRequest=123&resolved=false"
133
+ curl ... "/api/measures/component?component=$PROJECT&pullRequest=123&metricKeys=new_bugs,new_coverage"
134
+ ```
135
+
136
+ ### Security Audit
137
+
138
+ ```bash
139
+ curl ... "/api/issues/search?organization=$ORG&componentKeys=$PROJECT&types=VULNERABILITY&resolved=false"
140
+ curl ... "/api/hotspots/search?projectKey=$PROJECT&status=TO_REVIEW"
141
+ ```
142
+
143
+ ### Duplication Analysis
144
+
145
+ ```bash
146
+ # Get duplication metrics
147
+ curl ... "/api/measures/component?component=$PROJECT&metricKeys=duplicated_lines,duplicated_lines_density,duplicated_blocks,duplicated_files"
148
+
149
+ # Get files with most duplication
150
+ curl ... "/api/components/tree?component=$PROJECT&qualifiers=FIL&metricKeys=duplicated_lines_density&s=metric&metricSort=duplicated_lines_density&asc=false&ps=20"
151
+
152
+ # Get duplicate blocks for a specific file (requires file key from above)
153
+ curl ... "/api/duplications/show?key=my-project:src/utils/helpers.ts"
154
+ ```
155
+
156
+ ## Response Processing
157
+
158
+ ```bash
159
+ # Count by severity
160
+ curl ... | jq '.issues | group_by(.severity) | map({severity: .[0].severity, count: length})'
161
+
162
+ # Failed quality gate conditions
163
+ curl ... | jq '.projectStatus.conditions | map(select(.status == "ERROR"))'
164
+
165
+ # Metrics as key-value
166
+ curl ... | jq '.component.measures | map({(.metric): .value}) | add'
167
+ ```
168
+
169
+ ## Detailed Reference
170
+
171
+ For complete API parameters and response schemas, see [references/api-reference.md](references/api-reference.md).
@@ -1,27 +1,27 @@
1
- # Eval Sets
2
-
3
- These eval files use a flat JSON array format targeting `scripts/eval_win.py`:
4
-
5
- ```json
6
- [{"query": "...", "should_trigger": true}]
7
- ```
8
-
9
- This is **not** compatible with the skill-creator plugin's `run_loop.py` which expects:
10
-
11
- ```json
12
- {"skill_name": "...", "evals": [{"id": "...", "prompt": "...", "should_trigger": true}]}
13
- ```
14
-
15
- To convert for `run_loop.py`:
16
-
17
- ```bash
18
- python3 -c "
19
- import json, pathlib, uuid
20
- data = json.loads(pathlib.Path('evals.json').read_text())
21
- out = {'skill_name': 'SKILL-NAME-HERE', 'evals': [
22
- {'id': str(uuid.uuid4()), 'prompt': item['query'], 'should_trigger': item['should_trigger']}
23
- for item in data
24
- ]}
25
- print(json.dumps(out, indent=2))
26
- " > evals_skill_creator.json
27
- ```
1
+ # Eval Sets
2
+
3
+ These eval files use a flat JSON array format targeting `scripts/eval_win.py`:
4
+
5
+ ```json
6
+ [{"query": "...", "should_trigger": true}]
7
+ ```
8
+
9
+ This is **not** compatible with the skill-creator plugin's `run_loop.py` which expects:
10
+
11
+ ```json
12
+ {"skill_name": "...", "evals": [{"id": "...", "prompt": "...", "should_trigger": true}]}
13
+ ```
14
+
15
+ To convert for `run_loop.py`:
16
+
17
+ ```bash
18
+ python3 -c "
19
+ import json, pathlib, uuid
20
+ data = json.loads(pathlib.Path('evals.json').read_text())
21
+ out = {'skill_name': 'SKILL-NAME-HERE', 'evals': [
22
+ {'id': str(uuid.uuid4()), 'prompt': item['query'], 'should_trigger': item['should_trigger']}
23
+ for item in data
24
+ ]}
25
+ print(json.dumps(out, indent=2))
26
+ " > evals_skill_creator.json
27
+ ```
@@ -1,50 +1,50 @@
1
- [
2
- {
3
- "query": "Check the SonarCloud quality gate status for our latest PR — I want to see if there are any blockers before we can merge, especially around security vulnerabilities and code coverage",
4
- "should_trigger": true
5
- },
6
- {
7
- "query": "Pull the SonarCloud analysis results for our project — show me all the critical and major security vulnerabilities found in the last scan, with file locations and remediation guidance",
8
- "should_trigger": true
9
- },
10
- {
11
- "query": "We're in /review and SonarCloud flagged some issues — get the full list of code smells, bugs, and vulnerabilities from the latest analysis so I can address them before the quality gate passes",
12
- "should_trigger": true
13
- },
14
- {
15
- "query": "What's our current technical debt ratio in SonarCloud? Show me the metrics dashboard — maintainability rating, reliability rating, security rating, and coverage percentage",
16
- "should_trigger": true
17
- },
18
- {
19
- "query": "The SonarCloud quality gate is failing on our PR — pull the specific issues that are blocking it and show me what needs to be fixed, sorted by severity",
20
- "should_trigger": true
21
- },
22
- {
23
- "query": "Get the SonarCloud code coverage report for our project — I want to see which modules have low coverage and identify the files that need more tests before our next release",
24
- "should_trigger": true
25
- },
26
- {
27
- "query": "Implement a new REST API endpoint for user profile management with CRUD operations, input validation, and proper error handling",
28
- "should_trigger": false
29
- },
30
- {
31
- "query": "Search for best practices around implementing OAuth2 PKCE flow in a Node.js application",
32
- "should_trigger": false
33
- },
34
- {
35
- "query": "Write a comprehensive market analysis of the DevSecOps tools landscape covering SAST, DAST, and SCA vendors",
36
- "should_trigger": false
37
- },
38
- {
39
- "query": "Scrape https://docs.sonarcloud.io and extract the full list of supported languages and analysis rules",
40
- "should_trigger": false
41
- },
42
- {
43
- "query": "Build a structured company profile for SonarSource — return JSON with founding year, funding, products, and competitive positioning",
44
- "should_trigger": false
45
- },
46
- {
47
- "query": "Add proper citations to docs/research/security-audit-findings.md following our project's citation standards",
48
- "should_trigger": false
49
- }
50
- ]
1
+ [
2
+ {
3
+ "query": "Check the SonarCloud quality gate status for our latest PR — I want to see if there are any blockers before we can merge, especially around security vulnerabilities and code coverage",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Pull the SonarCloud analysis results for our project — show me all the critical and major security vulnerabilities found in the last scan, with file locations and remediation guidance",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "We're in /review and SonarCloud flagged some issues — get the full list of code smells, bugs, and vulnerabilities from the latest analysis so I can address them before the quality gate passes",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "What's our current technical debt ratio in SonarCloud? Show me the metrics dashboard — maintainability rating, reliability rating, security rating, and coverage percentage",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "The SonarCloud quality gate is failing on our PR — pull the specific issues that are blocking it and show me what needs to be fixed, sorted by severity",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "Get the SonarCloud code coverage report for our project — I want to see which modules have low coverage and identify the files that need more tests before our next release",
24
+ "should_trigger": true
25
+ },
26
+ {
27
+ "query": "Implement a new REST API endpoint for user profile management with CRUD operations, input validation, and proper error handling",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Search for best practices around implementing OAuth2 PKCE flow in a Node.js application",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "Write a comprehensive market analysis of the DevSecOps tools landscape covering SAST, DAST, and SCA vendors",
36
+ "should_trigger": false
37
+ },
38
+ {
39
+ "query": "Scrape https://docs.sonarcloud.io and extract the full list of supported languages and analysis rules",
40
+ "should_trigger": false
41
+ },
42
+ {
43
+ "query": "Build a structured company profile for SonarSource — return JSON with founding year, funding, products, and competitive positioning",
44
+ "should_trigger": false
45
+ },
46
+ {
47
+ "query": "Add proper citations to docs/research/security-audit-findings.md following our project's citation standards",
48
+ "should_trigger": false
49
+ }
50
+ ]