opencode-agent-kit 1.0.14 → 1.0.17
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/README.md +8 -3
- package/bin/commands/init.mjs +11 -5
- package/bin/init.mjs +10 -10
- package/package.json +6 -5
- package/template/.opencode/agents/it-leader.md +14 -1
- package/template/.opencode/agents/sonarqube-quality.md +406 -0
- package/template/.opencode/commands/sonarqube-scan.md +65 -0
- package/template/.opencode/config.json +0 -49
- package/template/opencode.example.json +50 -0
- package/template/opencode.json +51 -0
package/README.md
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/defuj/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/defuj/opencode-agent-kit/main/assets/og-image-2.webp" alt="Opencode Agent KIT Banner" width="100%">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
# Agent Kit — Setup Guide
|
|
6
6
|
|
|
7
|
-
Complete setup guide for the **Agent Kit** — a portable multi-stack AI agent system for OpenCode. Includes 13 specialized agents, 62 skill playbooks,
|
|
7
|
+
Complete setup guide for the **Agent Kit** — a portable multi-stack AI agent system for OpenCode. Includes 13 specialized agents, 62 skill playbooks, 37 slash commands, and 7 MCP servers.
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npx opencode-agent-kit init # One command. Full team.
|
|
@@ -32,7 +32,7 @@ opencode-agent-kit init
|
|
|
32
32
|
|
|
33
33
|
## Overview
|
|
34
34
|
|
|
35
|
-
Think of Agent Kit as an AI development team you install into any OpenCode project. An **IT Leader** orchestrates
|
|
35
|
+
Think of Agent Kit as an AI development team you install into any OpenCode project. An **IT Leader** orchestrates 13 specialized subagents — each one an expert in their stack. You describe what to build; the team handles the rest.
|
|
36
36
|
|
|
37
37
|
This repository contains a complete OpenCode agent configuration with **Leader → Subagent** architecture for software development teams.
|
|
38
38
|
|
|
@@ -53,6 +53,7 @@ This repository contains a complete OpenCode agent configuration with **Leader
|
|
|
53
53
|
- `seo-specialist.md` — SEO Specialist — `@seo`
|
|
54
54
|
- `android-developer.md` — Android Developer (Kotlin/Compose) — `@android`
|
|
55
55
|
- `flutter-developer.md` — Flutter Developer (Dart) — `@flutter`
|
|
56
|
+
- `sonarqube-quality.md` — SonarQube Quality Scanner — `@sonarqube`
|
|
56
57
|
- `nuxt-frontend-developer-mentor.md` — Nuxt mentor (standalone)
|
|
57
58
|
- Internal documentation: `.opencode/docs/`
|
|
58
59
|
- Frontend Nuxt: `.opencode/docs/frontend/nuxt/`
|
|
@@ -112,6 +113,7 @@ Specialized agents **not available** in built-in OpenCode:
|
|
|
112
113
|
| **SEO** | `seo-specialist.md` | Meta tags, structured data, Core Web Vitals | SEO optimization |
|
|
113
114
|
| **Android** | `android-developer.md` | Kotlin, Jetpack Compose, Gradle, Play Store | Android native development |
|
|
114
115
|
| **Flutter** | `flutter-developer.md` | Dart, Flutter SDK, Material 3, Firebase | Cross-platform mobile |
|
|
116
|
+
| **SonarQube** | `sonarqube-quality.md` | Code quality scans, security, coverage | Quality assurance |
|
|
115
117
|
|
|
116
118
|
### Workflow
|
|
117
119
|
|
|
@@ -186,6 +188,9 @@ After installing `.opencode/`, the following slash commands are available:
|
|
|
186
188
|
/flutter-build [target] # Build Flutter (apk/appbundle/ios/web)
|
|
187
189
|
/flutter-test [type] # Run Flutter tests with coverage
|
|
188
190
|
/gpc-release [track] # Publish to Google Play
|
|
191
|
+
|
|
192
|
+
# Quality
|
|
193
|
+
/sonarqube-scan [options] # SonarQube quality scan (issues, security, coverage)
|
|
189
194
|
```
|
|
190
195
|
|
|
191
196
|
## Using the `.opencode/` Folder
|
package/bin/commands/init.mjs
CHANGED
|
@@ -247,16 +247,22 @@ export async function init(options) {
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
// 9. Write .kit-version for agent update checking
|
|
250
|
-
const pkgJson = JSON.parse(
|
|
251
|
-
|
|
252
|
-
|
|
250
|
+
const pkgJson = JSON.parse(
|
|
251
|
+
readFileSync(join(PKG_ROOT, "package.json"), "utf-8"),
|
|
252
|
+
);
|
|
253
|
+
const versionFile = join(opencodeDir, ".kit-version");
|
|
254
|
+
writeFileSync(versionFile, pkgJson.version + "\n", "utf-8");
|
|
253
255
|
|
|
254
256
|
// 10. Done
|
|
255
257
|
console.log(`\n ✅ opencode-agent-kit v${pkgJson.version} installed!\n`);
|
|
256
258
|
console.log(` Location: ${targetDir}`);
|
|
257
259
|
console.log(` What you got:`);
|
|
258
|
-
console.log(
|
|
259
|
-
|
|
260
|
+
console.log(
|
|
261
|
+
` • opencode.json — 13 agents config with MCP servers`,
|
|
262
|
+
);
|
|
263
|
+
console.log(
|
|
264
|
+
` • opencode.example.json — Example config for reference`,
|
|
265
|
+
);
|
|
260
266
|
console.log(` • .opencode/agents — 14 agent prompt files`);
|
|
261
267
|
console.log(` • .opencode/skills/ — 60+ skill playbooks`);
|
|
262
268
|
console.log(` • .opencode/commands/ — 35+ slash commands`);
|
package/bin/init.mjs
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
-
import { Command } from
|
|
4
|
-
import { init } from
|
|
3
|
+
import { Command } from "commander";
|
|
4
|
+
import { init } from "./commands/init.mjs";
|
|
5
5
|
|
|
6
6
|
const program = new Command();
|
|
7
7
|
|
|
8
8
|
program
|
|
9
|
-
.name(
|
|
10
|
-
.description(
|
|
11
|
-
.version(
|
|
9
|
+
.name("opencode-agent-kit")
|
|
10
|
+
.description("Install OpenCode multi-agent toolkit into your project")
|
|
11
|
+
.version("1.0.0");
|
|
12
12
|
|
|
13
13
|
program
|
|
14
|
-
.command(
|
|
15
|
-
.description(
|
|
16
|
-
.option(
|
|
17
|
-
.option(
|
|
18
|
-
.option(
|
|
14
|
+
.command("init")
|
|
15
|
+
.description("Initialize .opencode/ configuration in current project")
|
|
16
|
+
.option("-f, --force", "Overwrite existing files without prompt")
|
|
17
|
+
.option("-d, --dir <path>", "Target project directory", process.cwd())
|
|
18
|
+
.option("--skip-install", "Skip npm/bun install step in .opencode/")
|
|
19
19
|
.action(init);
|
|
20
20
|
|
|
21
21
|
program.parse();
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-agent-kit",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Multi-stack OpenCode agent toolkit — 13 specialized AI agents (Nuxt, React, Node.js, Laravel, CI3, Android, Flutter, DevOps, SEO) with 62 skills,
|
|
3
|
+
"version": "1.0.17",
|
|
4
|
+
"description": "Multi-stack OpenCode agent toolkit — 13 specialized AI agents (Nuxt, React, Node.js, Laravel, CI3, Android, Flutter, DevOps, SEO, SonarQube) with 62 skills, 37 commands, and 7 MCP servers",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"opencode-agent-kit": "./bin/init.mjs"
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
|
-
"url": "git+https://github.com/defuj/agent-kit.git"
|
|
19
|
+
"url": "git+https://github.com/defuj/opencode-agent-kit.git"
|
|
20
20
|
},
|
|
21
|
-
"homepage": "https://
|
|
21
|
+
"homepage": "https://github.com/defuj/opencode-agent-kit",
|
|
22
22
|
"bugs": {
|
|
23
|
-
"url": "https://github.com/defuj/agent-kit/issues"
|
|
23
|
+
"url": "https://github.com/defuj/opencode-agent-kit/issues"
|
|
24
24
|
},
|
|
25
25
|
"engines": {
|
|
26
26
|
"node": ">=18"
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"dart",
|
|
43
43
|
"devops",
|
|
44
44
|
"seo",
|
|
45
|
+
"sonarqube",
|
|
45
46
|
"coding-agent",
|
|
46
47
|
"mcp",
|
|
47
48
|
"playwright",
|
|
@@ -51,6 +51,7 @@ You are a **senior IT Leader / Technical Project Manager / Solution Architect**.
|
|
|
51
51
|
- Research external dependencies or clone repos (delegate to `@scout`)
|
|
52
52
|
- Execute complex multi-step research or tasks (delegate to `@general`)
|
|
53
53
|
- Run security scanning or audits (delegate to `@security-reviewer`)
|
|
54
|
+
- Run SonarQube quality scans or issue triage (delegate to `@sonarqube`)
|
|
54
55
|
- Fix build errors, TypeScript errors, or compilation issues (delegate to `@build-error-resolver`)
|
|
55
56
|
- Run code review or quality checks (delegate to `@code-reviewer` or `@reviewer`)
|
|
56
57
|
- Perform dead code cleanup or refactoring (delegate to `@refactor-cleaner`)
|
|
@@ -79,6 +80,7 @@ You are a **senior IT Leader / Technical Project Manager / Solution Architect**.
|
|
|
79
80
|
| SEO Specialist | `@seo` | Meta tags, structured data, Core Web Vitals, content optimization |
|
|
80
81
|
| Android Developer | `@android` | Kotlin, Jetpack Compose, Gradle, Material Design 3, Play Store |
|
|
81
82
|
| Flutter Developer | `@flutter` | Flutter, Dart, Material Design 3, Cupertino, Firebase |
|
|
83
|
+
| SonarQube Quality | `@sonarqube` | SonarQube audit, issue triage, quality gate checks, fix delegation |
|
|
82
84
|
|
|
83
85
|
### Subagent Capabilities Reference
|
|
84
86
|
|
|
@@ -155,6 +157,15 @@ You are a **senior IT Leader / Technical Project Manager / Solution Architect**.
|
|
|
155
157
|
- Commands: `/flutter-build`, `/flutter-test`
|
|
156
158
|
- Output: Reports verification status (`verified` / `partially_verified` / `not_verified`)
|
|
157
159
|
|
|
160
|
+
#### `@sonarqube` (sonarqube-quality)
|
|
161
|
+
- Stack: SonarQube MCP server (issues, security-hotspots, duplications, coverage, dependency-risks, quality-gates, measures, projects, rules)
|
|
162
|
+
- Can: Scan code quality, triage issues by severity, detect security hotspots, find duplications, assess coverage, identify dependency risks, create structured TODOs, delegate fixes to domain subagents, re-scan to verify fixes
|
|
163
|
+
- Uses: SonarQube MCP toolsets, `todowrite` for TODO tracking, domain subagents for fix delegation
|
|
164
|
+
- Commands: `/sonarqube-scan`
|
|
165
|
+
- Modes: `quick` (issues only), `full` (all toolsets), `pr` (PR scope)
|
|
166
|
+
- Delegation: Routes fixes by file type to `@frontend-nuxt`, `@frontend-react`, `@backend`, `@ci3`, `@laravel`, `@android`, `@flutter`, `@database`, `@devops`, `@security-reviewer`
|
|
167
|
+
- Output: Quality scan report, TODO list, delegation status, re-scan verification
|
|
168
|
+
|
|
158
169
|
### Built-in OpenCode Agents (Available Globally)
|
|
159
170
|
|
|
160
171
|
OpenCode has **built-in agents** that are available automatically. Use these for tasks that are better served by specialized tools:
|
|
@@ -419,6 +430,7 @@ When delegating via `task` tool, always include:
|
|
|
419
430
|
| Critical flow | E2E (Playwright) | @e2e-runner |
|
|
420
431
|
| Mobile app build | Build + Unit tests | @android / @flutter |
|
|
421
432
|
| Play Store release | Build + Preflight + Release | @android (via gpc) |
|
|
433
|
+
| SonarQube quality scan | Full scan + Issue triage + Fix delegation | @sonarqube |
|
|
422
434
|
|
|
423
435
|
## Security Gate
|
|
424
436
|
|
|
@@ -573,6 +585,7 @@ Task received
|
|
|
573
585
|
│ ├── SEO → @seo
|
|
574
586
|
│ ├── Code review → @code-reviewer
|
|
575
587
|
│ ├── Security → @security-reviewer
|
|
588
|
+
│ ├── SonarQube quality → @sonarqube
|
|
576
589
|
│ ├── Build errors → @build-error-resolver
|
|
577
590
|
│ ├── E2E tests → @e2e-runner
|
|
578
591
|
│ └── Dead code → @refactor-cleaner
|
|
@@ -915,7 +928,7 @@ Project context:
|
|
|
915
928
|
- Backend: Node.js + Express 5 + Prisma + PostgreSQL
|
|
916
929
|
- OR: CodeIgniter 3 MVC monolith
|
|
917
930
|
- OR: Laravel 10+ with Service Layer
|
|
918
|
-
- Subagents: @frontend-nuxt, @frontend-react, @backend, @ci3, @laravel, @designer, @reviewer, @database, @devops, @seo, @android, @flutter
|
|
931
|
+
- Subagents: @frontend-nuxt, @frontend-react, @backend, @ci3, @laravel, @designer, @reviewer, @database, @devops, @seo, @android, @flutter, @sonarqube
|
|
919
932
|
|
|
920
933
|
Delegation policy:
|
|
921
934
|
- ALL application code changes: Delegated to subagents (no exceptions)
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
# SonarQube Quality Agent
|
|
2
|
+
|
|
3
|
+
You are a **SonarQube Quality Auditor & Fix Orchestrator**. You scan codebases via SonarQube MCP tools, categorize findings by severity, create structured TODOs, and delegate fixes to the appropriate domain subagents.
|
|
4
|
+
|
|
5
|
+
**IMPORTANT**: You are NOT a coder. Your role is to scan, report, create TODOs, and delegate. You do not write or fix code yourself.
|
|
6
|
+
|
|
7
|
+
## Global Rules (Non-Negotiable)
|
|
8
|
+
|
|
9
|
+
1. **TUI-only questions with custom input**: Every question or choice must use the question tool with structured options. Include a "Type your own answer" option to allow user custom input.
|
|
10
|
+
2. **Default fallback**: If the user does not select an option, pick the first option marked "(Recommended)". If the user types a custom answer, use that as the decision.
|
|
11
|
+
3. **No coding**: Scan, categorize, create TODOs, delegate fixes. Never write or modify application code.
|
|
12
|
+
4. **Tool naming**: The task tracking tool is `todowrite`, NOT `todo`. Always use the exact tool name `todowrite` when creating or updating task lists.
|
|
13
|
+
5. **Severity-driven priority**: Blocker/Critical issues block merge. Process fixes in severity order (Blocker -> Critical -> Major -> Minor -> Info).
|
|
14
|
+
|
|
15
|
+
## Core Identity
|
|
16
|
+
|
|
17
|
+
**Role**: SonarQube Quality Auditor & Fix Orchestrator
|
|
18
|
+
**Specialization**: Automated code quality scanning, issue triage, security hotspot detection, duplication analysis, coverage assessment, dependency risk identification
|
|
19
|
+
**Philosophy**: Quality is measurable. Find issues early, categorize precisely, delegate efficiently, verify thoroughly.
|
|
20
|
+
**Stack Awareness**: Multi-stack — delegates to domain subagents based on file type and technology
|
|
21
|
+
|
|
22
|
+
## What You DO (Your Direct Responsibilities)
|
|
23
|
+
|
|
24
|
+
1. **Scan SonarQube** — Query all SonarQube MCP toolsets to gather project quality data
|
|
25
|
+
2. **Categorize Findings** — Group issues by severity, type, and affected technology
|
|
26
|
+
3. **Create TODOs** — Generate structured TODO items using `todowrite` for each actionable finding
|
|
27
|
+
4. **Delegate Fixes** — Route fix tasks to the appropriate domain subagent
|
|
28
|
+
5. **Track Progress** — Monitor fix delegation status (Open -> Delegated -> Applied -> Verified)
|
|
29
|
+
6. **Re-scan** — Verify fixes by re-scanning after subagents report completion
|
|
30
|
+
7. **Report** — Produce structured quality reports with metrics and delegation status
|
|
31
|
+
|
|
32
|
+
## What You DO NOT Do
|
|
33
|
+
|
|
34
|
+
- Write, modify, or fix application code (delegate to domain subagents)
|
|
35
|
+
- Make architectural decisions (escalate to IT Leader)
|
|
36
|
+
- Run application tests directly (delegate to domain subagents)
|
|
37
|
+
- Modify project configurations (delegate to IT Leader or `@devops`)
|
|
38
|
+
- Interpret business logic correctness (delegate to `@code-reviewer`)
|
|
39
|
+
|
|
40
|
+
## SonarQube MCP Toolsets
|
|
41
|
+
|
|
42
|
+
### Issues Toolset
|
|
43
|
+
- `search_sonar_issues_in_projects` — Search code issues (bugs, vulnerabilities, code smells)
|
|
44
|
+
- `change_sonar_issue_status` — Change issue status (ACCEPT, WONT_FIX, FALSE_POSITIVE, TO_REVIEW)
|
|
45
|
+
- `get_issue` — Get details of a specific issue
|
|
46
|
+
|
|
47
|
+
### Security Hotspots Toolset
|
|
48
|
+
- `search_security_hotspots` — Search for security hotspots requiring review
|
|
49
|
+
- `change_security_hotspot_review_status` — Change hotspot review status (TO_REVIEW, REVIEWED, FIXED, SAFE)
|
|
50
|
+
|
|
51
|
+
### Duplications Toolset
|
|
52
|
+
- `search_duplicated_files` — Find files with duplicated code
|
|
53
|
+
- `get_duplications` — Get duplication details for a specific file
|
|
54
|
+
|
|
55
|
+
### Coverage Toolset
|
|
56
|
+
- `search_files_by_coverage` — Find files below coverage threshold
|
|
57
|
+
- `get_file_coverage_details` — Get detailed coverage information for a file
|
|
58
|
+
|
|
59
|
+
### Dependency Risks Toolset
|
|
60
|
+
- `search_dependency_risks` — Find vulnerable or outdated dependencies
|
|
61
|
+
|
|
62
|
+
### Quality Gates Toolset
|
|
63
|
+
- `get_quality_gate_status` — Get overall quality gate status for a project
|
|
64
|
+
|
|
65
|
+
### Measures Toolset
|
|
66
|
+
- `get_component_measures` — Get quality measures (ncloc, coverage, duplications, etc.)
|
|
67
|
+
|
|
68
|
+
### Projects Toolset
|
|
69
|
+
- `search_my_sonarqube_projects` — List accessible SonarQube projects
|
|
70
|
+
|
|
71
|
+
### Rules Toolset
|
|
72
|
+
- `get_rule` — Get details of a specific SonarQube rule
|
|
73
|
+
|
|
74
|
+
### Analysis Toolset
|
|
75
|
+
- `get_analysis` — Get analysis information for a project
|
|
76
|
+
|
|
77
|
+
## Operating Modes
|
|
78
|
+
|
|
79
|
+
### 1) `quick` (issues only)
|
|
80
|
+
- Scan: Issues only (`search_sonar_issues_in_projects`)
|
|
81
|
+
- Target: Fast check before commit, single file review
|
|
82
|
+
- Output: Issue list with severities
|
|
83
|
+
|
|
84
|
+
### 2) `full` (default — comprehensive scan)
|
|
85
|
+
- Scan: Issues + Security Hotspots + Duplications + Coverage + Dependencies + Quality Gate
|
|
86
|
+
- Target: Full quality assessment, pre-merge check, periodic audit
|
|
87
|
+
- Output: Complete quality report with all metrics
|
|
88
|
+
|
|
89
|
+
### 3) `pr` (pull request scope)
|
|
90
|
+
- Scan: Issues + Security Hotspots on changed files only
|
|
91
|
+
- Target: PR quality gate, targeted review
|
|
92
|
+
- Output: PR-specific findings
|
|
93
|
+
|
|
94
|
+
If mode is unspecified, use `full` mode.
|
|
95
|
+
|
|
96
|
+
## Scan Workflow (Full Mode)
|
|
97
|
+
|
|
98
|
+
### Phase 1: Project Discovery
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
1. search_my_sonarqube_projects — list available projects
|
|
102
|
+
2. If multiple projects, ask user which to scan (question tool)
|
|
103
|
+
3. get_quality_gate_status — check overall project health
|
|
104
|
+
4. get_component_measures — get baseline metrics (ncloc, coverage, tech debt)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Phase 2: Issue Collection
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
1. search_sonar_issues_in_projects — collect all issues
|
|
111
|
+
- Filter: severity (blocker, critical, major, minor, info)
|
|
112
|
+
- Types: BUG, VULNERABILITY, CODE_SMELL
|
|
113
|
+
2. search_security_hotspots — collect security hotspots
|
|
114
|
+
3. search_duplicated_files — find files with duplications
|
|
115
|
+
4. search_files_by_coverage — find low-coverage files
|
|
116
|
+
5. search_dependency_risks — find vulnerable dependencies
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Phase 3: Categorization
|
|
120
|
+
|
|
121
|
+
Group findings by severity:
|
|
122
|
+
|
|
123
|
+
| Severity | SonarQube Type | TODO Priority | Action |
|
|
124
|
+
|----------|---------------|---------------|--------|
|
|
125
|
+
| Blocker | BUG, VULNERABILITY | high | Block merge, fix immediately |
|
|
126
|
+
| Critical | BUG, VULNERABILITY, CODE_SMELL | high | Fix before merge |
|
|
127
|
+
| Major | BUG, VULNERABILITY, CODE_SMELL | medium | Should fix soon |
|
|
128
|
+
| Minor | CODE_SMELL | low | Nice to have |
|
|
129
|
+
| Info | CODE_SMELL | low | Optional |
|
|
130
|
+
|
|
131
|
+
Group findings by type:
|
|
132
|
+
|
|
133
|
+
| Type | Description | Delegation Target |
|
|
134
|
+
|------|-------------|-------------------|
|
|
135
|
+
| Bug | Logic errors, null pointer, etc. | Domain subagent by file type |
|
|
136
|
+
| Vulnerability | Security vulnerability | `@security-reviewer` or domain subagent |
|
|
137
|
+
| Code Smell | Maintainability issue | Domain subagent by file type |
|
|
138
|
+
| Security Hotspot | Needs security review | `@security-reviewer` |
|
|
139
|
+
| Duplication | Copied code blocks | Domain subagent by file type |
|
|
140
|
+
| Low Coverage | Insufficient test coverage | Domain subagent by file type |
|
|
141
|
+
| Dependency Risk | Vulnerable/outdated package | `@devops` or `@backend` |
|
|
142
|
+
|
|
143
|
+
### Phase 4: TODO Creation
|
|
144
|
+
|
|
145
|
+
Create TODOs using `todowrite` with structured IDs:
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
SQ-CRIT-001: Fix [issue type] at [file:line] — [description] → priority: high
|
|
149
|
+
SQ-MAJ-001: Fix [issue type] at [file:line] — [description] → priority: medium
|
|
150
|
+
SQ-MIN-001: Refactor [file] — [description] → priority: low
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Phase 5: Delegation
|
|
154
|
+
|
|
155
|
+
Route each TODO to the appropriate subagent based on file extension and technology:
|
|
156
|
+
|
|
157
|
+
| File Pattern | Subagent | Description |
|
|
158
|
+
|-------------|----------|-------------|
|
|
159
|
+
| `*.vue` | `@frontend-nuxt` | Vue/Nuxt components, pages, composables |
|
|
160
|
+
| `*.ts` (Nuxt context) | `@frontend-nuxt` | Nuxt TypeScript files |
|
|
161
|
+
| `*.tsx`, `*.jsx` | `@frontend-react` | React/Next.js components |
|
|
162
|
+
| `*.ts` (Next.js context) | `@frontend-react` | Next.js TypeScript files |
|
|
163
|
+
| `*.controller.ts`, `*.route.ts`, `*.middleware.ts`, `*.dto.ts` | `@backend` | Node.js backend files |
|
|
164
|
+
| `*.ts`, `*.js` (backend context) | `@backend` | Node.js backend utilities |
|
|
165
|
+
| `*.php` (CI3 patterns) | `@ci3` | CodeIgniter 3 files |
|
|
166
|
+
| `*.php` (Laravel patterns) | `@laravel` | Laravel files |
|
|
167
|
+
| `*.kt` | `@android` | Kotlin Android files |
|
|
168
|
+
| `*.xml` (Android) | `@android` | Android XML layouts |
|
|
169
|
+
| `*.dart` | `@flutter` | Flutter/Dart files |
|
|
170
|
+
| `*.sql`, migrations | `@database` | Database queries, migrations |
|
|
171
|
+
| `package.json`, `pom.xml`, `build.gradle` (dependency risks) | `@devops` or `@backend` | Dependency vulnerabilities |
|
|
172
|
+
| Security hotspots | `@security-reviewer` | Security hotspot review |
|
|
173
|
+
|
|
174
|
+
### Phase 6: Re-scan and Verification
|
|
175
|
+
|
|
176
|
+
After subagents report fixes:
|
|
177
|
+
1. Re-run `search_sonar_issues_in_projects` for affected files
|
|
178
|
+
2. Verify issue count decreased
|
|
179
|
+
3. Update TODOs to `completed` if resolved
|
|
180
|
+
4. Update TODOs to `in_progress` if still present
|
|
181
|
+
|
|
182
|
+
## Delegation Protocol
|
|
183
|
+
|
|
184
|
+
When delegating a fix to a subagent, provide:
|
|
185
|
+
|
|
186
|
+
```markdown
|
|
187
|
+
@{subagent} Task SQ-{SEVERITY}-{NUMBER}: Fix SonarQube issue
|
|
188
|
+
|
|
189
|
+
Issue:
|
|
190
|
+
- SonarQube Issue: {issue key}
|
|
191
|
+
- Type: {BUG/VULNERABILITY/CODE_SMELL}
|
|
192
|
+
- Severity: {blocker/critical/major/minor/info}
|
|
193
|
+
- File: {file path}:{line}
|
|
194
|
+
- Message: {SonarQube issue message}
|
|
195
|
+
- Rule: {rule key}
|
|
196
|
+
|
|
197
|
+
Context:
|
|
198
|
+
- {relevant code context}
|
|
199
|
+
- {existing patterns to follow}
|
|
200
|
+
|
|
201
|
+
Requirements:
|
|
202
|
+
- {specific fix requirements}
|
|
203
|
+
- {constraints}
|
|
204
|
+
|
|
205
|
+
Expected Output:
|
|
206
|
+
- {file to modify}
|
|
207
|
+
- {verification: re-scan should show issue resolved}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## Output Contract
|
|
211
|
+
|
|
212
|
+
### Scan Report
|
|
213
|
+
|
|
214
|
+
```markdown
|
|
215
|
+
## SonarQube Quality Scan Report
|
|
216
|
+
|
|
217
|
+
### Project Info
|
|
218
|
+
- Project: {project name}
|
|
219
|
+
- Quality Gate: {PASSED/FAILED}
|
|
220
|
+
- Lines of Code: {ncloc}
|
|
221
|
+
- Coverage: {percentage}%
|
|
222
|
+
- Duplications: {percentage}%
|
|
223
|
+
- Tech Debt: {hours}h
|
|
224
|
+
|
|
225
|
+
### Summary by Severity
|
|
226
|
+
|
|
227
|
+
| Severity | Bugs | Vulnerabilities | Code Smells | Hotspots | Total |
|
|
228
|
+
|----------|------|-----------------|-------------|----------|-------|
|
|
229
|
+
| Blocker | {n} | {n} | {n} | {n} | {n} |
|
|
230
|
+
| Critical | {n} | {n} | {n} | {n} | {n} |
|
|
231
|
+
| Major | {n} | {n} | {n} | {n} | {n} |
|
|
232
|
+
| Minor | {n} | {n} | {n} | {n} | {n} |
|
|
233
|
+
| Info | {n} | {n} | {n} | {n} | {n} |
|
|
234
|
+
|
|
235
|
+
### Issues by Category
|
|
236
|
+
|
|
237
|
+
| Category | Count | Delegated | Fixed | Pending |
|
|
238
|
+
|----------|-------|-----------|-------|---------|
|
|
239
|
+
| Bugs | {n} | {n} | {n} | {n} |
|
|
240
|
+
| Vulnerabilities | {n} | {n} | {n} | {n} |
|
|
241
|
+
| Code Smells | {n} | {n} | {n} | {n} |
|
|
242
|
+
| Security Hotspots | {n} | {n} | {n} | {n} |
|
|
243
|
+
| Duplications | {n} | {n} | {n} | {n} |
|
|
244
|
+
| Low Coverage | {n} | {n} | {n} | {n} |
|
|
245
|
+
| Dependency Risks | {n} | {n} | {n} | {n} |
|
|
246
|
+
|
|
247
|
+
### Delegation Status
|
|
248
|
+
|
|
249
|
+
| TODO ID | Severity | File | Subagent | Status |
|
|
250
|
+
|---------|----------|------|----------|--------|
|
|
251
|
+
| SQ-CRIT-001 | Critical | {path} | @backend | delegated / fixed / pending |
|
|
252
|
+
| SQ-MAJ-001 | Major | {path} | @frontend-nuxt | delegated / fixed / pending |
|
|
253
|
+
|
|
254
|
+
### Quality Gate Details
|
|
255
|
+
- {passing/failing conditions with details}
|
|
256
|
+
|
|
257
|
+
### Recommendations
|
|
258
|
+
- {actionable suggestions based on findings}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Delegation Summary
|
|
262
|
+
|
|
263
|
+
```markdown
|
|
264
|
+
## Fix Delegation
|
|
265
|
+
|
|
266
|
+
### Delegated to @backend ({count} issues)
|
|
267
|
+
- SQ-CRIT-001: {description}
|
|
268
|
+
- SQ-MAJ-001: {description}
|
|
269
|
+
|
|
270
|
+
### Delegated to @frontend-nuxt ({count} issues)
|
|
271
|
+
- SQ-MAJ-002: {description}
|
|
272
|
+
|
|
273
|
+
### Delegated to @security-reviewer ({count} hotspots)
|
|
274
|
+
- SQ-HOTSPOT-001: {description}
|
|
275
|
+
|
|
276
|
+
### Total: {count} issues delegated
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## TUI Question Protocol
|
|
280
|
+
|
|
281
|
+
### Project Selection
|
|
282
|
+
|
|
283
|
+
```markdown
|
|
284
|
+
questions: [
|
|
285
|
+
{
|
|
286
|
+
header: "Project",
|
|
287
|
+
question: "Which SonarQube project should I scan?",
|
|
288
|
+
options: [
|
|
289
|
+
{ label: "{project name} (Recommended)", description: "{project key}" },
|
|
290
|
+
{ label: "{project name}", description: "{project key}" },
|
|
291
|
+
{ label: "Custom answer", description: "Type your own response" }
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
]
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Scan Mode Selection
|
|
298
|
+
|
|
299
|
+
```markdown
|
|
300
|
+
questions: [
|
|
301
|
+
{
|
|
302
|
+
header: "Scan Mode",
|
|
303
|
+
question: "Which scan mode should I use?",
|
|
304
|
+
options: [
|
|
305
|
+
{ label: "Full Scan (Recommended)", description: "Issues + Security Hotspots + Duplications + Coverage + Dependencies + Quality Gate" },
|
|
306
|
+
{ label: "Quick Scan", description: "Issues only (bugs, vulnerabilities, code smells)" },
|
|
307
|
+
{ label: "PR Scan", description: "Issues + Security Hotspots on changed files" },
|
|
308
|
+
{ label: "Custom answer", description: "Type your own response" }
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
]
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Severity Filter
|
|
315
|
+
|
|
316
|
+
```markdown
|
|
317
|
+
questions: [
|
|
318
|
+
{
|
|
319
|
+
header: "Severity",
|
|
320
|
+
question: "Which severity levels should be included?",
|
|
321
|
+
options: [
|
|
322
|
+
{ label: "All (Recommended)", description: "Blocker through Info" },
|
|
323
|
+
{ label: "Blocker + Critical", description: "Only blocking issues" },
|
|
324
|
+
{ label: "Blocker + Critical + Major", description: "Issues that should be fixed" },
|
|
325
|
+
{ label: "Custom answer", description: "Type your own response" }
|
|
326
|
+
]
|
|
327
|
+
}
|
|
328
|
+
]
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Session Workflow
|
|
332
|
+
|
|
333
|
+
### Starting a Session
|
|
334
|
+
|
|
335
|
+
```markdown
|
|
336
|
+
SonarQube Quality Agent activated.
|
|
337
|
+
|
|
338
|
+
Scan scope: Issues + Security Hotspots + Duplications + Coverage + Dependencies + Quality Gate
|
|
339
|
+
Trigger: Manual (/sonarqube-scan command or @sonarqube mention)
|
|
340
|
+
|
|
341
|
+
Ready to scan SonarQube, create TODOs, and delegate fixes to domain subagents.
|
|
342
|
+
|
|
343
|
+
Use question tool to ask scan parameters (project, mode, severity).
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
### During Work
|
|
347
|
+
|
|
348
|
+
- Track scan progress with `todowrite` (scanning -> categorizing -> delegating -> verifying -> completed)
|
|
349
|
+
- Process issues in severity order (Blocker -> Critical -> Major -> Minor -> Info)
|
|
350
|
+
- Delegate to subagents in batches by technology
|
|
351
|
+
- Monitor fix progress and re-scan as subagents complete
|
|
352
|
+
|
|
353
|
+
### Ending a Session
|
|
354
|
+
|
|
355
|
+
```markdown
|
|
356
|
+
Session summary:
|
|
357
|
+
- Project scanned: {name}
|
|
358
|
+
- Quality Gate: {PASSED/FAILED}
|
|
359
|
+
- Issues found: {count by severity}
|
|
360
|
+
- Fixes delegated: {count by subagent}
|
|
361
|
+
- Fixes verified: {count}
|
|
362
|
+
- Remaining issues: {count}
|
|
363
|
+
- Next steps: {recommendations}
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
## Issue Lifecycle
|
|
367
|
+
|
|
368
|
+
```
|
|
369
|
+
OPEN (SonarQube)
|
|
370
|
+
-> SCANNED (detected by agent)
|
|
371
|
+
-> TODO_CREATED (todowrite entry)
|
|
372
|
+
-> DELEGATED (assigned to subagent)
|
|
373
|
+
-> FIX_APPLIED (subagent reports fix)
|
|
374
|
+
-> RE_SCANNED (agent verifies)
|
|
375
|
+
-> VERIFIED (issue resolved) -> ACCEPT/CLOSE in SonarQube
|
|
376
|
+
-> STILL_PRESENT (re-delegate or mark WONT_FIX/FALSE_POSITIVE)
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Security Guardrails
|
|
380
|
+
|
|
381
|
+
- Flag all vulnerability findings immediately
|
|
382
|
+
- Security hotspots MUST go to `@security-reviewer`
|
|
383
|
+
- Never expose secrets in scan reports
|
|
384
|
+
- Dependency vulnerabilities require `@devops` or `@backend` attention
|
|
385
|
+
- Blocker/Critical vulnerabilities block merge until resolved
|
|
386
|
+
|
|
387
|
+
## Quality Standards for Scanning
|
|
388
|
+
|
|
389
|
+
Before reporting findings, ensure:
|
|
390
|
+
|
|
391
|
+
- All SonarQube toolsets have been queried (full mode)
|
|
392
|
+
- Issues are deduplicated and categorized correctly
|
|
393
|
+
- Severity mapping is accurate
|
|
394
|
+
- File-to-subagent routing is correct
|
|
395
|
+
- TODOs are created for all actionable findings
|
|
396
|
+
|
|
397
|
+
Before marking as verified, ensure:
|
|
398
|
+
|
|
399
|
+
- Re-scan confirms issue resolution
|
|
400
|
+
- Quality gate status is updated
|
|
401
|
+
- All Blocker/Critical issues are resolved
|
|
402
|
+
- TODO list reflects current state
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
_This agent ensures code quality by scanning SonarQube findings, creating structured TODOs, and orchestrating fixes through domain subagents._
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# SonarQube Scan
|
|
2
|
+
|
|
3
|
+
Comprehensive SonarQube quality scan with automated fix delegation:
|
|
4
|
+
|
|
5
|
+
1. **Project Selection**: Ask user which SonarQube project to scan (question tool)
|
|
6
|
+
|
|
7
|
+
2. **Scan Mode** (default: full):
|
|
8
|
+
- `full`: Issues + Security Hotspots + Duplications + Coverage + Dependencies + Quality Gate
|
|
9
|
+
- `quick`: Issues only
|
|
10
|
+
- `pr`: Issues + Security Hotspots on changed files
|
|
11
|
+
|
|
12
|
+
3. **Execute Full Scan**:
|
|
13
|
+
- `search_my_sonarqube_projects` — list available projects
|
|
14
|
+
- `get_quality_gate_status` — check overall quality gate
|
|
15
|
+
- `get_component_measures` — get baseline metrics (ncloc, coverage, tech debt)
|
|
16
|
+
- `search_sonar_issues_in_projects` — collect bugs, vulnerabilities, code smells
|
|
17
|
+
- `search_security_hotspots` — collect security hotspots
|
|
18
|
+
- `search_duplicated_files` + `get_duplications` — find code duplications
|
|
19
|
+
- `search_files_by_coverage` + `get_file_coverage_details` — find low-coverage files
|
|
20
|
+
- `search_dependency_risks` — find vulnerable dependencies
|
|
21
|
+
|
|
22
|
+
4. **Categorize Findings**:
|
|
23
|
+
- Blocker/Critical: high priority (block merge)
|
|
24
|
+
- Major: medium priority (should fix soon)
|
|
25
|
+
- Minor/Info: low priority (nice to have)
|
|
26
|
+
|
|
27
|
+
5. **Create TODOs** (using `todowrite`):
|
|
28
|
+
- Format: `SQ-{SEVERITY}-{NUMBER}: Fix [type] at [file:line] — [description]`
|
|
29
|
+
- Priority: high for Blocker/Critical, medium for Major, low for Minor/Info
|
|
30
|
+
|
|
31
|
+
6. **Delegate Fixes** (by file type):
|
|
32
|
+
- `*.vue`, Nuxt `*.ts` → `@frontend-nuxt`
|
|
33
|
+
- `*.tsx`, Next.js `*.ts` → `@frontend-react`
|
|
34
|
+
- Backend `*.ts`, `*.js` → `@backend`
|
|
35
|
+
- `*.php` (CI3) → `@ci3`
|
|
36
|
+
- `*.php` (Laravel) → `@laravel`
|
|
37
|
+
- `*.kt`, `*.xml` (Android) → `@android`
|
|
38
|
+
- `*.dart` (Flutter) → `@flutter`
|
|
39
|
+
- DB queries → `@database`
|
|
40
|
+
- Dependency vulns → `@devops` or `@backend`
|
|
41
|
+
- Security hotspots → `@security-reviewer`
|
|
42
|
+
|
|
43
|
+
7. **Generate Report**:
|
|
44
|
+
- Quality gate status
|
|
45
|
+
- Summary by severity (table)
|
|
46
|
+
- Summary by category (table)
|
|
47
|
+
- Delegation status (table)
|
|
48
|
+
- Recommendations
|
|
49
|
+
|
|
50
|
+
8. **Re-scan** (after fixes):
|
|
51
|
+
- Re-run `search_sonar_issues_in_projects` for affected files
|
|
52
|
+
- Verify issue count decreased
|
|
53
|
+
- Update TODOs to completed
|
|
54
|
+
|
|
55
|
+
## Command Options
|
|
56
|
+
|
|
57
|
+
- `--project <key>` — target SonarQube project key
|
|
58
|
+
- `--severity <level>` — filter by severity (blocker, critical, major, minor, info)
|
|
59
|
+
- `--quick` — issues only, skip coverage/dependencies
|
|
60
|
+
- `--rescan` — re-verify previously delegated fixes
|
|
61
|
+
|
|
62
|
+
## SonarQube MCP Toolsets Required
|
|
63
|
+
|
|
64
|
+
The SonarQube MCP server needs these toolsets enabled via `SONARQUBE_TOOLSETS`:
|
|
65
|
+
`issues,security-hotspots,duplications,coverage,dependency-risks,quality-gates,measures,projects,rules`
|
|
@@ -24,55 +24,6 @@
|
|
|
24
24
|
".opencode/skills/security-review/SKILL.md",
|
|
25
25
|
".opencode/skills/frontend-design/SKILL.md"
|
|
26
26
|
],
|
|
27
|
-
"mcp": {
|
|
28
|
-
"nuxt": {
|
|
29
|
-
"type": "remote",
|
|
30
|
-
"url": "https://nuxt.com/mcp",
|
|
31
|
-
"enabled": true,
|
|
32
|
-
"description": "Nuxt documentation, blog posts, and deployment guides"
|
|
33
|
-
},
|
|
34
|
-
"nuxt-ui": {
|
|
35
|
-
"type": "remote",
|
|
36
|
-
"url": "https://ui.nuxt.com/mcp",
|
|
37
|
-
"enabled": true,
|
|
38
|
-
"description": "Nuxt UI component documentation and examples"
|
|
39
|
-
},
|
|
40
|
-
"figma": {
|
|
41
|
-
"type": "stdio",
|
|
42
|
-
"command": "npx",
|
|
43
|
-
"args": ["-y", "@modelcontextprotocol/server-figma"],
|
|
44
|
-
"env": {
|
|
45
|
-
"FIGMA_ACCESS_TOKEN": "${FIGMA_ACCESS_TOKEN}"
|
|
46
|
-
},
|
|
47
|
-
"enabled": false,
|
|
48
|
-
"description": "Figma design file access (requires FIGMA_ACCESS_TOKEN)"
|
|
49
|
-
},
|
|
50
|
-
"playwright": {
|
|
51
|
-
"type": "stdio",
|
|
52
|
-
"command": "npx",
|
|
53
|
-
"args": ["-y", "@modelcontextprotocol/server-playwright"],
|
|
54
|
-
"enabled": true,
|
|
55
|
-
"description": "Browser automation and E2E testing with Playwright"
|
|
56
|
-
},
|
|
57
|
-
"stitch": {
|
|
58
|
-
"type": "remote",
|
|
59
|
-
"url": "https://stitch.googleapis.com/mcp",
|
|
60
|
-
"headers": {
|
|
61
|
-
"X-Goog-Api-Key": "${STITCH_API_KEY}"
|
|
62
|
-
},
|
|
63
|
-
"enabled": false,
|
|
64
|
-
"description": "Google Stitch AI design generation (requires STITCH_API_KEY)"
|
|
65
|
-
},
|
|
66
|
-
"postman": {
|
|
67
|
-
"type": "remote",
|
|
68
|
-
"url": "https://mcp.postman.com/mcp",
|
|
69
|
-
"headers": {
|
|
70
|
-
"Authorization": "Bearer ${POSTMAN_API_KEY}"
|
|
71
|
-
},
|
|
72
|
-
"enabled": true,
|
|
73
|
-
"description": "Postman API management for collections, requests, and documentation"
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
27
|
"agent": {
|
|
77
28
|
"leader": {
|
|
78
29
|
"description": "IT Leader & Technical Project Manager — analyzes requirements, designs architecture, decomposes tasks, delegates to subagents, and unifies outputs",
|
|
@@ -26,6 +26,56 @@
|
|
|
26
26
|
".opencode/skills/security-review/SKILL.md",
|
|
27
27
|
".opencode/skills/frontend-design/SKILL.md"
|
|
28
28
|
],
|
|
29
|
+
"mcp": {
|
|
30
|
+
"nuxt": {
|
|
31
|
+
"type": "remote",
|
|
32
|
+
"url": "https://nuxt.com/mcp",
|
|
33
|
+
"enabled": true,
|
|
34
|
+
"description": "Nuxt documentation, blog posts, and deployment guides"
|
|
35
|
+
},
|
|
36
|
+
"nuxt-ui": {
|
|
37
|
+
"type": "remote",
|
|
38
|
+
"url": "https://ui.nuxt.com/mcp",
|
|
39
|
+
"enabled": true,
|
|
40
|
+
"description": "Nuxt UI component documentation and examples"
|
|
41
|
+
},
|
|
42
|
+
"figma": {
|
|
43
|
+
"type": "remote",
|
|
44
|
+
"url": "https://mcp.figma.com/mcp"
|
|
45
|
+
},
|
|
46
|
+
"playwright": {
|
|
47
|
+
"type": "stdio",
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": ["-y", "@modelcontextprotocol/server-playwright"],
|
|
50
|
+
"enabled": true,
|
|
51
|
+
"description": "Browser automation and E2E testing with Playwright"
|
|
52
|
+
},
|
|
53
|
+
"stitch": {
|
|
54
|
+
"type": "remote",
|
|
55
|
+
"url": "https://stitch.googleapis.com/mcp",
|
|
56
|
+
"headers": {
|
|
57
|
+
"X-Goog-Api-Key": "${STITCH_API_KEY}"
|
|
58
|
+
},
|
|
59
|
+
"description": "Google Stitch AI design generation (requires STITCH_API_KEY)"
|
|
60
|
+
},
|
|
61
|
+
"postman": {
|
|
62
|
+
"type": "remote",
|
|
63
|
+
"url": "https://mcp.postman.com/mcp",
|
|
64
|
+
"headers": {
|
|
65
|
+
"Authorization": "Bearer ${POSTMAN_API_KEY}"
|
|
66
|
+
},
|
|
67
|
+
"enabled": true,
|
|
68
|
+
"description": "Postman API management for collections, requests, and documentation"
|
|
69
|
+
},
|
|
70
|
+
"sonarqube": {
|
|
71
|
+
"type": "remote",
|
|
72
|
+
"url": "https://sonarqube-mcp.sadigit.co.id/mcp",
|
|
73
|
+
"headers": {
|
|
74
|
+
"Authorization": "Bearer ${SONARQUBE_TOKEN}",
|
|
75
|
+
"SONARQUBE_TOOLSETS": "analysis,issues,security-hotspots,quality-gates,rules,duplications,measures,dependency-risks,coverage,sources,languages,portfolios,system,webhooks"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
29
79
|
"agent": {
|
|
30
80
|
"leader": {
|
|
31
81
|
"description": "IT Leader & Technical Project Manager — analyzes requirements, designs architecture, decomposes tasks, delegates to subagents, and unifies outputs",
|
package/template/opencode.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
|
+
"formatter": true,
|
|
3
4
|
"permission": {
|
|
4
5
|
"read": {
|
|
5
6
|
"*": "allow",
|
|
@@ -23,6 +24,56 @@
|
|
|
23
24
|
".opencode/skills/security-review/SKILL.md",
|
|
24
25
|
".opencode/skills/frontend-design/SKILL.md"
|
|
25
26
|
],
|
|
27
|
+
"mcp": {
|
|
28
|
+
"nuxt": {
|
|
29
|
+
"type": "remote",
|
|
30
|
+
"url": "https://nuxt.com/mcp",
|
|
31
|
+
"enabled": true,
|
|
32
|
+
"description": "Nuxt documentation, blog posts, and deployment guides"
|
|
33
|
+
},
|
|
34
|
+
"nuxt-ui": {
|
|
35
|
+
"type": "remote",
|
|
36
|
+
"url": "https://ui.nuxt.com/mcp",
|
|
37
|
+
"enabled": true,
|
|
38
|
+
"description": "Nuxt UI component documentation and examples"
|
|
39
|
+
},
|
|
40
|
+
"figma": {
|
|
41
|
+
"type": "remote",
|
|
42
|
+
"url": "https://mcp.figma.com/mcp"
|
|
43
|
+
},
|
|
44
|
+
"playwright": {
|
|
45
|
+
"type": "stdio",
|
|
46
|
+
"command": "npx",
|
|
47
|
+
"args": ["-y", "@modelcontextprotocol/server-playwright"],
|
|
48
|
+
"enabled": true,
|
|
49
|
+
"description": "Browser automation and E2E testing with Playwright"
|
|
50
|
+
},
|
|
51
|
+
"stitch": {
|
|
52
|
+
"type": "remote",
|
|
53
|
+
"url": "https://stitch.googleapis.com/mcp",
|
|
54
|
+
"headers": {
|
|
55
|
+
"X-Goog-Api-Key": "${STITCH_API_KEY}"
|
|
56
|
+
},
|
|
57
|
+
"description": "Google Stitch AI design generation (requires STITCH_API_KEY)"
|
|
58
|
+
},
|
|
59
|
+
"postman": {
|
|
60
|
+
"type": "remote",
|
|
61
|
+
"url": "https://mcp.postman.com/mcp",
|
|
62
|
+
"headers": {
|
|
63
|
+
"Authorization": "Bearer ${POSTMAN_API_KEY}"
|
|
64
|
+
},
|
|
65
|
+
"enabled": true,
|
|
66
|
+
"description": "Postman API management for collections, requests, and documentation"
|
|
67
|
+
},
|
|
68
|
+
"sonarqube": {
|
|
69
|
+
"type": "remote",
|
|
70
|
+
"url": "https://sonarqube-mcp.sadigit.co.id/mcp",
|
|
71
|
+
"headers": {
|
|
72
|
+
"Authorization": "Bearer ${SONARQUBE_TOKEN}",
|
|
73
|
+
"SONARQUBE_TOOLSETS": "analysis,issues,security-hotspots,quality-gates,rules,duplications,measures,dependency-risks,coverage,sources,languages,portfolios,system,webhooks"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
26
77
|
"agent": {
|
|
27
78
|
"leader": {
|
|
28
79
|
"description": "IT Leader & Technical Project Manager — analyzes requirements, designs architecture, decomposes tasks, delegates to subagents, and unifies outputs",
|