maestro-flow 0.5.3 → 0.5.31

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 (259) hide show
  1. package/.agents/skills/learn-follow/SKILL.md +114 -114
  2. package/.agents/skills/learn-investigate/SKILL.md +138 -139
  3. package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
  4. package/.agents/skills/maestro/SKILL.md +2 -10
  5. package/.agents/skills/maestro-amend/SKILL.md +152 -152
  6. package/.agents/skills/maestro-analyze/SKILL.md +201 -252
  7. package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
  8. package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
  9. package/.agents/skills/maestro-collab/SKILL.md +159 -159
  10. package/.agents/skills/maestro-companion/SKILL.md +517 -517
  11. package/.agents/skills/maestro-composer/SKILL.md +173 -164
  12. package/.agents/skills/maestro-execute/SKILL.md +169 -170
  13. package/.agents/skills/maestro-fork/SKILL.md +97 -96
  14. package/.agents/skills/maestro-grill/SKILL.md +161 -162
  15. package/.agents/skills/maestro-guard/SKILL.md +93 -92
  16. package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
  17. package/.agents/skills/maestro-init/SKILL.md +117 -118
  18. package/.agents/skills/maestro-merge/SKILL.md +73 -66
  19. package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
  20. package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
  21. package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
  22. package/.agents/skills/maestro-next/SKILL.md +241 -245
  23. package/.agents/skills/maestro-overlay/SKILL.md +176 -166
  24. package/.agents/skills/maestro-plan/SKILL.md +211 -197
  25. package/.agents/skills/maestro-player/SKILL.md +167 -167
  26. package/.agents/skills/maestro-quick/SKILL.md +69 -63
  27. package/.agents/skills/maestro-ralph/SKILL.md +2 -36
  28. package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -872
  29. package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
  30. package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
  31. package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
  32. package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
  33. package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
  34. package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
  35. package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
  36. package/.agents/skills/maestro-update/SKILL.md +109 -106
  37. package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
  38. package/.agents/skills/manage-harvest/SKILL.md +83 -81
  39. package/.agents/skills/manage-issue/SKILL.md +59 -60
  40. package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
  41. package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
  42. package/.agents/skills/manage-knowhow/SKILL.md +70 -66
  43. package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
  44. package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
  45. package/.agents/skills/manage-status/SKILL.md +52 -42
  46. package/.agents/skills/manage-wiki/SKILL.md +69 -58
  47. package/.agents/skills/odyssey-debug/SKILL.md +445 -459
  48. package/.agents/skills/odyssey-improve/SKILL.md +477 -491
  49. package/.agents/skills/odyssey-planex/SKILL.md +576 -587
  50. package/.agents/skills/odyssey-review-test-fix/SKILL.md +400 -413
  51. package/.agents/skills/odyssey-ui/SKILL.md +431 -448
  52. package/.agents/skills/quality-auto-test/SKILL.md +140 -123
  53. package/.agents/skills/quality-debug/SKILL.md +145 -106
  54. package/.agents/skills/quality-refactor/SKILL.md +91 -53
  55. package/.agents/skills/quality-retrospective/SKILL.md +109 -63
  56. package/.agents/skills/quality-review/SKILL.md +141 -114
  57. package/.agents/skills/quality-sync/SKILL.md +74 -38
  58. package/.agents/skills/quality-test/SKILL.md +133 -103
  59. package/.agents/skills/security-audit/SKILL.md +217 -166
  60. package/.agents/skills/spec-add/SKILL.md +66 -59
  61. package/.agents/skills/spec-load/SKILL.md +68 -68
  62. package/.agents/skills/spec-remove/SKILL.md +42 -42
  63. package/.agents/skills/spec-setup/SKILL.md +38 -41
  64. package/.agy/skills/learn-follow/SKILL.md +114 -114
  65. package/.agy/skills/learn-investigate/SKILL.md +138 -139
  66. package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
  67. package/.agy/skills/maestro/SKILL.md +2 -10
  68. package/.agy/skills/maestro-amend/SKILL.md +152 -152
  69. package/.agy/skills/maestro-analyze/SKILL.md +201 -252
  70. package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
  71. package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
  72. package/.agy/skills/maestro-collab/SKILL.md +159 -159
  73. package/.agy/skills/maestro-companion/SKILL.md +517 -517
  74. package/.agy/skills/maestro-composer/SKILL.md +173 -164
  75. package/.agy/skills/maestro-execute/SKILL.md +169 -170
  76. package/.agy/skills/maestro-fork/SKILL.md +97 -96
  77. package/.agy/skills/maestro-grill/SKILL.md +161 -162
  78. package/.agy/skills/maestro-guard/SKILL.md +93 -92
  79. package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
  80. package/.agy/skills/maestro-init/SKILL.md +117 -118
  81. package/.agy/skills/maestro-merge/SKILL.md +73 -66
  82. package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
  83. package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
  84. package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
  85. package/.agy/skills/maestro-next/SKILL.md +241 -245
  86. package/.agy/skills/maestro-overlay/SKILL.md +176 -166
  87. package/.agy/skills/maestro-plan/SKILL.md +211 -197
  88. package/.agy/skills/maestro-player/SKILL.md +167 -167
  89. package/.agy/skills/maestro-quick/SKILL.md +69 -63
  90. package/.agy/skills/maestro-ralph/SKILL.md +2 -36
  91. package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -872
  92. package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
  93. package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
  94. package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
  95. package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
  96. package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
  97. package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
  98. package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
  99. package/.agy/skills/maestro-update/SKILL.md +109 -106
  100. package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
  101. package/.agy/skills/manage-harvest/SKILL.md +83 -81
  102. package/.agy/skills/manage-issue/SKILL.md +59 -60
  103. package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
  104. package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
  105. package/.agy/skills/manage-knowhow/SKILL.md +70 -66
  106. package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
  107. package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
  108. package/.agy/skills/manage-status/SKILL.md +52 -42
  109. package/.agy/skills/manage-wiki/SKILL.md +69 -58
  110. package/.agy/skills/odyssey-debug/SKILL.md +445 -459
  111. package/.agy/skills/odyssey-improve/SKILL.md +477 -491
  112. package/.agy/skills/odyssey-planex/SKILL.md +576 -587
  113. package/.agy/skills/odyssey-review-test-fix/SKILL.md +400 -413
  114. package/.agy/skills/odyssey-ui/SKILL.md +431 -448
  115. package/.agy/skills/quality-auto-test/SKILL.md +140 -123
  116. package/.agy/skills/quality-debug/SKILL.md +145 -106
  117. package/.agy/skills/quality-refactor/SKILL.md +91 -53
  118. package/.agy/skills/quality-retrospective/SKILL.md +109 -63
  119. package/.agy/skills/quality-review/SKILL.md +141 -114
  120. package/.agy/skills/quality-sync/SKILL.md +74 -38
  121. package/.agy/skills/quality-test/SKILL.md +133 -103
  122. package/.agy/skills/security-audit/SKILL.md +217 -166
  123. package/.agy/skills/spec-add/SKILL.md +66 -59
  124. package/.agy/skills/spec-load/SKILL.md +68 -68
  125. package/.agy/skills/spec-remove/SKILL.md +42 -42
  126. package/.agy/skills/spec-setup/SKILL.md +38 -41
  127. package/.claude/commands/learn-follow.md +127 -127
  128. package/.claude/commands/learn-investigate.md +151 -152
  129. package/.claude/commands/learn-second-opinion.md +118 -122
  130. package/.claude/commands/maestro-amend.md +164 -164
  131. package/.claude/commands/maestro-analyze.md +215 -266
  132. package/.claude/commands/maestro-blueprint.md +189 -204
  133. package/.claude/commands/maestro-brainstorm.md +209 -213
  134. package/.claude/commands/maestro-collab.md +172 -172
  135. package/.claude/commands/maestro-companion.md +531 -531
  136. package/.claude/commands/maestro-composer.md +188 -179
  137. package/.claude/commands/maestro-execute.md +183 -184
  138. package/.claude/commands/maestro-fork.md +111 -110
  139. package/.claude/commands/maestro-grill.md +175 -176
  140. package/.claude/commands/maestro-guard.md +103 -102
  141. package/.claude/commands/maestro-impeccable.md +311 -268
  142. package/.claude/commands/maestro-init.md +130 -131
  143. package/.claude/commands/maestro-merge.md +87 -80
  144. package/.claude/commands/maestro-milestone-audit.md +4 -10
  145. package/.claude/commands/maestro-milestone-complete.md +6 -7
  146. package/.claude/commands/maestro-milestone-release.md +136 -145
  147. package/.claude/commands/maestro-next.md +253 -257
  148. package/.claude/commands/maestro-overlay.md +188 -178
  149. package/.claude/commands/maestro-plan.md +225 -211
  150. package/.claude/commands/maestro-player.md +182 -182
  151. package/.claude/commands/maestro-quick.md +83 -77
  152. package/.claude/commands/maestro-ralph-beta.md +875 -886
  153. package/.claude/commands/maestro-ralph-execute.md +247 -247
  154. package/.claude/commands/maestro-ralph.md +2 -36
  155. package/.claude/commands/maestro-roadmap.md +173 -186
  156. package/.claude/commands/maestro-swarm-workflow.md +243 -264
  157. package/.claude/commands/maestro-tools-execute.md +122 -117
  158. package/.claude/commands/maestro-tools-register.md +162 -157
  159. package/.claude/commands/maestro-ui-codify.md +117 -100
  160. package/.claude/commands/maestro-universal-workflow.md +548 -561
  161. package/.claude/commands/maestro-update.md +122 -119
  162. package/.claude/commands/maestro.md +2 -10
  163. package/.claude/commands/manage-codebase-rebuild.md +87 -85
  164. package/.claude/commands/manage-harvest.md +97 -95
  165. package/.claude/commands/manage-issue-discover.md +83 -81
  166. package/.claude/commands/manage-issue.md +72 -73
  167. package/.claude/commands/manage-kg-extractors.md +128 -0
  168. package/.claude/commands/manage-knowhow-capture.md +92 -82
  169. package/.claude/commands/manage-knowhow.md +83 -79
  170. package/.claude/commands/manage-knowledge-audit.md +105 -88
  171. package/.claude/commands/manage-status.md +62 -52
  172. package/.claude/commands/manage-wiki.md +82 -71
  173. package/.claude/commands/odyssey-debug.md +459 -473
  174. package/.claude/commands/odyssey-improve.md +491 -505
  175. package/.claude/commands/odyssey-planex.md +590 -601
  176. package/.claude/commands/odyssey-review-test-fix.md +414 -427
  177. package/.claude/commands/odyssey-ui.md +445 -462
  178. package/.claude/commands/quality-auto-test.md +153 -136
  179. package/.claude/commands/quality-debug.md +159 -120
  180. package/.claude/commands/quality-refactor.md +105 -67
  181. package/.claude/commands/quality-retrospective.md +123 -77
  182. package/.claude/commands/quality-review.md +155 -128
  183. package/.claude/commands/quality-sync.md +88 -52
  184. package/.claude/commands/quality-test.md +147 -117
  185. package/.claude/commands/security-audit.md +230 -179
  186. package/.claude/commands/spec-add.md +77 -70
  187. package/.claude/commands/spec-load.md +78 -78
  188. package/.claude/commands/spec-remove.md +55 -55
  189. package/.claude/commands/spec-setup.md +49 -52
  190. package/dist/src/cli.js +1 -1
  191. package/dist/src/cli.js.map +1 -1
  192. package/dist/src/commands/kg.d.ts.map +1 -1
  193. package/dist/src/commands/kg.js +11 -5
  194. package/dist/src/commands/kg.js.map +1 -1
  195. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +2 -0
  196. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -1
  197. package/dist/src/graph/kg/extraction/code/code-extractor.js +32 -3
  198. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
  199. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
  200. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
  201. package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
  202. package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
  203. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
  204. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
  205. package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
  206. package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
  207. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
  208. package/dist/src/graph/kg/extraction/orchestrator.js +17 -5
  209. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
  210. package/dist/src/graph/kg/schema.sql +16 -11
  211. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -1
  212. package/dist/src/graph/kg/surface/cli.js +153 -56
  213. package/dist/src/graph/kg/surface/cli.js.map +1 -1
  214. package/dist/src/hooks/workspace.d.ts +4 -2
  215. package/dist/src/hooks/workspace.d.ts.map +1 -1
  216. package/dist/src/hooks/workspace.js +6 -2
  217. package/dist/src/hooks/workspace.js.map +1 -1
  218. package/package.json +91 -91
  219. package/workflows/analyze.md +25 -49
  220. package/workflows/auto-test.md +699 -699
  221. package/workflows/blueprint.md +403 -431
  222. package/workflows/brainstorm.md +54 -195
  223. package/workflows/business-test.md +570 -570
  224. package/workflows/claude-instructions.md +23 -51
  225. package/workflows/codex-instructions.md +27 -77
  226. package/workflows/coding-philosophy.md +69 -69
  227. package/workflows/command-authoring.md +823 -823
  228. package/workflows/debug.md +43 -98
  229. package/workflows/delegate-usage.md +39 -241
  230. package/workflows/execute.md +4 -53
  231. package/workflows/grill.md +12 -56
  232. package/workflows/harvest.md +22 -68
  233. package/workflows/init.md +148 -148
  234. package/workflows/instruction-authoring-guide.md +97 -0
  235. package/workflows/issue-execute.md +110 -110
  236. package/workflows/issue-gaps-analyze.codex.md +260 -260
  237. package/workflows/issue-gaps-analyze.md +216 -216
  238. package/workflows/issue-plan.md +110 -110
  239. package/workflows/issue.md +338 -346
  240. package/workflows/knowhow.md +0 -32
  241. package/workflows/learn.md +277 -277
  242. package/workflows/maestro-chain-execute.md +20 -20
  243. package/workflows/refactor.md +22 -44
  244. package/workflows/retrospective.md +16 -65
  245. package/workflows/review.md +446 -486
  246. package/workflows/roadmap.md +35 -132
  247. package/workflows/skill-authoring.md +265 -265
  248. package/workflows/spec-generate.md +470 -470
  249. package/workflows/specs-remove.md +104 -104
  250. package/workflows/sync.md +11 -41
  251. package/workflows/test-gen.md +226 -226
  252. package/workflows/test.md +385 -475
  253. package/workflows/ui-design.md +391 -391
  254. package/workflows/ui-style.md +199 -199
  255. package/workflows/wiki-connect.md +151 -151
  256. package/workflows/wiki-digest.md +178 -178
  257. package/workflows/wiki-manage.md +109 -109
  258. package/workflows/cli-tools-usage.md +0 -252
  259. package/workflows/delegate-protocol.codex.md +0 -65
