forgedev 1.2.0 → 1.3.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.
Files changed (171) hide show
  1. package/README.md +57 -10
  2. package/bin/chainproof.js +126 -0
  3. package/package.json +25 -7
  4. package/src/chainproof-bridge.js +330 -0
  5. package/src/ci-mode.js +85 -0
  6. package/src/claude-configurator.js +86 -49
  7. package/src/cli.js +30 -7
  8. package/src/composer.js +159 -34
  9. package/src/doctor-checks-chainproof.js +106 -0
  10. package/src/doctor-checks.js +39 -20
  11. package/src/doctor-prompts.js +9 -9
  12. package/src/doctor.js +37 -4
  13. package/src/guided.js +3 -3
  14. package/src/index.js +31 -10
  15. package/src/init-mode.js +64 -11
  16. package/src/menu.js +178 -0
  17. package/src/prompts.js +5 -12
  18. package/src/recommender.js +134 -10
  19. package/src/scanner.js +57 -2
  20. package/src/uat-generator.js +204 -189
  21. package/src/update-check.js +9 -4
  22. package/src/update.js +1 -1
  23. package/src/utils.js +64 -5
  24. package/templates/ai/guardrails-py/backend/app/ai/__init__.py +29 -0
  25. package/templates/ai/guardrails-py/backend/app/ai/audit_log.py +133 -0
  26. package/templates/ai/guardrails-py/backend/app/ai/client.py.template +323 -0
  27. package/templates/ai/guardrails-py/backend/app/ai/health.py.template +157 -0
  28. package/templates/ai/guardrails-py/backend/app/ai/input_guard.py +98 -0
  29. package/templates/ai/guardrails-ts/src/lib/ai/audit-log.ts.template +164 -0
  30. package/templates/ai/guardrails-ts/src/lib/ai/client.ts.template +403 -0
  31. package/templates/ai/guardrails-ts/src/lib/ai/health.ts.template +165 -0
  32. package/templates/ai/guardrails-ts/src/lib/ai/index.ts.template +17 -0
  33. package/templates/ai/guardrails-ts/src/lib/ai/input-guard.ts.template +124 -0
  34. package/templates/auth/nextauth/src/lib/auth.ts.template +12 -7
  35. package/templates/backend/express/Dockerfile.template +18 -0
  36. package/templates/backend/express/package.json.template +33 -0
  37. package/templates/backend/express/src/index.ts.template +34 -0
  38. package/templates/backend/express/src/routes/health.ts.template +27 -0
  39. package/templates/backend/express/tsconfig.json +17 -0
  40. package/templates/backend/fastapi/backend/Dockerfile.template +5 -0
  41. package/templates/backend/fastapi/backend/app/api/health.py.template +1 -1
  42. package/templates/backend/fastapi/backend/app/core/config.py.template +1 -1
  43. package/templates/backend/fastapi/backend/app/core/errors.py +1 -1
  44. package/templates/backend/fastapi/backend/app/main.py.template +3 -1
  45. package/templates/backend/fastapi/backend/requirements.txt.template +2 -0
  46. package/templates/backend/hono/Dockerfile.template +18 -0
  47. package/templates/backend/hono/package.json.template +31 -0
  48. package/templates/backend/hono/src/index.ts.template +32 -0
  49. package/templates/backend/hono/src/routes/health.ts.template +27 -0
  50. package/templates/backend/hono/tsconfig.json +18 -0
  51. package/templates/base/docs/uat/UAT_TEMPLATE.md.template +1 -1
  52. package/templates/chainproof/base/.chainproof/config.json.template +11 -0
  53. package/templates/chainproof/base/.chainproof/mcp-server.mjs +310 -0
  54. package/templates/chainproof/base/.mcp.json +9 -0
  55. package/templates/chainproof/fastapi/.chainproof/middleware.json.template +14 -0
  56. package/templates/chainproof/nextjs/.chainproof/hooks.json.template +19 -0
  57. package/templates/chainproof/polyglot/.chainproof/config.json.template +21 -0
  58. package/templates/claude-code/agents/architect.md +25 -11
  59. package/templates/claude-code/agents/build-error-resolver.md +19 -5
  60. package/templates/claude-code/agents/chief-of-staff.md +42 -8
  61. package/templates/claude-code/agents/code-quality-reviewer.md +14 -0
  62. package/templates/claude-code/agents/database-reviewer.md +15 -1
  63. package/templates/claude-code/agents/deep-reviewer.md +191 -0
  64. package/templates/claude-code/agents/doc-updater.md +19 -5
  65. package/templates/claude-code/agents/docs-lookup.md +19 -5
  66. package/templates/claude-code/agents/e2e-runner.md +26 -12
  67. package/templates/claude-code/agents/enforcement-gate.md +102 -0
  68. package/templates/claude-code/agents/frontend-builder.md +188 -0
  69. package/templates/claude-code/agents/harness-optimizer.md +36 -1
  70. package/templates/claude-code/agents/loop-operator.md +27 -13
  71. package/templates/claude-code/agents/planner.md +21 -7
  72. package/templates/claude-code/agents/product-strategist.md +24 -10
  73. package/templates/claude-code/agents/production-readiness.md +14 -0
  74. package/templates/claude-code/agents/prompt-auditor.md +115 -0
  75. package/templates/claude-code/agents/refactor-cleaner.md +22 -8
  76. package/templates/claude-code/agents/security-reviewer.md +14 -0
  77. package/templates/claude-code/agents/spec-validator.md +15 -1
  78. package/templates/claude-code/agents/tdd-guide.md +21 -7
  79. package/templates/claude-code/agents/uat-validator.md +14 -0
  80. package/templates/claude-code/claude-md/base.md +14 -7
  81. package/templates/claude-code/claude-md/fastapi.md +8 -8
  82. package/templates/claude-code/claude-md/fullstack.md +6 -6
  83. package/templates/claude-code/claude-md/hono.md +18 -0
  84. package/templates/claude-code/claude-md/nextjs.md +5 -5
  85. package/templates/claude-code/claude-md/remix.md +18 -0
  86. package/templates/claude-code/commands/audit-security.md +14 -0
  87. package/templates/claude-code/commands/audit-spec.md +14 -0
  88. package/templates/claude-code/commands/audit-wiring.md +14 -0
  89. package/templates/claude-code/commands/build-fix.md +28 -0
  90. package/templates/claude-code/commands/build-ui.md +59 -0
  91. package/templates/claude-code/commands/code-review.md +53 -31
  92. package/templates/claude-code/commands/fix-loop.md +211 -0
  93. package/templates/claude-code/commands/full-audit.md +36 -8
  94. package/templates/claude-code/commands/generate-prd.md +1 -1
  95. package/templates/claude-code/commands/generate-sdd.md +74 -0
  96. package/templates/claude-code/commands/generate-uat.md +107 -35
  97. package/templates/claude-code/commands/help.md +68 -0
  98. package/templates/claude-code/commands/live-uat.md +268 -0
  99. package/templates/claude-code/commands/optimize-claude-md.md +15 -1
  100. package/templates/claude-code/commands/plan.md +3 -3
  101. package/templates/claude-code/commands/pre-pr.md +57 -19
  102. package/templates/claude-code/commands/product-strategist.md +21 -0
  103. package/templates/claude-code/commands/resume-session.md +10 -10
  104. package/templates/claude-code/commands/run-uat.md +59 -2
  105. package/templates/claude-code/commands/save-session.md +10 -10
  106. package/templates/claude-code/commands/simplify.md +36 -0
  107. package/templates/claude-code/commands/tdd.md +17 -18
  108. package/templates/claude-code/commands/verify-all.md +24 -0
  109. package/templates/claude-code/commands/verify-intent.md +55 -0
  110. package/templates/claude-code/commands/workflows.md +52 -40
  111. package/templates/claude-code/hooks/polyglot.json +10 -1
  112. package/templates/claude-code/hooks/python.json +10 -1
  113. package/templates/claude-code/hooks/scripts/autofix-polyglot.mjs +2 -2
  114. package/templates/claude-code/hooks/scripts/autofix-python.mjs +1 -1
  115. package/templates/claude-code/hooks/scripts/autofix-typescript.mjs +1 -1
  116. package/templates/claude-code/hooks/scripts/code-hygiene.mjs +293 -0
  117. package/templates/claude-code/hooks/scripts/pre-commit-gate.mjs +207 -0
  118. package/templates/claude-code/hooks/typescript.json +10 -1
  119. package/templates/claude-code/skills/ai-prompts/SKILL.md +119 -41
  120. package/templates/claude-code/skills/git-workflow/SKILL.md +5 -5
  121. package/templates/claude-code/skills/nextjs/SKILL.md +1 -1
  122. package/templates/claude-code/skills/playwright/SKILL.md +5 -5
  123. package/templates/claude-code/skills/security-api/SKILL.md +1 -1
  124. package/templates/claude-code/skills/security-web/SKILL.md +1 -1
  125. package/templates/claude-code/skills/testing-patterns/SKILL.md +9 -9
  126. package/templates/database/prisma-postgres/{.env.example → .env.example.template} +1 -0
  127. package/templates/database/sqlalchemy-postgres/{.env.example → .env.example.template} +1 -0
  128. package/templates/docs-portal/fastapi/backend/app/portal/__pycache__/docs_reader.cpython-314.pyc +0 -0
  129. package/templates/docs-portal/fastapi/backend/app/portal/docs_reader.py +201 -0
  130. package/templates/docs-portal/fastapi/backend/app/portal/html_renderer.py +229 -0
  131. package/templates/docs-portal/fastapi/backend/app/portal/router.py.template +35 -0
  132. package/templates/docs-portal/nextjs/src/app/portal/[category]/[slug]/page.tsx +81 -0
  133. package/templates/docs-portal/nextjs/src/app/portal/[category]/page.tsx +65 -0
  134. package/templates/docs-portal/nextjs/src/app/portal/layout.tsx.template +54 -0
  135. package/templates/docs-portal/nextjs/src/app/portal/page.tsx +85 -0
  136. package/templates/docs-portal/nextjs/src/components/portal/markdown-renderer.tsx +101 -0
  137. package/templates/docs-portal/nextjs/src/components/portal/mobile-portal-nav.tsx +81 -0
  138. package/templates/docs-portal/nextjs/src/components/portal/portal-nav.tsx +86 -0
  139. package/templates/docs-portal/nextjs/src/lib/docs.ts +139 -0
  140. package/templates/frontend/nextjs/package.json.template +3 -1
  141. package/templates/frontend/react/index.html.template +12 -0
  142. package/templates/frontend/react/package.json.template +34 -0
  143. package/templates/frontend/react/src/App.tsx.template +10 -0
  144. package/templates/frontend/react/src/index.css +1 -0
  145. package/templates/frontend/react/src/main.tsx +10 -0
  146. package/templates/frontend/react/tsconfig.json +17 -0
  147. package/templates/frontend/react/vite.config.ts.template +15 -0
  148. package/templates/frontend/react/vitest.config.ts +9 -0
  149. package/templates/frontend/remix/app/root.tsx.template +31 -0
  150. package/templates/frontend/remix/app/routes/_index.tsx.template +19 -0
  151. package/templates/frontend/remix/app/routes/api.health.ts.template +10 -0
  152. package/templates/frontend/remix/app/tailwind.css +1 -0
  153. package/templates/frontend/remix/package.json.template +39 -0
  154. package/templates/frontend/remix/tsconfig.json +18 -0
  155. package/templates/frontend/remix/vite.config.ts.template +7 -0
  156. package/templates/infra/github-actions/.github/workflows/ci.yml.template +3 -0
  157. package/docs/00-README.md +0 -310
  158. package/docs/01-universal-prompt-library.md +0 -1049
  159. package/docs/02-claude-code-mastery-playbook.md +0 -283
  160. package/docs/03-multi-agent-verification.md +0 -565
  161. package/docs/04-errata-and-verification-checklist.md +0 -284
  162. package/docs/05-universal-scaffolder-vision.md +0 -452
  163. package/docs/06-confidence-assessment-and-repo-prompt.md +0 -407
  164. package/docs/errata.md +0 -58
  165. package/docs/multi-agent-verification.md +0 -66
  166. package/docs/playbook.md +0 -95
  167. package/docs/prompt-library.md +0 -160
  168. package/docs/uat/UAT_CHECKLIST.csv +0 -9
  169. package/docs/uat/UAT_TEMPLATE.md +0 -163
  170. package/templates/claude-code/commands/done.md +0 -19
  171. /package/{docs/plans/.gitkeep → templates/docs-portal/fastapi/backend/app/portal/__init__.py} +0 -0
