@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,217 @@
|
|
|
1
|
+
# /dev-smoke-test — Smoke Test Live Service or App
|
|
2
|
+
|
|
3
|
+
Use when service/app is **already running**. Different from `/dev-run-test` (no live server needed).
|
|
4
|
+
|
|
5
|
+
## Gate
|
|
6
|
+
{{include:steps/gate.md}}
|
|
7
|
+
|
|
8
|
+
*Note: For this command, the target in Step 1 is a UC-ID from `$ARGUMENTS`. Context loading provides `conventions.service_run`, port information, and `tech_stack.module`.*
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
{{include:steps/context-loader.md}}
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Service Detection
|
|
16
|
+
|
|
17
|
+
Read `active_module` from context. Use to select the correct dev-smoke-test approach.
|
|
18
|
+
|
|
19
|
+
| Platform | Modules |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `backend` | `java-spring`, `golang`, `dotnet`, `php-laravel`, `context-engineering` |
|
|
22
|
+
| `web-frontend` | `react`, `nextjs`, `vue`, `nuxt`, `angular` |
|
|
23
|
+
| `mobile` | `flutter`, `react-native`, `ios-swiftui`, `android-compose` |
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## If `platform_type = backend`
|
|
28
|
+
|
|
29
|
+
### Phase 1 — Verify service is running
|
|
30
|
+
|
|
31
|
+
Read `conventions.service_run` from project-context.yaml to determine port.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Try common health endpoints (use whichever applies):
|
|
35
|
+
curl -s http://localhost:{port}/health # generic / Go / Node
|
|
36
|
+
curl -s http://localhost:{port}/actuator/health # Spring Boot
|
|
37
|
+
curl -s http://localhost:{port}/ping # some frameworks
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
If not running → "Start with `{conventions.service_run}` from project root."
|
|
41
|
+
|
|
42
|
+
### Phase 2 — Identify endpoints
|
|
43
|
+
|
|
44
|
+
From UC-ID → find controller/handler with `@trace.implements={UC-ID}`.
|
|
45
|
+
List: method, path, required auth/role.
|
|
46
|
+
|
|
47
|
+
### Phase 3 — Get auth token (if needed)
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Endpoint requires auth. Options:
|
|
51
|
+
1. Paste Bearer token (from Postman/DevTools)
|
|
52
|
+
2. Use test/dev token from local config
|
|
53
|
+
3. Skip — test public endpoints only
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Phase 4 — Run
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# GET
|
|
60
|
+
curl -s -X GET "http://localhost:{port}/v1/{resource}" \
|
|
61
|
+
-H "Authorization: Bearer {token}" | {JSON_FORMATTER}
|
|
62
|
+
|
|
63
|
+
# POST
|
|
64
|
+
curl -s -X POST "http://localhost:{port}/v1/{resource}" \
|
|
65
|
+
-H "Authorization: Bearer {token}" \
|
|
66
|
+
-H "Content-Type: application/json" \
|
|
67
|
+
-d '{"field1": "test_value"}'
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
| Result | Meaning |
|
|
71
|
+
|--------|---------|
|
|
72
|
+
| 200/201 + correct data | ✅ OK |
|
|
73
|
+
| 200 + wrong data | ⚠️ Logic bug → /debug |
|
|
74
|
+
| 400 | Wrong request body → check required fields |
|
|
75
|
+
| 401 | Token expired or wrong config |
|
|
76
|
+
| 403 | Wrong role → check auth rules |
|
|
77
|
+
| 500 | Server error → /debug |
|
|
78
|
+
| Connection refused | Service not running |
|
|
79
|
+
|
|
80
|
+
### If `active_module = context-engineering`
|
|
81
|
+
|
|
82
|
+
#### Phase 1 — Verify pipeline entry point is reachable
|
|
83
|
+
|
|
84
|
+
Run the prompt function directly with a minimal valid input:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Python (pytest / script):
|
|
88
|
+
python -c "from {module}.{function} import {function}; print({function}(input='{test_input}'))"
|
|
89
|
+
|
|
90
|
+
# Or using the project test command with a smoke marker:
|
|
91
|
+
{conventions.test_command} -m smoke -v
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### Phase 2 — Verify output structure
|
|
95
|
+
|
|
96
|
+
Check the output conforms to the expected schema:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Expected output schema: {output fields from @trace or tech-doc}
|
|
100
|
+
Actual output: {paste output here}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### Phase 3 — Interpret results
|
|
104
|
+
|
|
105
|
+
| Result | Meaning |
|
|
106
|
+
|--------|---------|
|
|
107
|
+
| Output matches schema | ✅ OK |
|
|
108
|
+
| Output present but wrong format | ⚠️ Logic bug → /debug |
|
|
109
|
+
| `APIError` / `AuthenticationError` | API key invalid or service unavailable |
|
|
110
|
+
| `TokenLimitError` | Input too long — check prompt template size |
|
|
111
|
+
| Exception / traceback | Code error → /debug |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## If `platform_type = web-frontend`
|
|
116
|
+
|
|
117
|
+
### Phase 1 — Verify dev server is running
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Linux / macOS:
|
|
121
|
+
curl -s -o /dev/null -w "%{http_code}" http://localhost:{port}
|
|
122
|
+
|
|
123
|
+
# Windows (cmd / PowerShell):
|
|
124
|
+
curl -s -o NUL -w "%{http_code}" http://localhost:{port}
|
|
125
|
+
|
|
126
|
+
# Should return 200. If not: start with {conventions.service_run} (e.g., npm run dev)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Phase 2 — Run E2E smoke test
|
|
130
|
+
|
|
131
|
+
Identify E2E tool in the project (Playwright or Cypress):
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Playwright — run scenarios tagged with this UC:
|
|
135
|
+
npx playwright test --grep "{UC-ID}"
|
|
136
|
+
|
|
137
|
+
# Cypress:
|
|
138
|
+
npx cypress run --spec "cypress/e2e/{UC-ID}*"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
If no E2E tests exist yet → open browser and manually verify:
|
|
142
|
+
1. Navigate to the route for this UC
|
|
143
|
+
2. Perform the main user action
|
|
144
|
+
3. Confirm the expected outcome is visible
|
|
145
|
+
|
|
146
|
+
### Phase 3 — Interpret results
|
|
147
|
+
|
|
148
|
+
| Result | Meaning |
|
|
149
|
+
|--------|---------|
|
|
150
|
+
| All E2E tests pass | ✅ OK |
|
|
151
|
+
| Assertion failed | ⚠️ Logic bug → /debug |
|
|
152
|
+
| `ERR_CONNECTION_REFUSED` | Dev server not running |
|
|
153
|
+
| API returns 4xx/5xx | Backend issue → check backend service |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## If `platform_type = mobile`
|
|
158
|
+
|
|
159
|
+
### Phase 1 — Verify device/emulator is ready
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
# Flutter:
|
|
163
|
+
flutter devices # list connected devices/emulators
|
|
164
|
+
flutter install # install current build on device
|
|
165
|
+
|
|
166
|
+
# React Native:
|
|
167
|
+
npx react-native run-android # build + install on connected Android
|
|
168
|
+
npx react-native run-ios # build + install on iOS simulator
|
|
169
|
+
|
|
170
|
+
# Android (Compose):
|
|
171
|
+
./gradlew installDebug # install APK on connected device/emulator
|
|
172
|
+
|
|
173
|
+
# iOS (SwiftUI):
|
|
174
|
+
# Open Xcode → select simulator → Product → Run
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Phase 2 — Manual dev-smoke-test checklist
|
|
178
|
+
|
|
179
|
+
For the UC under test, verify on device:
|
|
180
|
+
1. Navigate to the screen for this UC
|
|
181
|
+
2. Perform the main action from the `.feature` Scenario (`When` step)
|
|
182
|
+
3. Confirm the expected outcome is visible (`Then` step)
|
|
183
|
+
4. Check for any crash or unexpected error dialog
|
|
184
|
+
|
|
185
|
+
### Phase 3 — Capture issues if found
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
# Flutter:
|
|
189
|
+
flutter logs
|
|
190
|
+
|
|
191
|
+
# Android:
|
|
192
|
+
adb logcat -d | grep -i "error\|exception\|crash"
|
|
193
|
+
|
|
194
|
+
# iOS:
|
|
195
|
+
# Copy crash log from Xcode → Devices and Simulators → View Device Logs
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Paste output into `/debug`.
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Output
|
|
203
|
+
|
|
204
|
+
{{include:steps/report-footer.md}}
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
/dev-smoke-test Report — {UC-ID}
|
|
208
|
+
Platform: {backend | web-frontend | mobile}
|
|
209
|
+
| Endpoint / Flow | Status | Result |
|
|
210
|
+
|-----------------------|-------------|---------|
|
|
211
|
+
| {method} {path/screen}| ✅/⚠️/❌ | {notes} |
|
|
212
|
+
|
|
213
|
+
Status legend: ✅ = OK | ⚠️ = Responded but wrong data / logic bug | ❌ = Error / not running
|
|
214
|
+
|
|
215
|
+
Issues: {describe any failures}
|
|
216
|
+
Next: /debug (paste error interactively) OR /fix-bug {TICKET_ID} OR ready to PR
|
|
217
|
+
```
|