@edupia-tutor/spec-driven-docs 0.14.0
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/bin/build.js +230 -0
- package/bin/index.js +598 -0
- package/commands/debug.md +830 -0
- package/commands/debug.tmpl +257 -0
- package/commands/define-product.md +652 -0
- package/commands/define-product.tmpl +158 -0
- package/commands/dev-gen-test.md +1010 -0
- package/commands/dev-gen-test.tmpl +490 -0
- package/commands/dev-run-test.md +744 -0
- package/commands/dev-run-test.tmpl +224 -0
- package/commands/dev-smoke-test.md +711 -0
- package/commands/dev-smoke-test.tmpl +217 -0
- package/commands/fix-bug.md +744 -0
- package/commands/fix-bug.tmpl +171 -0
- package/commands/generate-bdd.md +1054 -0
- package/commands/generate-bdd.tmpl +534 -0
- package/commands/generate-code.md +869 -0
- package/commands/generate-code.tmpl +349 -0
- package/commands/generate-design-spec.md +958 -0
- package/commands/generate-design-spec.tmpl +464 -0
- package/commands/generate-prd.md +748 -0
- package/commands/generate-prd.tmpl +254 -0
- package/commands/generate-spec-manifest.md +658 -0
- package/commands/generate-spec-manifest.tmpl +164 -0
- package/commands/generate-tech-docs.md +849 -0
- package/commands/generate-tech-docs.tmpl +355 -0
- package/commands/learn.md +636 -0
- package/commands/learn.tmpl +63 -0
- package/commands/map-testids.md +575 -0
- package/commands/map-testids.tmpl +81 -0
- package/commands/propose-scenario.md +623 -0
- package/commands/propose-scenario.tmpl +129 -0
- package/commands/qc-analyze.md +580 -0
- package/commands/qc-analyze.tmpl +86 -0
- package/commands/qc-design-test.md +562 -0
- package/commands/qc-design-test.tmpl +68 -0
- package/commands/qc-plan.md +543 -0
- package/commands/qc-plan.tmpl +49 -0
- package/commands/qc-report.md +554 -0
- package/commands/qc-report.tmpl +60 -0
- package/commands/qc-review.md +547 -0
- package/commands/qc-review.tmpl +53 -0
- package/commands/qc-run-test.md +604 -0
- package/commands/qc-run-test.tmpl +84 -0
- package/commands/refine-prd.md +772 -0
- package/commands/refine-prd.tmpl +140 -0
- package/commands/report-bug.md +639 -0
- package/commands/report-bug.tmpl +145 -0
- package/commands/review-code.md +677 -0
- package/commands/review-code.tmpl +104 -0
- package/commands/review-context.md +1047 -0
- package/commands/review-context.tmpl +415 -0
- package/commands/review-tech-docs.md +811 -0
- package/commands/review-tech-docs.tmpl +317 -0
- package/commands/setup-ai-first.md +545 -0
- package/commands/setup-ai-first.tmpl +358 -0
- package/commands/sync.md +451 -0
- package/commands/sync.tmpl +351 -0
- package/commands/update-framework.md +251 -0
- package/commands/update-framework.tmpl +151 -0
- package/commands/validate-traces.md +842 -0
- package/commands/validate-traces.tmpl +348 -0
- package/core/FRAMEWORK_VERSION +1 -0
- package/core/commands/debug.md +830 -0
- package/core/commands/define-product.md +652 -0
- package/core/commands/dev-gen-test.md +1010 -0
- package/core/commands/dev-run-test.md +744 -0
- package/core/commands/dev-smoke-test.md +711 -0
- package/core/commands/fix-bug.md +744 -0
- package/core/commands/generate-bdd.md +1054 -0
- package/core/commands/generate-code.md +869 -0
- package/core/commands/generate-design-spec.md +958 -0
- package/core/commands/generate-prd.md +748 -0
- package/core/commands/generate-spec-manifest.md +658 -0
- package/core/commands/generate-tech-docs.md +849 -0
- package/core/commands/learn.md +636 -0
- package/core/commands/map-testids.md +575 -0
- package/core/commands/propose-scenario.md +623 -0
- package/core/commands/qc-analyze.md +580 -0
- package/core/commands/qc-design-test.md +562 -0
- package/core/commands/qc-plan.md +543 -0
- package/core/commands/qc-report.md +554 -0
- package/core/commands/qc-review.md +547 -0
- package/core/commands/qc-run-test.md +604 -0
- package/core/commands/refine-prd.md +772 -0
- package/core/commands/report-bug.md +639 -0
- package/core/commands/review-code.md +677 -0
- package/core/commands/review-context.md +1047 -0
- package/core/commands/review-tech-docs.md +811 -0
- package/core/commands/setup-ai-first.md +545 -0
- package/core/commands/sync.md +451 -0
- package/core/commands/update-framework.md +251 -0
- package/core/commands/validate-traces.md +842 -0
- package/core/hooks/data-guard.js +141 -0
- package/core/hooks/settings.json +18 -0
- package/core/modules/android-compose/module.yaml +13 -0
- package/core/modules/android-compose/stack-profile.yaml +57 -0
- package/core/modules/angular/architecture-snippets/component-patterns.md +187 -0
- package/core/modules/angular/module.yaml +6 -0
- package/core/modules/angular/stack-profile.yaml +38 -0
- package/core/modules/context-engineering/architecture-snippets/context-design.md +119 -0
- package/core/modules/context-engineering/module.yaml +9 -0
- package/core/modules/context-engineering/stack-profile.yaml +61 -0
- package/core/modules/dotnet/architecture-snippets/clean-arch.md +160 -0
- package/core/modules/dotnet/module.yaml +6 -0
- package/core/modules/dotnet/stack-profile.yaml +50 -0
- package/core/modules/flutter/module.yaml +14 -0
- package/core/modules/flutter/stack-profile.yaml +59 -0
- package/core/modules/golang/architecture-snippets/domain-layout.md +283 -0
- package/core/modules/golang/module.yaml +6 -0
- package/core/modules/golang/stack-profile.yaml +40 -0
- package/core/modules/ios-swiftui/module.yaml +13 -0
- package/core/modules/ios-swiftui/stack-profile.yaml +55 -0
- package/core/modules/java-spring/architecture-snippets/layered-arch.md +201 -0
- package/core/modules/java-spring/module.yaml +15 -0
- package/core/modules/java-spring/stack-profile.yaml +28 -0
- package/core/modules/nextjs/architecture-snippets/app-router-patterns.md +269 -0
- package/core/modules/nextjs/module.yaml +14 -0
- package/core/modules/nextjs/stack-profile.yaml +74 -0
- package/core/modules/nuxt/module.yaml +14 -0
- package/core/modules/nuxt/stack-profile.yaml +58 -0
- package/core/modules/php-laravel/architecture-snippets/service-repository.md +302 -0
- package/core/modules/php-laravel/module.yaml +15 -0
- package/core/modules/php-laravel/stack-profile.yaml +56 -0
- package/core/modules/qc-playwright/stack-profile.yaml +66 -0
- package/core/modules/react/architecture-snippets/hooks-query-patterns.md +254 -0
- package/core/modules/react/module.yaml +14 -0
- package/core/modules/react/stack-profile.yaml +63 -0
- package/core/modules/react-native/module.yaml +14 -0
- package/core/modules/react-native/stack-profile.yaml +56 -0
- package/core/modules/vue/module.yaml +14 -0
- package/core/modules/vue/stack-profile.yaml +65 -0
- package/core/rules/data-protection.md +80 -0
- package/core/rules/workflow.md +44 -0
- package/core/skills/code/SKILL.md +770 -0
- package/core/skills/debug/SKILL.md +869 -0
- package/core/skills/design-spec/SKILL.md +589 -0
- package/core/skills/discovery/SKILL.md +554 -0
- package/core/skills/prd/SKILL.md +562 -0
- package/core/skills/qc/qa-analyst/DOC_GAPS.template.md +63 -0
- package/core/skills/qc/qa-analyst/acceptance-criteria.md +60 -0
- package/core/skills/qc/qa-analyst/business-rules.md +59 -0
- package/core/skills/qc/qa-analyst/data-flow.md +64 -0
- package/core/skills/qc/qa-analyst/spec-breakdown.md +61 -0
- package/core/skills/qc/qa-designer/e2e/journey.md +41 -0
- package/core/skills/qc/qa-designer/exploratory/charter.md +68 -0
- package/core/skills/qc/qa-designer/exploratory/explore-to-functional.md +43 -0
- package/core/skills/qc/qa-designer/functional/api.md +45 -0
- package/core/skills/qc/qa-designer/functional/gui-feature.md +46 -0
- package/core/skills/qc/qa-designer/functional/gui-screen.md +52 -0
- package/core/skills/qc/qa-designer/integration/api.md +42 -0
- package/core/skills/qc/qa-designer/integration/db.md +39 -0
- package/core/skills/qc/qa-designer/integration/gui.md +40 -0
- package/core/skills/qc/qa-designer/integration/kafka.md +40 -0
- package/core/skills/qc/qa-designer/non-functional.md +40 -0
- package/core/skills/qc/qa-planner/test-plan.md +120 -0
- package/core/skills/qc/qa-reviewer/script/e2e.md +87 -0
- package/core/skills/qc/qa-reviewer/script/exploratory.md +45 -0
- package/core/skills/qc/qa-reviewer/script/functional.md +101 -0
- package/core/skills/qc/qa-reviewer/script/integration.md +91 -0
- package/core/skills/qc/qa-reviewer/script/non-functional.md +126 -0
- package/core/skills/qc/qa-reviewer/test-case/e2e.md +73 -0
- package/core/skills/qc/qa-reviewer/test-case/exploratory.md +43 -0
- package/core/skills/qc/qa-reviewer/test-case/functional.md +76 -0
- package/core/skills/qc/qa-reviewer/test-case/integration.md +69 -0
- package/core/skills/qc/qa-reviewer/test-case/non-functional.md +73 -0
- package/core/skills/qc/qa-runner/e2e.md +49 -0
- package/core/skills/qc/qa-runner/exploratory/session.md +36 -0
- package/core/skills/qc/qa-runner/functional/api.md +35 -0
- package/core/skills/qc/qa-runner/functional/gui-feature.md +51 -0
- package/core/skills/qc/qa-runner/functional/gui-screen.md +55 -0
- package/core/skills/qc/qa-runner/integration.md +47 -0
- package/core/skills/qc/qa-runner/non-functional.md +49 -0
- package/core/skills/qc/qa-runner/report/report.md +37 -0
- package/core/skills/setup-ai-first/SKILL.md +216 -0
- package/core/skills/spec/SKILL.md +461 -0
- package/core/skills/test/SKILL.md +1297 -0
- package/core/steps/capture-lesson.md +79 -0
- package/core/steps/context-loader.md +307 -0
- package/core/steps/gate.md +87 -0
- package/core/steps/report-footer.md +100 -0
- package/core/steps/review-fanout.md +138 -0
- package/core/steps/spawn-agent.md +124 -0
- package/core/steps/trace-mirror.md +26 -0
- package/core/templates/architecture.template.md +113 -0
- package/core/templates/design-spec.template.md +217 -0
- package/core/templates/feature.template +259 -0
- package/core/templates/platform-guide.template.md +145 -0
- package/core/templates/prd.template.md +327 -0
- package/core/templates/product-definition.template.md +168 -0
- package/core/templates/project-context.yaml +161 -0
- package/docs/01-getting-started/README.md +19 -0
- package/docs/01-getting-started/core-concepts.md +102 -0
- package/docs/01-getting-started/installation.md +156 -0
- package/docs/01-getting-started/quickstart.md +85 -0
- package/docs/02-guides/README.md +26 -0
- package/docs/02-guides/developer/README.md +46 -0
- package/docs/02-guides/developer/bdd-and-trace.md +125 -0
- package/docs/02-guides/developer/commands.md +76 -0
- package/docs/02-guides/developer/pr-checklist.md +15 -0
- package/docs/02-guides/developer/scenarios.md +460 -0
- package/docs/02-guides/developer/workflow.md +121 -0
- package/docs/02-guides/product-owner/README.md +79 -0
- package/docs/02-guides/product-owner/commands.md +30 -0
- package/docs/02-guides/product-owner/handoff-checklist.md +42 -0
- package/docs/02-guides/product-owner/prd-writing-rules.md +45 -0
- package/docs/02-guides/product-owner/scenarios.md +436 -0
- package/docs/02-guides/tester/README.md +75 -0
- package/docs/02-guides/tester/bug-reporting.md +117 -0
- package/docs/02-guides/tester/qc-automation.md +165 -0
- package/docs/02-guides/tester/reading-specs.md +79 -0
- package/docs/02-guides/tester/scenarios.md +186 -0
- package/docs/02-guides/tester/spec-manifest.md +130 -0
- package/docs/02-guides/tester/test-checklist.md +31 -0
- package/docs/02-guides/tester/workflow.md +77 -0
- package/docs/03-concepts/README.md +19 -0
- package/docs/03-concepts/architecture.md +248 -0
- package/docs/03-concepts/pipeline.md +274 -0
- package/docs/03-concepts/traceability.md +149 -0
- package/docs/04-operations/README.md +33 -0
- package/docs/04-operations/bug-flow.md +362 -0
- package/docs/04-operations/publishing.md +137 -0
- package/docs/04-operations/sync-and-update.md +522 -0
- package/docs/05-reference/README.md +32 -0
- package/docs/05-reference/command-cheatsheet.md +147 -0
- package/docs/05-reference/commands.md +232 -0
- package/docs/05-reference/modules.md +110 -0
- package/docs/05-reference/trace-schema.md +153 -0
- package/docs/README.md +49 -0
- package/hooks/data-guard.js +141 -0
- package/hooks/settings.json +18 -0
- package/modules/android-compose/module.yaml +13 -0
- package/modules/android-compose/stack-profile.yaml +57 -0
- package/modules/angular/architecture-snippets/component-patterns.md +187 -0
- package/modules/angular/module.yaml +6 -0
- package/modules/angular/stack-profile.yaml +38 -0
- package/modules/context-engineering/architecture-snippets/context-design.md +119 -0
- package/modules/context-engineering/module.yaml +9 -0
- package/modules/context-engineering/stack-profile.yaml +61 -0
- package/modules/dotnet/architecture-snippets/clean-arch.md +160 -0
- package/modules/dotnet/module.yaml +6 -0
- package/modules/dotnet/stack-profile.yaml +50 -0
- package/modules/flutter/module.yaml +14 -0
- package/modules/flutter/stack-profile.yaml +59 -0
- package/modules/golang/architecture-snippets/domain-layout.md +283 -0
- package/modules/golang/module.yaml +6 -0
- package/modules/golang/stack-profile.yaml +40 -0
- package/modules/ios-swiftui/module.yaml +13 -0
- package/modules/ios-swiftui/stack-profile.yaml +55 -0
- package/modules/java-spring/architecture-snippets/layered-arch.md +201 -0
- package/modules/java-spring/module.yaml +15 -0
- package/modules/java-spring/stack-profile.yaml +28 -0
- package/modules/nextjs/architecture-snippets/app-router-patterns.md +269 -0
- package/modules/nextjs/module.yaml +14 -0
- package/modules/nextjs/stack-profile.yaml +74 -0
- package/modules/nuxt/module.yaml +14 -0
- package/modules/nuxt/stack-profile.yaml +58 -0
- package/modules/php-laravel/architecture-snippets/service-repository.md +302 -0
- package/modules/php-laravel/module.yaml +15 -0
- package/modules/php-laravel/stack-profile.yaml +56 -0
- package/modules/qc-playwright/stack-profile.yaml +66 -0
- package/modules/react/architecture-snippets/hooks-query-patterns.md +254 -0
- package/modules/react/module.yaml +14 -0
- package/modules/react/stack-profile.yaml +63 -0
- package/modules/react-native/module.yaml +14 -0
- package/modules/react-native/stack-profile.yaml +56 -0
- package/modules/vue/module.yaml +14 -0
- package/modules/vue/stack-profile.yaml +65 -0
- package/package.json +49 -0
- package/rules/data-protection.md +80 -0
- package/rules/workflow.md +44 -0
- package/scripts/init.sh +49 -0
- package/scripts/migrate-specs.js +256 -0
- package/scripts/upgrade.sh +94 -0
- package/skills/code/SKILL.md +770 -0
- package/skills/code/SKILL.tmpl +176 -0
- package/skills/debug/SKILL.md +869 -0
- package/skills/debug/SKILL.tmpl +262 -0
- package/skills/design-spec/SKILL.md +589 -0
- package/skills/design-spec/SKILL.tmpl +95 -0
- package/skills/discovery/SKILL.md +554 -0
- package/skills/discovery/SKILL.tmpl +147 -0
- package/skills/prd/SKILL.md +562 -0
- package/skills/prd/SKILL.tmpl +188 -0
- package/skills/qc/qa-analyst/DOC_GAPS.template.md +63 -0
- package/skills/qc/qa-analyst/acceptance-criteria.md +60 -0
- package/skills/qc/qa-analyst/business-rules.md +59 -0
- package/skills/qc/qa-analyst/data-flow.md +64 -0
- package/skills/qc/qa-analyst/spec-breakdown.md +61 -0
- package/skills/qc/qa-designer/e2e/journey.md +41 -0
- package/skills/qc/qa-designer/exploratory/charter.md +68 -0
- package/skills/qc/qa-designer/exploratory/explore-to-functional.md +43 -0
- package/skills/qc/qa-designer/functional/api.md +45 -0
- package/skills/qc/qa-designer/functional/gui-feature.md +46 -0
- package/skills/qc/qa-designer/functional/gui-screen.md +52 -0
- package/skills/qc/qa-designer/integration/api.md +42 -0
- package/skills/qc/qa-designer/integration/db.md +39 -0
- package/skills/qc/qa-designer/integration/gui.md +40 -0
- package/skills/qc/qa-designer/integration/kafka.md +40 -0
- package/skills/qc/qa-designer/non-functional.md +40 -0
- package/skills/qc/qa-planner/test-plan.md +120 -0
- package/skills/qc/qa-reviewer/script/e2e.md +87 -0
- package/skills/qc/qa-reviewer/script/exploratory.md +45 -0
- package/skills/qc/qa-reviewer/script/functional.md +101 -0
- package/skills/qc/qa-reviewer/script/integration.md +91 -0
- package/skills/qc/qa-reviewer/script/non-functional.md +126 -0
- package/skills/qc/qa-reviewer/test-case/e2e.md +73 -0
- package/skills/qc/qa-reviewer/test-case/exploratory.md +43 -0
- package/skills/qc/qa-reviewer/test-case/functional.md +76 -0
- package/skills/qc/qa-reviewer/test-case/integration.md +69 -0
- package/skills/qc/qa-reviewer/test-case/non-functional.md +73 -0
- package/skills/qc/qa-runner/e2e.md +49 -0
- package/skills/qc/qa-runner/exploratory/session.md +36 -0
- package/skills/qc/qa-runner/functional/api.md +35 -0
- package/skills/qc/qa-runner/functional/gui-feature.md +51 -0
- package/skills/qc/qa-runner/functional/gui-screen.md +55 -0
- package/skills/qc/qa-runner/integration.md +47 -0
- package/skills/qc/qa-runner/non-functional.md +49 -0
- package/skills/qc/qa-runner/report/report.md +37 -0
- package/skills/setup-ai-first/SKILL.md +216 -0
- package/skills/setup-ai-first/SKILL.tmpl +116 -0
- package/skills/spec/SKILL.md +461 -0
- package/skills/spec/SKILL.tmpl +174 -0
- package/skills/test/SKILL.md +1297 -0
- package/skills/test/SKILL.tmpl +296 -0
- package/steps/capture-lesson.md +79 -0
- package/steps/context-loader.md +307 -0
- package/steps/gate.md +87 -0
- package/steps/report-footer.md +100 -0
- package/steps/review-fanout.md +138 -0
- package/steps/spawn-agent.md +124 -0
- package/steps/trace-mirror.md +26 -0
- package/templates/architecture.template.md +113 -0
- package/templates/design-spec.template.md +217 -0
- package/templates/feature.template +259 -0
- package/templates/platform-guide.template.md +145 -0
- package/templates/prd.template.md +327 -0
- package/templates/product-definition.template.md +168 -0
- package/templates/project-context.yaml +161 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# /debug — Quick Debug Analysis
|
|
2
|
+
|
|
3
|
+
Use for: IDE errors, test failures, strange behavior, or "why does this code do X?"
|
|
4
|
+
Different from `/fix-bug`: analysis only, no full workflow, no ticket needed.
|
|
5
|
+
|
|
6
|
+
## Gate
|
|
7
|
+
{{include:steps/gate.md}}
|
|
8
|
+
|
|
9
|
+
*Note: For this command, the target in Step 1 is user-provided input (stack trace, test failure output, file path + description, or code question). No file discovery needed — go straight to context loading.*
|
|
10
|
+
|
|
11
|
+
## Context
|
|
12
|
+
{{include:steps/context-loader.md}}
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Step 1 — Classify debug type
|
|
17
|
+
|
|
18
|
+
After loading context, display this prompt and wait for the user's choice:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
DEBUG SESSION
|
|
22
|
+
──────────────────────────────────────────────────────────────
|
|
23
|
+
What's your situation?
|
|
24
|
+
|
|
25
|
+
1 I already have a stack trace / error log → paste it
|
|
26
|
+
2 I need to reproduce the error first → show me the run command
|
|
27
|
+
3 A test is failing → I'll run tests, then paste output
|
|
28
|
+
4 Code question (no runtime needed) → ask away
|
|
29
|
+
──────────────────────────────────────────────────────────────
|
|
30
|
+
Enter 1 / 2 / 3 / 4:
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Wait for the user's choice, then follow the corresponding path below.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### Path 1 — Already have error output
|
|
38
|
+
|
|
39
|
+
Ask:
|
|
40
|
+
```
|
|
41
|
+
Paste your stack trace / error log below:
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Wait for input, then proceed to [Stack Trace Analysis](#stack-trace-analysis).
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### Path 2 — Need to reproduce first
|
|
49
|
+
|
|
50
|
+
Display the run command from `conventions.service_run` in `project-context.yaml`:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Start your service first:
|
|
54
|
+
|
|
55
|
+
{conventions.service_run}
|
|
56
|
+
|
|
57
|
+
(If you use Docker: `docker compose up -d`, then verify with `docker compose ps`)
|
|
58
|
+
|
|
59
|
+
Once the service is running:
|
|
60
|
+
1. Trigger the behavior that causes the error
|
|
61
|
+
2. Copy the full stack trace or error log
|
|
62
|
+
3. Paste it here
|
|
63
|
+
|
|
64
|
+
Waiting for your error output...
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Wait for the user to paste the error, then proceed to [Stack Trace Analysis](#stack-trace-analysis).
|
|
68
|
+
|
|
69
|
+
If `conventions.service_run` is not set → show:
|
|
70
|
+
```
|
|
71
|
+
⚠️ service_run is not configured in .agent/project-context.yaml.
|
|
72
|
+
Add it so this command can show the correct start command:
|
|
73
|
+
|
|
74
|
+
conventions:
|
|
75
|
+
service_run: "mvn spring-boot:run" # or: npm run dev / go run . / etc.
|
|
76
|
+
```
|
|
77
|
+
Then ask the user to start the service manually and paste the error when ready.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### Path 3 — Test is failing
|
|
82
|
+
|
|
83
|
+
Display the test command from `conventions.test_command` in `project-context.yaml`:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
Run your tests first:
|
|
87
|
+
|
|
88
|
+
{conventions.test_command}
|
|
89
|
+
|
|
90
|
+
Once the run finishes, paste the full test failure output here.
|
|
91
|
+
|
|
92
|
+
Waiting...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Wait for the user to paste the failure output, then proceed to [Test Failure Analysis](#test-failure-analysis).
|
|
96
|
+
|
|
97
|
+
If `conventions.test_command` is not set → show:
|
|
98
|
+
```
|
|
99
|
+
⚠️ test_command is not configured in .agent/project-context.yaml.
|
|
100
|
+
Add it so this command can show the correct test command:
|
|
101
|
+
|
|
102
|
+
conventions:
|
|
103
|
+
test_command: "mvn test" # or: npm test / go test ./... / etc.
|
|
104
|
+
```
|
|
105
|
+
Then ask the user to run tests manually and paste the output when ready.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### Path 4 — Code question
|
|
110
|
+
|
|
111
|
+
Ask:
|
|
112
|
+
```
|
|
113
|
+
Describe your question or paste the code snippet you're asking about:
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Wait for input, then answer directly using loaded project context (architecture rules, layer order, coding standards from CLAUDE.md).
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Stack Trace Analysis
|
|
121
|
+
|
|
122
|
+
Read from **bottom up** — `Caused by:` is the real root cause:
|
|
123
|
+
```
|
|
124
|
+
Caused by: {RealException} ← start here
|
|
125
|
+
at {class}.{method}({file}:{line})
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Common Error Patterns
|
|
129
|
+
|
|
130
|
+
Use `active_module` from context to select the relevant table.
|
|
131
|
+
|
|
132
|
+
### If `platform_type = backend`
|
|
133
|
+
|
|
134
|
+
#### java-spring / golang / dotnet / php-laravel
|
|
135
|
+
|
|
136
|
+
| Error | Likely Cause | Fix Direction |
|
|
137
|
+
|-------|-------------|---------------|
|
|
138
|
+
| NullPointerException | Null object access; Optional not handled | Check Optional.orElseThrow, null guards |
|
|
139
|
+
| ClassCastException | Wrong type assumption | Check type at assignment/return |
|
|
140
|
+
| OutOfMemoryError | Loading too much data | Add pagination |
|
|
141
|
+
| StackOverflowError | Infinite recursion | Find recursive call with no base case |
|
|
142
|
+
| Connection refused | Dependency not running | Check config URLs / start service |
|
|
143
|
+
| 401 Unauthorized | Token expired, wrong config | Verify token, check auth config |
|
|
144
|
+
| 403 Forbidden | Wrong role | Check auth annotations |
|
|
145
|
+
| DB constraint violation | Duplicate key, null in NOT NULL | Check data and constraints |
|
|
146
|
+
| Serialization error | Circular reference | Check DTO/mapper config |
|
|
147
|
+
| Test assertion mismatch | Wrong mock or wrong expected | Re-read mock setup |
|
|
148
|
+
|
|
149
|
+
#### context-engineering (AI/LLM pipelines)
|
|
150
|
+
|
|
151
|
+
| Error | Likely Cause | Fix Direction |
|
|
152
|
+
|-------|-------------|---------------|
|
|
153
|
+
| `APIError` / `RateLimitError` | LLM quota exceeded or service down | Check API key, rate limits; add exponential backoff |
|
|
154
|
+
| `TokenLimitError` / `context_length_exceeded` | Input prompt too long | Truncate/chunk input; review prompt template size |
|
|
155
|
+
| `AuthenticationError` | API key invalid or expired | Check env var; rotate key |
|
|
156
|
+
| Response validation / schema mismatch | LLM output doesn't match expected format | Add output parser; retry with stricter prompt |
|
|
157
|
+
| `JSONDecodeError` on LLM output | Model returned non-JSON text | Add JSON extraction post-processing or stricter system prompt |
|
|
158
|
+
| Hanging / slow test | Real LLM called in test instead of mock | Verify `patch('...')` applied; add timeout guard |
|
|
159
|
+
| Flaky results across runs | Non-deterministic LLM response | Use fixed mock in tests; check temperature = 0 for determinism |
|
|
160
|
+
|
|
161
|
+
### If `platform_type = web-frontend`
|
|
162
|
+
|
|
163
|
+
| Error | Likely Cause | Fix Direction |
|
|
164
|
+
|-------|-------------|---------------|
|
|
165
|
+
| `Cannot read properties of undefined` | Data not loaded yet | Add loading guard / optional chaining `?.` |
|
|
166
|
+
| `useEffect` infinite loop | Dependency array wrong | Review deps, use stable refs / `useCallback` |
|
|
167
|
+
| `Cannot update state on unmounted component` | Async resolves after unmount | Cancel in cleanup / use AbortController |
|
|
168
|
+
| CORS error | API not configured | Check backend CORS config or dev proxy setup |
|
|
169
|
+
| 401 Unauthorized | Token expired or missing | Refresh token / check Authorization header |
|
|
170
|
+
| White screen / no output | Unhandled render error | Check browser console, add ErrorBoundary |
|
|
171
|
+
| Type error (Zod / TypeScript) | API response shape mismatch | Compare actual response vs type definition |
|
|
172
|
+
| `act(...)` warning in test | Async state update | Wrap in `act(async () => {...})` |
|
|
173
|
+
| Module not found | Import path wrong | Check relative path / tsconfig alias |
|
|
174
|
+
|
|
175
|
+
### If `platform_type = mobile`
|
|
176
|
+
|
|
177
|
+
#### Flutter
|
|
178
|
+
| Error | Likely Cause | Fix Direction |
|
|
179
|
+
|-------|-------------|---------------|
|
|
180
|
+
| `Null check operator on null value` | Nullable not guarded | Add `?` or null check before `!` |
|
|
181
|
+
| `pumpAndSettle timed out` | Async not completing in test | Use `pump(Duration(...))` |
|
|
182
|
+
| `setState called after dispose` | Async continues after widget removed | Cancel in `dispose()` |
|
|
183
|
+
| `RenderFlex overflow` | Widget too wide for screen | Wrap with `Flexible`, `Expanded`, or `SingleChildScrollView` |
|
|
184
|
+
| BLoC state not updating | Event not dispatched | Verify `bloc.add(Event())` is called |
|
|
185
|
+
| `MissingPluginException` | Native plugin not linked | Run `flutter clean && flutter pub get` |
|
|
186
|
+
|
|
187
|
+
#### React Native
|
|
188
|
+
| Error | Likely Cause | Fix Direction |
|
|
189
|
+
|-------|-------------|---------------|
|
|
190
|
+
| `undefined is not an object` | Null prop access | Add null check / optional chaining |
|
|
191
|
+
| Metro bundler error | Cache stale | `npx react-native start --reset-cache` |
|
|
192
|
+
| `VirtualizedLists nested` | FlatList inside ScrollView | Use `nestedScrollEnabled` or restructure |
|
|
193
|
+
| Navigation `undefined` | `useNavigation` outside navigator | Wrap component inside correct navigator |
|
|
194
|
+
| `act(...)` warning | Async state update in test | Wrap in `act(async () => {...})` |
|
|
195
|
+
|
|
196
|
+
#### iOS / Android
|
|
197
|
+
| Error | Likely Cause | Fix Direction |
|
|
198
|
+
|-------|-------------|---------------|
|
|
199
|
+
| `SIGABRT` / `EXC_BAD_ACCESS` (iOS) | Nil dereference | Add optional binding `if let` / `guard let` |
|
|
200
|
+
| `IllegalStateException` (Android) | Lifecycle violation | Check if fragment/activity still attached |
|
|
201
|
+
| `NetworkOnMainThreadException` | Network call on UI thread | Move to coroutine / background thread |
|
|
202
|
+
| Build fails after pod install | Pod cache stale | `pod deintegrate && pod install` |
|
|
203
|
+
| `Hilt injection failed` | Missing `@AndroidEntryPoint` | Add annotation to Activity/Fragment |
|
|
204
|
+
|
|
205
|
+
## Test Failure Analysis
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
Expected: {value}
|
|
209
|
+
Actual : {value}
|
|
210
|
+
at {test}.{method}(line {N})
|
|
211
|
+
```
|
|
212
|
+
1. What is the gap? 2. Is mock setup correct? 3. Is assertion logically correct?
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Output
|
|
217
|
+
|
|
218
|
+
{{include:steps/report-footer.md}}
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
/debug Analysis
|
|
222
|
+
|
|
223
|
+
## Error
|
|
224
|
+
{description}
|
|
225
|
+
|
|
226
|
+
## Root Cause
|
|
227
|
+
{technical explanation}
|
|
228
|
+
|
|
229
|
+
## Location
|
|
230
|
+
File: {path} | Line: {N} | Layer: {Controller/Service/Repository/Test}
|
|
231
|
+
|
|
232
|
+
## Suggested Fix
|
|
233
|
+
{specific code change}
|
|
234
|
+
|
|
235
|
+
## Related Rule
|
|
236
|
+
See CLAUDE.md §{section}
|
|
237
|
+
|
|
238
|
+
## Next Step
|
|
239
|
+
- To fully fix → /fix-bug {TICKET_ID}
|
|
240
|
+
- Just needed analysis → done
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Offer to Record a Lesson (optional)
|
|
246
|
+
|
|
247
|
+
If the root cause is a **mistake the AI made when generating code and could repeat**
|
|
248
|
+
(not an environment/config issue or external cause), ask:
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
This looks like a repeatable AI mistake. Record it as a project lesson? (Y/N)
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
If `Y` → run the capture procedure below with `source=/debug`, an appropriate `category`
|
|
255
|
+
(usually `code-gen`), and `scope` = the affected domain or file glob.
|
|
256
|
+
|
|
257
|
+
{{include:steps/capture-lesson.md}}
|