forge-workflow 0.0.4 → 0.0.6
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.
- package/.claude/commands/dev.md +345 -340
- package/.claude/commands/plan.md +566 -521
- package/.claude/commands/premerge.md +186 -176
- package/.claude/commands/research.md +42 -42
- package/.claude/commands/review.md +448 -442
- package/.claude/commands/rollback.md +721 -721
- package/.claude/commands/ship.md +212 -164
- package/.claude/commands/sonarcloud.md +152 -152
- package/.claude/commands/status.md +90 -48
- package/.claude/commands/validate.md +288 -282
- package/.claude/commands/verify.md +269 -221
- package/.claude/rules/greptile-review-process.md +285 -285
- package/.claude/rules/workflow.md +121 -105
- package/.claude/scripts/greptile-resolve.sh +558 -526
- package/.claude/scripts/load-env.sh +32 -32
- package/.cline/workflows/dev.md +342 -337
- package/.cline/workflows/plan.md +563 -518
- package/.cline/workflows/premerge.md +183 -173
- package/.cline/workflows/research.md +39 -39
- package/.cline/workflows/review.md +445 -439
- package/.cline/workflows/rollback.md +718 -718
- package/.cline/workflows/ship.md +209 -161
- package/.cline/workflows/sonarcloud.md +146 -146
- package/.cline/workflows/status.md +87 -45
- package/.cline/workflows/validate.md +285 -279
- package/.cline/workflows/verify.md +266 -218
- package/.codex/config.toml +11 -11
- package/.codex/skills/dev/SKILL.md +345 -340
- package/.codex/skills/plan/SKILL.md +566 -521
- package/.codex/skills/premerge/SKILL.md +186 -176
- package/.codex/skills/research/SKILL.md +42 -42
- package/.codex/skills/review/SKILL.md +448 -442
- package/.codex/skills/rollback/SKILL.md +721 -721
- package/.codex/skills/ship/SKILL.md +212 -164
- package/.codex/skills/sonarcloud/SKILL.md +149 -149
- package/.codex/skills/status/SKILL.md +90 -48
- package/.codex/skills/validate/SKILL.md +288 -282
- package/.codex/skills/verify/SKILL.md +269 -221
- package/.cursor/commands/dev.md +342 -337
- package/.cursor/commands/plan.md +563 -518
- package/.cursor/commands/premerge.md +183 -173
- package/.cursor/commands/research.md +39 -39
- package/.cursor/commands/review.md +445 -439
- package/.cursor/commands/rollback.md +718 -718
- package/.cursor/commands/ship.md +209 -161
- package/.cursor/commands/sonarcloud.md +146 -146
- package/.cursor/commands/status.md +87 -45
- package/.cursor/commands/validate.md +285 -279
- package/.cursor/commands/verify.md +266 -218
- package/.cursor/rules/permissions-guidance.mdc +37 -37
- package/.forge/hooks/check-tdd.js +240 -240
- package/.github/PLUGIN_TEMPLATE.json +32 -32
- package/.github/prompts/dev.prompt.md +347 -342
- package/.github/prompts/plan.prompt.md +568 -523
- package/.github/prompts/premerge.prompt.md +188 -178
- package/.github/prompts/research.prompt.md +44 -44
- package/.github/prompts/review.prompt.md +450 -444
- package/.github/prompts/rollback.prompt.md +723 -723
- package/.github/prompts/ship.prompt.md +214 -166
- package/.github/prompts/sonarcloud.prompt.md +151 -151
- package/.github/prompts/status.prompt.md +92 -50
- package/.github/prompts/validate.prompt.md +290 -284
- package/.github/prompts/verify.prompt.md +271 -223
- package/.github/workflows/beads-to-github.yml +56 -0
- package/.github/workflows/github-to-beads.yml +97 -0
- package/.kilocode/workflows/dev.md +346 -341
- package/.kilocode/workflows/plan.md +567 -522
- package/.kilocode/workflows/premerge.md +187 -177
- package/.kilocode/workflows/research.md +43 -43
- package/.kilocode/workflows/review.md +449 -443
- package/.kilocode/workflows/rollback.md +722 -722
- package/.kilocode/workflows/ship.md +213 -165
- package/.kilocode/workflows/sonarcloud.md +150 -150
- package/.kilocode/workflows/status.md +91 -49
- package/.kilocode/workflows/validate.md +289 -283
- package/.kilocode/workflows/verify.md +270 -222
- package/.mcp.json.example +12 -12
- package/.opencode/commands/dev.md +345 -340
- package/.opencode/commands/plan.md +566 -521
- package/.opencode/commands/premerge.md +186 -176
- package/.opencode/commands/research.md +42 -42
- package/.opencode/commands/review.md +448 -442
- package/.opencode/commands/rollback.md +721 -721
- package/.opencode/commands/ship.md +212 -164
- package/.opencode/commands/sonarcloud.md +149 -149
- package/.opencode/commands/status.md +90 -48
- package/.opencode/commands/validate.md +288 -282
- package/.opencode/commands/verify.md +269 -221
- package/.roo/commands/dev.md +346 -341
- package/.roo/commands/plan.md +567 -522
- package/.roo/commands/premerge.md +187 -177
- package/.roo/commands/research.md +43 -43
- package/.roo/commands/review.md +449 -443
- package/.roo/commands/rollback.md +722 -722
- package/.roo/commands/ship.md +213 -165
- package/.roo/commands/sonarcloud.md +150 -150
- package/.roo/commands/status.md +91 -49
- package/.roo/commands/validate.md +289 -283
- package/.roo/commands/verify.md +270 -222
- package/AGENTS.md +272 -175
- package/CLAUDE.md +110 -100
- package/README.md +429 -416
- package/bin/forge-cmd.js +317 -313
- package/bin/forge-preflight.js +322 -309
- package/bin/forge.js +4765 -4303
- package/docs/AGENT_INSTALL_PROMPT.md +342 -342
- package/docs/BEADS_GITHUB_SYNC.md +251 -251
- package/docs/ENHANCED_ONBOARDING.md +612 -602
- package/docs/EXAMPLES.md +482 -482
- package/docs/GREPTILE_SETUP.md +400 -400
- package/docs/MANUAL_REVIEW_GUIDE.md +106 -106
- package/docs/ROADMAP.md +359 -359
- package/docs/SETUP.md +663 -631
- package/docs/TOOLCHAIN.md +653 -630
- package/docs/VALIDATION.md +363 -363
- package/install.sh +40 -1056
- package/lefthook.yml +50 -39
- package/lib/agents/README.md +198 -198
- package/lib/agents/claude.plugin.json +28 -28
- package/lib/agents/cline.plugin.json +22 -22
- package/lib/agents/codex.plugin.json +19 -19
- package/lib/agents/copilot.plugin.json +24 -24
- package/lib/agents/cursor.plugin.json +25 -25
- package/lib/agents/kilocode.plugin.json +22 -22
- package/lib/agents/opencode.plugin.json +20 -20
- package/lib/agents/roo.plugin.json +23 -23
- package/lib/agents-config.js +2112 -2112
- package/lib/beads-health-check.js +143 -0
- package/lib/beads-setup.js +341 -0
- package/lib/beads-sync-scaffold.js +260 -0
- package/lib/commands/_registry.js +134 -0
- package/lib/commands/clean.js +181 -0
- package/lib/commands/dev.js +571 -513
- package/lib/commands/plan.js +692 -692
- package/lib/commands/push.js +196 -0
- package/lib/commands/recommend.js +119 -119
- package/lib/commands/ship.js +377 -377
- package/lib/commands/status.js +378 -378
- package/lib/commands/sync.js +55 -0
- package/lib/commands/team.js +37 -0
- package/lib/commands/test.js +207 -0
- package/lib/commands/validate.js +602 -602
- package/lib/commands/worktree.js +310 -0
- package/lib/context-merge.js +359 -359
- package/lib/dep-guard/analyzer.js +294 -294
- package/lib/dep-guard/behavior-detector.js +98 -98
- package/lib/dep-guard/contract-detector.js +162 -162
- package/lib/dep-guard/import-detector.js +498 -498
- package/lib/dep-guard/path-utils.js +13 -13
- package/lib/dep-guard/rubric.js +120 -120
- package/lib/dep-guard/task-parser.js +318 -318
- package/lib/detect-agent.js +191 -191
- package/lib/detect-worktree.js +47 -47
- package/lib/docs-command.js +51 -0
- package/lib/docs-copy.js +50 -0
- package/lib/file-hash.js +26 -26
- package/lib/freshness-token.js +148 -0
- package/lib/greptile-match.js +80 -0
- package/lib/husky-migration.js +450 -0
- package/lib/lefthook-check.js +65 -0
- package/lib/pat-setup.js +207 -0
- package/lib/plugin-catalog.js +350 -350
- package/lib/plugin-manager.js +166 -166
- package/lib/plugin-recommender.js +141 -141
- package/lib/project-discovery.js +491 -491
- package/lib/reset.js +309 -0
- package/lib/setup-action-log.js +139 -139
- package/lib/setup-summary-renderer.js +106 -106
- package/lib/setup-utils.js +96 -0
- package/lib/setup.js +192 -192
- package/lib/smart-merge.js +64 -0
- package/lib/symlink-utils.js +81 -0
- package/lib/task-ownership.js +117 -0
- package/lib/workflow-profiles.js +197 -197
- package/package.json +131 -128
- package/scripts/beads-context.sh +426 -0
- package/scripts/beads-context.test.js +567 -0
- package/scripts/behavioral-judge.sh +378 -0
- package/scripts/benchmark.js +85 -0
- package/scripts/branch-protection.js +183 -0
- package/scripts/check-agents.js +172 -0
- package/scripts/check-forge-token.js +98 -0
- package/scripts/commitlint.js +42 -0
- package/scripts/conflict-detect.sh +323 -0
- package/scripts/dep-guard-analyze.js +71 -0
- package/scripts/dep-guard.sh +789 -0
- package/scripts/eval_win.py +249 -0
- package/scripts/file-index.sh +493 -0
- package/scripts/forge-team/index.sh +86 -0
- package/scripts/forge-team/lib/agent-prompt.sh +52 -0
- package/scripts/forge-team/lib/claim.sh +256 -0
- package/scripts/forge-team/lib/dashboard.sh +341 -0
- package/scripts/forge-team/lib/epic.sh +332 -0
- package/scripts/forge-team/lib/hooks.sh +253 -0
- package/scripts/forge-team/lib/identity.sh +235 -0
- package/scripts/forge-team/lib/sync-github.sh +317 -0
- package/scripts/forge-team/lib/verify.sh +284 -0
- package/scripts/forge-team/lib/workload.sh +296 -0
- package/scripts/forge-team/tests/agent-prompt.test.sh +72 -0
- package/scripts/forge-team/tests/claim.test.sh +179 -0
- package/scripts/forge-team/tests/dashboard.test.sh +170 -0
- package/scripts/forge-team/tests/dispatcher.test.sh +79 -0
- package/scripts/forge-team/tests/epic.test.sh +176 -0
- package/scripts/forge-team/tests/hooks.test.sh +239 -0
- package/scripts/forge-team/tests/identity.test.sh +176 -0
- package/scripts/forge-team/tests/integration.test.sh +371 -0
- package/scripts/forge-team/tests/sync-github.test.sh +209 -0
- package/scripts/forge-team/tests/verify.test.sh +314 -0
- package/scripts/forge-team/tests/workflow-integration.test.sh +43 -0
- package/scripts/forge-team/tests/workload.test.sh +209 -0
- package/scripts/github-beads-sync/comment.mjs +64 -0
- package/scripts/github-beads-sync/config.mjs +148 -0
- package/scripts/github-beads-sync/github-api.mjs +131 -0
- package/scripts/github-beads-sync/index.mjs +332 -0
- package/scripts/github-beads-sync/label-mapper.mjs +54 -0
- package/scripts/github-beads-sync/mapping.mjs +78 -0
- package/scripts/github-beads-sync/reverse-sync-cli.mjs +31 -0
- package/scripts/github-beads-sync/reverse-sync.mjs +138 -0
- package/scripts/github-beads-sync/run-bd.mjs +159 -0
- package/scripts/github-beads-sync/sanitize.mjs +121 -0
- package/scripts/github-beads-sync.config.json +26 -0
- package/scripts/improve-command.js +375 -0
- package/scripts/lib/eval-runner.js +268 -0
- package/scripts/lib/eval-schema.js +135 -0
- package/scripts/lib/eval-storage.js +78 -0
- package/scripts/lib/grading.js +203 -0
- package/scripts/lib/jsonl-lock.sh +48 -0
- package/scripts/lib/sanitize.sh +116 -0
- package/scripts/lib/transcript-parser.js +63 -0
- package/scripts/lint.js +47 -0
- package/scripts/migrate-to-bun-test.js +412 -0
- package/scripts/pr-coordinator.sh +706 -0
- package/scripts/run-command-eval.js +236 -0
- package/scripts/smart-status.sh +809 -0
- package/scripts/sync-commands.js +571 -0
- package/scripts/sync-utils.sh +455 -0
- package/scripts/test-dashboard.js +123 -0
- package/scripts/test.js +46 -0
- package/scripts/validate.sh +94 -0
- package/skills/parallel-deep-research/SKILL.md +108 -108
- package/skills/parallel-deep-research/evals/README.md +27 -27
- package/skills/parallel-deep-research/evals/evals.json +62 -62
- package/skills/sonarcloud-analysis/SKILL.md +171 -171
- package/skills/sonarcloud-analysis/evals/README.md +27 -27
- package/skills/sonarcloud-analysis/evals/evals.json +50 -50
- package/skills/sonarcloud-analysis/references/api-reference.md +466 -466
- package/.cursor/hooks/state/continual-learning-index.json +0 -19
- package/.cursor/hooks/state/continual-learning.json +0 -8
|
@@ -1,149 +1,149 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Pull issues, metrics, quality gates, and analysis data from SonarCloud
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# SonarCloud Query Command
|
|
6
|
-
|
|
7
|
-
Pull code quality data from SonarCloud. Requires `SONARCLOUD_TOKEN` environment variable.
|
|
8
|
-
|
|
9
|
-
## Arguments
|
|
10
|
-
|
|
11
|
-
- `$ARGUMENTS` - Query type and parameters
|
|
12
|
-
|
|
13
|
-
## Query Types
|
|
14
|
-
|
|
15
|
-
| Query | Description | Example |
|
|
16
|
-
|-------|-------------|---------|
|
|
17
|
-
| `issues <project>` | Get open issues | `/sonarcloud issues my-project` |
|
|
18
|
-
| `metrics <project>` | Get code metrics | `/sonarcloud metrics my-project` |
|
|
19
|
-
| `gate <project>` | Quality gate status | `/sonarcloud gate my-project` |
|
|
20
|
-
| `health <project>` | Full health report | `/sonarcloud health my-project` |
|
|
21
|
-
| `pr <project> <pr#>` | PR analysis | `/sonarcloud pr my-project 123` |
|
|
22
|
-
| `hotspots <project>` | Security hotspots | `/sonarcloud hotspots my-project` |
|
|
23
|
-
| `history <project>` | Analysis history | `/sonarcloud history my-project` |
|
|
24
|
-
|
|
25
|
-
## Filters (append to query)
|
|
26
|
-
|
|
27
|
-
| Filter | Description | Example |
|
|
28
|
-
|--------|-------------|---------|
|
|
29
|
-
| `--branch <name>` | Filter by branch | `--branch develop` |
|
|
30
|
-
| `--severity <levels>` | Filter severity | `--severity BLOCKER,CRITICAL` |
|
|
31
|
-
| `--type <types>` | Filter issue type | `--type BUG,VULNERABILITY` |
|
|
32
|
-
| `--new-code` | Only new code issues | `--new-code` |
|
|
33
|
-
|
|
34
|
-
## Instructions
|
|
35
|
-
|
|
36
|
-
1. Parse the query from `$ARGUMENTS` to determine:
|
|
37
|
-
- Query type (issues, metrics, gate, health, pr, hotspots, history)
|
|
38
|
-
- Project key
|
|
39
|
-
- Optional filters (branch, severity, type, new-code, etc.)
|
|
40
|
-
2. Check for `SONARCLOUD_TOKEN` environment variable. If not set, inform user.
|
|
41
|
-
3. Check for `SONARCLOUD_ORG` environment variable or ask user for organization key.
|
|
42
|
-
4. Execute the appropriate API call using curl or the TypeScript client at `next-app/src/lib/integrations/sonarcloud.ts`
|
|
43
|
-
5. Format and present results clearly:
|
|
44
|
-
- For issues: Group by severity/type, show file, line, message
|
|
45
|
-
- For metrics: Show as table with metric name and value
|
|
46
|
-
- For quality gate: Show pass/fail with failed conditions
|
|
47
|
-
- For health: Comprehensive summary with all data
|
|
48
|
-
6. Offer follow-up actions:
|
|
49
|
-
- "Show issues in specific file?"
|
|
50
|
-
- "Get more details on a specific issue?"
|
|
51
|
-
- "Compare with another branch?"
|
|
52
|
-
|
|
53
|
-
## Example Outputs
|
|
54
|
-
|
|
55
|
-
### Issues Query
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
📋 Open Issues for my-project (branch: main)
|
|
59
|
-
|
|
60
|
-
Total: 45 issues
|
|
61
|
-
|
|
62
|
-
By Severity:
|
|
63
|
-
🔴 BLOCKER: 2
|
|
64
|
-
🟠 CRITICAL: 5
|
|
65
|
-
🟡 MAJOR: 18
|
|
66
|
-
⚪ MINOR: 15
|
|
67
|
-
⚫ INFO: 5
|
|
68
|
-
|
|
69
|
-
By Type:
|
|
70
|
-
🐛 BUG: 8
|
|
71
|
-
🔓 VULNERABILITY: 3
|
|
72
|
-
💩 CODE_SMELL: 34
|
|
73
|
-
|
|
74
|
-
Top Issues:
|
|
75
|
-
1. [CRITICAL] src/auth/login.ts:42 - SQL injection vulnerability
|
|
76
|
-
2. [BLOCKER] src/api/users.ts:156 - Null pointer dereference
|
|
77
|
-
...
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Metrics Query
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
📊 Metrics for my-project
|
|
84
|
-
|
|
85
|
-
| Metric | Value |
|
|
86
|
-
|--------|-------|
|
|
87
|
-
| Lines of Code | 51,234 |
|
|
88
|
-
| Coverage | 78.5% |
|
|
89
|
-
| Duplications | 3.2% |
|
|
90
|
-
| Bugs | 8 |
|
|
91
|
-
| Vulnerabilities | 3 |
|
|
92
|
-
| Code Smells | 34 |
|
|
93
|
-
| Technical Debt | 4d 2h |
|
|
94
|
-
| Maintainability | A |
|
|
95
|
-
| Reliability | B |
|
|
96
|
-
| Security | A |
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Quality Gate Query
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
🚦 Quality Gate: ❌ FAILED
|
|
103
|
-
|
|
104
|
-
Failed Conditions:
|
|
105
|
-
| Metric | Threshold | Actual |
|
|
106
|
-
|--------|-----------|--------|
|
|
107
|
-
| Coverage on New Code | ≥ 80% | 65.3% |
|
|
108
|
-
| New Bugs | = 0 | 2 |
|
|
109
|
-
|
|
110
|
-
Passed Conditions:
|
|
111
|
-
| Metric | Threshold | Actual |
|
|
112
|
-
|--------|-----------|--------|
|
|
113
|
-
| New Vulnerabilities | = 0 | 0 |
|
|
114
|
-
| Duplicated Lines | ≤ 3% | 1.2% |
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## API Reference
|
|
118
|
-
|
|
119
|
-
Base URL: `https://sonarcloud.io/api`
|
|
120
|
-
|
|
121
|
-
### Key Endpoints
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
# Issues
|
|
125
|
-
curl -H "Authorization: Bearer $TOKEN" \
|
|
126
|
-
"https://sonarcloud.io/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false"
|
|
127
|
-
|
|
128
|
-
# Metrics
|
|
129
|
-
curl -H "Authorization: Bearer $TOKEN" \
|
|
130
|
-
"https://sonarcloud.io/api/measures/component?component=$PROJECT&metricKeys=bugs,vulnerabilities,coverage"
|
|
131
|
-
|
|
132
|
-
# Quality Gate
|
|
133
|
-
curl -H "Authorization: Bearer $TOKEN" \
|
|
134
|
-
"https://sonarcloud.io/api/qualitygates/project_status?projectKey=$PROJECT"
|
|
135
|
-
|
|
136
|
-
# Hotspots
|
|
137
|
-
curl -H "Authorization: Bearer $TOKEN" \
|
|
138
|
-
"https://sonarcloud.io/api/hotspots/search?projectKey=$PROJECT&status=TO_REVIEW"
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Full Skill Reference
|
|
142
|
-
|
|
143
|
-
See `skills/sonarcloud-analysis/SKILL.md` for complete API documentation including:
|
|
144
|
-
|
|
145
|
-
- All endpoints and parameters
|
|
146
|
-
- Response structures
|
|
147
|
-
- Pagination handling
|
|
148
|
-
- Advanced filtering
|
|
149
|
-
- Integration patterns
|
|
1
|
+
---
|
|
2
|
+
description: Pull issues, metrics, quality gates, and analysis data from SonarCloud
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SonarCloud Query Command
|
|
6
|
+
|
|
7
|
+
Pull code quality data from SonarCloud. Requires `SONARCLOUD_TOKEN` environment variable.
|
|
8
|
+
|
|
9
|
+
## Arguments
|
|
10
|
+
|
|
11
|
+
- `$ARGUMENTS` - Query type and parameters
|
|
12
|
+
|
|
13
|
+
## Query Types
|
|
14
|
+
|
|
15
|
+
| Query | Description | Example |
|
|
16
|
+
|-------|-------------|---------|
|
|
17
|
+
| `issues <project>` | Get open issues | `/sonarcloud issues my-project` |
|
|
18
|
+
| `metrics <project>` | Get code metrics | `/sonarcloud metrics my-project` |
|
|
19
|
+
| `gate <project>` | Quality gate status | `/sonarcloud gate my-project` |
|
|
20
|
+
| `health <project>` | Full health report | `/sonarcloud health my-project` |
|
|
21
|
+
| `pr <project> <pr#>` | PR analysis | `/sonarcloud pr my-project 123` |
|
|
22
|
+
| `hotspots <project>` | Security hotspots | `/sonarcloud hotspots my-project` |
|
|
23
|
+
| `history <project>` | Analysis history | `/sonarcloud history my-project` |
|
|
24
|
+
|
|
25
|
+
## Filters (append to query)
|
|
26
|
+
|
|
27
|
+
| Filter | Description | Example |
|
|
28
|
+
|--------|-------------|---------|
|
|
29
|
+
| `--branch <name>` | Filter by branch | `--branch develop` |
|
|
30
|
+
| `--severity <levels>` | Filter severity | `--severity BLOCKER,CRITICAL` |
|
|
31
|
+
| `--type <types>` | Filter issue type | `--type BUG,VULNERABILITY` |
|
|
32
|
+
| `--new-code` | Only new code issues | `--new-code` |
|
|
33
|
+
|
|
34
|
+
## Instructions
|
|
35
|
+
|
|
36
|
+
1. Parse the query from `$ARGUMENTS` to determine:
|
|
37
|
+
- Query type (issues, metrics, gate, health, pr, hotspots, history)
|
|
38
|
+
- Project key
|
|
39
|
+
- Optional filters (branch, severity, type, new-code, etc.)
|
|
40
|
+
2. Check for `SONARCLOUD_TOKEN` environment variable. If not set, inform user.
|
|
41
|
+
3. Check for `SONARCLOUD_ORG` environment variable or ask user for organization key.
|
|
42
|
+
4. Execute the appropriate API call using curl or the TypeScript client at `next-app/src/lib/integrations/sonarcloud.ts`
|
|
43
|
+
5. Format and present results clearly:
|
|
44
|
+
- For issues: Group by severity/type, show file, line, message
|
|
45
|
+
- For metrics: Show as table with metric name and value
|
|
46
|
+
- For quality gate: Show pass/fail with failed conditions
|
|
47
|
+
- For health: Comprehensive summary with all data
|
|
48
|
+
6. Offer follow-up actions:
|
|
49
|
+
- "Show issues in specific file?"
|
|
50
|
+
- "Get more details on a specific issue?"
|
|
51
|
+
- "Compare with another branch?"
|
|
52
|
+
|
|
53
|
+
## Example Outputs
|
|
54
|
+
|
|
55
|
+
### Issues Query
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
📋 Open Issues for my-project (branch: main)
|
|
59
|
+
|
|
60
|
+
Total: 45 issues
|
|
61
|
+
|
|
62
|
+
By Severity:
|
|
63
|
+
🔴 BLOCKER: 2
|
|
64
|
+
🟠 CRITICAL: 5
|
|
65
|
+
🟡 MAJOR: 18
|
|
66
|
+
⚪ MINOR: 15
|
|
67
|
+
⚫ INFO: 5
|
|
68
|
+
|
|
69
|
+
By Type:
|
|
70
|
+
🐛 BUG: 8
|
|
71
|
+
🔓 VULNERABILITY: 3
|
|
72
|
+
💩 CODE_SMELL: 34
|
|
73
|
+
|
|
74
|
+
Top Issues:
|
|
75
|
+
1. [CRITICAL] src/auth/login.ts:42 - SQL injection vulnerability
|
|
76
|
+
2. [BLOCKER] src/api/users.ts:156 - Null pointer dereference
|
|
77
|
+
...
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Metrics Query
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
📊 Metrics for my-project
|
|
84
|
+
|
|
85
|
+
| Metric | Value |
|
|
86
|
+
|--------|-------|
|
|
87
|
+
| Lines of Code | 51,234 |
|
|
88
|
+
| Coverage | 78.5% |
|
|
89
|
+
| Duplications | 3.2% |
|
|
90
|
+
| Bugs | 8 |
|
|
91
|
+
| Vulnerabilities | 3 |
|
|
92
|
+
| Code Smells | 34 |
|
|
93
|
+
| Technical Debt | 4d 2h |
|
|
94
|
+
| Maintainability | A |
|
|
95
|
+
| Reliability | B |
|
|
96
|
+
| Security | A |
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Quality Gate Query
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
🚦 Quality Gate: ❌ FAILED
|
|
103
|
+
|
|
104
|
+
Failed Conditions:
|
|
105
|
+
| Metric | Threshold | Actual |
|
|
106
|
+
|--------|-----------|--------|
|
|
107
|
+
| Coverage on New Code | ≥ 80% | 65.3% |
|
|
108
|
+
| New Bugs | = 0 | 2 |
|
|
109
|
+
|
|
110
|
+
Passed Conditions:
|
|
111
|
+
| Metric | Threshold | Actual |
|
|
112
|
+
|--------|-----------|--------|
|
|
113
|
+
| New Vulnerabilities | = 0 | 0 |
|
|
114
|
+
| Duplicated Lines | ≤ 3% | 1.2% |
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## API Reference
|
|
118
|
+
|
|
119
|
+
Base URL: `https://sonarcloud.io/api`
|
|
120
|
+
|
|
121
|
+
### Key Endpoints
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Issues
|
|
125
|
+
curl -H "Authorization: Bearer $TOKEN" \
|
|
126
|
+
"https://sonarcloud.io/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false"
|
|
127
|
+
|
|
128
|
+
# Metrics
|
|
129
|
+
curl -H "Authorization: Bearer $TOKEN" \
|
|
130
|
+
"https://sonarcloud.io/api/measures/component?component=$PROJECT&metricKeys=bugs,vulnerabilities,coverage"
|
|
131
|
+
|
|
132
|
+
# Quality Gate
|
|
133
|
+
curl -H "Authorization: Bearer $TOKEN" \
|
|
134
|
+
"https://sonarcloud.io/api/qualitygates/project_status?projectKey=$PROJECT"
|
|
135
|
+
|
|
136
|
+
# Hotspots
|
|
137
|
+
curl -H "Authorization: Bearer $TOKEN" \
|
|
138
|
+
"https://sonarcloud.io/api/hotspots/search?projectKey=$PROJECT&status=TO_REVIEW"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Full Skill Reference
|
|
142
|
+
|
|
143
|
+
See `skills/sonarcloud-analysis/SKILL.md` for complete API documentation including:
|
|
144
|
+
|
|
145
|
+
- All endpoints and parameters
|
|
146
|
+
- Response structures
|
|
147
|
+
- Pagination handling
|
|
148
|
+
- Advanced filtering
|
|
149
|
+
- Integration patterns
|
|
@@ -1,48 +1,90 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Check current stage and context
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
Check where you are in the project and what work is in progress.
|
|
6
|
-
|
|
7
|
-
# Status Check
|
|
8
|
-
|
|
9
|
-
This command helps you understand the current state of the project before starting new work.
|
|
10
|
-
|
|
11
|
-
## Usage
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
/status
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## What This Command Does
|
|
18
|
-
|
|
19
|
-
## Step 0: Sync team state
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# Sync team state before showing status
|
|
23
|
-
bash scripts/sync-utils.sh auto-sync
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Step 1: Smart Status (ranked issues with conflict detection)
|
|
27
|
-
|
|
28
|
-
bash
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
1
|
+
---
|
|
2
|
+
description: Check current stage and context
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Check where you are in the project and what work is in progress.
|
|
6
|
+
|
|
7
|
+
# Status Check
|
|
8
|
+
|
|
9
|
+
This command helps you understand the current state of the project before starting new work.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
/status
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## What This Command Does
|
|
18
|
+
|
|
19
|
+
## Step 0: Sync team state
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# Sync team state before showing status
|
|
23
|
+
bash scripts/sync-utils.sh auto-sync
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Step 1: Smart Status (ranked issues with conflict detection)
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
bash scripts/smart-status.sh
|
|
30
|
+
```
|
|
31
|
+
This script dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed — the script handles everything.
|
|
32
|
+
|
|
33
|
+
For full context on any issue: `bd show <id>`
|
|
34
|
+
|
|
35
|
+
### Step 1b: Reconcile stale in-progress issues
|
|
36
|
+
|
|
37
|
+
Check if any in-progress issues were already merged but not closed (can happen if `/verify` was skipped or backup was restored from stale snapshot):
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Detect default branch dynamically (prefer main over master)
|
|
41
|
+
DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||')
|
|
42
|
+
if [ -z "$DEFAULT_BRANCH" ]; then
|
|
43
|
+
if git rev-parse --verify main >/dev/null 2>&1; then DEFAULT_BRANCH="main"
|
|
44
|
+
elif git rev-parse --verify master >/dev/null 2>&1; then DEFAULT_BRANCH="master"
|
|
45
|
+
else echo "ERROR: No main or master branch found — skipping stale reconciliation" >&2; DEFAULT_BRANCH=""; fi
|
|
46
|
+
fi
|
|
47
|
+
|
|
48
|
+
# For each in_progress issue, check if its PR was already merged
|
|
49
|
+
if [ -n "$DEFAULT_BRANCH" ]; then
|
|
50
|
+
bd list --status=in_progress --json 2>/dev/null | jq -r '.[].id' | while read id; do
|
|
51
|
+
# Search git log for the issue ID in commit messages (fixed-strings for literal match)
|
|
52
|
+
if git log --oneline --first-parent "$DEFAULT_BRANCH" --fixed-strings --grep="$id" | grep -q .; then
|
|
53
|
+
echo "STALE: $id — found in git history, likely already merged"
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
fi
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
If stale issues are found, close them:
|
|
60
|
+
```bash
|
|
61
|
+
bd close <id> --force --reason="Already merged — detected during status reconciliation"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Step 2: Review Recent Commits
|
|
65
|
+
```bash
|
|
66
|
+
git log --oneline -10
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Step 3: Determine Context
|
|
70
|
+
- **New feature**: No active work, ready to start fresh
|
|
71
|
+
- **Continuing work**: In-progress issues found, resume where left off
|
|
72
|
+
- **Review needed**: Work marked complete, needs review/merge
|
|
73
|
+
|
|
74
|
+
### Team context
|
|
75
|
+
|
|
76
|
+
Show current developer's active work and team overview:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Show my active issues
|
|
80
|
+
bash scripts/forge-team/index.sh workload --me 2>&1 || true
|
|
81
|
+
|
|
82
|
+
# One-line team summary
|
|
83
|
+
bash scripts/forge-team/index.sh dashboard 2>&1 | head -5 || true
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Next Steps
|
|
87
|
+
|
|
88
|
+
- **If starting new work**: Run `/plan <feature-name>`
|
|
89
|
+
- **If continuing work**: Resume with appropriate phase command
|
|
90
|
+
- **If reviewing**: Run `/review <pr-number>` or `/premerge <pr-number>`
|