@@ -1,179 +1,230 @@
1
- ---
2
- name: security-audit
3
- description: OWASP Top 10 and STRIDE security auditing with supply chain analysis
4
- argument-hint: "[quick|standard|deep] [--scope <path>]"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Bash
9
- - Glob
10
- - Grep
11
- - Agent
12
- - AskUserQuestion
13
- ---
14
- <purpose>
15
- Systematic security audit covering OWASP Top 10, dependency supply chain, secrets detection,
16
- CI/CD pipeline review, and optional STRIDE threat modeling. Three tiers control depth vs speed.
17
- </purpose>
18
-
19
- <required_reading>
20
- @~/.maestro/workflows/review.md
21
- </required_reading>
22
-
23
- <context>
24
- $ARGUMENTS — Parse tier and scope:
25
- - Tier: `quick` (default) | `standard` | `deep`
26
- - `--scope <path>`: Limit scan to directory (default: project root)
27
-
28
- **Tier coverage:**
29
-
30
- | Tier | OWASP | Dependencies | Secrets | CI/CD | STRIDE | Git History |
31
- |------|-------|-------------|---------|-------|--------|-------------|
32
- | quick | ✓ | ✓ | — | — | — | — |
33
- | standard | ✓ | ✓ | ✓ | ✓ | — | — |
34
- | deep | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
35
- </context>
36
-
37
- <execution>
38
-
39
- **Phase 1: Reconnaissance**
40
-
41
- 1. Detect tech stack from package.json / go.mod / requirements.txt / Cargo.toml
42
- 2. Identify entry points: HTTP handlers, API routes, CLI parsers, WebSocket handlers
43
- 3. List authentication/authorization modules
44
- 4. Map data flow: user input processing storage output
45
-
46
- **Phase 2: OWASP Top 10 Scan** (all tiers)
47
-
48
- For each category, scan relevant source files:
49
-
50
- | # | Category | What to check |
51
- |---|----------|--------------|
52
- | A01 | Broken Access Control | Missing auth middleware, direct object references, path traversal |
53
- | A02 | Cryptographic Failures | Weak algorithms, hardcoded keys, missing TLS, plaintext storage |
54
- | A03 | Injection | SQL concatenation, shell exec with user input, template injection |
55
- | A04 | Insecure Design | Missing rate limits, no CSRF tokens, predictable tokens |
56
- | A05 | Security Misconfiguration | Debug mode, default credentials, verbose errors, open CORS |
57
- | A06 | Vulnerable Components | Known CVEs in dependencies |
58
- | A07 | Auth Failures | Weak password rules, missing brute-force protection, session fixation |
59
- | A08 | Data Integrity | Deserialization of untrusted data, unsigned updates |
60
- | A09 | Logging Failures | Missing audit logs, logging sensitive data |
61
- | A10 | SSRF | Unvalidated URLs in server-side requests |
62
-
63
- Use `Grep` for pattern matching (e.g., `eval(`, `exec(`, `innerHTML`, `dangerouslySetInnerHTML`,
64
- `sql.*\+.*req\.`, `process\.env` without validation).
65
-
66
- **Phase 3: Dependency Audit** (all tiers)
67
-
68
- ```bash
69
- # Node.js
70
- npm audit --json 2>/dev/null || true
71
- # Check lockfile integrity
72
- test -f package-lock.json && echo "lockfile present" || echo "WARNING: no lockfile"
73
- ```
74
-
75
- Check for:
76
- - Known vulnerabilities (CVE references)
77
- - Lockfile presence and integrity
78
- - Typosquatting risk on critical dependencies (manually check suspicious names)
79
-
80
- **Phase 4: Secrets Detection** (standard + deep)
81
-
82
- ```bash
83
- # Current codebase
84
- grep -rn --include="*.ts" --include="*.js" --include="*.json" --include="*.env*" \
85
- -E "(password|secret|api.?key|token|credential).*=.*['\"][^'\"]{8,}" . || true
86
- ```
87
-
88
- Check `.env.example` for leaked values. Check `.gitignore` for missing `.env` patterns.
89
-
90
- **Phase 5: CI/CD Audit** (standard + deep)
91
-
92
- Scan `.github/workflows/*.yml` for:
93
- - Overly permissive `permissions:` (write-all, contents: write)
94
- - Unpinned action versions (`uses: actions/checkout@main` vs `@v4.1.0`)
95
- - Secrets in logs (missing `mask` or `add-mask`)
96
- - Pull request trigger with `pull_request_target` (code injection risk)
97
-
98
- **Phase 6: STRIDE Threat Modeling** (deep only)
99
-
100
- For each critical module identified in Phase 1:
101
-
102
- | Threat | Question |
103
- |--------|----------|
104
- | **S**poofing | Can identity be faked? Is auth per-request? |
105
- | **T**ampering | Can data be modified in transit/storage? Integrity checks? |
106
- | **R**epudiation | Are actions logged with user identity? |
107
- | **I**nformation Disclosure | Can unauthorized data be accessed? |
108
- | **D**enial of Service | Resource limits? Rate limiting? |
109
- | **E**levation of Privilege | Can roles be escalated? Input validation on role fields? |
110
-
111
- **Phase 7: Git History Archaeology** (deep only)
112
-
113
- ```bash
114
- # Search for previously committed secrets
115
- git log --all --diff-filter=D --name-only --pretty=format: -- "*.env" "*.key" "*.pem" 2>/dev/null | head -20
116
- git log -p --all -S "password" --since="1 year ago" -- "*.ts" "*.js" 2>/dev/null | head -50
117
- ```
118
-
119
- **Phase 8: Report**
120
-
121
- Output severity matrix:
122
-
123
- ```
124
- === Security Audit ({tier}) ===
125
-
126
- CRITICAL ({count}):
127
- - [A03] SQL injection in {file}:{line} {description}
128
- Fix: {remediation}
129
-
130
- HIGH ({count}):
131
- ...
132
-
133
- MEDIUM ({count}):
134
- ...
135
-
136
- LOW ({count}):
137
- ...
138
-
139
- Summary: {total} findings ({critical} critical, {high} high, {medium} medium, {low} low)
140
- ```
141
-
142
- Emit completion status:
143
- ```
144
- --- COMPLETION STATUS ---
145
- STATUS: DONE|DONE_WITH_CONCERNS
146
- CONCERNS: {count} critical findings require immediate action
147
- NEXT: /quality-review
148
- --- END STATUS ---
149
- ```
150
-
151
- **Register artifact on completion** (so retrospective/harvest can trace this audit):
152
- ```
153
- Append to state.json.artifacts[]:
154
- {
155
- id: nextArtifactId(artifacts, "review"), // RVW-NNN (security-audit reuses review type)
156
- type: "review",
157
- subtype: "security-audit",
158
- milestone: current_milestone || null,
159
- phase: target_phase || null,
160
- scope: target_phase ? "phase" : "standalone",
161
- path: "scratch/{YYYYMMDD}-security-audit-{tier}-{slug}",
162
- status: critical_count == 0 ? "completed" : "completed_with_concerns",
163
- tier: tier, // quick|standard|deep
164
- harvested: false,
165
- created_at: start_time,
166
- completed_at: now()
167
- }
168
- ```
169
- Write findings report to the same `path` (severity matrix, file:line refs, remediation).
170
- </execution>
171
-
172
- <success_criteria>
173
- - [ ] Tech stack identified and entry points mapped
174
- - [ ] OWASP Top 10 categories all checked (tier-appropriate)
175
- - [ ] Dependency audit completed with CVE listing
176
- - [ ] Severity matrix produced with file:line references
177
- - [ ] Each finding includes remediation suggestion
178
- - [ ] Completion status block emitted
179
- </success_criteria>
1
+ ---
2
+ name: security-audit
3
+ description: OWASP Top 10 and STRIDE security auditing with supply chain analysis
4
+ argument-hint: "[quick|standard|deep] [--scope <path>]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ - Agent
12
+ - AskUserQuestion
13
+ ---
14
+ <purpose>
15
+ Systematic security audit covering OWASP Top 10, dependency supply chain, secrets detection,
16
+ CI/CD pipeline review, and optional STRIDE threat modeling. Three tiers control depth vs speed.
17
+ </purpose>
18
+
19
+ <required_reading>
20
+ @~/.maestro/workflows/review.md
21
+ </required_reading>
22
+
23
+ <context>
24
+ $ARGUMENTS — Parse tier and scope:
25
+ - Tier: `quick` (default) | `standard` | `deep`
26
+ - `--scope <path>`: Limit scan to directory (default: project root)
27
+
28
+ **Tier coverage:**
29
+
30
+ | Tier | OWASP | Dependencies | Secrets | CI/CD | STRIDE | Git History |
31
+ |------|-------|-------------|---------|-------|--------|-------------|
32
+ | quick | ✓ | ✓ | — | — | — | — |
33
+ | standard | ✓ | ✓ | ✓ | ✓ | — | — |
34
+ | deep | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
35
+ </context>
36
+
37
+ <execution>
38
+
39
+ ### Phase Gates (MANDATORY, BLOCKING)
40
+
41
+ **GATE 1: Recon Scan**
42
+ - REQUIRED: Tech stack detected and entry points identified.
43
+ - REQUIRED: Auth/authz modules listed and data flow mapped.
44
+ - BLOCKED if missing: cannot scan without entry points and data flow baseline.
45
+
46
+ **GATE 2: Scan Report** (tier-gated)
47
+ - REQUIRED: OWASP Top 10 scan completed (all tiers).
48
+ - REQUIRED: Dependency audit completed (all tiers).
49
+ - REQUIRED: Secrets + CI/CD scan completed (standard/deep only).
50
+ - REQUIRED: STRIDE + git history completed (deep only).
51
+ - BLOCKED if tier-required scans incomplete: finish all tier-applicable phases before reporting.
52
+
53
+ **GATE 3: Report Completion**
54
+ - REQUIRED: Severity matrix produced with file:line references and remediation.
55
+ - REQUIRED: Artifact registered in state.json.
56
+ - BLOCKED if missing: do not emit completion status without severity matrix.
57
+
58
+ **Phase 1: Reconnaissance**
59
+
60
+ 1. Detect tech stack from package.json / go.mod / requirements.txt / Cargo.toml
61
+ 2. Identify entry points: HTTP handlers, API routes, CLI parsers, WebSocket handlers
62
+ 3. List authentication/authorization modules
63
+ 4. Map data flow: user input processing storage → output
64
+
65
+ **Phase 2: OWASP Top 10 Scan** (all tiers)
66
+
67
+ For each category, scan relevant source files:
68
+
69
+ | # | Category | What to check |
70
+ |---|----------|--------------|
71
+ | A01 | Broken Access Control | Missing auth middleware, direct object references, path traversal |
72
+ | A02 | Cryptographic Failures | Weak algorithms, hardcoded keys, missing TLS, plaintext storage |
73
+ | A03 | Injection | SQL concatenation, shell exec with user input, template injection |
74
+ | A04 | Insecure Design | Missing rate limits, no CSRF tokens, predictable tokens |
75
+ | A05 | Security Misconfiguration | Debug mode, default credentials, verbose errors, open CORS |
76
+ | A06 | Vulnerable Components | Known CVEs in dependencies |
77
+ | A07 | Auth Failures | Weak password rules, missing brute-force protection, session fixation |
78
+ | A08 | Data Integrity | Deserialization of untrusted data, unsigned updates |
79
+ | A09 | Logging Failures | Missing audit logs, logging sensitive data |
80
+ | A10 | SSRF | Unvalidated URLs in server-side requests |
81
+
82
+ Use `Grep` for pattern matching (e.g., `eval(`, `exec(`, `innerHTML`, `dangerouslySetInnerHTML`,
83
+ `sql.*\+.*req\.`, `process\.env` without validation).
84
+
85
+ **Phase 3: Dependency Audit** (all tiers)
86
+
87
+ ```bash
88
+ # Node.js
89
+ npm audit --json 2>/dev/null || true
90
+ # Check lockfile integrity
91
+ test -f package-lock.json && echo "lockfile present" || echo "WARNING: no lockfile"
92
+ ```
93
+
94
+ Check for:
95
+ - Known vulnerabilities (CVE references)
96
+ - Lockfile presence and integrity
97
+ - Typosquatting risk on critical dependencies (manually check suspicious names)
98
+
99
+ **Phase 4: Secrets Detection** (standard + deep)
100
+
101
+ ```bash
102
+ # Current codebase
103
+ grep -rn --include="*.ts" --include="*.js" --include="*.json" --include="*.env*" \
104
+ -E "(password|secret|api.?key|token|credential).*=.*['\"][^'\"]{8,}" . || true
105
+ ```
106
+
107
+ Check `.env.example` for leaked values. Check `.gitignore` for missing `.env` patterns.
108
+
109
+ **Phase 5: CI/CD Audit** (standard + deep)
110
+
111
+ Scan `.github/workflows/*.yml` for:
112
+ - Overly permissive `permissions:` (write-all, contents: write)
113
+ - Unpinned action versions (`uses: actions/checkout@main` vs `@v4.1.0`)
114
+ - Secrets in logs (missing `mask` or `add-mask`)
115
+ - Pull request trigger with `pull_request_target` (code injection risk)
116
+
117
+ **Phase 6: STRIDE Threat Modeling** (deep only)
118
+
119
+ For each critical module identified in Phase 1:
120
+
121
+ | Threat | Question |
122
+ |--------|----------|
123
+ | **S**poofing | Can identity be faked? Is auth per-request? |
124
+ | **T**ampering | Can data be modified in transit/storage? Integrity checks? |
125
+ | **R**epudiation | Are actions logged with user identity? |
126
+ | **I**nformation Disclosure | Can unauthorized data be accessed? |
127
+ | **D**enial of Service | Resource limits? Rate limiting? |
128
+ | **E**levation of Privilege | Can roles be escalated? Input validation on role fields? |
129
+
130
+ **Phase 7: Git History Archaeology** (deep only)
131
+
132
+ ```bash
133
+ # Search for previously committed secrets
134
+ git log --all --diff-filter=D --name-only --pretty=format: -- "*.env" "*.key" "*.pem" 2>/dev/null | head -20
135
+ git log -p --all -S "password" --since="1 year ago" -- "*.ts" "*.js" 2>/dev/null | head -50
136
+ ```
137
+
138
+ **Phase 8: Report**
139
+
140
+ Output severity matrix:
141
+
142
+ ```
143
+ === Security Audit ({tier}) ===
144
+
145
+ CRITICAL ({count}):
146
+ - [A03] SQL injection in {file}:{line} — {description}
147
+ Fix: {remediation}
148
+
149
+ HIGH ({count}):
150
+ ...
151
+
152
+ MEDIUM ({count}):
153
+ ...
154
+
155
+ LOW ({count}):
156
+ ...
157
+
158
+ Summary: {total} findings ({critical} critical, {high} high, {medium} medium, {low} low)
159
+ ```
160
+
161
+ **Register artifact on completion:**
162
+ ```
163
+ Append to state.json.artifacts[]:
164
+ {
165
+ id: nextArtifactId(artifacts, "review"), // RVW-NNN (security-audit reuses review type)
166
+ type: "review",
167
+ subtype: "security-audit",
168
+ milestone: current_milestone || null,
169
+ phase: target_phase || null,
170
+ scope: target_phase ? "phase" : "standalone",
171
+ path: "scratch/{YYYYMMDD}-security-audit-{tier}-{slug}",
172
+ status: critical_count == 0 ? "completed" : "completed_with_concerns",
173
+ tier: tier, // quick|standard|deep
174
+ harvested: false,
175
+ created_at: start_time,
176
+ completed_at: now()
177
+ }
178
+ ```
179
+ Write findings report to the same `path` (severity matrix, file:line refs, remediation).
180
+ </execution>
181
+
182
+ <completion>
183
+ ### Standalone report
184
+
185
+ ```
186
+ --- COMPLETION STATUS ---
187
+ STATUS: DONE|DONE_WITH_CONCERNS
188
+ CONCERNS: {count} critical findings require immediate action
189
+ --- END STATUS ---
190
+ ```
191
+
192
+ Status mapping:
193
+ - **DONE** — No critical/high findings
194
+ - **DONE_WITH_CONCERNS** — Critical/high findings documented with remediation
195
+
196
+ ### Ralph-invoked completion
197
+
198
+ End the step by calling the CLI (no text block output):
199
+ ```
200
+ maestro ralph complete <idx> --status {STATUS} [--evidence {path}]
201
+ ```
202
+
203
+ ### Next-step routing
204
+
205
+ | Condition | Suggestion |
206
+ |-----------|-----------|
207
+ | No critical findings | `/quality-review {phase}` |
208
+ | Critical findings need fix | `/maestro-plan {phase} --gaps` |
209
+ | Need deeper analysis | `/security-audit deep --scope {path}` |
210
+ | Want dependency remediation | Fix vulnerabilities, then re-run `/security-audit` |
211
+ </completion>
212
+
213
+ <error_codes>
214
+ | Code | Severity | Condition | Recovery |
215
+ |------|----------|-----------|----------|
216
+ | E001 | error | No source files found in scope | Verify --scope path exists |
217
+ | E002 | error | Tech stack not detected | Manually specify entry points |
218
+ | W001 | warning | npm audit / dependency tool unavailable | Skip dependency phase, note limitation |
219
+ | W002 | warning | Git history scan failed | Skip Phase 7, note limitation |
220
+ | W003 | warning | Partial scan (some files inaccessible) | Report coverage gap in findings |
221
+ </error_codes>
222
+
223
+ <success_criteria>
224
+ - [ ] Tech stack identified and entry points mapped
225
+ - [ ] OWASP Top 10 categories all checked (tier-appropriate)
226
+ - [ ] Dependency audit completed with CVE listing
227
+ - [ ] Severity matrix produced with file:line references
228
+ - [ ] Each finding includes remediation suggestion
229
+ - [ ] Completion status block emitted
230
+ </success_criteria>
@@ -1,70 +1,77 @@
1
- ---
2
- name: spec-add
3
- description: Add spec entry by category with role tagging
4
- argument-hint: "[--scope project|global|team|personal] <category> <content>"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Bash
9
- - Glob
10
- - Grep
11
- ---
12
- <purpose>
13
- Add a knowledge entry to the specs system using `<spec-entry>` closed-tag format.
14
- Each category maps 1:1 to a single target file — no dual-write.
15
- Supports 4 scopes: project (default), global, team, personal.
16
- Entries use `category` attribute to declare which category they belong to.
17
- </purpose>
18
-
19
- <required_reading>
20
- @~/.maestro/workflows/specs-add.md
21
- </required_reading>
22
-
23
- <context>
24
- $ARGUMENTS -- expects `[--scope <scope>] [--uid <uid>] <category> <content>`
25
-
26
- **Options:**
27
- - `--description <desc>` — One-line description for search results (falls back to content[:240])
28
- - `--ref <path>` — Create as index entry referencing a knowhow document. If the path exists, only creates the spec index entry. If path doesn't exist, also creates the knowhow file.
29
- - `--knowhow-type <type>` — Knowhow document type when creating with --ref (asset, blueprint, document, template, recipe, reference, decision)
30
-
31
- Scope-to-directory mapping, category-to-file mapping, and entry format defined in workflow specs-add.md.
32
-
33
- **Examples:**
34
- ```bash
35
- # English content English keywords
36
- /spec-add coding "Named exports" "Always use named exports" --keywords "exports,naming"
37
-
38
- # With description for search results
39
- /spec-add coding "OAuth PKCE Flow" "完整 PKCE 集成流程" --keywords "oauth,pkce" --description "OAuth 2.0 PKCE 认证流程规范"
40
-
41
- # Chinese content → Chinese keywords
42
- /spec-add coding "命名导出规范" "始终使用命名导出" --keywords "导出,命名,模块"
43
-
44
- # Ref mode
45
- /spec-add arch "OAuth PKCE 集成" "完整流程设计" --ref knowhow/AST-oauth-flow.md
46
- ```
47
- </context>
48
-
49
- <execution>
50
- Follow '~/.maestro/workflows/specs-add.md' completely.
51
- </execution>
52
-
53
- <error_codes>
54
- | Code | Severity | Description | Stage |
55
- |------|----------|-------------|-------|
56
- | E001 | fatal | Category and content are both required | parse_input |
57
- | E002 | fatal | Specs directory not initialized -- run `maestro spec init --scope <scope>` | validate_entry |
58
- | E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning, tools, ui | parse_input |
59
- | E004 | fatal | Invalid scope -- must be one of: project, global, team, personal | parse_input |
60
- | E005 | fatal | Personal scope requires uid -- use `--uid` or run `maestro collab join` first | parse_input |
61
- </error_codes>
62
-
63
- <success_criteria>
64
- - [ ] Scope and category parsed and validated
65
- - [ ] Keywords auto-extracted from content (3-5 relevant terms)
66
- - [ ] Entry written in `<spec-entry>` closed-tag format
67
- - [ ] Entry appended to correct target file for scope
68
- - [ ] Confirmation report displayed with scope, path, keywords
69
- - [ ] Next step: `maestro spec load --scope <scope> --keyword {keyword}` to verify
70
- </success_criteria>
1
+ ---
2
+ name: spec-add
3
+ description: Add spec entry by category with role tagging
4
+ argument-hint: "[--scope project|global|team|personal] <category> <content>"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Glob
10
+ - Grep
11
+ ---
12
+ <purpose>
13
+ Add `<spec-entry>` to specs by category. 4 scopes: project (default), global, team, personal.
14
+ </purpose>
15
+
16
+ <required_reading>
17
+ @~/.maestro/workflows/specs-add.md
18
+ </required_reading>
19
+
20
+ <context>
21
+ $ARGUMENTS -- expects `[--scope <scope>] [--uid <uid>] <category> <content>`
22
+
23
+ **Options:**
24
+ - `--description <desc>` One-line description for search results (falls back to content[:240])
25
+ - `--ref <path>` — Create as index entry referencing a knowhow document. If the path exists, only creates the spec index entry. If path doesn't exist, also creates the knowhow file.
26
+ - `--knowhow-type <type>` — Knowhow document type when creating with --ref (asset, blueprint, document, template, recipe, reference, decision)
27
+
28
+ Scope-to-directory mapping, category-to-file mapping, and entry format defined in workflow specs-add.md.
29
+
30
+ **Examples:**
31
+ ```bash
32
+ # English content → English keywords
33
+ /spec-add coding "Named exports" "Always use named exports" --keywords "exports,naming"
34
+
35
+ # With description for search results
36
+ /spec-add coding "OAuth PKCE Flow" "完整 PKCE 集成流程" --keywords "oauth,pkce" --description "OAuth 2.0 PKCE 认证流程规范"
37
+
38
+ # Chinese content Chinese keywords
39
+ /spec-add coding "命名导出规范" "始终使用命名导出" --keywords "导出,命名,模块"
40
+
41
+ # Ref mode
42
+ /spec-add arch "OAuth PKCE 集成" "完整流程设计" --ref knowhow/AST-oauth-flow.md
43
+ ```
44
+ </context>
45
+
46
+ <execution>
47
+ Follow '~/.maestro/workflows/specs-add.md' completely.
48
+ </execution>
49
+
50
+ <error_codes>
51
+ | Code | Severity | Description | Stage |
52
+ |------|----------|-------------|-------|
53
+ | E001 | fatal | Category and content are both required | parse_input |
54
+ | E002 | fatal | Specs directory not initialized -- run `maestro spec init --scope <scope>` | validate_entry |
55
+ | E003 | fatal | Invalid category -- must be one of: coding, arch, quality, debug, test, review, learning, tools, ui | parse_input |
56
+ | E004 | fatal | Invalid scope -- must be one of: project, global, team, personal | parse_input |
57
+ | E005 | fatal | Personal scope requires uid -- use `--uid` or run `maestro collab join` first | parse_input |
58
+ </error_codes>
59
+
60
+ <success_criteria>
61
+ - [ ] Scope and category parsed and validated
62
+ - [ ] Keywords auto-extracted from content (3-5 relevant terms)
63
+ - [ ] Entry written in `<spec-entry>` closed-tag format
64
+ - [ ] Entry appended to correct target file for scope
65
+ - [ ] Confirmation report displayed with scope, path, keywords
66
+ - [ ] Next step routed
67
+ </success_criteria>
68
+
69
+ <completion>
70
+ ### Next-step routing
71
+
72
+ | Condition | Suggestion |
73
+ |-----------|-----------|
74
+ | Verify entry added | `maestro spec load --scope <scope> --keyword {keyword}` |
75
+ | Add more entries | `/spec-add <category>` |
76
+ | View all specs | `/spec-load --category <category>` |
77
+ </completion>