@@ -1,160 +0,0 @@
1
- # DevForge Prompt Library
2
-
3
- 8 workflow guides for developing DevForge. Each workflow includes the exact prompts to use.
4
-
5
- ---
6
-
7
- ## Flow 1: Add a New Stack
8
-
9
- When you want to add support for a new tech stack (e.g., Hono, React+Vite, Express).
10
-
11
- **Step 1: Plan**
12
- ```
13
- I want to add [stack] support to DevForge. Enter plan mode. Research:
14
- 1. What files/directories are needed for a typical [stack] project
15
- 2. What dependencies go in package.json / requirements.txt
16
- 3. What the recommender decision tree should look like
17
- Write a plan to docs/plans/add-[stack].md
18
- ```
19
-
20
- **Step 2: Templates**
21
- ```
22
- Following the plan in docs/plans/add-[stack].md, create template files in
23
- templates/[category]/[stack]/. Use {{VARIABLE_NAME}} for substitution.
24
- Follow the patterns in existing templates like templates/frontend/nextjs/.
25
- ```
26
-
27
- **Step 3: Recommender**
28
- ```
29
- Update src/recommender.js to route to the new [stack] templates.
30
- Add the new templateModules paths. Update formatStackSummary.
31
- ```
32
-
33
- **Step 4: Test**
34
- ```
35
- Add tests in tests/recommender.test.js for the new stack routing.
36
- Run npx vitest run to verify all tests pass.
37
- ```
38
-
39
- ---
40
-
41
- ## Flow 2: Create a New Template
42
-
43
- When adding individual template files to an existing stack.
44
-
45
- ```
46
- I want to add a [template] to the [stack] stack. Create the template file at
47
- templates/[category]/[stack]/[path]. Use {{VARIABLE_NAME}} placeholders where
48
- the project name, description, or config values should go. Check
49
- src/composer.js buildVariables() for available variables.
50
- ```
51
-
52
- ---
53
-
54
- ## Flow 3: Fix a Bug
55
-
56
- **Step 1: Reproduce**
57
- ```
58
- There's a bug: [describe]. Write a failing test in tests/ that reproduces it.
59
- Run npx vitest run to confirm the test fails.
60
- ```
61
-
62
- **Step 2: Fix**
63
- ```
64
- Fix the bug that causes [test name] to fail. Run npx vitest run to confirm
65
- the fix and that no other tests break.
66
- ```
67
-
68
- ---
69
-
70
- ## Flow 4: Refactor
71
-
72
- ```
73
- I want to refactor [module/function]. Enter plan mode. First:
74
- 1. Check test coverage for the code being refactored
75
- 2. Add tests for any uncovered behavior
76
- 3. Plan the refactoring steps (each should keep tests green)
77
- Write a plan to docs/plans/refactor-[module].md
78
- ```
79
-
80
- ---
81
-
82
- ## Flow 5: Add a Feature
83
-
84
- For features that touch multiple modules (prompts, recommender, composer, configurator).
85
-
86
- **Step 1: Plan**
87
- ```
88
- I want to add [feature] to DevForge. Enter plan mode. Trace through:
89
- - src/prompts.js — does the user need to be asked anything new?
90
- - src/recommender.js — does the decision tree change?
91
- - src/composer.js — are new template variables needed?
92
- - src/claude-configurator.js — does the generated infrastructure change?
93
- - src/uat-generator.js — do UAT scenarios need updating?
94
- Write a plan to docs/plans/[feature].md
95
- ```
96
-
97
- **Step 2: Implement**
98
- ```
99
- Following docs/plans/[feature].md, implement the feature. Work module by module.
100
- Run npx vitest run after each module change.
101
- ```
102
-
103
- ---
104
-
105
- ## Flow 6: Verification
106
-
107
- ```
108
- Run /project:verify-all
109
- ```
110
-
111
- This launches all 5 agents (code-quality, security, spec-validator, production-readiness, uat-validator) and runs tests.
112
-
113
- ---
114
-
115
- ## Flow 7: Pre-PR
116
-
117
- ```
118
- Run /project:pre-pr
119
- ```
120
-
121
- This runs tests, smoke test, code quality review, security review, and checks for staged secrets.
122
-
123
- ---
124
-
125
- ## Flow 8: UAT
126
-
127
- ```
128
- Run /project:run-uat
129
- ```
130
-
131
- This reads docs/uat/UAT_TEMPLATE.md, maps scenarios to tests, runs them, and updates UAT_CHECKLIST.csv.
132
-
133
- ---
134
-
135
- ## Utility Prompts
136
-
137
- ### "I'm lost"
138
- ```
139
- Read CLAUDE.md, git log --oneline -10, and git status. Tell me where I am,
140
- what I was working on, and what I should do next.
141
- ```
142
-
143
- ### "Is this right?"
144
- ```
145
- Review my changes (git diff). Check if they follow DevForge patterns:
146
- ESM imports with .js extensions, chalk for output, path.join for paths,
147
- {{VARIABLE}} for templates. Flag anything that looks wrong.
148
- ```
149
-
150
- ### "Before I PR"
151
- ```
152
- Run /project:pre-pr
153
- ```
154
-
155
- ### "Explain this code"
156
- ```
157
- Read [file] and explain what it does, how it fits into the DevForge pipeline
158
- (prompts → recommender → composer → configurator → uat-generator), and what
159
- calls it.
160
- ```
@@ -1,9 +0,0 @@
1
- UAT_ID,Scenario,Priority,Automated,Test_File,Status,Last_Run,Notes
2
- UAT-001,Scaffold Next.js Full-Stack,P0,PARTIAL,tests/composer.test.js,NOT RUN,,Manual smoke test required
3
- UAT-002,Scaffold FastAPI Backend,P0,PARTIAL,tests/composer.test.js,NOT RUN,,Manual smoke test required
4
- UAT-003,Scaffold Polyglot Full-Stack,P0,PARTIAL,tests/composer.test.js,NOT RUN,,Manual smoke test required
5
- UAT-004,Recommender Selects Correct Stack,P0,YES,tests/recommender.test.js,NOT RUN,,
6
- UAT-005,Template Variable Substitution,P0,YES,tests/composer.test.js,NOT RUN,,
7
- UAT-006,Claude Code Infrastructure Generated,P1,YES,tests/claude-configurator.test.js,NOT RUN,,
8
- UAT-007,Invalid Input Handling,P1,NO,,NOT RUN,,Manual test required
9
- UAT-008,Unsupported Stack Selection,P1,PARTIAL,tests/recommender.test.js,NOT RUN,,
@@ -1,163 +0,0 @@
1
- # UAT Scenario Pack: DevForge
2
-
3
- ## Pre-Conditions
4
- - [ ] Node.js >= 18 installed
5
- - [ ] npm available
6
- - [ ] DevForge dependencies installed (`npm install`)
7
- - [ ] No existing `test-output/` directory
8
-
9
- ## Scenarios
10
-
11
- ### UAT-001: Scaffold Next.js Full-Stack Project — Happy Path
12
- **Priority:** P0
13
- **Preconditions:** Clean environment, no test-output/ directory
14
- **Steps:**
15
- 1. Run `node bin/devforge.js test-output`
16
- 2. Select "Full-stack app"
17
- 3. Select "TypeScript" for language
18
- 4. Select "Yes" for authentication
19
- 5. Select "No" for AI integration
20
- 6. Select "Docker" for deployment
21
- 7. Confirm the recommended stack
22
- **Expected Result:**
23
- - `test-output/` directory created
24
- - Contains `package.json` with Next.js, React, TypeScript, Tailwind, Prisma, NextAuth dependencies
25
- - Contains `src/app/layout.tsx`, `src/app/page.tsx`
26
- - Contains `src/app/api/health/route.ts` (health check endpoint)
27
- - Contains `prisma/schema.prisma`
28
- - Contains `.claude/` directory with hooks, agents, commands
29
- - Contains `CLAUDE.md` with Next.js-specific rules
30
- - Contains `docs/uat/UAT_TEMPLATE.md`
31
- **Actual Result:** ___
32
- **Status:** NOT RUN
33
- **Tester:** ___
34
- **Date:** ___
35
- **Notes:** ___
36
-
37
- ### UAT-002: Scaffold FastAPI Backend Project — Happy Path
38
- **Priority:** P0
39
- **Preconditions:** Clean environment, no test-output/ directory
40
- **Steps:**
41
- 1. Run `node bin/devforge.js test-output`
42
- 2. Select "API / backend service"
43
- 3. Select "Python" for language
44
- 4. Select "Yes" for authentication
45
- 5. Select "No" for AI integration
46
- 6. Select "Docker" for deployment
47
- 7. Confirm the recommended stack
48
- **Expected Result:**
49
- - `test-output/` directory created
50
- - Contains `backend/requirements.txt` with FastAPI, SQLAlchemy, Pydantic
51
- - Contains `backend/app/main.py` with health endpoint and graceful shutdown
52
- - Contains `backend/app/api/health.py`
53
- - Contains `backend/app/core/config.py`, `errors.py`, `retry.py`
54
- - Contains `backend/tests/` with pytest fixtures
55
- - Contains `.claude/` directory with Python-specific hooks
56
- - Contains `CLAUDE.md` with FastAPI-specific rules
57
- **Actual Result:** ___
58
- **Status:** NOT RUN
59
- **Tester:** ___
60
- **Date:** ___
61
- **Notes:** ___
62
-
63
- ### UAT-003: Scaffold Polyglot Full-Stack Project — Happy Path
64
- **Priority:** P0
65
- **Preconditions:** Clean environment, no test-output/ directory
66
- **Steps:**
67
- 1. Run `node bin/devforge.js test-output`
68
- 2. Select "Full-stack app"
69
- 3. Select "TypeScript" and "Python" for language
70
- 4. Select "Yes" for authentication
71
- 5. Select "Yes" for AI integration
72
- 6. Select "Docker" for deployment
73
- 7. Confirm the recommended stack
74
- **Expected Result:**
75
- - `test-output/` directory created
76
- - Contains both `frontend/` and `backend/` directories
77
- - Contains `docker-compose.yml` at root
78
- - Contains Next.js frontend and FastAPI backend
79
- - Contains both Prisma and SQLAlchemy database configs
80
- - Contains polyglot Claude Code hooks (TypeScript + Python)
81
- **Actual Result:** ___
82
- **Status:** NOT RUN
83
- **Tester:** ___
84
- **Date:** ___
85
- **Notes:** ___
86
-
87
- ### UAT-004: Recommender Selects Correct Stack
88
- **Priority:** P0
89
- **Preconditions:** None
90
- **Steps:**
91
- 1. Run `npx vitest run tests/recommender.test.js`
92
- 2. Verify all test cases pass
93
- 3. Verify: web_app + TypeScript → Next.js full-stack
94
- 4. Verify: api_service + Python → FastAPI backend
95
- 5. Verify: full_stack + TS + Python → polyglot
96
- 6. Verify: unsupported combos return helpful error
97
- **Expected Result:** All recommender tests pass, all 3 stacks correctly selected
98
- **Actual Result:** ___
99
- **Status:** NOT RUN
100
- **Tester:** ___
101
- **Date:** ___
102
- **Notes:** ___
103
-
104
- ### UAT-005: Template Variable Substitution
105
- **Priority:** P0
106
- **Preconditions:** None
107
- **Steps:**
108
- 1. Run `npx vitest run tests/composer.test.js`
109
- 2. Verify `{{PROJECT_NAME}}` replaced in all .template files
110
- 3. Verify non-.template files copied without modification
111
- 4. Verify .gitkeep files preserved
112
- 5. Verify no `{{` patterns remain in output
113
- **Expected Result:** All composer tests pass, variables correctly substituted
114
- **Actual Result:** ___
115
- **Status:** NOT RUN
116
- **Tester:** ___
117
- **Date:** ___
118
- **Notes:** ___
119
-
120
- ### UAT-006: Claude Code Infrastructure Generated
121
- **Priority:** P1
122
- **Preconditions:** Scaffold a project first
123
- **Steps:**
124
- 1. Run `npx vitest run tests/claude-configurator.test.js`
125
- 2. Verify `.claude/settings.json` created with correct hooks
126
- 3. Verify CLAUDE.md generated with stack-specific content
127
- 4. Verify agents copied (5 agents)
128
- 5. Verify skills copied (filtered by stack)
129
- 6. Verify commands copied (6 commands)
130
- **Expected Result:** All claude-configurator tests pass, infrastructure complete
131
- **Actual Result:** ___
132
- **Status:** NOT RUN
133
- **Tester:** ___
134
- **Date:** ___
135
- **Notes:** ___
136
-
137
- ### UAT-007: Invalid Input Handling
138
- **Priority:** P1
139
- **Preconditions:** None
140
- **Steps:**
141
- 1. Run `node bin/devforge.js` (no project name) — should show error
142
- 2. Run `node bin/devforge.js .` (invalid name) — should show error
143
- 3. Create `test-output/` dir, then run `node bin/devforge.js test-output` — should warn about existing dir
144
- **Expected Result:** Clear error messages, no crashes, exit code 1
145
- **Actual Result:** ___
146
- **Status:** NOT RUN
147
- **Tester:** ___
148
- **Date:** ___
149
- **Notes:** ___
150
-
151
- ### UAT-008: Unsupported Stack Selection
152
- **Priority:** P1
153
- **Preconditions:** None
154
- **Steps:**
155
- 1. Run `node bin/devforge.js test-output`
156
- 2. Select "Mobile app" or "Desktop app"
157
- 3. Observe the recommendation
158
- **Expected Result:** Displays message that the stack is not yet supported in V1, suggests closest supported option
159
- **Actual Result:** ___
160
- **Status:** NOT RUN
161
- **Tester:** ___
162
- **Date:** ___
163
- **Notes:** ___
@@ -1,19 +0,0 @@
1
- Verify that the current task is actually complete before moving on.
2
-
3
- ## Checklist
4
-
5
- 1. Run lint and confirm it passes: `{{LINT_COMMAND}}`
6
- 2. Run type check and confirm it passes: `{{TYPE_CHECK_COMMAND}}`
7
- 3. Run tests and confirm they pass: `{{TEST_COMMAND}}`
8
- 4. Check that no `.env` files or secrets are in the changes
9
- 5. Review the git diff to make sure only intended files changed
10
- 6. Verify the feature works as described (manual check or UAT scenario)
11
-
12
- ## Output
13
-
14
- If everything passes:
15
- ```
16
- Task complete. Ready to commit or move on.
17
- ```
18
-
19
- If something fails, explain what needs to be fixed before the task can be considered done.