agentic-dev 0.1.0 → 0.2.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 (677) hide show
  1. package/.agent/prd.json +29 -0
  2. package/.agent/progress.txt +1 -0
  3. package/.agent/prompt.md +21 -0
  4. package/.agent/ralph-loop-state.json +13 -0
  5. package/.agent/ralph-supervisor-state.json +12 -0
  6. package/.agent/ralph-supervisor.sh +238 -0
  7. package/.agent/ralph.sh +305 -0
  8. package/.agent/runs/README.md +7 -0
  9. package/.agent/sdd-build-ast-audit.json +13 -0
  10. package/.claude/CLAUDE.md +44 -0
  11. package/.claude/agentic-dev.json +3 -0
  12. package/.claude/agents/ai-dev.md +27 -0
  13. package/.claude/agents/backend-dev.md +26 -0
  14. package/.claude/agents/db-dev.md +26 -0
  15. package/.claude/agents/devops.md +27 -0
  16. package/.claude/agents/frontend-dev.md +25 -0
  17. package/.claude/agents/github-ops.md +25 -0
  18. package/.claude/agents/test-dev.md +26 -0
  19. package/.claude/agents/uiux-designer.md +25 -0
  20. package/.claude/settings.json +49 -0
  21. package/.claude/settings.local.json +8 -0
  22. package/.claude/skills/commit/SKILL.md +37 -0
  23. package/.claude/skills/dev-browser/SKILL.md +30 -0
  24. package/.claude/skills/otro/SKILL.md +43 -0
  25. package/.claude/skills/planning-with-files/SKILL.md +37 -0
  26. package/.claude/skills/prd/SKILL.md +27 -0
  27. package/.claude/skills/ralph-loop/SKILL.md +42 -0
  28. package/.claude/skills/sdd/SKILL.md +13 -0
  29. package/.claude/skills/sdd-dev/SKILL.md +71 -0
  30. package/.claude/skills/sdd-development/SKILL.md +13 -0
  31. package/.claude/workspace-config.json +3 -0
  32. package/.codex/agentic-dev.json +3 -0
  33. package/.codex/agents/README.md +22 -0
  34. package/.codex/agents/api.toml +11 -0
  35. package/.codex/agents/architecture.toml +11 -0
  36. package/.codex/agents/ci.toml +11 -0
  37. package/.codex/agents/gitops.toml +11 -0
  38. package/.codex/agents/orchestrator.toml +11 -0
  39. package/.codex/agents/quality.toml +11 -0
  40. package/.codex/agents/runtime.toml +11 -0
  41. package/.codex/agents/security.toml +11 -0
  42. package/.codex/agents/specs.toml +11 -0
  43. package/.codex/agents/ui.toml +11 -0
  44. package/.codex/config.toml +46 -0
  45. package/.codex/skills/SKILL.md +13 -0
  46. package/.codex/skills/agents/openai.yaml +4 -0
  47. package/.codex/skills/commit/SKILL.md +219 -0
  48. package/.codex/skills/commit/references/commit_examples.md +292 -0
  49. package/.codex/skills/dev-browser/SKILL.md +211 -0
  50. package/.codex/skills/dev-browser/bun.lock +443 -0
  51. package/.codex/skills/dev-browser/package-lock.json +2988 -0
  52. package/.codex/skills/dev-browser/package.json +31 -0
  53. package/.codex/skills/dev-browser/references/scraping.md +155 -0
  54. package/.codex/skills/dev-browser/scripts/start-relay.ts +32 -0
  55. package/.codex/skills/dev-browser/scripts/start-server.ts +117 -0
  56. package/.codex/skills/dev-browser/server.sh +24 -0
  57. package/.codex/skills/dev-browser/src/client.ts +474 -0
  58. package/.codex/skills/dev-browser/src/index.ts +287 -0
  59. package/.codex/skills/dev-browser/src/relay.ts +731 -0
  60. package/.codex/skills/dev-browser/src/snapshot/__tests__/snapshot.test.ts +223 -0
  61. package/.codex/skills/dev-browser/src/snapshot/browser-script.ts +877 -0
  62. package/.codex/skills/dev-browser/src/snapshot/index.ts +14 -0
  63. package/.codex/skills/dev-browser/src/snapshot/inject.ts +13 -0
  64. package/.codex/skills/dev-browser/src/types.ts +34 -0
  65. package/.codex/skills/dev-browser/tsconfig.json +36 -0
  66. package/.codex/skills/dev-browser/vitest.config.ts +12 -0
  67. package/.codex/skills/otro/SKILL.md +74 -0
  68. package/.codex/skills/otro/agents/openai.yaml +4 -0
  69. package/.codex/skills/otro/references/agent-prompts.md +61 -0
  70. package/.codex/skills/otro/references/contracts.md +146 -0
  71. package/.codex/skills/otro/references/orchestration-loop.md +51 -0
  72. package/.codex/skills/otro/references/runtime.md +79 -0
  73. package/.codex/skills/otro/runs/README.md +11 -0
  74. package/.codex/skills/otro/schemas/step_plan.schema.json +289 -0
  75. package/.codex/skills/otro/schemas/task_result.schema.json +142 -0
  76. package/.codex/skills/otro/schemas/wave_plan.schema.json +4 -0
  77. package/.codex/skills/otro/scripts/README.md +38 -0
  78. package/.codex/skills/otro/scripts/bump_validation_header.py +179 -0
  79. package/.codex/skills/otro/scripts/check_validation_header.py +84 -0
  80. package/.codex/skills/otro/scripts/common.py +303 -0
  81. package/.codex/skills/otro/scripts/init_run.sh +68 -0
  82. package/.codex/skills/otro/scripts/plan_loop.py +8 -0
  83. package/.codex/skills/otro/scripts/plan_step.py +367 -0
  84. package/.codex/skills/otro/scripts/plan_wave.py +8 -0
  85. package/.codex/skills/otro/scripts/reconcile_loop.py +8 -0
  86. package/.codex/skills/otro/scripts/reconcile_step.py +37 -0
  87. package/.codex/skills/otro/scripts/reconcile_wave.py +8 -0
  88. package/.codex/skills/otro/scripts/run_loop.py +300 -0
  89. package/.codex/skills/otro/scripts/run_loop_step.py +8 -0
  90. package/.codex/skills/otro/scripts/run_step.py +246 -0
  91. package/.codex/skills/otro/scripts/run_wave.py +8 -0
  92. package/.codex/skills/otro/validation/validation.md +15 -0
  93. package/.codex/skills/planning-with-files/SKILL.md +42 -0
  94. package/.codex/skills/planning-with-files/agents/openai.yaml +4 -0
  95. package/.codex/skills/planning-with-files/assets/plan-template.md +37 -0
  96. package/.codex/skills/planning-with-files/references/plan-rules.md +35 -0
  97. package/.codex/skills/planning-with-files/scripts/new_plan.sh +65 -0
  98. package/.codex/skills/prd/SKILL.md +235 -0
  99. package/.codex/skills/ralph-loop/SKILL.md +46 -0
  100. package/.codex/skills/ralph-loop/agents/openai.yaml +4 -0
  101. package/.codex/skills/ralph-loop/references/failure-triage.md +32 -0
  102. package/.codex/skills/ralph-loop/scripts/loop_until_success.sh +97 -0
  103. package/.codex/skills/sdd/SKILL.md +184 -0
  104. package/.codex/skills/sdd/agents/openai.yaml +4 -0
  105. package/.codex/skills/sdd/references/section-map.md +67 -0
  106. package/.dockerignore +8 -0
  107. package/.env.example +50 -0
  108. package/.gitignore +16 -0
  109. package/AGENTS.md +78 -0
  110. package/README.md +83 -47
  111. package/SDD_SKILL.md +589 -0
  112. package/bin/agentic-dev.mjs +97 -0
  113. package/client/admin/.dockerignore +3 -0
  114. package/client/admin/.env.example +1 -0
  115. package/client/admin/Dockerfile +16 -0
  116. package/client/admin/Dockerfile.dev +18 -0
  117. package/client/admin/README.md +20 -0
  118. package/client/admin/index.html +12 -0
  119. package/client/admin/package.json +41 -0
  120. package/client/admin/postcss.config.js +6 -0
  121. package/client/admin/scripts/ui-parity-admin-adapter.mjs +65 -0
  122. package/client/admin/src/api/alerts.ts +33 -0
  123. package/client/admin/src/api/client.ts +71 -0
  124. package/client/admin/src/api/orders.ts +33 -0
  125. package/client/admin/src/api/support.ts +11 -0
  126. package/client/admin/src/app/App.tsx +23 -0
  127. package/client/admin/src/auth/AuthProvider.tsx +122 -0
  128. package/client/admin/src/auth/ProtectedRoute.tsx +22 -0
  129. package/client/admin/src/auth/auth-client.ts +38 -0
  130. package/client/admin/src/auth/types.ts +18 -0
  131. package/client/admin/src/components/AdminNotificationsDrawer.tsx +162 -0
  132. package/client/admin/src/components/AdminShell.tsx +76 -0
  133. package/client/admin/src/components/ui/button.tsx +34 -0
  134. package/client/admin/src/components/ui/input.tsx +21 -0
  135. package/client/admin/src/lib/cn.ts +6 -0
  136. package/client/admin/src/lib/specRouteCatalog.json +30 -0
  137. package/client/admin/src/lib/specScreens.json +22 -0
  138. package/client/admin/src/main.tsx +17 -0
  139. package/client/admin/src/pages/AdminDashboardPage.tsx +171 -0
  140. package/client/admin/src/pages/AdminLoginPage.tsx +75 -0
  141. package/client/admin/src/pages/AdminQueuePage.tsx +107 -0
  142. package/client/admin/src/pages/AdminSupportPage.tsx +61 -0
  143. package/client/admin/src/styles/globals.css +17 -0
  144. package/client/admin/src/theme-vars.ts +18 -0
  145. package/client/admin/src/theme.ts +25 -0
  146. package/client/admin/src/vite-env.d.ts +1 -0
  147. package/client/admin/tailwind.config.js +8 -0
  148. package/client/admin/tsconfig.json +25 -0
  149. package/client/admin/vite.config.ts +12 -0
  150. package/client/landing/.dockerignore +3 -0
  151. package/client/landing/.env.example +1 -0
  152. package/client/landing/Dockerfile +16 -0
  153. package/client/landing/Dockerfile.dev +18 -0
  154. package/client/landing/README.md +18 -0
  155. package/client/landing/index.html +12 -0
  156. package/client/landing/package.json +41 -0
  157. package/client/landing/postcss.config.js +6 -0
  158. package/client/landing/scripts/ui-parity-landing-adapter.mjs +65 -0
  159. package/client/landing/src/App.tsx +21 -0
  160. package/client/landing/src/api/catalog.ts +30 -0
  161. package/client/landing/src/api/client.ts +30 -0
  162. package/client/landing/src/auth/AuthProvider.tsx +122 -0
  163. package/client/landing/src/auth/ProtectedRoute.tsx +22 -0
  164. package/client/landing/src/auth/auth-client.ts +38 -0
  165. package/client/landing/src/auth/types.ts +18 -0
  166. package/client/landing/src/components/LandingShell.tsx +34 -0
  167. package/client/landing/src/lib/specRouteCatalog.json +23 -0
  168. package/client/landing/src/lib/specScreens.json +17 -0
  169. package/client/landing/src/main.tsx +17 -0
  170. package/client/landing/src/pages/LandingHomePage.tsx +215 -0
  171. package/client/landing/src/pages/LandingLoginPage.tsx +90 -0
  172. package/client/landing/src/pages/LandingWorkspacePage.tsx +126 -0
  173. package/client/landing/src/styles/globals.css +17 -0
  174. package/client/landing/src/theme-vars.ts +16 -0
  175. package/client/landing/src/theme.ts +21 -0
  176. package/client/landing/src/vite-env.d.ts +1 -0
  177. package/client/landing/tailwind.config.js +8 -0
  178. package/client/landing/tsconfig.json +25 -0
  179. package/client/landing/vite.config.ts +12 -0
  180. package/client/mobile/.dockerignore +2 -0
  181. package/client/mobile/.env.example +1 -0
  182. package/client/mobile/Dockerfile +16 -0
  183. package/client/mobile/Dockerfile.dev +18 -0
  184. package/client/mobile/README.md +19 -0
  185. package/client/mobile/index.html +12 -0
  186. package/client/mobile/package.json +42 -0
  187. package/client/mobile/postcss.config.js +6 -0
  188. package/client/mobile/scripts/ui-parity-mobile-adapter.mjs +67 -0
  189. package/client/mobile/src/App.tsx +1 -0
  190. package/client/mobile/src/api/client.ts +62 -0
  191. package/client/mobile/src/api/fulfillment.ts +55 -0
  192. package/client/mobile/src/api/shipping.ts +56 -0
  193. package/client/mobile/src/app/App.tsx +23 -0
  194. package/client/mobile/src/auth/AuthProvider.tsx +122 -0
  195. package/client/mobile/src/auth/ProtectedRoute.tsx +27 -0
  196. package/client/mobile/src/auth/auth-client.ts +38 -0
  197. package/client/mobile/src/auth/types.ts +18 -0
  198. package/client/mobile/src/components/InShell.tsx +74 -0
  199. package/client/mobile/src/components/ui/button.tsx +35 -0
  200. package/client/mobile/src/components/ui/card.tsx +15 -0
  201. package/client/mobile/src/components/ui/input.tsx +21 -0
  202. package/client/mobile/src/lib/cn.ts +6 -0
  203. package/client/mobile/src/lib/specRouteCatalog.json +26 -0
  204. package/client/mobile/src/lib/specScreens.json +22 -0
  205. package/client/mobile/src/lib/useSpeechRecognitionInput.ts +271 -0
  206. package/client/mobile/src/main.tsx +17 -0
  207. package/client/mobile/src/pages/DashboardPage.tsx +172 -0
  208. package/client/mobile/src/pages/FulfillmentPage.tsx +138 -0
  209. package/client/mobile/src/pages/LoginPage.tsx +74 -0
  210. package/client/mobile/src/pages/ShippingPage.tsx +338 -0
  211. package/client/mobile/src/styles/globals.css +23 -0
  212. package/client/mobile/src/theme-vars.ts +16 -0
  213. package/client/mobile/src/theme.ts +21 -0
  214. package/client/mobile/src/vite-env.d.ts +1 -0
  215. package/client/mobile/tailwind.config.js +8 -0
  216. package/client/mobile/tsconfig.json +25 -0
  217. package/client/mobile/vite.config.ts +12 -0
  218. package/client/platform/.dockerignore +3 -0
  219. package/client/platform/.env.example +1 -0
  220. package/client/platform/Dockerfile +16 -0
  221. package/client/platform/Dockerfile.dev +18 -0
  222. package/client/platform/README.md +47 -0
  223. package/client/platform/index.html +12 -0
  224. package/client/platform/package.json +42 -0
  225. package/client/platform/postcss.config.js +6 -0
  226. package/client/platform/scripts/ui-parity-platform-adapter.mjs +66 -0
  227. package/client/platform/src/api/client.ts +30 -0
  228. package/client/platform/src/api/orders.ts +42 -0
  229. package/client/platform/src/app/App.tsx +21 -0
  230. package/client/platform/src/auth/AuthProvider.tsx +122 -0
  231. package/client/platform/src/auth/ProtectedRoute.tsx +22 -0
  232. package/client/platform/src/auth/auth-client.ts +38 -0
  233. package/client/platform/src/auth/types.ts +18 -0
  234. package/client/platform/src/components/AppShell.tsx +59 -0
  235. package/client/platform/src/components/ui/button.tsx +35 -0
  236. package/client/platform/src/components/ui/card.tsx +7 -0
  237. package/client/platform/src/components/ui/input.tsx +21 -0
  238. package/client/platform/src/lib/cn.ts +6 -0
  239. package/client/platform/src/lib/specRouteCatalog.json +23 -0
  240. package/client/platform/src/lib/specScreens.json +17 -0
  241. package/client/platform/src/main.tsx +17 -0
  242. package/client/platform/src/pages/DashboardPage.tsx +158 -0
  243. package/client/platform/src/pages/LoginPage.tsx +72 -0
  244. package/client/platform/src/pages/OrdersPage.tsx +123 -0
  245. package/client/platform/src/styles/globals.css +17 -0
  246. package/client/platform/src/theme-vars.ts +18 -0
  247. package/client/platform/src/theme.ts +25 -0
  248. package/client/platform/src/vite-env.d.ts +1 -0
  249. package/client/platform/tailwind.config.js +8 -0
  250. package/client/platform/tsconfig.json +25 -0
  251. package/client/platform/vite.config.ts +12 -0
  252. package/compose.yml +206 -0
  253. package/infra/compose/.env.dev.example +28 -0
  254. package/infra/compose/.env.prod.example +29 -0
  255. package/infra/compose/README.md +35 -0
  256. package/infra/compose/dev.yml +125 -0
  257. package/infra/compose/prod.yml +126 -0
  258. package/infra/terraform/README.md +34 -0
  259. package/infra/terraform/aws/data/.terraform.lock.hcl +25 -0
  260. package/infra/terraform/aws/data/README.md +18 -0
  261. package/infra/terraform/aws/data/main.tf +147 -0
  262. package/infra/terraform/aws/data/outputs.tf +14 -0
  263. package/infra/terraform/aws/data/variables.tf +57 -0
  264. package/infra/terraform/aws/data/versions.tf +10 -0
  265. package/infra/terraform/aws/domain/.terraform.lock.hcl +25 -0
  266. package/infra/terraform/aws/domain/README.md +20 -0
  267. package/infra/terraform/aws/domain/env/dev.tfvars.example +6 -0
  268. package/infra/terraform/aws/domain/env/prod.tfvars.example +7 -0
  269. package/infra/terraform/aws/domain/main.tf +149 -0
  270. package/infra/terraform/aws/domain/outputs.tf +29 -0
  271. package/infra/terraform/aws/domain/variables.tf +58 -0
  272. package/infra/terraform/aws/domain/versions.tf +10 -0
  273. package/infra/terraform/openstack/README.md +38 -0
  274. package/infra/terraform/openstack/dev/.terraform.lock.hcl +24 -0
  275. package/infra/terraform/openstack/dev/README.md +18 -0
  276. package/infra/terraform/openstack/dev/main.tf +49 -0
  277. package/infra/terraform/openstack/dev/providers.tf +15 -0
  278. package/infra/terraform/openstack/dev/terraform.tfvars.example +54 -0
  279. package/infra/terraform/openstack/dev/variables.tf +210 -0
  280. package/infra/terraform/openstack/dev/versions.tf +10 -0
  281. package/infra/terraform/openstack/modules/environment_host/main.tf +143 -0
  282. package/infra/terraform/openstack/modules/environment_host/outputs.tf +25 -0
  283. package/infra/terraform/openstack/modules/environment_host/templates/docker-host-user-data.sh.tftpl +40 -0
  284. package/infra/terraform/openstack/modules/environment_host/variables.tf +145 -0
  285. package/infra/terraform/openstack/modules/environment_host/versions.tf +7 -0
  286. package/infra/terraform/openstack/prod/.terraform.lock.hcl +24 -0
  287. package/infra/terraform/openstack/prod/README.md +18 -0
  288. package/infra/terraform/openstack/prod/main.tf +49 -0
  289. package/infra/terraform/openstack/prod/providers.tf +15 -0
  290. package/infra/terraform/openstack/prod/terraform.tfvars.example +55 -0
  291. package/infra/terraform/openstack/prod/variables.tf +210 -0
  292. package/infra/terraform/openstack/prod/versions.tf +10 -0
  293. package/infra/terraform/openstack/server/.terraform.lock.hcl +45 -0
  294. package/infra/terraform/openstack/server/README.md +47 -0
  295. package/infra/terraform/openstack/server/main.tf +161 -0
  296. package/infra/terraform/openstack/server/outputs.tf +30 -0
  297. package/infra/terraform/openstack/server/providers.tf +30 -0
  298. package/infra/terraform/openstack/server/templates/server-user-data.sh.tftpl +50 -0
  299. package/infra/terraform/openstack/server/variables.tf +233 -0
  300. package/infra/terraform/openstack/server/zz_aspace.auto.tfvars.example.json +29 -0
  301. package/lib/scaffold.mjs +373 -0
  302. package/package.json +33 -12
  303. package/pnpm-workspace.yaml +2 -0
  304. package/scripts/dev/audit_sdd_build_ast.py +277 -0
  305. package/sdd/01_planning/01_feature/INDEX.md +16 -0
  306. package/sdd/01_planning/01_feature/README.md +76 -0
  307. package/sdd/01_planning/01_feature/alerts_feature_spec.md +55 -0
  308. package/sdd/01_planning/01_feature/auth_feature_spec.md +57 -0
  309. package/sdd/01_planning/01_feature/catalog_feature_spec.md +61 -0
  310. package/sdd/01_planning/01_feature/fulfillment_feature_spec.md +58 -0
  311. package/sdd/01_planning/01_feature/health_feature_spec.md +52 -0
  312. package/sdd/01_planning/01_feature/inventory_feature_spec.md +60 -0
  313. package/sdd/01_planning/01_feature/order_feature_spec.md +63 -0
  314. package/sdd/01_planning/01_feature/shipping_feature_spec.md +55 -0
  315. package/sdd/01_planning/01_feature/support_feature_spec.md +53 -0
  316. package/sdd/01_planning/01_feature/user_feature_spec.md +54 -0
  317. package/sdd/01_planning/02_screen/INDEX.md +13 -0
  318. package/sdd/01_planning/02_screen/README.md +41 -0
  319. package/sdd/01_planning/02_screen/admin_screen_spec.pdf +0 -0
  320. package/sdd/01_planning/02_screen/assets/README.md +16 -0
  321. package/sdd/01_planning/02_screen/assets/example/README.md +13 -0
  322. package/sdd/01_planning/02_screen/landing_screen_spec.pdf +0 -0
  323. package/sdd/01_planning/02_screen/mobile_screen_spec.pdf +0 -0
  324. package/sdd/01_planning/02_screen/platform_screen_spec.pdf +0 -0
  325. package/sdd/01_planning/03_architecture/INDEX.md +9 -0
  326. package/sdd/01_planning/03_architecture/README.md +25 -0
  327. package/sdd/01_planning/03_architecture/architecture_document_structure.md +77 -0
  328. package/sdd/01_planning/03_architecture/backend/README.md +10 -0
  329. package/sdd/01_planning/03_architecture/frontend/README.md +12 -0
  330. package/sdd/01_planning/03_architecture/infra/README.md +10 -0
  331. package/sdd/01_planning/03_architecture/tech-research/README.md +4 -0
  332. package/sdd/01_planning/03_architecture/templates_system_architecture.md +84 -0
  333. package/sdd/01_planning/04_data/INDEX.md +4 -0
  334. package/sdd/01_planning/04_data/README.md +10 -0
  335. package/sdd/01_planning/04_data/templates_data_modeling.md +119 -0
  336. package/sdd/01_planning/05_api/README.md +12 -0
  337. package/sdd/01_planning/05_api/templates_api_contract.md +90 -0
  338. package/sdd/01_planning/06_iac/README.md +11 -0
  339. package/sdd/01_planning/06_iac/templates_runtime_and_cicd_baseline.md +46 -0
  340. package/sdd/01_planning/07_integration/README.md +11 -0
  341. package/sdd/01_planning/07_integration/templates_frontend_api_integration.md +46 -0
  342. package/sdd/01_planning/08_nonfunctional/README.md +7 -0
  343. package/sdd/01_planning/09_security/README.md +7 -0
  344. package/sdd/01_planning/10_test/README.md +12 -0
  345. package/sdd/01_planning/10_test/templates_test_strategy.md +60 -0
  346. package/sdd/01_planning/INDEX.md +19 -0
  347. package/sdd/01_planning/README.md +17 -0
  348. package/sdd/02_plan/01_feature/README.md +34 -0
  349. package/sdd/02_plan/01_feature/_feature_todo_template.md +29 -0
  350. package/sdd/02_plan/02_screen/INDEX.md +19 -0
  351. package/sdd/02_plan/02_screen/README.md +39 -0
  352. package/sdd/02_plan/02_screen/_screen_todo_template.md +60 -0
  353. package/sdd/02_plan/03_architecture/README.md +23 -0
  354. package/sdd/02_plan/03_architecture/architecture_document_governance.md +40 -0
  355. package/sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md +53 -0
  356. package/sdd/02_plan/03_architecture/repository_governance.md +39 -0
  357. package/sdd/02_plan/03_architecture/runtime_and_structure_governance.md +38 -0
  358. package/sdd/02_plan/03_architecture/templates-hexagonal-template-architecture.md +9 -0
  359. package/sdd/02_plan/03_architecture/toolchain_governance.md +98 -0
  360. package/sdd/02_plan/04_data/README.md +5 -0
  361. package/sdd/02_plan/05_api/README.md +5 -0
  362. package/sdd/02_plan/06_iac/README.md +11 -0
  363. package/sdd/02_plan/06_iac/dev_runtime_delivery.md +36 -0
  364. package/sdd/02_plan/06_iac/template_runtime_delivery.md +50 -0
  365. package/sdd/02_plan/07_integration/README.md +5 -0
  366. package/sdd/02_plan/07_integration/frontend_live_integration.md +31 -0
  367. package/sdd/02_plan/08_nonfunctional/README.md +5 -0
  368. package/sdd/02_plan/08_nonfunctional/repository_hygiene.md +26 -0
  369. package/sdd/02_plan/09_security/README.md +5 -0
  370. package/sdd/02_plan/10_test/README.md +11 -0
  371. package/sdd/02_plan/10_test/regression_verification.md +39 -0
  372. package/sdd/02_plan/10_test/templates/README.md +8 -0
  373. package/sdd/02_plan/10_test/templates/ui_parity_platform_contract.template.yaml +23 -0
  374. package/sdd/02_plan/10_test/verification_strategy.md +43 -0
  375. package/sdd/02_plan/99_generated/from_planning/ui_parity/.gitkeep +1 -0
  376. package/sdd/02_plan/README.md +40 -0
  377. package/sdd/03_build/01_feature/README.md +20 -0
  378. package/sdd/03_build/01_feature/domain/README.md +3 -0
  379. package/sdd/03_build/01_feature/domain/account_and_access.md +20 -0
  380. package/sdd/03_build/01_feature/domain/catalog_and_inventory.md +20 -0
  381. package/sdd/03_build/01_feature/domain/ordering_and_fulfillment.md +21 -0
  382. package/sdd/03_build/01_feature/domain/support_and_observability.md +21 -0
  383. package/sdd/03_build/01_feature/domain_surfaces.md +28 -0
  384. package/sdd/03_build/01_feature/service/README.md +3 -0
  385. package/sdd/03_build/01_feature/service/admin_surface.md +15 -0
  386. package/sdd/03_build/01_feature/service/landing_surface.md +13 -0
  387. package/sdd/03_build/01_feature/service/mobile_surface.md +14 -0
  388. package/sdd/03_build/01_feature/service/platform_surface.md +14 -0
  389. package/sdd/03_build/02_screen/README.md +25 -0
  390. package/sdd/03_build/02_screen/_screen_build_template.md +26 -0
  391. package/sdd/03_build/02_screen/admin/README.md +5 -0
  392. package/sdd/03_build/02_screen/landing/README.md +5 -0
  393. package/sdd/03_build/02_screen/mobile/README.md +5 -0
  394. package/sdd/03_build/02_screen/platform/README.md +5 -0
  395. package/sdd/03_build/03_architecture/README.md +10 -0
  396. package/sdd/03_build/03_architecture/architecture_document_governance.md +30 -0
  397. package/sdd/03_build/03_architecture/build_ast_runtime_tree_governance.md +24 -0
  398. package/sdd/03_build/03_architecture/repository_governance.md +18 -0
  399. package/sdd/03_build/03_architecture/toolchain_governance.md +36 -0
  400. package/sdd/03_build/06_iac/README.md +3 -0
  401. package/sdd/03_build/06_iac/dev_runtime_delivery.md +10 -0
  402. package/sdd/03_build/06_iac/template_runtime_delivery.md +49 -0
  403. package/sdd/03_build/07_integration/README.md +3 -0
  404. package/sdd/03_build/07_integration/frontend_live_integration.md +11 -0
  405. package/sdd/03_build/08_nonfunctional/README.md +3 -0
  406. package/sdd/03_build/08_nonfunctional/repository_hygiene.md +10 -0
  407. package/sdd/03_build/10_test/README.md +9 -0
  408. package/sdd/03_build/10_test/regression_verification.md +16 -0
  409. package/sdd/03_build/10_test/verification_harness.md +11 -0
  410. package/sdd/03_build/README.md +35 -0
  411. package/sdd/04_verify/01_feature/README.md +5 -0
  412. package/sdd/04_verify/01_feature/domain_verification.md +14 -0
  413. package/sdd/04_verify/01_feature/service_verification.md +22 -0
  414. package/sdd/04_verify/02_screen/README.md +6 -0
  415. package/sdd/04_verify/02_screen/_screen_verify_template.md +20 -0
  416. package/sdd/04_verify/02_screen/admin/README.md +4 -0
  417. package/sdd/04_verify/02_screen/landing/README.md +4 -0
  418. package/sdd/04_verify/02_screen/mobile/README.md +4 -0
  419. package/sdd/04_verify/02_screen/platform/README.md +4 -0
  420. package/sdd/04_verify/03_architecture/README.md +10 -0
  421. package/sdd/04_verify/03_architecture/architecture_document_governance.md +15 -0
  422. package/sdd/04_verify/03_architecture/build_ast_runtime_tree_governance.md +28 -0
  423. package/sdd/04_verify/03_architecture/repository_governance.md +16 -0
  424. package/sdd/04_verify/03_architecture/toolchain_governance.md +58 -0
  425. package/sdd/04_verify/06_iac/README.md +3 -0
  426. package/sdd/04_verify/06_iac/dev_runtime_delivery.md +10 -0
  427. package/sdd/04_verify/06_iac/template_runtime_delivery.md +42 -0
  428. package/sdd/04_verify/07_integration/README.md +3 -0
  429. package/sdd/04_verify/07_integration/frontend_live_integration.md +16 -0
  430. package/sdd/04_verify/08_nonfunctional/README.md +3 -0
  431. package/sdd/04_verify/08_nonfunctional/repository_hygiene.md +14 -0
  432. package/sdd/04_verify/10_test/README.md +9 -0
  433. package/sdd/04_verify/10_test/regression_verification.md +16 -0
  434. package/sdd/04_verify/10_test/ui_parity/README.md +4 -0
  435. package/sdd/04_verify/10_test/ui_parity/loop_runs/.gitkeep +0 -0
  436. package/sdd/04_verify/10_test/ui_parity/reference/.gitkeep +0 -0
  437. package/sdd/04_verify/10_test/ui_parity/staged_runs/.gitkeep +0 -0
  438. package/sdd/04_verify/10_test/verification_harness.md +17 -0
  439. package/sdd/04_verify/README.md +22 -0
  440. package/sdd/05_operate/01_runbooks/.gitkeep +1 -0
  441. package/sdd/05_operate/01_runbooks/README.md +4 -0
  442. package/sdd/05_operate/02_delivery_status/README.md +4 -0
  443. package/sdd/05_operate/02_delivery_status/service_status.md +16 -0
  444. package/sdd/05_operate/README.md +12 -0
  445. package/sdd/99_toolchain/01_automation/.gitkeep +1 -0
  446. package/sdd/99_toolchain/01_automation/README.md +76 -0
  447. package/sdd/99_toolchain/01_automation/agentic-dev/analyze_proof_results.py +132 -0
  448. package/sdd/99_toolchain/01_automation/agentic-dev/analyze_route_gap.py +85 -0
  449. package/sdd/99_toolchain/01_automation/agentic-dev/assets/repo-contract.template.json +75 -0
  450. package/sdd/99_toolchain/01_automation/agentic-dev/bootstrap_frontend_parity.sh +84 -0
  451. package/sdd/99_toolchain/01_automation/agentic-dev/init_frontend_parity.sh +33 -0
  452. package/sdd/99_toolchain/01_automation/agentic-dev/init_repo_contract.sh +51 -0
  453. package/sdd/99_toolchain/01_automation/agentic-dev/repo-contract.json +76 -0
  454. package/sdd/99_toolchain/01_automation/agentic-dev/resolve_frontend_target.py +52 -0
  455. package/sdd/99_toolchain/01_automation/agentic-dev/resolve_repo_contract.py +56 -0
  456. package/sdd/99_toolchain/01_automation/agentic-dev/run_frontend_target.sh +100 -0
  457. package/sdd/99_toolchain/01_automation/agentic-dev/run_repo_phase.sh +140 -0
  458. package/sdd/99_toolchain/01_automation/agentic-dev/validate_json_schema.py +39 -0
  459. package/sdd/99_toolchain/01_automation/agentic-parity-harness-design.md +291 -0
  460. package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/dashboard.png +0 -0
  461. package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/login.png +0 -0
  462. package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/queue.png +0 -0
  463. package/sdd/99_toolchain/01_automation/assets/admin_screen_capture/support.png +0 -0
  464. package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/home.png +0 -0
  465. package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/login.png +0 -0
  466. package/sdd/99_toolchain/01_automation/assets/landing_screen_capture/workspace.png +0 -0
  467. package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/dashboard.png +0 -0
  468. package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/fulfillment.png +0 -0
  469. package/sdd/99_toolchain/01_automation/assets/mobile_screen_capture/login.png +0 -0
  470. package/sdd/99_toolchain/01_automation/assets/platform_screen_capture/dashboard.png +0 -0
  471. package/sdd/99_toolchain/01_automation/assets/platform_screen_capture/login.png +0 -0
  472. package/sdd/99_toolchain/01_automation/assets/platform_screen_capture/orders.png +0 -0
  473. package/sdd/99_toolchain/01_automation/build_asset_recipes.py +10 -0
  474. package/sdd/99_toolchain/01_automation/build_screen_spec_pdf.py +427 -0
  475. package/sdd/99_toolchain/01_automation/capture_screen_assets.mjs +148 -0
  476. package/sdd/99_toolchain/01_automation/harness-layout.md +34 -0
  477. package/sdd/99_toolchain/01_automation/parity-execution-tooling-design.md +319 -0
  478. package/sdd/99_toolchain/01_automation/playwright_exactness_manifest.py +21 -0
  479. package/sdd/99_toolchain/01_automation/run_playwright_exactness.py +87 -0
  480. package/sdd/99_toolchain/01_automation/screen_spec_manifest.py +321 -0
  481. package/sdd/99_toolchain/01_automation/spec_asset_builder.py +274 -0
  482. package/sdd/99_toolchain/01_automation/ui-contract-projection.md +79 -0
  483. package/sdd/99_toolchain/01_automation/ui-parity/README.md +60 -0
  484. package/sdd/99_toolchain/01_automation/ui-parity/cli/extract-reference-pages.mjs +2 -0
  485. package/sdd/99_toolchain/01_automation/ui-parity/cli/materialize-reference-assets.mjs +58 -0
  486. package/sdd/99_toolchain/01_automation/ui-parity/cli/normalize-reference-assets.mjs +2 -0
  487. package/sdd/99_toolchain/01_automation/ui-parity/cli/route-gap-report.mjs +187 -0
  488. package/sdd/99_toolchain/01_automation/ui-parity/cli/run-proof.mjs +50 -0
  489. package/sdd/99_toolchain/01_automation/ui-parity/cli/scaffold-contract.mjs +62 -0
  490. package/sdd/99_toolchain/01_automation/ui-parity/cli/upload-parity1.mjs +2 -0
  491. package/sdd/99_toolchain/01_automation/ui-parity/contracts/collector-metadata.schema.json +33 -0
  492. package/sdd/99_toolchain/01_automation/ui-parity/contracts/proof-result.schema.json +76 -0
  493. package/sdd/99_toolchain/01_automation/ui-parity/contracts/route-gap-report.schema.json +95 -0
  494. package/sdd/99_toolchain/01_automation/ui-parity/core/capture-runner.mjs +55 -0
  495. package/sdd/99_toolchain/01_automation/ui-parity/core/load-adapter.mjs +25 -0
  496. package/sdd/99_toolchain/01_automation/ui-parity/core/load-contract.mjs +81 -0
  497. package/sdd/99_toolchain/01_automation/ui-parity/core/paths.mjs +23 -0
  498. package/sdd/99_toolchain/01_automation/ui-parity/core/proof-runner.mjs +255 -0
  499. package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-artifact-layout.md +23 -0
  500. package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-proof-interface.md +60 -0
  501. package/sdd/99_toolchain/01_automation/ui-parity/interfaces/ui-parity-route-gap-interface.md +82 -0
  502. package/sdd/99_toolchain/01_automation/ui-parity/runtime/playwright-runtime.mjs +16 -0
  503. package/sdd/99_toolchain/01_automation/ui-parity/runtime/static-runtime.mjs +6 -0
  504. package/sdd/99_toolchain/02_policies/.gitkeep +1 -0
  505. package/sdd/99_toolchain/02_policies/build-ast-governance-policy.md +22 -0
  506. package/sdd/99_toolchain/02_policies/compose-runtime-baseline-policy.md +24 -0
  507. package/sdd/99_toolchain/02_policies/convention-storage-policy.md +26 -0
  508. package/sdd/99_toolchain/02_policies/main-push-before-dev-deploy-policy.md +27 -0
  509. package/sdd/99_toolchain/02_policies/otro-orchestration-policy.md +30 -0
  510. package/sdd/99_toolchain/02_policies/regression-verification-policy.md +22 -0
  511. package/sdd/99_toolchain/03_templates/.gitkeep +1 -0
  512. package/sdd/99_toolchain/03_templates/asset_recipe_manifest.example.py +38 -0
  513. package/sdd/99_toolchain/03_templates/generated_assets/README.md +11 -0
  514. package/sdd/99_toolchain/03_templates/generated_assets/example-brand-lockup.svg +3 -0
  515. package/sdd/99_toolchain/03_templates/generated_assets/example-brand-mark.svg +3 -0
  516. package/sdd/99_toolchain/03_templates/generated_assets/example-brand-wordmark.svg +3 -0
  517. package/sdd/99_toolchain/03_templates/playwright_exactness_manifest.example.py +21 -0
  518. package/sdd/99_toolchain/README.md +23 -0
  519. package/sdd/README.md +21 -0
  520. package/server/.dockerignore +4 -0
  521. package/server/.env.example +19 -0
  522. package/server/Dockerfile +22 -0
  523. package/server/Dockerfile.dev +19 -0
  524. package/server/README.md +33 -0
  525. package/server/__init__.py +0 -0
  526. package/server/api/__init__.py +1 -0
  527. package/server/api/http/__init__.py +4 -0
  528. package/server/api/http/app.py +53 -0
  529. package/server/api/http/router.py +24 -0
  530. package/server/config.py +52 -0
  531. package/server/contexts/__init__.py +12 -0
  532. package/server/contexts/alerts/__init__.py +1 -0
  533. package/server/contexts/alerts/application/__init__.py +13 -0
  534. package/server/contexts/alerts/application/services.py +41 -0
  535. package/server/contexts/alerts/contracts/__init__.py +3 -0
  536. package/server/contexts/alerts/contracts/http/__init__.py +3 -0
  537. package/server/contexts/alerts/contracts/http/router.py +37 -0
  538. package/server/contexts/alerts/domain/__init__.py +15 -0
  539. package/server/contexts/alerts/domain/models.py +29 -0
  540. package/server/contexts/alerts/infrastructure/__init__.py +11 -0
  541. package/server/contexts/alerts/infrastructure/repository.py +41 -0
  542. package/server/contexts/auth/__init__.py +1 -0
  543. package/server/contexts/auth/application/__init__.py +3 -0
  544. package/server/contexts/auth/application/ports.py +10 -0
  545. package/server/contexts/auth/application/services.py +64 -0
  546. package/server/contexts/auth/contracts/__init__.py +4 -0
  547. package/server/contexts/auth/contracts/http/__init__.py +4 -0
  548. package/server/contexts/auth/contracts/http/dependencies.py +37 -0
  549. package/server/contexts/auth/contracts/http/router.py +19 -0
  550. package/server/contexts/auth/domain/__init__.py +3 -0
  551. package/server/contexts/auth/domain/models.py +24 -0
  552. package/server/contexts/auth/infrastructure/__init__.py +4 -0
  553. package/server/contexts/auth/infrastructure/adapters/memory.py +19 -0
  554. package/server/contexts/auth/infrastructure/adapters/mongodb.py +24 -0
  555. package/server/contexts/auth/infrastructure/adapters/sqlalchemy.py +74 -0
  556. package/server/contexts/auth/infrastructure/repository.py +28 -0
  557. package/server/contexts/catalog/__init__.py +1 -0
  558. package/server/contexts/catalog/application/__init__.py +28 -0
  559. package/server/contexts/catalog/application/ports.py +15 -0
  560. package/server/contexts/catalog/application/services.py +154 -0
  561. package/server/contexts/catalog/contracts/__init__.py +3 -0
  562. package/server/contexts/catalog/contracts/http/__init__.py +3 -0
  563. package/server/contexts/catalog/contracts/http/router.py +60 -0
  564. package/server/contexts/catalog/domain/__init__.py +45 -0
  565. package/server/contexts/catalog/domain/models.py +113 -0
  566. package/server/contexts/catalog/infrastructure/__init__.py +4 -0
  567. package/server/contexts/catalog/infrastructure/adapters/memory.py +62 -0
  568. package/server/contexts/catalog/infrastructure/repository.py +8 -0
  569. package/server/contexts/fulfillment/__init__.py +1 -0
  570. package/server/contexts/fulfillment/application/__init__.py +13 -0
  571. package/server/contexts/fulfillment/application/ports.py +20 -0
  572. package/server/contexts/fulfillment/application/services.py +85 -0
  573. package/server/contexts/fulfillment/contracts/__init__.py +3 -0
  574. package/server/contexts/fulfillment/contracts/http/__init__.py +3 -0
  575. package/server/contexts/fulfillment/contracts/http/router.py +40 -0
  576. package/server/contexts/fulfillment/domain/__init__.py +25 -0
  577. package/server/contexts/fulfillment/domain/models.py +73 -0
  578. package/server/contexts/fulfillment/infrastructure/__init__.py +13 -0
  579. package/server/contexts/fulfillment/infrastructure/adapters/memory.py +43 -0
  580. package/server/contexts/fulfillment/infrastructure/repository.py +97 -0
  581. package/server/contexts/health/__init__.py +1 -0
  582. package/server/contexts/health/application/__init__.py +3 -0
  583. package/server/contexts/health/application/services.py +2 -0
  584. package/server/contexts/health/contracts/__init__.py +3 -0
  585. package/server/contexts/health/contracts/http/__init__.py +3 -0
  586. package/server/contexts/health/contracts/http/router.py +10 -0
  587. package/server/contexts/inventory/__init__.py +1 -0
  588. package/server/contexts/inventory/application/__init__.py +28 -0
  589. package/server/contexts/inventory/application/ports.py +11 -0
  590. package/server/contexts/inventory/application/services.py +214 -0
  591. package/server/contexts/inventory/contracts/__init__.py +3 -0
  592. package/server/contexts/inventory/contracts/http/__init__.py +3 -0
  593. package/server/contexts/inventory/contracts/http/router.py +82 -0
  594. package/server/contexts/inventory/domain/__init__.py +33 -0
  595. package/server/contexts/inventory/domain/models.py +93 -0
  596. package/server/contexts/inventory/infrastructure/__init__.py +4 -0
  597. package/server/contexts/inventory/infrastructure/adapters/memory.py +24 -0
  598. package/server/contexts/inventory/infrastructure/repository.py +8 -0
  599. package/server/contexts/orders/__init__.py +1 -0
  600. package/server/contexts/orders/application/__init__.py +19 -0
  601. package/server/contexts/orders/application/services.py +127 -0
  602. package/server/contexts/orders/contracts/__init__.py +3 -0
  603. package/server/contexts/orders/contracts/http/__init__.py +3 -0
  604. package/server/contexts/orders/contracts/http/router.py +82 -0
  605. package/server/contexts/orders/domain/__init__.py +29 -0
  606. package/server/contexts/orders/domain/models.py +95 -0
  607. package/server/contexts/orders/infrastructure/__init__.py +7 -0
  608. package/server/contexts/orders/infrastructure/repository.py +104 -0
  609. package/server/contexts/shipping/__init__.py +1 -0
  610. package/server/contexts/shipping/application/__init__.py +13 -0
  611. package/server/contexts/shipping/application/services.py +92 -0
  612. package/server/contexts/shipping/contracts/__init__.py +3 -0
  613. package/server/contexts/shipping/contracts/http/__init__.py +3 -0
  614. package/server/contexts/shipping/contracts/http/router.py +40 -0
  615. package/server/contexts/shipping/domain/__init__.py +19 -0
  616. package/server/contexts/shipping/domain/models.py +48 -0
  617. package/server/contexts/shipping/infrastructure/__init__.py +9 -0
  618. package/server/contexts/shipping/infrastructure/repository.py +50 -0
  619. package/server/contexts/support/__init__.py +1 -0
  620. package/server/contexts/support/application/__init__.py +13 -0
  621. package/server/contexts/support/application/services.py +29 -0
  622. package/server/contexts/support/contracts/__init__.py +3 -0
  623. package/server/contexts/support/contracts/http/__init__.py +3 -0
  624. package/server/contexts/support/contracts/http/router.py +40 -0
  625. package/server/contexts/support/domain/__init__.py +13 -0
  626. package/server/contexts/support/domain/models.py +27 -0
  627. package/server/contexts/support/infrastructure/__init__.py +11 -0
  628. package/server/contexts/support/infrastructure/repository.py +70 -0
  629. package/server/contexts/user/__init__.py +1 -0
  630. package/server/contexts/user/application/__init__.py +3 -0
  631. package/server/contexts/user/application/ports.py +11 -0
  632. package/server/contexts/user/application/services.py +44 -0
  633. package/server/contexts/user/contracts/__init__.py +3 -0
  634. package/server/contexts/user/contracts/http/__init__.py +3 -0
  635. package/server/contexts/user/contracts/http/router.py +26 -0
  636. package/server/contexts/user/domain/__init__.py +3 -0
  637. package/server/contexts/user/domain/models.py +22 -0
  638. package/server/contexts/user/infrastructure/__init__.py +3 -0
  639. package/server/contexts/user/infrastructure/adapters/memory.py +27 -0
  640. package/server/contexts/user/infrastructure/adapters/mongodb.py +41 -0
  641. package/server/contexts/user/infrastructure/adapters/sqlalchemy.py +94 -0
  642. package/server/contexts/user/infrastructure/factory.py +28 -0
  643. package/server/data/README.md +24 -0
  644. package/server/data/bootstrap/alerts.json +38 -0
  645. package/server/data/bootstrap/auth_accounts.json +18 -0
  646. package/server/data/bootstrap/catalog_products.json +179 -0
  647. package/server/data/bootstrap/fulfillment_events.json +5 -0
  648. package/server/data/bootstrap/fulfillment_notes.json +5 -0
  649. package/server/data/bootstrap/fulfillment_tasks.json +50 -0
  650. package/server/data/bootstrap/inventory_levels.json +80 -0
  651. package/server/data/bootstrap/orders.json +62 -0
  652. package/server/data/bootstrap/shipping_shipments.json +50 -0
  653. package/server/data/bootstrap/support_faqs.json +26 -0
  654. package/server/data/bootstrap/users.json +20 -0
  655. package/server/data/bootstrap_loader.py +15 -0
  656. package/server/docker-entrypoint.sh +56 -0
  657. package/server/main.py +3 -0
  658. package/server/pyproject.toml +36 -0
  659. package/server/shared/__init__.py +1 -0
  660. package/server/shared/application/__init__.py +3 -0
  661. package/server/shared/application/health.py +2 -0
  662. package/server/shared/infrastructure/__init__.py +10 -0
  663. package/server/shared/infrastructure/runtime.py +6 -0
  664. package/server/shared/infrastructure/security.py +33 -0
  665. package/server/tests/e2e/test_domain_feature_flows.py +483 -0
  666. package/server/tests/test_health.py +49 -0
  667. package/server/uv.lock +1169 -0
  668. package/bin/agentic-dev.js +0 -9
  669. package/src/cli.js +0 -37
  670. package/src/init-command.js +0 -230
  671. package/src/lib/command.js +0 -14
  672. package/src/lib/fs.js +0 -92
  673. package/src/lib/git.js +0 -57
  674. package/src/lib/github.js +0 -77
  675. package/src/lib/prompt.js +0 -52
  676. package/src/lib/system.js +0 -15
  677. package/src/lib/template.js +0 -143
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: sdd
3
+ description: "Use for any software development request in a repository that treats `sdd/` as the canonical delivery system. Trigger on requests like develop, implement, build, code, work on, modify, fix, patch, refactor, test, verify, deploy, monitor, or screen/UI-driven prompts such as 화면명세서, 화면설계서, 화면 설계, 화면, 화면 스펙, UI, 디자인, 디자인 가이드, screen spec, screen design, or design guide. The workflow is always SDD-first: inspect and update `sdd/01_planning`, create or update the task plan under `sdd/02_plan`, implement the change, record execution in `sdd/03_build`, capture validation in `sdd/04_verify`, and record deployment or monitoring in `sdd/05_operate` when rollout happens."
4
+ ---
5
+
6
+ # SDD Development
7
+
8
+ ## Overview
9
+
10
+ Use this skill for implementation work in repositories that treat `sdd/` as the canonical delivery record.
11
+
12
+ This skill enforces one workflow:
13
+ 1. inspect and fix relevant `sdd/01_planning` artifacts first,
14
+ 2. create or update the task plan under `sdd/02_plan/<section>/`,
15
+ 3. perform the code work,
16
+ 4. record the current implementation summary in `sdd/03_build`,
17
+ 5. record the current retained verification summary in `sdd/04_verify`,
18
+ 6. record deployment and monitoring outcomes in `sdd/05_operate` when rollout happens.
19
+
20
+ When rollout is explicitly in scope, and the repository has separate DEV and PROD environments, this skill enforces a staged release rule: deploy to DEV first, complete the retained full-layer validation surface there, promote to PROD only after DEV passes, then rerun the same retained validation surface in PROD. If PROD validation fails, rollback is required unless the user explicitly redirects and that risk is recorded.
21
+ For persistence-affecting work, this skill also enforces schema-parity verification. Always compare migration or model intent against the real DEV and PROD schema state for the affected database objects instead of assuming deployed reality matches the code.
22
+
23
+ Read [references/section-map.md](references/section-map.md) when you need the exact destination inside `sdd/`.
24
+ For screen-spec-driven UI work, reusable static assets from the spec must be extracted through the repo's canonical asset builder before being used in code.
25
+ For screen-spec-driven layout work, inspect the repo's canonical design guide builder first when one exists.
26
+ For local screen exactness, treat the repo's Playwright exactness runner and suite registry as the canonical automation gate when they exist.
27
+ For verification work, treat regression scope selection as a required retained artifact and carry it through `sdd/02_plan`, `sdd/03_build`, and `sdd/04_verify`.
28
+ Do not infer rollout scope from the existence of `sdd/05_operate` alone; require rollout only when the user asks for deployment or the repo's current policy/plan makes rollout part of completion.
29
+ When a repo or team treats DEV deployment from `main` as the completion bar, temporary branches or worktrees are only working space. Before calling the task deployed, land the final retained change on `main` and push `origin/main`.
30
+
31
+ ## When To Use
32
+
33
+ Use this skill when:
34
+ - the repository has `sdd/01_planning`, `02_plan`, `03_build`, `04_verify`, `05_operate`,
35
+ - the user gives a development instruction such as `개발해`, `작업해`, `구현해`, `수정해`, `고쳐`, `리팩토링해`, `테스트해`, `배포해`,
36
+ - the user asks for screen/UI work with prompts such as `화면명세서`, `화면설계서`, `화면 설계`, `화면`, `화면 스펙`, `UI`, `디자인`, `디자인 가이드`, `screen spec`, `screen design`, or `design guide`,
37
+ - the user wants work to be traceable through those folders,
38
+ - the task includes both implementation and documentation/verification updates,
39
+ - the task may end in deployment or operational follow-up.
40
+
41
+ Do not use this skill for:
42
+ - casual questions with no repo changes,
43
+ - one-off local debugging where no durable SDD record is needed,
44
+ - repositories that do not use `sdd/` as their primary document system.
45
+
46
+ ## Workflow
47
+
48
+ ### 1. Inspect Planning First
49
+
50
+ - Identify the impacted planning area before editing code.
51
+ - Open only the relevant artifacts in `sdd/01_planning`:
52
+ - feature
53
+ - screen
54
+ - architecture
55
+ - data
56
+ - api
57
+ - iac
58
+ - integration
59
+ - nonfunctional
60
+ - security
61
+ - test
62
+ - If the implementation has already drifted from planning, update the planning artifact first or at least record the drift before coding.
63
+
64
+ ### 2. Create Or Update The Plan
65
+
66
+ - Create or reuse a durable plan file under `sdd/02_plan/<section>/`.
67
+ - Prefer the repo's planning scaffold if available.
68
+ - The plan must include:
69
+ - scope
70
+ - assumptions
71
+ - acceptance criteria
72
+ - execution checklist
73
+ - current notes
74
+ - validation
75
+ - For any task that may end in deployment, acceptance criteria must explicitly include the DEV gate, the matching PROD gate, the retained full-layer test surface, and the rollback trigger/path.
76
+ - For any task that touches persistence, models, repositories, migrations, SQL, ORM mappings, or runtime failures that may involve schema drift, acceptance criteria must explicitly include DEV/PROD schema verification.
77
+ - Keep exactly one checklist item in progress.
78
+
79
+ ### 3. Implement Against The Plan
80
+
81
+ - Make code changes only after the impacted planning artifact and plan are aligned enough to proceed.
82
+ - Update the plan current notes after meaningful edits or decisions.
83
+ - When document generators or capture pipelines are involved, keep those tools under `sdd/99_toolchain`.
84
+ - For local screen exactness, treat Playwright as the canonical automation gate unless the repo documents a stronger exact gate for that surface.
85
+ - In repos created from this template, prefer `python3 sdd/99_toolchain/01_automation/run_playwright_exactness.py --suite <suite-id>` over ad-hoc `npx playwright test ...`.
86
+ - Keep the suite registry in `sdd/99_toolchain/01_automation/playwright_exactness_manifest.py`.
87
+ - Browser Use, manual screenshots, or semantic extraction can supplement diagnosis, but they do not replace the retained Playwright exactness gate when a suite exists.
88
+ - If the needed suite does not exist yet, add or extend it in the same task and register it before calling the work complete.
89
+ - When the task depends on icons, logos, illustrations, or other static assets visible in a screen spec, use the repo's canonical Asset Spec Builder first.
90
+ - In repos created from this template, this is typically `sdd/99_toolchain/01_automation/spec_asset_builder.py` or a wrapper/manifest around it.
91
+ - Reusable asset planning records belong under `sdd/01_planning/02_screen/assets/`.
92
+ - Build the runtime asset from the approved PDF/image source instead of hand-tracing or screenshot-cropping it.
93
+ - Use exact verification such as `--verify-exact` when the asset is expected to match the source crop exactly.
94
+ - Record the source, manifest, generated asset path, and any exception in `sdd/03_build` and `sdd/04_verify`.
95
+ - Only fall back to manual recreation when the builder cannot express the asset, and explicitly document that exception in the plan/build/verify trail.
96
+ - When the task depends on spacing, layout density, typography, color rhythm, or component hierarchy derived from a screen spec, inspect the repo's canonical design guide builder first.
97
+ - In repos created from this template, inspect `sdd/99_toolchain/01_automation/README.md` and use the actual builder, wrapper, or manifest that exists in the repo.
98
+ - Use the generated guide as the working baseline before manual spacing or palette tweaks.
99
+ - If the repo does not provide a design guide builder yet, document the manual interpretation source in plan/build/verify.
100
+ - Define the regression surface before calling implementation complete.
101
+ - Start from `sdd/02_plan/10_test/regression_verification.md`.
102
+ - Identify the direct target plus any upstream, downstream, and shared surfaces affected by the change.
103
+ - If the change touches shared routing, shell/auth, shared state, common components, contracts, generated assets, or builder output, widen the regression scope instead of validating only the edited module.
104
+ - Record the selected regression scope and any justified exclusions in plan/build/verify.
105
+ - When rollout is in scope, define one retained full-layer validation surface and reuse it in DEV and PROD.
106
+ - Include the relevant app/runtime entrypoints, API/contracts, persistence/schema, jobs or workflow side effects, shared integrations, and health/monitoring checks affected by the change.
107
+ - Do not promote to PROD with a narrower verification surface than the DEV gate unless the user explicitly approves that exception and it is recorded.
108
+
109
+ ### 4. Record Build Summary
110
+
111
+ - Record what you implemented in `sdd/03_build`.
112
+ - Use:
113
+ - `03_build/01_feature` for feature implementation summaries
114
+ - `03_build/02_screen` for screen implementation summaries
115
+ - `03_build/03_architecture`, `06_iac`, `10_test` for current-state cross-cutting summaries
116
+ - Keep entries factual and current-state only: implemented scope, modules, assets, contracts, and current user-visible behavior.
117
+
118
+ ### 5. Record Verification
119
+
120
+ - Record retained verification status in `sdd/04_verify`.
121
+ - Use:
122
+ - `04_verify/01_feature` for feature verification summaries
123
+ - `04_verify/02_screen` for screen verification summaries
124
+ - `04_verify/03_architecture`, `06_iac`, `10_test` for current retained checks and residual risk
125
+ - Never claim completion without command-level validation evidence.
126
+ - For staged DEV -> PROD rollout, verification must use the same retained full-layer validation surface in both environments.
127
+ - Run the full-layer validation in DEV after deployment and treat it as a hard gate before PROD promotion.
128
+ - After PROD deployment, rerun the same retained validation surface in PROD.
129
+ - If PROD validation fails, execute rollback or the approved recovery procedure immediately and record the failure and recovery outcome.
130
+ - For persistence-affecting work, verification must include real schema evidence from both DEV and PROD when those environments exist.
131
+ - Check migration state and actual runtime schema separately.
132
+ - Validate the tables, columns, indexes, constraints, triggers, defaults, and any legacy compatibility objects touched by the change.
133
+ - Record the commands or queries used, the environments checked, and the drift or parity result.
134
+ - Regression verification is mandatory.
135
+ - Verification must cover the direct surface and the retained upstream/downstream/shared surfaces selected from the regression baseline.
136
+ - If no automation exists for a needed regression slice yet, run the best available manual or command checks and record that gap as current residual risk.
137
+ - When a Playwright suite exists for the surface, record the canonical runner command, suite id, screenshot/json artifact paths, and any live-vs-local split explicitly.
138
+
139
+ ### 6. Record Operate Outcomes
140
+
141
+ - If deployment or runtime follow-up happens, update `sdd/05_operate`.
142
+ - Use:
143
+ - `05_operate/01_runbooks` for durable operating procedure changes
144
+ - `05_operate/02_delivery_status` for the current live state and monitoring baseline
145
+ - Record:
146
+ - what was deployed
147
+ - which live baseline is current
148
+ - how it is monitored
149
+ - any current residual risk
150
+ - For staged DEV -> PROD rollout, record the DEV gate, PROD gate, and any rollback outcome explicitly.
151
+ - When the DEV deployment baseline is tied to `main`, do not treat a side-branch push as sufficient. Merge, cherry-pick, or otherwise replay the final change onto `main`, push `origin/main`, then record the deployment evidence against that `main` baseline.
152
+
153
+ ## Guardrails
154
+
155
+ - Do not create or repopulate a parallel `docs/` tree when `sdd/` exists.
156
+ - Do not skip planning review just because the code change looks small.
157
+ - Do not leave build, verify, or operate evidence only in chat text when it should live in `sdd/`.
158
+ - When PROD rollout is in scope, do not promote to PROD before the retained full-layer DEV validation surface has passed.
159
+ - When PROD rollout is in scope, do not use a weaker PROD validation surface than the one that gated DEV unless the user explicitly approves and that risk is recorded.
160
+ - When PROD rollout is in scope, do not stop at "PROD deployment succeeded"; post-deploy PROD validation is mandatory.
161
+ - When PROD rollout is in scope, do not leave a failed PROD deployment unreconciled; rollback or the approved recovery procedure must be executed and recorded.
162
+ - Do not assume local tests, migration heads, or current model code prove deployed schema parity.
163
+ - Do not skip DEV/PROD schema inspection for persistence-affecting work when schema drift could influence behavior.
164
+ - Do not manually redraw screen-spec static assets when a canonical Asset Spec Builder exists for the repo; extract them first and use the generated asset.
165
+ - Do not skip a relevant screen automation builder just because the requested UI change looks like a small manual tweak.
166
+ - Do not stop verification at the edited file, route, or screen when the change can affect shared or adjacent behavior.
167
+ - Do not omit regression scope selection from the retained SDD trail.
168
+ - Do not update `05_operate` for tasks that never reached deployment; explicitly note that rollout did not happen instead.
169
+ - Do not call a DEV rollout complete from a temporary branch when the repo or team baseline expects the deployed change to be on `origin/main`.
170
+
171
+ ## Output Standard
172
+
173
+ By the end of an implementation task, the expected trail is:
174
+ - planning artifact reviewed or corrected,
175
+ - plan file updated,
176
+ - build summary written,
177
+ - verification summary written, including selected regression scope and residual risk,
178
+ - operate status updated if rollout occurred.
179
+
180
+ When PROD rollout is in scope, the retained completion state also requires:
181
+ - DEV deployment happened first and the retained full-layer DEV validation surface passed,
182
+ - the same retained full-layer validation surface was executed again in PROD,
183
+ - DEV/PROD schema state was checked and recorded when schema could influence behavior,
184
+ - any PROD validation failure produced rollback or recovery evidence in verify/operate.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "SDD Development"
3
+ short_description: "Use SDD-first flow with schema parity, regression scope, and staged rollout gates"
4
+ default_prompt: "Use $sdd to handle this development task through sdd planning, build, verify, and operate, including regression scope selection, schema parity checks for persistence-affecting work, and staged DEV-first validation when multiple environments exist."
@@ -0,0 +1,67 @@
1
+ # SDD Section Map
2
+
3
+ ## Planning
4
+
5
+ - `sdd/01_planning/01_feature`
6
+ - domain or service feature specifications
7
+ - `sdd/01_planning/02_screen`
8
+ - service-level screen specifications and PDFs
9
+ - `sdd/01_planning/03_architecture`
10
+ - bounded context, runtime, and structural design
11
+ - `sdd/01_planning/04_data`
12
+ - data model and relationship definitions
13
+ - `sdd/01_planning/05_api`
14
+ - transport contracts and API definitions
15
+ - `sdd/01_planning/06_iac`
16
+ - infrastructure planning and deployment design
17
+ - `sdd/01_planning/07_integration`
18
+ - integration contracts and external dependency planning
19
+ - `sdd/01_planning/08_nonfunctional`
20
+ - performance, reliability, scalability, and operational constraints
21
+ - `sdd/01_planning/09_security`
22
+ - security posture, threat model, and control planning
23
+ - `sdd/01_planning/10_test`
24
+ - test strategy and planned cases
25
+
26
+ ## Plan
27
+
28
+ - `sdd/02_plan/<section>`
29
+ - executable plan files and migration backlogs
30
+
31
+ ## Build
32
+
33
+ - `sdd/03_build/01_feature`
34
+ - feature implementation summaries
35
+ - `sdd/03_build/02_screen`
36
+ - screen implementation summaries
37
+ - `sdd/03_build/03_architecture`
38
+ - structural and governance implementation summaries
39
+ - `sdd/03_build/06_iac`
40
+ - current delivery/runtime implementation summaries
41
+ - `sdd/03_build/10_test`
42
+ - current harness and validation implementation summaries
43
+
44
+ ## Verify
45
+
46
+ - `sdd/04_verify/01_feature`
47
+ - feature verification summaries
48
+ - `sdd/04_verify/02_screen`
49
+ - screen verification summaries
50
+ - `sdd/04_verify/03_architecture`
51
+ - governance and structure verification summaries
52
+ - `sdd/04_verify/06_iac`
53
+ - delivery/runtime verification summaries
54
+ - `sdd/04_verify/10_test`
55
+ - current harness outputs and retained validation references
56
+
57
+ ## Operate
58
+
59
+ - `sdd/05_operate/01_runbooks`
60
+ - durable operating procedures
61
+ - `sdd/05_operate/02_delivery_status`
62
+ - current live state, monitoring baseline, and residual risk
63
+
64
+ ## Tooling
65
+
66
+ - `sdd/99_toolchain`
67
+ - generators, capture tooling, manifests, and other SDD automation
package/.dockerignore ADDED
@@ -0,0 +1,8 @@
1
+ .git
2
+ node_modules
3
+ **/node_modules
4
+ **/dist
5
+ **/.venv
6
+ **/__pycache__
7
+ **/.pytest_cache
8
+ **/*.tsbuildinfo
package/.env.example ADDED
@@ -0,0 +1,50 @@
1
+ SERVER_HTTP_PORT=8000
2
+ CLIENT_LANDING_PORT=3000
3
+ CLIENT_PLATFORM_PORT=3001
4
+ CLIENT_MOBILE_PORT=3002
5
+ CLIENT_ADMIN_PORT=4000
6
+
7
+ POSTGRES_PORT=5432
8
+ POSTGRES_DB=template
9
+ POSTGRES_USER=template
10
+ POSTGRES_PASSWORD=template
11
+
12
+ MYSQL_PORT=3306
13
+ MYSQL_DATABASE=template
14
+ MYSQL_USER=template
15
+ MYSQL_PASSWORD=template
16
+ MYSQL_ROOT_PASSWORD=template-root
17
+
18
+ MARIADB_PORT=3307
19
+ MARIADB_DATABASE=template
20
+ MARIADB_USER=template
21
+ MARIADB_PASSWORD=template
22
+ MARIADB_ROOT_PASSWORD=template-root
23
+
24
+ MONGO_PORT=27017
25
+
26
+ SERVER_APP_NAME=Template Server
27
+ SERVER_ENVIRONMENT=development
28
+ SERVER_API_PREFIX=/api/v1
29
+ SERVER_DATABASE_BACKEND=postgres
30
+ SERVER_POSTGRES_URL=postgresql+psycopg://template:template@postgres:5432/template
31
+ SERVER_MYSQL_URL=mysql+pymysql://template:template@mysql:3306/template
32
+ SERVER_MARIADB_URL=mysql+pymysql://template:template@mariadb:3306/template
33
+ SERVER_MONGODB_URL=mongodb://mongo:27017
34
+ SERVER_MONGODB_DATABASE=template
35
+ SERVER_JWT_SECRET=template-local-dev-secret
36
+ SERVER_JWT_ALGORITHM=HS256
37
+ SERVER_ACCESS_TOKEN_TTL_MINUTES=120
38
+ SERVER_BOOTSTRAP_ADMIN_EMAIL=admin@example.com
39
+ SERVER_BOOTSTRAP_ADMIN_PASSWORD=change-me-admin
40
+ SERVER_BOOTSTRAP_ADMIN_NAME=Template Admin
41
+ SERVER_BOOTSTRAP_OPERATOR_EMAIL=operator@example.com
42
+ SERVER_BOOTSTRAP_OPERATOR_PASSWORD=change-me-operator
43
+ SERVER_BOOTSTRAP_OPERATOR_NAME=Template Operator
44
+ SERVER_CORS_ORIGINS=["http://localhost:3000","http://127.0.0.1:3000","http://localhost:3001","http://127.0.0.1:3001","http://localhost:3002","http://127.0.0.1:3002","http://localhost:4000","http://127.0.0.1:4000"]
45
+
46
+ CLIENT_LANDING_VITE_API_BASE_URL=http://127.0.0.1:8000/api/v1
47
+ CLIENT_PLATFORM_VITE_API_BASE_URL=http://127.0.0.1:8000/api/v1
48
+ CLIENT_MOBILE_VITE_API_BASE_URL=http://127.0.0.1:8000/api/v1
49
+ CLIENT_ADMIN_VITE_API_BASE_URL=http://127.0.0.1:8000/api/v1
50
+ CLIENT_WATCH_USE_POLLING=false
package/.gitignore ADDED
@@ -0,0 +1,16 @@
1
+ node_modules/
2
+ dist/
3
+ .DS_Store
4
+ *.tsbuildinfo
5
+ .venv/
6
+ __pycache__/
7
+ .pytest_cache/
8
+ .terraform/
9
+ .agent/runs/**
10
+ !.agent/runs/
11
+ !.agent/runs/README.md
12
+ !.agent/sdd-build-ast-audit.json
13
+ !.claude/settings.local.json
14
+ .codex/skills/dev-browser/node_modules/
15
+ .codex/skills/dev-browser/profiles/browser-data/
16
+ .tmp-agentic-smoke/
package/AGENTS.md ADDED
@@ -0,0 +1,78 @@
1
+ # AGENTS.md
2
+
3
+ ## Toolchain Convention Policy
4
+
5
+ - 저장소 공통 컨벤션, 워크플로우, 실행 규약의 정본은 항상 `sdd/99_toolchain/02_policies`에 저장한다.
6
+ - `AGENTS.md`는 핵심 실행 규칙과 우선순위만 요약하며, 상세 배경/예외/절차는 toolchain 정책 문서를 따른다.
7
+
8
+ ## Regression Verification Policy
9
+
10
+ - `sdd` 성격의 작업은 edited target만 확인하고 종료하지 않는다.
11
+ - 회귀 검수 범위는 `sdd/02_plan/10_test/regression_verification.md` 기준으로 direct, upstream, downstream, shared surface까지 선택한다.
12
+ - Playwright exactness suite가 있는 UI surface는 `sdd/99_toolchain/01_automation/run_playwright_exactness.py`를 canonical local gate로 사용한다.
13
+ - shared route, shell, auth/session, component, data contract, generated asset, builder output 변경은 adjacent consumer까지 검수 범위를 넓힌다.
14
+ - 선택한 회귀 범위, 생략 사유, residual risk는 `sdd/02_plan`, `sdd/03_build`, `sdd/04_verify`에 current-state로 남긴다.
15
+
16
+ ## Branch And Deploy Policy
17
+
18
+ - 코드베이스 기본 개발 브랜치는 `main`이다.
19
+ - 구현 작업은 기본적으로 task 성격에 맞는 work branch에서 시작한다.
20
+ - work branch는 `feat/...`, `fix/...`, `refactor/...`, `docs/...`, `test/...`처럼 작업 surface가 드러나는 이름을 사용한다.
21
+ - work branch의 변경은 원격 branch까지 먼저 push해 working integration baseline을 남긴다.
22
+ - `main`이 아닌 branch에서 agent turn이 끝날 때 durable 변경이 남아 있으면 기본적으로 그 branch에 coherent commit을 만들고 origin branch까지 push한다. 예외는 worktree가 이미 clean이거나 사용자가 그 turn에 commit/push를 금지한 경우뿐이다.
23
+ - `DEV(개발계)` 반영이 필요한 작업은 그 branch를 `main`에 반영하고 `origin/main`까지 push한 뒤 배포한다.
24
+ - 수동 배포 단계여도 `branch push -> main merge/push -> DEV 배포 -> DEV 검증` 순서를 생략하지 않는다.
25
+ - 완료된 work branch는 관련 정합성 체크가 끝나고 변경이 `main`과 `origin/main`에 안전하게 반영된 뒤 local/remote branch를 모두 삭제한다. 사용자가 branch 유지를 명시한 경우만 예외다.
26
+ - branch retire 전 최소 정합성 체크는 `관련 canonical 검증 명령 재실행`, `worktree clean 확인`, `최종 변경의 main 포함 여부 확인`이다.
27
+
28
+ ## Runtime Naming Policy
29
+
30
+ - 문서/대화/로그에서 실행 환경은 항상 `DEV(개발계)`로 표기한다.
31
+ - `local`, `localhost 환경` 같은 표현은 운영 용어로 사용하지 않는다.
32
+
33
+ ## SDD Placement Rule
34
+
35
+ - 이 저장소는 top-level `docs/` 트리를 사용하지 않는다.
36
+ - design, planning, execution, verification, operate 문서는 모두 `sdd/` 아래에 둔다.
37
+ - 모든 `sdd/` section은 overwrite-only current-state artifact다.
38
+ - 날짜별 history, archive, release-log, gate-log 성 문서는 `sdd/` 안에 유지하지 않는다.
39
+ - durable plan artifact는 항상 `sdd/02_plan/<section>/` 아래에 둔다.
40
+
41
+ ## SDD Plan Governance
42
+
43
+ - `sdd/02_plan`은 dated or archived planning history를 두지 않는다.
44
+ - `sdd/02_plan`은 에이전트의 현재 개발 계획을 기록하는 루트다.
45
+ - feature, screen, architecture, data, API, IAC, integration, nonfunctional, security, test planning은 durable target-specific 문서를 직접 갱신한다.
46
+ - feature plan 기본 경로는 `sdd/02_plan/01_feature/<domain>_todos.md`다.
47
+ - screen plan 기본 경로는 `sdd/02_plan/02_screen/<service>_todos.md`다.
48
+ - 개발계 반영이 필요한 작업은 `구현(branch) -> branch push -> build -> main merge/push -> DEV(개발계) 배포 -> DEV 검수 -> 문서 갱신 -> branch 삭제` 순서를 기본 루틴으로 사용한다.
49
+ - 횡단 작업도 날짜 파일을 추가하지 않고 같은 section의 governance/backlog/current-plan 문서를 덮어쓴다.
50
+
51
+ ## SDD Build Governance
52
+
53
+ - `sdd/03_build`는 `sdd/02_plan`의 top-level split을 따라 durable implementation summary를 유지한다.
54
+ - feature summary는 service 또는 domain-sized category로 묶고, screen summary는 service split을 따른다.
55
+ - screen build summary는 `sdd/03_build/02_screen/<service>/` 아래 screen-specific 파일로 유지한다.
56
+ - dated execution log는 두지 않고 같은 summary 파일을 갱신한다.
57
+
58
+ ## SDD Verify Governance
59
+
60
+ - `sdd/04_verify`는 feature/screen/architecture/IAC/test별 current verification summary만 유지한다.
61
+ - screen verification summary는 `sdd/04_verify/02_screen/<service>/` 아래 screen-specific 파일로 유지한다.
62
+ - dated gate result나 test evidence log는 남기지 않는다.
63
+
64
+ ## SDD Operate Governance
65
+
66
+ - `sdd/05_operate`는 current delivery state, runbook, monitoring baseline만 유지한다.
67
+ - raw runtime log나 release timeline은 SDD가 아니라 runtime logging system의 역할이다.
68
+
69
+ ## Harness Location Policy
70
+
71
+ - Claude/Codex/Ralph 하네스와 에이전트 설정은 저장소 루트의 `.claude`, `.codex`, `.agent`와 `sdd/99_toolchain/01_automation` 설명 문서에 함께 유지한다.
72
+
73
+ ## Build AST Governance
74
+
75
+ - `sdd/03_build`는 실행 이력 요약이 아니라 runtime assembly current-state 문서다.
76
+ - service/screen build summary는 `entry -> provider/router -> auth/session gate -> shell -> route leaf -> backend contract leaf` 순서를 우선 유지한다.
77
+ - `sdd/03_build`에는 dated history, Ralph iteration narrative, run id memo를 남기지 않는다.
78
+ - AST 기반 current-state 적합성은 `scripts/dev/audit_sdd_build_ast.py`와 `sdd/04_verify/03_architecture/build_ast_runtime_tree_governance.md`를 기준으로 관리한다.
package/README.md CHANGED
@@ -1,66 +1,102 @@
1
- # agentic-dev
1
+ # templates
2
2
 
3
- `agentic-dev`는 이상 템플릿 정본이 아니다. 현재 repo의 canonical 역할은 새 GitHub repo 안에서 `agentic-core`와 `template-*` repo를 조합해 초기 프로젝트 baseline을 생성하는 installer CLI다.
3
+ 제품으로 바로 수렴 가능한 client/server 템플릿 모음이자 downstream 저장소가 그대로 복제하는 canonical template repo다.
4
4
 
5
- ## Canonical Flow
5
+ 포함 템플릿:
6
6
 
7
- 1. GitHub에 repository를 만든다.
8
- 2. repo를 clone한다.
9
- 3. repo root에 `.git`만 있는 상태에서 아래를 실행한다.
7
+ - [landing](./client/landing): 마케팅/브랜드 랜딩 패턴
8
+ - [platform](./client/platform): 일반 제품형 플랫폼 앱 shell, dashboard/list/detail 패턴
9
+ - [mobile](./client/mobile): 다국어/현장 업무형 모바일 IN workspace 패턴
10
+ - [admin](./client/admin): 운영 콘솔형 shell, sidebar/topbar/drawer/table 패턴
11
+ - [server](./server): HTTP 기반 hexagonal/DDD 서버 패턴
10
12
 
11
- ```bash
12
- npx agentic-dev init
13
- ```
13
+ 공통 원칙:
14
+
15
+ - 프론트엔드는 `pnpm workspace + React + Vite + Tailwind` 기반
16
+ - `shadcn/ui-style` primitive를 직접 포함
17
+ - 제품 DOM은 유지하고, 스타일 조정값은 `theme.ts` + CSS custom properties로 노출
18
+ - proof/spec 전용 DOM 복제 대신 fixture data + parameter surface로 정렬
19
+ - `server`는 hexagonal architecture 기준으로 `contracts + application + domain + infrastructure`를 사용
20
+ - `landing`, `platform`, `mobile`, `admin`은 실제 `/api/v1/auth/login`과 `/api/v1/auth/me`를 사용하는 기준 템플릿이다.
21
+ - runtime baseline은 루트 `compose.yml`을 기준으로 유지하고, 여기서 4개 frontend surface, `server`, 기본 `postgres`, optional DB profile을 함께 올린다.
22
+ - agentic baseline은 `.claude`, `.codex`, `.agent`를 함께 유지하고 downstream repo가 role agent, skill alias, Ralph harness를 그대로 가져가도록 설계한다.
23
+ - `sdd/03_build`는 단순 구현 목록이 아니라 실제 runtime assembly를 따라 읽는 AST-style current-state 설명을 기준으로 유지한다.
24
+
25
+ SDD / delivery 원칙:
14
26
 
15
- 4. CLI는 다음을 단계별로 묻는다.
16
- - `agentic-core` repo/ref
17
- - `do4ai` 조직의 `template-*` repo 선택
18
- - template ref
19
- - slug / display name / bootstrap email
20
- - GitHub owner / repository / project
21
- 5. CLI는 template materialize -> token render -> `agentic-core` sync -> repo-local contract/bootstrap -> exact commit lock 생성 순서로 세팅한다.
27
+ - 설계, 계획, 구현, 검증, 운영 문서는 모두 `sdd/`가 canonical root다.
28
+ - `sdd/`는 history 누적이 아니라 current-state durable 문서만 유지한다.
29
+ - `02_plan`은 에이전트의 현재 개발 계획을 관리하고, feature는 `<domain>_todos.md`, screen은 `<service>_todos.md`로 유지한다.
30
+ - 템플릿 runtime baseline은 root `compose.yml` dev-focused stack이고, dedicated host용 DEV(개발계)/PROD compose overlay는 `infra/compose/`에 둔다.
31
+ - current canonical delivery split은 `AWS edge/domain -> OpenStack backend compute -> AWS data plane`이다.
32
+ - DEV(개발계) 반영이 필요한 작업은 `build -> main push -> DEV deploy -> DEV verify` 순서를 기본으로 사용한다.
22
33
 
23
- ## What Gets Generated
34
+ 문서:
24
35
 
25
- - `agentic-core` canonical harness
26
- - `.claude/`
27
- - `.codex/`
28
- - `sdd/` shared inventory
29
- - `scripts/agentic-core/`
30
- - template runtime/app code
31
- - repo-local GitHub Project agentic surface
32
- - `.claude/agentic-dev.json`
33
- - `.codex/agentic-dev.json`
34
- - `sdd/99_toolchain/01_automation/github-project-kit/project-contract.json`
35
- - `sdd/99_toolchain/01_automation/github-project-kit/artifact-contract.json`
36
- - provenance lock
37
- - `.agentic-dev-lock.json`
36
+ - [UI Contract Projection](./sdd/99_toolchain/01_automation/ui-contract-projection.md): 스킬/CLI 공통 projection 계약
37
+ - [Infra Compose](./infra/compose/README.md): root compose baseline과 dedicated DEV(개발계)/PROD compose overlay
38
+ - [Terraform Layout](./infra/terraform/README.md): provider-first canonical infra layout
39
+ - [OpenStack Terraform](./infra/terraform/openstack/README.md): OpenStack compute baseline
40
+ - [AST Build Governance](./sdd/02_plan/03_architecture/build_ast_runtime_tree_governance.md): `sdd/03_build` runtime-tree governance
38
41
 
39
- ## Preconditions
42
+ 설치형 scaffold:
43
+
44
+ ```bash
45
+ npx agentic-dev init my-app --template platform
46
+ cd my-app
47
+ cp .env.example .env
48
+ npm install -g pnpm
49
+ pnpm install
50
+ cd client/platform
51
+ npm run ui:parity:bootstrap
52
+ ```
40
53
 
41
- - current directory must already be a Git repo root
42
- - the repo should be empty except for `.git`
43
- - `gh`, `git`, `python3`, `node` must be installed
44
- - GitHub auth must have repo/project permissions
45
- - target GitHub repository must already exist
54
+ CLI가 하는 일:
46
55
 
47
- ## Template Contract
56
+ - 선택한 frontend template 하나를 `client/<template>`로 설치
57
+ - `server`, `.claude`, `.codex`, `.agent`, `sdd`, `infra`, `scripts`를 함께 설치
58
+ - 선택한 template에 맞게 `compose.yml`, `pnpm-workspace.yaml`, `repo-contract.json`을 정렬
48
59
 
49
- template repo는 optional `.agentic-dev/template.json`을 통해 installer에 override를 줄 수 있다.
60
+ GitHub token 운영:
50
61
 
51
- - `artifact_contract` 또는 `artifactContract`
52
- - `render_excludes`
62
+ - 실제 token 값은 repo 파일에 저장하지 않는다.
63
+ - GitHub CLI나 자동화는 `GH_TOKEN` 또는 별도 wrapper가 있다면 `AGENTIC_GITHUB_TOKEN` 같은 환경변수에서 읽도록 운영한다.
64
+ - 이미 대화나 로그에 노출된 token은 재사용하지 않고 즉시 폐기 후 새로 발급하는 것이 맞다.
53
65
 
54
- 없으면 installer는 generic artifact contract baseline을 사용한다.
55
66
 
56
- ## Development
67
+ 개발용 compose baseline:
57
68
 
58
69
  ```bash
59
- npm test
60
- node src/cli.js --help
70
+ cp .env.example .env
71
+ docker compose up --build
61
72
  ```
62
73
 
63
- ## Notes
74
+ 기본 compose 포트:
75
+
76
+ - `client/landing`: `3000`
77
+ - `client/platform`: `3001`
78
+ - `client/mobile`: `3002`
79
+ - `client/admin`: `4000`
80
+ - `server/http`: `8000`
81
+
82
+ 기본 로그인 계정:
83
+
84
+ - `admin@example.com` / `<CHANGE_ME>`
85
+ - `operator@example.com` / `<CHANGE_ME>`
86
+
87
+ DB adapter 전환:
88
+
89
+ - 기본: `SERVER_DATABASE_BACKEND=postgres`
90
+ - 선택 가능: `postgres`, `mysql`, `mariadb`, `mongodb`, `memory`
91
+ - optional DB 컨테이너는 compose profile로 포함돼 있다:
92
+ - `docker compose --profile mysql up --build`
93
+ - `docker compose --profile mariadb up --build`
94
+ - `docker compose --profile mongo up --build`
95
+
96
+ Agentic baseline:
64
97
 
65
- - 이 worktree에는 legacy template/runtime 코드가 남아 있을 있다. 현재 turn에서는 dirty worktree를 건드리지 않기 위해 비파괴적으로 installer surface를 우선 canonical화했다.
66
- - template 정본은 별도 `template-*` repo가 소유해야 하며, 첫 기준 템플릿은 `palcar`를 일반화한 `template-fullstack-mono`를 전제로 한다.
98
+ - `.claude/agents/`: Claude role agent prompt surface
99
+ - `.claude/skills/sdd`, `.claude/skills/sdd-development`: SDD skill surface
100
+ - `.codex/skills/SKILL.md`: OTRO root alias
101
+ - `.codex/skills/sdd/`: Codex SDD canonical skill
102
+ - `.agent/ralph.sh`, `.agent/ralph-supervisor.sh`: bounded Ralph loop runner