specweave 0.23.2 → 0.23.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 (106) hide show
  1. package/CLAUDE.md +367 -0
  2. package/dist/plugins/specweave/lib/utils/fs-native.d.ts +133 -0
  3. package/dist/plugins/specweave/lib/utils/fs-native.d.ts.map +1 -0
  4. package/dist/plugins/specweave/lib/utils/fs-native.js +224 -0
  5. package/dist/plugins/specweave/lib/utils/fs-native.js.map +1 -0
  6. package/dist/plugins/specweave-github/lib/github-client-v2.js +1 -1
  7. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
  8. package/dist/plugins/specweave-github/lib/github-feature-sync.d.ts.map +1 -1
  9. package/dist/plugins/specweave-github/lib/github-feature-sync.js +52 -20
  10. package/dist/plugins/specweave-github/lib/github-feature-sync.js.map +1 -1
  11. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
  12. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +24 -0
  13. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
  14. package/dist/src/cli/helpers/init/initial-increment-generator.d.ts.map +1 -1
  15. package/dist/src/cli/helpers/init/initial-increment-generator.js +2 -1
  16. package/dist/src/cli/helpers/init/initial-increment-generator.js.map +1 -1
  17. package/dist/src/core/ac-test-validator-cli.d.ts +16 -0
  18. package/dist/src/core/ac-test-validator-cli.d.ts.map +1 -0
  19. package/dist/src/core/ac-test-validator-cli.js +118 -0
  20. package/dist/src/core/ac-test-validator-cli.js.map +1 -0
  21. package/dist/src/core/ac-test-validator.d.ts +111 -0
  22. package/dist/src/core/ac-test-validator.d.ts.map +1 -0
  23. package/dist/src/core/ac-test-validator.js +292 -0
  24. package/dist/src/core/ac-test-validator.js.map +1 -0
  25. package/dist/src/core/increment/desync-detector.d.ts +142 -0
  26. package/dist/src/core/increment/desync-detector.d.ts.map +1 -0
  27. package/dist/src/core/increment/desync-detector.js +270 -0
  28. package/dist/src/core/increment/desync-detector.js.map +1 -0
  29. package/dist/src/core/increment/metadata-manager.d.ts +8 -4
  30. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  31. package/dist/src/core/increment/metadata-manager.js +45 -21
  32. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  33. package/dist/src/core/qa/qa-runner.js +9 -2
  34. package/dist/src/core/qa/qa-runner.js.map +1 -1
  35. package/dist/src/sync/sync-coordinator.d.ts +1 -1
  36. package/dist/src/sync/sync-coordinator.d.ts.map +1 -1
  37. package/dist/src/sync/sync-coordinator.js +40 -2
  38. package/dist/src/sync/sync-coordinator.js.map +1 -1
  39. package/dist/src/utils/fs-native.d.ts +133 -0
  40. package/dist/src/utils/fs-native.d.ts.map +1 -0
  41. package/dist/src/utils/fs-native.js +224 -0
  42. package/dist/src/utils/fs-native.js.map +1 -0
  43. package/package.json +1 -1
  44. package/plugins/specweave/.claude-plugin/plugin.json +12 -0
  45. package/plugins/specweave/agents/AGENTS-INDEX.md +216 -0
  46. package/plugins/specweave/agents/architect/AGENT.md +17 -0
  47. package/plugins/specweave/agents/code-standards-detective/AGENT.md +16 -0
  48. package/plugins/specweave/agents/docs-writer/AGENT.md +16 -0
  49. package/plugins/specweave/agents/increment-quality-judge-v2/AGENT.md +704 -0
  50. package/plugins/specweave/agents/infrastructure/AGENT.md +16 -0
  51. package/plugins/specweave/agents/performance/AGENT.md +16 -0
  52. package/plugins/specweave/agents/pm/AGENT.md +17 -0
  53. package/plugins/specweave/agents/qa-lead/AGENT.md +15 -0
  54. package/plugins/specweave/agents/reflective-reviewer/AGENT.md +16 -0
  55. package/plugins/specweave/agents/security/AGENT.md +16 -0
  56. package/plugins/specweave/agents/tdd-orchestrator/AGENT.md +16 -0
  57. package/plugins/specweave/agents/tech-lead/AGENT.md +16 -0
  58. package/plugins/specweave/agents/test-aware-planner/AGENT.md +16 -0
  59. package/plugins/specweave/agents/translator/AGENT.md +13 -0
  60. package/plugins/specweave/commands/specweave-done.md +14 -0
  61. package/plugins/specweave/commands/specweave-qa.md +11 -1
  62. package/plugins/specweave/commands/specweave-sync-status.md +356 -0
  63. package/plugins/specweave/commands/specweave-validate.md +10 -1
  64. package/plugins/specweave/hooks/pre-task-completion.sh +196 -0
  65. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +3 -3
  66. package/plugins/specweave/lib/hooks/git-diff-analyzer.ts +3 -3
  67. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +3 -2
  68. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +3 -2
  69. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +3 -3
  70. package/plugins/specweave/lib/hooks/prepare-reflection-context.ts +3 -3
  71. package/plugins/specweave/lib/hooks/reflection-config-loader.js +4 -4
  72. package/plugins/specweave/lib/hooks/reflection-config-loader.ts +4 -4
  73. package/plugins/specweave/lib/hooks/reflection-storage.js +9 -9
  74. package/plugins/specweave/lib/hooks/reflection-storage.ts +9 -9
  75. package/plugins/specweave/lib/hooks/sync-cache.js +9 -8
  76. package/plugins/specweave/lib/hooks/sync-living-docs.js +57 -6
  77. package/plugins/specweave/lib/hooks/sync-us-tasks.js +6 -6
  78. package/plugins/specweave/lib/hooks/translate-file.js +3 -2
  79. package/plugins/specweave/lib/hooks/translate-file.ts +3 -2
  80. package/plugins/specweave/lib/hooks/translate-living-docs.js +4 -3
  81. package/plugins/specweave/lib/hooks/translate-living-docs.ts +4 -3
  82. package/plugins/specweave/lib/hooks/update-tasks-md.js +3 -3
  83. package/plugins/specweave/lib/hooks/update-tasks-md.ts +3 -3
  84. package/plugins/specweave/lib/utils/fs-native.js +182 -0
  85. package/plugins/specweave/lib/utils/fs-native.ts +283 -0
  86. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.d.ts +8 -4
  87. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +45 -21
  88. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  89. package/plugins/specweave/skills/SKILLS-INDEX.md +26 -2
  90. package/plugins/specweave/skills/increment-planner/SKILL.md +2 -2
  91. package/plugins/specweave-ado/commands/specweave-ado-close-workitem.md +1 -1
  92. package/plugins/specweave-ado/commands/specweave-ado-create-workitem.md +1 -1
  93. package/plugins/specweave-ado/commands/specweave-ado-status.md +1 -1
  94. package/plugins/specweave-ado/commands/specweave-ado-sync.md +1 -1
  95. package/plugins/specweave-diagrams/agents/diagrams-architect/AGENT.md +1 -1
  96. package/plugins/specweave-diagrams/skills/diagrams-generator/SKILL.md +4 -4
  97. package/plugins/specweave-github/lib/github-client-v2.js +2 -1
  98. package/plugins/specweave-github/lib/github-client-v2.ts +1 -1
  99. package/plugins/specweave-github/lib/github-feature-sync.js +30 -17
  100. package/plugins/specweave-github/lib/github-feature-sync.ts +54 -24
  101. package/plugins/specweave-github/lib/user-story-issue-builder.js +24 -0
  102. package/plugins/specweave-github/lib/user-story-issue-builder.ts +33 -0
  103. package/plugins/specweave-mobile/README.md +1 -1
  104. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +72 -0
  105. package/src/templates/CLAUDE.md.template +13 -0
  106. package/plugins/specweave/skills/task-builder/README.md +0 -84
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Native Node.js fs API Helpers
3
+ *
4
+ * Drop-in replacements for fs-extra methods using only Node.js stdlib.
5
+ * All methods use native Node.js 20+ APIs with no external dependencies.
6
+ *
7
+ * Migration from fs-extra:
8
+ * - import fs from 'fs-extra' → import * as fs from './utils/fs-native.js'
9
+ * - All fs-extra methods work as drop-in replacements
10
+ *
11
+ * Benefits:
12
+ * - Zero bundle overhead (no npm packages)
13
+ * - Works in marketplace (no node_modules needed)
14
+ * - Faster startup (native APIs)
15
+ * - Better debugging (native stack traces)
16
+ */
17
+ import { promises as fsPromises, existsSync, mkdirSync, readFileSync, writeFileSync, statSync, readdirSync, rmSync, unlinkSync, copyFileSync } from 'fs';
18
+ import path from 'path';
19
+ /**
20
+ * Ensures that a directory exists. If the directory does not exist, it is created.
21
+ * @param dirPath - The directory path to ensure
22
+ */
23
+ export async function ensureDir(dirPath) {
24
+ if (!existsSync(dirPath)) {
25
+ await fsPromises.mkdir(dirPath, { recursive: true });
26
+ }
27
+ }
28
+ /**
29
+ * Synchronous version of ensureDir
30
+ */
31
+ export function ensureDirSync(dirPath) {
32
+ if (!existsSync(dirPath)) {
33
+ mkdirSync(dirPath, { recursive: true });
34
+ }
35
+ }
36
+ /**
37
+ * Alias for ensureDirSync (fs-extra compatibility)
38
+ */
39
+ export function mkdirpSync(dirPath) {
40
+ ensureDirSync(dirPath);
41
+ }
42
+ /**
43
+ * Check if a path exists
44
+ * @param filePath - The path to check
45
+ */
46
+ export async function pathExists(filePath) {
47
+ return existsSync(filePath);
48
+ }
49
+ /**
50
+ * Synchronous version of pathExists
51
+ */
52
+ export { existsSync };
53
+ /**
54
+ * Read a JSON file and parse it
55
+ * @param filePath - The JSON file path
56
+ */
57
+ export async function readJson(filePath) {
58
+ const content = await fsPromises.readFile(filePath, 'utf-8');
59
+ return JSON.parse(content);
60
+ }
61
+ /**
62
+ * Synchronous version of readJson
63
+ */
64
+ export function readJsonSync(filePath) {
65
+ const content = readFileSync(filePath, 'utf-8');
66
+ return JSON.parse(content);
67
+ }
68
+ /**
69
+ * Write a JSON file with formatting
70
+ * @param filePath - The JSON file path
71
+ * @param data - The data to write
72
+ * @param options - Options (spaces for indentation)
73
+ */
74
+ export async function writeJson(filePath, data, options) {
75
+ const spaces = options?.spaces ?? 2;
76
+ const content = JSON.stringify(data, null, spaces);
77
+ await fsPromises.writeFile(filePath, content, 'utf-8');
78
+ }
79
+ /**
80
+ * Synchronous version of writeJson
81
+ */
82
+ export function writeJsonSync(filePath, data, options) {
83
+ const spaces = options?.spaces ?? 2;
84
+ const content = JSON.stringify(data, null, spaces);
85
+ writeFileSync(filePath, content, 'utf-8');
86
+ }
87
+ /**
88
+ * Remove a file or directory (recursively)
89
+ * @param targetPath - The path to remove
90
+ */
91
+ export async function remove(targetPath) {
92
+ if (existsSync(targetPath)) {
93
+ await fsPromises.rm(targetPath, { recursive: true, force: true });
94
+ }
95
+ }
96
+ /**
97
+ * Synchronous version of remove
98
+ */
99
+ export function removeSync(targetPath) {
100
+ if (existsSync(targetPath)) {
101
+ rmSync(targetPath, { recursive: true, force: true });
102
+ }
103
+ }
104
+ /**
105
+ * Copy a file or directory
106
+ * @param src - Source path
107
+ * @param dest - Destination path
108
+ * @param options - Copy options
109
+ */
110
+ export async function copy(src, dest, options) {
111
+ const srcStat = await fsPromises.stat(src);
112
+ if (srcStat.isFile()) {
113
+ // Copy single file
114
+ await fsPromises.mkdir(path.dirname(dest), { recursive: true });
115
+ await fsPromises.copyFile(src, dest);
116
+ }
117
+ else if (srcStat.isDirectory()) {
118
+ // Copy directory recursively
119
+ await fsPromises.mkdir(dest, { recursive: true });
120
+ const entries = await fsPromises.readdir(src, { withFileTypes: true });
121
+ for (const entry of entries) {
122
+ const srcPath = path.join(src, entry.name);
123
+ const destPath = path.join(dest, entry.name);
124
+ // Apply filter if provided
125
+ if (options?.filter && !options.filter(srcPath)) {
126
+ continue;
127
+ }
128
+ if (entry.isDirectory()) {
129
+ await copy(srcPath, destPath, options);
130
+ }
131
+ else {
132
+ await fsPromises.copyFile(srcPath, destPath);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ /**
138
+ * Synchronous version of copy
139
+ */
140
+ export function copySync(src, dest, options) {
141
+ const srcStat = statSync(src);
142
+ if (srcStat.isFile()) {
143
+ // Copy single file
144
+ mkdirSync(path.dirname(dest), { recursive: true });
145
+ copyFileSync(src, dest);
146
+ }
147
+ else if (srcStat.isDirectory()) {
148
+ // Copy directory recursively
149
+ mkdirSync(dest, { recursive: true });
150
+ const entries = readdirSync(src, { withFileTypes: true });
151
+ for (const entry of entries) {
152
+ const srcPath = path.join(src, entry.name);
153
+ const destPath = path.join(dest, entry.name);
154
+ // Apply filter if provided
155
+ if (options?.filter && !options.filter(srcPath)) {
156
+ continue;
157
+ }
158
+ if (entry.isDirectory()) {
159
+ copySync(srcPath, destPath, options);
160
+ }
161
+ else {
162
+ copyFileSync(srcPath, destPath);
163
+ }
164
+ }
165
+ }
166
+ }
167
+ /**
168
+ * Ensure a file exists (create if it doesn't)
169
+ * @param filePath - The file path
170
+ */
171
+ export async function ensureFile(filePath) {
172
+ if (!existsSync(filePath)) {
173
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
174
+ await fsPromises.writeFile(filePath, '', 'utf-8');
175
+ }
176
+ }
177
+ /**
178
+ * Synchronous version of ensureFile
179
+ */
180
+ export function ensureFileSync(filePath) {
181
+ if (!existsSync(filePath)) {
182
+ mkdirSync(path.dirname(filePath), { recursive: true });
183
+ writeFileSync(filePath, '', 'utf-8');
184
+ }
185
+ }
186
+ // Re-export common fs/promises methods for convenience
187
+ export const { readFile, writeFile, appendFile, stat, readdir, access, unlink, rmdir, rename, chmod, } = fsPromises;
188
+ // Re-export common synchronous methods
189
+ export { readFileSync, writeFileSync, statSync, readdirSync, unlinkSync, mkdirSync, rmSync, };
190
+ // Default export for convenience
191
+ export default {
192
+ // Async methods
193
+ ensureDir,
194
+ pathExists,
195
+ readJson,
196
+ writeJson,
197
+ remove,
198
+ copy,
199
+ ensureFile,
200
+ readFile,
201
+ writeFile,
202
+ appendFile,
203
+ stat,
204
+ readdir,
205
+ access,
206
+ unlink,
207
+ // Sync methods
208
+ ensureDirSync,
209
+ mkdirpSync,
210
+ existsSync,
211
+ readJsonSync,
212
+ writeJsonSync,
213
+ removeSync,
214
+ copySync,
215
+ ensureFileSync,
216
+ readFileSync,
217
+ writeFileSync,
218
+ statSync,
219
+ readdirSync,
220
+ unlinkSync,
221
+ mkdirSync,
222
+ rmSync,
223
+ };
224
+ //# sourceMappingURL=fs-native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs-native.js","sourceRoot":"","sources":["../../../src/utils/fs-native.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specweave",
3
- "version": "0.23.2",
3
+ "version": "0.23.5",
4
4
  "description": "Spec-driven development framework for Claude Code. AI-native workflow with living documentation, intelligent agents, and multilingual support (9 languages). Enterprise-grade traceability with permanent specs and temporary increments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -20,6 +20,18 @@
20
20
  "living-docs"
21
21
  ],
22
22
  "hooks": {
23
+ "PreToolUse": [
24
+ {
25
+ "matcher": "TodoWrite",
26
+ "hooks": [
27
+ {
28
+ "type": "command",
29
+ "command": "${CLAUDE_PLUGIN_ROOT}/hooks/pre-task-completion.sh",
30
+ "timeout": 60
31
+ }
32
+ ]
33
+ }
34
+ ],
23
35
  "PostToolUse": [
24
36
  {
25
37
  "matcher": "TodoWrite",
@@ -0,0 +1,216 @@
1
+ # SpecWeave Agents Index
2
+
3
+ ## Quick Reference: How to Invoke Agents
4
+
5
+ All SpecWeave agents follow the naming pattern: `{plugin}:{directory}:{name-from-yaml}`
6
+
7
+ ### Core Planning & Design Agents
8
+
9
+ #### Product Manager (PM)
10
+ ```typescript
11
+ Task({
12
+ subagent_type: "specweave:pm:pm",
13
+ prompt: "Create product requirements for user dashboard feature"
14
+ });
15
+ ```
16
+ **Use for**: Product strategy, requirements gathering, user story creation, feature prioritization
17
+
18
+ #### Architect
19
+ ```typescript
20
+ Task({
21
+ subagent_type: "specweave:architect:architect",
22
+ prompt: "Design system architecture for user authentication"
23
+ });
24
+ ```
25
+ **Use for**: System architecture, technical specifications, ADRs, component designs, API contracts
26
+
27
+ #### Tech Lead
28
+ ```typescript
29
+ Task({
30
+ subagent_type: "specweave:tech-lead:tech-lead",
31
+ prompt: "Review code and suggest improvements"
32
+ });
33
+ ```
34
+ **Use for**: Code review, best practices, technical mentorship, implementation planning
35
+
36
+ ---
37
+
38
+ ### Quality & Testing Agents
39
+
40
+ #### QA Lead
41
+ ```typescript
42
+ Task({
43
+ subagent_type: "specweave:qa-lead:qa-lead",
44
+ prompt: "Create test strategy for permission gates feature"
45
+ });
46
+ ```
47
+ **Use for**: Test plans, test cases, E2E testing with Playwright, test automation, coverage analysis
48
+
49
+ #### Test-Aware Planner
50
+ ```typescript
51
+ Task({
52
+ subagent_type: "specweave:test-aware-planner:test-aware-planner",
53
+ prompt: "Generate tasks with embedded test plans"
54
+ });
55
+ ```
56
+ **Use for**: Task generation with BDD test plans, coverage targets, AC-test mapping
57
+
58
+ #### TDD Orchestrator
59
+ ```typescript
60
+ Task({
61
+ subagent_type: "specweave:tdd-orchestrator:tdd-orchestrator",
62
+ prompt: "Coordinate TDD workflow for feature implementation"
63
+ });
64
+ ```
65
+ **Use for**: Red-green-refactor discipline, multi-agent TDD coordination
66
+
67
+ ---
68
+
69
+ ### Code Quality & Standards Agents
70
+
71
+ #### Code Reviewer
72
+ ```typescript
73
+ Task({
74
+ subagent_type: "specweave:code-reviewer",
75
+ prompt: "Review recent changes for security and performance issues"
76
+ });
77
+ ```
78
+ **Use for**: Modern AI-powered code analysis, security scanning, performance optimization
79
+
80
+ #### Code Standards Detective
81
+ ```typescript
82
+ Task({
83
+ subagent_type: "specweave:code-standards-detective:code-standards-detective",
84
+ prompt: "Analyze codebase and generate coding standards documentation"
85
+ });
86
+ ```
87
+ **Use for**: Discovering naming conventions, import patterns, detecting anti-patterns
88
+
89
+ #### Security
90
+ ```typescript
91
+ Task({
92
+ subagent_type: "specweave:security:security",
93
+ prompt: "Perform security review of authentication implementation"
94
+ });
95
+ ```
96
+ **Use for**: Threat modeling, security architecture, OWASP Top 10, vulnerability assessment
97
+
98
+ ---
99
+
100
+ ### Documentation & Communication Agents
101
+
102
+ #### Docs Writer
103
+ ```typescript
104
+ Task({
105
+ subagent_type: "specweave:docs-writer:docs-writer",
106
+ prompt: "Create API documentation for REST endpoints"
107
+ });
108
+ ```
109
+ **Use for**: API docs, user guides, developer guides, README files, architecture documentation
110
+
111
+ #### Translator
112
+ ```typescript
113
+ Task({
114
+ subagent_type: "specweave:translator:AGENT",
115
+ prompt: "Translate documentation to Spanish"
116
+ });
117
+ ```
118
+ **Use for**: Batch translation projects, multi-file translation coordination
119
+
120
+ ---
121
+
122
+ ### Infrastructure & Performance Agents
123
+
124
+ #### Infrastructure
125
+ ```typescript
126
+ Task({
127
+ subagent_type: "specweave:infrastructure:infrastructure",
128
+ prompt: "Generate Terraform configurations for serverless deployment"
129
+ });
130
+ ```
131
+ **Use for**: Infrastructure-as-Code, AWS Lambda, Azure Functions, GCP Cloud Functions, Supabase
132
+
133
+ #### Performance
134
+ ```typescript
135
+ Task({
136
+ subagent_type: "specweave:performance:performance",
137
+ prompt: "Analyze and optimize database query performance"
138
+ });
139
+ ```
140
+ **Use for**: Performance optimization, profiling, benchmarking, scalability analysis
141
+
142
+ ---
143
+
144
+ ### Quality Assurance Agents
145
+
146
+ #### Increment Quality Judge v2
147
+ ```typescript
148
+ Task({
149
+ subagent_type: "specweave:increment-quality-judge-v2:increment-quality-judge-v2",
150
+ prompt: "Assess quality of increment specification and implementation"
151
+ });
152
+ ```
153
+ **Use for**: AI-powered quality assessment, risk scoring (BMAD), quality gate decisions
154
+
155
+ #### Reflective Reviewer
156
+ ```typescript
157
+ Task({
158
+ subagent_type: "specweave:reflective-reviewer:reflective-reviewer",
159
+ prompt: "Perform reflective review of implementation quality"
160
+ });
161
+ ```
162
+ **Use for**: Post-implementation review, learning from mistakes, improvement suggestions
163
+
164
+ ---
165
+
166
+ ## Naming Pattern Explanation
167
+
168
+ **Directory-based agents** (most common):
169
+ ```
170
+ Pattern: {plugin}:{directory}:{name-from-yaml}
171
+ Example: specweave:qa-lead:qa-lead
172
+
173
+ Structure:
174
+ plugins/specweave/agents/qa-lead/
175
+ └── AGENT.md (contains: name: qa-lead)
176
+ ```
177
+
178
+ **File-based agents** (legacy):
179
+ ```
180
+ Pattern: {plugin}:{filename}
181
+ Example: specweave:code-reviewer
182
+
183
+ Structure:
184
+ plugins/specweave/agents/
185
+ └── code-reviewer.md
186
+ ```
187
+
188
+ ## Finding Agent Types
189
+
190
+ ```bash
191
+ # List all available agents
192
+ ls -la plugins/specweave/agents/
193
+
194
+ # Check agent's YAML name field
195
+ head -5 plugins/specweave/agents/qa-lead/AGENT.md
196
+ # Output: name: qa-lead
197
+
198
+ # Construct full type: specweave:qa-lead:qa-lead
199
+ ```
200
+
201
+ ## Common Mistakes
202
+
203
+ ```typescript
204
+ // ❌ WRONG: Missing directory/name part
205
+ Task({ subagent_type: "specweave:qa-lead", ... });
206
+ // Error: Agent type 'specweave:qa-lead' not found
207
+
208
+ // ✅ CORRECT: Full pattern with directory and name
209
+ Task({ subagent_type: "specweave:qa-lead:qa-lead", ... });
210
+ ```
211
+
212
+ ## See Also
213
+
214
+ - **Agent Details**: Each agent's `AGENT.md` file contains full documentation
215
+ - **CLAUDE.md**: Section 15 - Skills vs Agents: Understanding the Distinction
216
+ - **Plugin Validation**: `scripts/validate-plugin-directories.sh`
@@ -8,6 +8,23 @@ cost_profile: planning
8
8
  fallback_behavior: strict
9
9
  ---
10
10
 
11
+ # Architect Agent
12
+
13
+ ## 🚀 How to Invoke This Agent
14
+
15
+ ```typescript
16
+ // CORRECT invocation
17
+ Task({
18
+ subagent_type: "specweave:architect:architect",
19
+ prompt: "Design system architecture for user authentication"
20
+ });
21
+
22
+ // Naming pattern: {plugin}:{directory}:{name-from-yaml}
23
+ // - plugin: specweave
24
+ // - directory: architect (folder name)
25
+ // - name: architect (from YAML frontmatter above)
26
+ ```
27
+
11
28
  # Architect Agent - System Architecture & Technical Design Expert
12
29
 
13
30
  You are an expert System Architect with 15+ years of experience designing scalable, maintainable systems across multiple domains (SaaS, e-commerce, fintech, healthcare).
@@ -8,6 +8,22 @@ cost_profile: research
8
8
  fallback_behavior: strict
9
9
  ---
10
10
 
11
+ # code-standards-detective Agent
12
+
13
+ ## 🚀 How to Invoke This Agent
14
+
15
+ ```typescript
16
+ // CORRECT invocation
17
+ Task({
18
+ subagent_type: "specweave:code-standards-detective:code-standards-detective",
19
+ prompt: "Your task description here"
20
+ });
21
+
22
+ // Naming pattern: {plugin}:{directory}:{name-from-yaml}
23
+ // - plugin: specweave
24
+ // - directory: code-standards-detective (folder name)
25
+ // - name: code-standards-detective (from YAML frontmatter above)
26
+ ```
11
27
  # Code Standards Detective Agent
12
28
 
13
29
  **Purpose**: Autonomously discover and document coding standards from existing codebases using statistical analysis and pattern detection.
@@ -8,6 +8,22 @@ cost_profile: hybrid
8
8
  fallback_behavior: auto
9
9
  ---
10
10
 
11
+ # docs-writer Agent
12
+
13
+ ## 🚀 How to Invoke This Agent
14
+
15
+ ```typescript
16
+ // CORRECT invocation
17
+ Task({
18
+ subagent_type: "specweave:docs-writer:docs-writer",
19
+ prompt: "Your task description here"
20
+ });
21
+
22
+ // Naming pattern: {plugin}:{directory}:{name-from-yaml}
23
+ // - plugin: specweave
24
+ // - directory: docs-writer (folder name)
25
+ // - name: docs-writer (from YAML frontmatter above)
26
+ ```
11
27
  # Docs Writer Agent - Technical Documentation Expert
12
28
 
13
29
  You are an expert technical writer with 8+ years of experience creating clear, comprehensive documentation for developers and end-users.