@tdk-landscape/tdk-cli-core 1.3.53 → 1.3.54

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 (388) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/cli/dist/generator/extension-fetch.js +16 -9
  3. package/cli/package.json +1 -1
  4. package/package.json +16 -1
  5. package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
  6. package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
  7. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
  8. package/.github/ISSUE_TEMPLATE/config.yml +0 -11
  9. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
  10. package/.github/ISSUE_TEMPLATE/premium_license.yml +0 -43
  11. package/.github/dependabot.yml +0 -33
  12. package/.github/pull_request_template.md +0 -5
  13. package/.github/workflows/ci.yml +0 -200
  14. package/.github/workflows/release-binaries.yml +0 -139
  15. package/.github/zizmor.yml +0 -9
  16. package/.pre-commit-config.yaml +0 -57
  17. package/CODE_OF_CONDUCT.md +0 -9
  18. package/CONTRIBUTING.md +0 -42
  19. package/Makefile +0 -92
  20. package/SECURITY.md +0 -17
  21. package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
  22. package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
  23. package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
  24. package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
  25. package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
  26. package/cli/AGENTS.md +0 -390
  27. package/cli/DESIGN.md +0 -735
  28. package/cli/README.md +0 -292
  29. package/cli/biome.json +0 -40
  30. package/cli/dependency-graph.svg +0 -1135
  31. package/cli/dist/cli.d.ts +0 -3
  32. package/cli/dist/cli.d.ts.map +0 -1
  33. package/cli/dist/cli.js.map +0 -1
  34. package/cli/dist/commands/completion.d.ts +0 -3
  35. package/cli/dist/commands/completion.d.ts.map +0 -1
  36. package/cli/dist/commands/completion.js.map +0 -1
  37. package/cli/dist/commands/config.d.ts +0 -3
  38. package/cli/dist/commands/config.d.ts.map +0 -1
  39. package/cli/dist/commands/config.js.map +0 -1
  40. package/cli/dist/commands/doctor.d.ts +0 -19
  41. package/cli/dist/commands/doctor.d.ts.map +0 -1
  42. package/cli/dist/commands/doctor.js.map +0 -1
  43. package/cli/dist/commands/down.d.ts +0 -3
  44. package/cli/dist/commands/down.d.ts.map +0 -1
  45. package/cli/dist/commands/down.js.map +0 -1
  46. package/cli/dist/commands/help.d.ts +0 -2
  47. package/cli/dist/commands/help.d.ts.map +0 -1
  48. package/cli/dist/commands/help.js.map +0 -1
  49. package/cli/dist/commands/networks.d.ts +0 -3
  50. package/cli/dist/commands/networks.d.ts.map +0 -1
  51. package/cli/dist/commands/networks.js.map +0 -1
  52. package/cli/dist/commands/project.d.ts +0 -9
  53. package/cli/dist/commands/project.d.ts.map +0 -1
  54. package/cli/dist/commands/project.js.map +0 -1
  55. package/cli/dist/commands/projects.d.ts +0 -3
  56. package/cli/dist/commands/projects.d.ts.map +0 -1
  57. package/cli/dist/commands/projects.js.map +0 -1
  58. package/cli/dist/commands/resource.d.ts +0 -69
  59. package/cli/dist/commands/resource.d.ts.map +0 -1
  60. package/cli/dist/commands/resource.js.map +0 -1
  61. package/cli/dist/commands/resources.d.ts +0 -3
  62. package/cli/dist/commands/resources.d.ts.map +0 -1
  63. package/cli/dist/commands/resources.js.map +0 -1
  64. package/cli/dist/commands/stack.d.ts +0 -3
  65. package/cli/dist/commands/stack.d.ts.map +0 -1
  66. package/cli/dist/commands/stack.js.map +0 -1
  67. package/cli/dist/commands/stacks.d.ts +0 -3
  68. package/cli/dist/commands/stacks.d.ts.map +0 -1
  69. package/cli/dist/commands/stacks.js.map +0 -1
  70. package/cli/dist/commands/status.d.ts +0 -3
  71. package/cli/dist/commands/status.d.ts.map +0 -1
  72. package/cli/dist/commands/status.js.map +0 -1
  73. package/cli/dist/commands/ui.d.ts +0 -3
  74. package/cli/dist/commands/ui.d.ts.map +0 -1
  75. package/cli/dist/commands/ui.js.map +0 -1
  76. package/cli/dist/commands/up.d.ts +0 -3
  77. package/cli/dist/commands/up.d.ts.map +0 -1
  78. package/cli/dist/commands/up.js.map +0 -1
  79. package/cli/dist/commands/upgrade.d.ts +0 -14
  80. package/cli/dist/commands/upgrade.d.ts.map +0 -1
  81. package/cli/dist/commands/upgrade.js.map +0 -1
  82. package/cli/dist/commands/version.d.ts +0 -3
  83. package/cli/dist/commands/version.d.ts.map +0 -1
  84. package/cli/dist/commands/version.js.map +0 -1
  85. package/cli/dist/components/Accessible.d.ts +0 -8
  86. package/cli/dist/components/Accessible.d.ts.map +0 -1
  87. package/cli/dist/components/Accessible.js.map +0 -1
  88. package/cli/dist/components/BaseTooltip.d.ts +0 -4
  89. package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
  90. package/cli/dist/components/BaseTooltip.js.map +0 -1
  91. package/cli/dist/components/DetailPanel.d.ts +0 -4
  92. package/cli/dist/components/DetailPanel.d.ts.map +0 -1
  93. package/cli/dist/components/DetailPanel.js.map +0 -1
  94. package/cli/dist/components/FileTree.d.ts +0 -4
  95. package/cli/dist/components/FileTree.d.ts.map +0 -1
  96. package/cli/dist/components/FileTree.js.map +0 -1
  97. package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
  98. package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
  99. package/cli/dist/components/ResourceSelectInput.js.map +0 -1
  100. package/cli/dist/components/ResourceTable.d.ts +0 -4
  101. package/cli/dist/components/ResourceTable.d.ts.map +0 -1
  102. package/cli/dist/components/ResourceTable.js.map +0 -1
  103. package/cli/dist/components/TabBar.d.ts +0 -4
  104. package/cli/dist/components/TabBar.d.ts.map +0 -1
  105. package/cli/dist/components/TabBar.js.map +0 -1
  106. package/cli/dist/components/Tooltip.d.ts +0 -12
  107. package/cli/dist/components/Tooltip.d.ts.map +0 -1
  108. package/cli/dist/components/Tooltip.js.map +0 -1
  109. package/cli/dist/components/index.d.ts +0 -8
  110. package/cli/dist/components/index.d.ts.map +0 -1
  111. package/cli/dist/components/index.js.map +0 -1
  112. package/cli/dist/config/platform-standards.d.ts +0 -159
  113. package/cli/dist/config/platform-standards.d.ts.map +0 -1
  114. package/cli/dist/config/platform-standards.js.map +0 -1
  115. package/cli/dist/generator/extension-fetch.d.ts +0 -25
  116. package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
  117. package/cli/dist/generator/extension-fetch.js.map +0 -1
  118. package/cli/dist/generator/template-engine.d.ts +0 -62
  119. package/cli/dist/generator/template-engine.d.ts.map +0 -1
  120. package/cli/dist/generator/template-engine.js.map +0 -1
  121. package/cli/dist/index.d.ts +0 -11
  122. package/cli/dist/index.d.ts.map +0 -1
  123. package/cli/dist/index.js.map +0 -1
  124. package/cli/dist/types/index.d.ts +0 -257
  125. package/cli/dist/types/index.d.ts.map +0 -1
  126. package/cli/dist/types/index.js.map +0 -1
  127. package/cli/dist/utils/cache.d.ts +0 -19
  128. package/cli/dist/utils/cache.d.ts.map +0 -1
  129. package/cli/dist/utils/cache.js.map +0 -1
  130. package/cli/dist/utils/command-helpers.d.ts +0 -17
  131. package/cli/dist/utils/command-helpers.d.ts.map +0 -1
  132. package/cli/dist/utils/command-helpers.js.map +0 -1
  133. package/cli/dist/utils/constants.d.ts +0 -53
  134. package/cli/dist/utils/constants.d.ts.map +0 -1
  135. package/cli/dist/utils/constants.js.map +0 -1
  136. package/cli/dist/utils/discovery-context.d.ts +0 -4
  137. package/cli/dist/utils/discovery-context.d.ts.map +0 -1
  138. package/cli/dist/utils/discovery-context.js.map +0 -1
  139. package/cli/dist/utils/docker.d.ts +0 -4
  140. package/cli/dist/utils/docker.d.ts.map +0 -1
  141. package/cli/dist/utils/docker.js.map +0 -1
  142. package/cli/dist/utils/doctor-runtime.d.ts +0 -81
  143. package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
  144. package/cli/dist/utils/doctor-runtime.js.map +0 -1
  145. package/cli/dist/utils/env-validator.d.ts +0 -15
  146. package/cli/dist/utils/env-validator.d.ts.map +0 -1
  147. package/cli/dist/utils/env-validator.js.map +0 -1
  148. package/cli/dist/utils/errors.d.ts +0 -31
  149. package/cli/dist/utils/errors.d.ts.map +0 -1
  150. package/cli/dist/utils/errors.js.map +0 -1
  151. package/cli/dist/utils/file-helpers.d.ts +0 -14
  152. package/cli/dist/utils/file-helpers.d.ts.map +0 -1
  153. package/cli/dist/utils/file-helpers.js.map +0 -1
  154. package/cli/dist/utils/formatting.d.ts +0 -30
  155. package/cli/dist/utils/formatting.d.ts.map +0 -1
  156. package/cli/dist/utils/formatting.js.map +0 -1
  157. package/cli/dist/utils/paths.d.ts +0 -3
  158. package/cli/dist/utils/paths.d.ts.map +0 -1
  159. package/cli/dist/utils/paths.js.map +0 -1
  160. package/cli/dist/utils/port-assignment.d.ts +0 -6
  161. package/cli/dist/utils/port-assignment.d.ts.map +0 -1
  162. package/cli/dist/utils/port-assignment.js.map +0 -1
  163. package/cli/dist/utils/project-features.d.ts +0 -23
  164. package/cli/dist/utils/project-features.d.ts.map +0 -1
  165. package/cli/dist/utils/project-features.js.map +0 -1
  166. package/cli/dist/utils/project-templates.d.ts +0 -7
  167. package/cli/dist/utils/project-templates.d.ts.map +0 -1
  168. package/cli/dist/utils/project-templates.js.map +0 -1
  169. package/cli/dist/utils/prompt.d.ts +0 -28
  170. package/cli/dist/utils/prompt.d.ts.map +0 -1
  171. package/cli/dist/utils/prompt.js.map +0 -1
  172. package/cli/dist/utils/resource-features.d.ts +0 -29
  173. package/cli/dist/utils/resource-features.d.ts.map +0 -1
  174. package/cli/dist/utils/resource-features.js.map +0 -1
  175. package/cli/dist/utils/service-urls.d.ts +0 -30
  176. package/cli/dist/utils/service-urls.d.ts.map +0 -1
  177. package/cli/dist/utils/service-urls.js.map +0 -1
  178. package/cli/dist/utils/services.d.ts +0 -18
  179. package/cli/dist/utils/services.d.ts.map +0 -1
  180. package/cli/dist/utils/services.js.map +0 -1
  181. package/cli/dist/utils/stack-features.d.ts +0 -22
  182. package/cli/dist/utils/stack-features.d.ts.map +0 -1
  183. package/cli/dist/utils/stack-features.js.map +0 -1
  184. package/cli/dist/utils/tar.d.ts +0 -7
  185. package/cli/dist/utils/tar.d.ts.map +0 -1
  186. package/cli/dist/utils/tar.js.map +0 -1
  187. package/cli/dist/utils/tilt.d.ts +0 -20
  188. package/cli/dist/utils/tilt.d.ts.map +0 -1
  189. package/cli/dist/utils/tilt.js.map +0 -1
  190. package/cli/dist/utils/validation.d.ts +0 -16
  191. package/cli/dist/utils/validation.d.ts.map +0 -1
  192. package/cli/dist/utils/validation.js.map +0 -1
  193. package/cli/knip.json +0 -6
  194. package/cli/pnpm-lock.yaml +0 -2305
  195. package/cli/pnpm-workspace.yaml +0 -2
  196. package/cli/src/cli.ts +0 -72
  197. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
  198. package/cli/src/commands/__tests__/config.test.ts +0 -146
  199. package/cli/src/commands/__tests__/doctor.test.ts +0 -730
  200. package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
  201. package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
  202. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
  203. package/cli/src/commands/__tests__/project.test.ts +0 -68
  204. package/cli/src/commands/__tests__/resource.test.ts +0 -226
  205. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
  206. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
  207. package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
  208. package/cli/src/commands/completion.ts +0 -300
  209. package/cli/src/commands/config.ts +0 -299
  210. package/cli/src/commands/doctor.ts +0 -926
  211. package/cli/src/commands/down.ts +0 -37
  212. package/cli/src/commands/help.ts +0 -143
  213. package/cli/src/commands/networks-design.md +0 -80
  214. package/cli/src/commands/networks.ts +0 -332
  215. package/cli/src/commands/project.ts +0 -456
  216. package/cli/src/commands/projects.ts +0 -82
  217. package/cli/src/commands/resource.ts +0 -652
  218. package/cli/src/commands/resources.ts +0 -95
  219. package/cli/src/commands/stack.ts +0 -128
  220. package/cli/src/commands/stacks.ts +0 -52
  221. package/cli/src/commands/status.ts +0 -88
  222. package/cli/src/commands/ui.tsx +0 -843
  223. package/cli/src/commands/up.ts +0 -169
  224. package/cli/src/commands/upgrade.ts +0 -628
  225. package/cli/src/commands/version.ts +0 -9
  226. package/cli/src/components/Accessible.tsx +0 -21
  227. package/cli/src/components/BaseTooltip.tsx +0 -66
  228. package/cli/src/components/DetailPanel.tsx +0 -146
  229. package/cli/src/components/FileTree.tsx +0 -89
  230. package/cli/src/components/ResourceSelectInput.tsx +0 -30
  231. package/cli/src/components/ResourceTable.tsx +0 -78
  232. package/cli/src/components/TabBar.tsx +0 -53
  233. package/cli/src/components/Tooltip.tsx +0 -11
  234. package/cli/src/components/index.ts +0 -7
  235. package/cli/src/config/platform-standards.test.ts +0 -11
  236. package/cli/src/config/platform-standards.ts +0 -196
  237. package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
  238. package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
  239. package/cli/src/generator/extension-fetch.ts +0 -286
  240. package/cli/src/generator/template-engine.ts +0 -752
  241. package/cli/src/index.ts +0 -86
  242. package/cli/src/templates.d.ts +0 -4
  243. package/cli/src/types/index.ts +0 -353
  244. package/cli/src/utils/__tests__/cache.test.ts +0 -98
  245. package/cli/src/utils/__tests__/formatting.test.ts +0 -170
  246. package/cli/src/utils/__tests__/paths.test.ts +0 -180
  247. package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
  248. package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
  249. package/cli/src/utils/__tests__/services.test.ts +0 -531
  250. package/cli/src/utils/__tests__/tilt.test.ts +0 -172
  251. package/cli/src/utils/__tests__/validation.test.ts +0 -148
  252. package/cli/src/utils/cache.ts +0 -76
  253. package/cli/src/utils/command-helpers.ts +0 -54
  254. package/cli/src/utils/constants.ts +0 -130
  255. package/cli/src/utils/discovery-context.ts +0 -49
  256. package/cli/src/utils/docker.ts +0 -20
  257. package/cli/src/utils/doctor-runtime.ts +0 -644
  258. package/cli/src/utils/env-validator.ts +0 -139
  259. package/cli/src/utils/errors.ts +0 -168
  260. package/cli/src/utils/file-helpers.ts +0 -62
  261. package/cli/src/utils/formatting.ts +0 -215
  262. package/cli/src/utils/paths.ts +0 -53
  263. package/cli/src/utils/port-assignment.ts +0 -106
  264. package/cli/src/utils/project-features.ts +0 -118
  265. package/cli/src/utils/project-templates.ts +0 -29
  266. package/cli/src/utils/prompt.ts +0 -128
  267. package/cli/src/utils/resource-features.ts +0 -215
  268. package/cli/src/utils/service-urls.ts +0 -124
  269. package/cli/src/utils/services.ts +0 -364
  270. package/cli/src/utils/stack-features.ts +0 -30
  271. package/cli/src/utils/tar.ts +0 -24
  272. package/cli/src/utils/tilt.ts +0 -133
  273. package/cli/src/utils/validation.ts +0 -67
  274. package/cli/tsconfig.json +0 -25
  275. package/cli/tsconfig.typecheck.json +0 -8
  276. package/docs/FEATURES.md +0 -281
  277. package/docs/demo.svg +0 -217
  278. package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
  279. package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
  280. package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
  281. package/engine/docs/C4-ARCHITECTURE.md +0 -17
  282. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
  283. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
  284. package/engine/docs/README.md +0 -284
  285. package/install.sh +0 -19
  286. package/knip.json +0 -10
  287. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
  288. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
  289. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
  290. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
  291. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
  292. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
  293. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
  294. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
  295. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
  296. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
  297. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
  298. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
  299. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
  300. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
  301. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
  302. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
  303. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
  304. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
  305. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
  306. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
  307. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
  308. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
  309. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
  310. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
  311. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
  312. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
  313. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
  314. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
  315. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
  316. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
  317. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
  318. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
  319. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
  320. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
  321. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
  322. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
  323. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
  324. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
  325. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
  326. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
  327. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
  328. package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
  329. package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
  330. package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
  331. package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
  332. package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
  333. package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
  334. package/openspec/changes/prioritized-cold-start/design.md +0 -137
  335. package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
  336. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
  337. package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
  338. package/openspec/config.yaml +0 -1
  339. package/openspec/specs/manifest-field-migration/spec.md +0 -24
  340. package/openspec/specs/resource-terminology-standard/spec.md +0 -24
  341. package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
  342. package/openspec/specs/stack-terminology-standard/spec.md +0 -24
  343. package/platform/services/platform/proxy/service.yaml +0 -14
  344. package/scripts/audit-codebase.sh +0 -213
  345. package/scripts/autoresearch/layer-eval.sh +0 -65
  346. package/scripts/benchmark/README.md +0 -25
  347. package/scripts/benchmark/container-scale.ts +0 -503
  348. package/scripts/benchmark/pre-release-gate.sh +0 -9
  349. package/scripts/install-git-hooks.sh +0 -14
  350. package/scripts/measure-idle-footprint.sh +0 -58
  351. package/scripts/record-demo.sh +0 -43
  352. package/scripts/release-binaries.sh +0 -97
  353. package/scripts/setup-pre-commit.sh +0 -33
  354. package/scripts/stage-npm-engine.sh +0 -36
  355. package/tests/tilt-engine/__init__.py +0 -5
  356. package/tests/tilt-engine/conftest.py +0 -182
  357. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
  358. package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
  359. package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
  360. package/tests/tilt-engine/test_agents_md_generator.py +0 -341
  361. package/tests/tilt-engine/test_agents_md_integration.py +0 -378
  362. package/tests/tilt-engine/test_cache_operations.py +0 -181
  363. package/tests/tilt-engine/test_cache_persistence.py +0 -142
  364. package/tests/tilt-engine/test_code_executor.py +0 -152
  365. package/tests/tilt-engine/test_code_viewer.py +0 -127
  366. package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
  367. package/tests/tilt-engine/test_config_inspector.py +0 -162
  368. package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
  369. package/tests/tilt-engine/test_daemon_polling.py +0 -122
  370. package/tests/tilt-engine/test_daemon_registration.py +0 -115
  371. package/tests/tilt-engine/test_daemon_validation.py +0 -107
  372. package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
  373. package/tests/tilt-engine/test_docker_prune.py +0 -119
  374. package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
  375. package/tests/tilt-engine/test_file_browser.py +0 -193
  376. package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
  377. package/tests/tilt-engine/test_health_dependencies.py +0 -130
  378. package/tests/tilt-engine/test_health_endpoints.py +0 -118
  379. package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
  380. package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
  381. package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
  382. package/tests/tilt-engine/test_safety_aliases.py +0 -84
  383. package/tests/tilt-engine/test_snapshot_diff.py +0 -136
  384. package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
  385. package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
  386. package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
  387. package/tests/tilt-engine/test_standalone_traefik.py +0 -160
  388. package/tests/tilt-engine/test_traefik_static_wake_route.py +0 -187
@@ -1,2 +0,0 @@
1
- schema: spec-driven
2
- created: 2026-04-28
@@ -1,84 +0,0 @@
1
- ## Context
2
-
3
- TDK CLI is a multi-language monorepo with TypeScript (CLI), Python (Discovery), and Starlark (Engine/Tilt configs). During initial exploration, several gaps were identified:
4
-
5
- **Current State:**
6
- - CLI `resource.ts` has 4 TODO comments for unimplemented features (database/cache checks, routes, worker logic, diff logic)
7
- - CLI `config.ts` has incomplete diff implementation
8
- - Test coverage exists but gaps likely in error handling paths
9
- - No systematic audit system for tracking technical debt
10
-
11
- **Constraints:**
12
- - Must not break existing functionality
13
- - Changes should be minimal and focused
14
- - All fixes must include tests where applicable
15
- - Must maintain compatibility with existing Tilt workflows
16
-
17
- ## Goals / Non-Goals
18
-
19
- **Goals:**
20
- - Implement automated scanning to find TODO/FIXME/BUG/HACK markers across all languages
21
- - Fix high-priority TODOs in CLI commands (resource.ts, config.ts)
22
- - Add missing test coverage for critical error paths
23
- - Remove dead code and unused imports
24
- - Document all changes with clear commit messages
25
-
26
- **Non-Goals:**
27
- - Major refactoring or architecture changes
28
- - Adding new features beyond fixing existing TODOs
29
- - Rewriting working code without TODOs
30
- - Breaking changes to existing APIs
31
-
32
- ## Decisions
33
-
34
- **Decision 1: Use grep-based scanning for initial audit**
35
- - **Rationale:** Simple, fast, works across all languages (TypeScript, Python, Starlark, Go)
36
- - **Alternative considered:** AST parsing - too complex for initial pass
37
- - **Implementation:** Shell script that searches for patterns: `TODO`, `FIXME`, `XXX`, `BUG`, `HACK`
38
-
39
- **Decision 2: Prioritize TODOs by file location and context**
40
- - **Rationale:** Not all TODOs are equal - CLI commands affect users directly
41
- - **Priority order:**
42
- 1. CLI user-facing commands (resource, config)
43
- 2. Core discovery logic
44
- 3. Engine utilities
45
- 4. Test infrastructure
46
-
47
- **Decision 3: Implement TODOs with minimal viable solutions**
48
- - **Rationale:** Don't over-engineer; match the scope implied by the TODO comment
49
- - **Example:** `// TODO: Add your routes here` → Add basic route placeholder, not full routing system
50
-
51
- **Decision 4: Add tests for all implemented TODOs**
52
- - **Rationale:** Ensures fixes work and don't regress
53
- - **Approach:** Unit tests for CLI, integration tests where appropriate
54
-
55
- ## Risks / Trade-offs
56
-
57
- **Risk:** TODO comments may be intentionally vague and require product decisions
58
- - **Mitigation:** For ambiguous TODOs, implement minimal viable solution and document the limitation
59
-
60
- **Risk:** Implementing TODOs may introduce bugs in working code
61
- - **Mitigation:** All changes get tests; use existing test patterns from the codebase
62
-
63
- **Risk:** Dead code removal might break something that appears unused but is dynamically loaded
64
- - **Mitigation:** Only remove code after verifying no references exist (static analysis + runtime check)
65
-
66
- **Risk:** Test coverage gaps may be larger than initially estimated
67
- - **Mitigation:** Focus on critical paths first; document remaining gaps for future work
68
-
69
- ## Migration Plan
70
-
71
- Not applicable - this is an internal maintenance change with no user-facing migration needed.
72
-
73
- Deployment steps:
74
- 1. Run audit script to generate initial report
75
- 2. Fix TODOs in priority order (CLI first)
76
- 3. Add tests for all changes
77
- 4. Run full test suite to ensure no regressions
78
- 5. Submit as single PR or split by module (CLI, Discovery, Engine)
79
-
80
- ## Open Questions
81
-
82
- 1. Should we create a recurring audit job (CI) to catch new TODOs?
83
- 2. What's the policy for TODOs that require product decisions vs. technical implementation?
84
- 3. Should we establish a "no TODOs in main" policy after this cleanup?
@@ -1,31 +0,0 @@
1
- ## Why
2
-
3
- The TDK CLI codebase has accumulated technical debt through TODO comments, incomplete implementations, and gaps in test coverage. These issues create friction for developers and risk bugs in production. Now is the right time to systematically scan the repository, identify gaps, and fix them before they compound into larger problems.
4
-
5
- ## What Changes
6
-
7
- - **Scan entire codebase** for TODO/FIXME/BUG/HACK comments using automated detection
8
- - **Identify incomplete implementations** in CLI commands (resource, config with TODOs)
9
- - **Find missing test coverage** for critical paths in CLI and discovery modules
10
- - **Fix high-priority issues**: Implement TODO items, add missing error handling, improve type safety
11
- - **Add missing documentation** for unclear or undocumented code paths
12
- - **Clean up technical debt**: Remove dead code, consolidate duplicates, fix linting issues
13
-
14
- ## Capabilities
15
-
16
- ### New Capabilities
17
- - `codebase-audit`: Automated scanning system for detecting technical debt markers (TODOs, missing tests, incomplete features)
18
- - `todo-resolution`: Implementation of high-priority TODO items in CLI commands
19
- - `test-gap-fill`: Adding missing test coverage for critical code paths
20
- - `dead-code-cleanup`: Identification and removal of unused code and imports
21
-
22
- ### Modified Capabilities
23
- - None - this is a maintenance/polish change that doesn't modify existing specifications
24
-
25
- ## Impact
26
-
27
- - **CLI**: TypeScript source files in `cli/src/` - implementing TODOs in resource.ts, config.ts
28
- - **Tests**: Python tests in `tests/tilt-engine/` and TypeScript tests in `cli/` - adding missing coverage
29
- - **Discovery**: Python modules in `discovery/` - improving error handling and edge cases
30
- - **Engine**: Starlark files in `engine/` - minor cleanups and documentation improvements
31
- - **No breaking changes**: All fixes are additive or internal improvements
@@ -1,27 +0,0 @@
1
- ## ADDED Requirements
2
-
3
- ### Requirement: Automated scanning detects technical debt markers
4
- The system SHALL provide automated scanning to detect TODO, FIXME, XXX, BUG, and HACK comments across all source files.
5
-
6
- #### Scenario: Scan TypeScript files
7
- - **WHEN** the audit script runs against the CLI source directory
8
- - **THEN** it SHALL output a list of all files containing TODO/FIXME/BUG/HACK markers with line numbers
9
-
10
- #### Scenario: Scan Python files
11
- - **WHEN** the audit script runs against the discovery directory
12
- - **THEN** it SHALL output a list of all files containing TODO/FIXME/BUG/HACK markers with line numbers
13
-
14
- #### Scenario: Scan Starlark files
15
- - **WHEN** the audit script runs against the engine directory
16
- - **THEN** it SHALL output a list of all files containing TODO/FIXME/BUG/HACK markers with line numbers
17
-
18
- ### Requirement: Audit output is actionable
19
- The system SHALL generate an audit report that categorizes findings by priority and location.
20
-
21
- #### Scenario: Priority categorization
22
- - **WHEN** the audit completes
23
- - **THEN** findings SHALL be categorized as: CLI (user-facing), Core (discovery/engine), Test (infrastructure)
24
-
25
- #### Scenario: Report format
26
- - **WHEN** the audit generates a report
27
- - **THEN** it SHALL include file path, line number, marker type, and the TODO text for each finding
@@ -1,27 +0,0 @@
1
- ## ADDED Requirements
2
-
3
- ### Requirement: Dead code is identified and removed
4
- The system SHALL identify and remove unused code, imports, and variables.
5
-
6
- #### Scenario: Unused imports removed
7
- - **WHEN** scanning TypeScript files in cli/src
8
- - **THEN** all unused imports SHALL be identified and removed
9
-
10
- #### Scenario: Unused functions removed
11
- - **WHEN** scanning Python files in discovery/
12
- - **THEN** functions with no references SHALL be flagged for review and removed if confirmed unused
13
-
14
- #### Scenario: Dead Starlark code removed
15
- - **WHEN** scanning Starlark files in engine/
16
- - **THEN** unused variables and functions SHALL be identified and removed
17
-
18
- ### Requirement: Duplicate code is consolidated
19
- The system SHALL identify and consolidate duplicate code patterns where appropriate.
20
-
21
- #### Scenario: Duplicate templates consolidated
22
- - **WHEN** similar template patterns exist in multiple CLI commands
23
- - **THEN** they SHALL be consolidated into shared utility functions
24
-
25
- #### Scenario: Shared validation logic
26
- - **WHEN** validation logic is duplicated across modules
27
- - **THEN** it SHALL be moved to a shared validation utility
@@ -1,23 +0,0 @@
1
- ## ADDED Requirements
2
-
3
- ### Requirement: CLI commands have test coverage
4
- The system SHALL add missing test coverage for CLI command implementations.
5
-
6
- #### Scenario: Resource command tests
7
- - **WHEN** running the test suite
8
- - **THEN** resource.ts command SHALL have unit tests covering resource creation, template generation, and port assignment
9
-
10
- #### Scenario: Config command tests
11
- - **WHEN** running the test suite
12
- - **THEN** config.ts command SHALL have unit tests covering diff functionality and configuration loading
13
-
14
- ### Requirement: Error handling paths are tested
15
- The system SHALL add tests for error handling and edge cases.
16
-
17
- #### Scenario: Invalid resource type handling
18
- - **WHEN** user specifies an invalid resource type
19
- - **THEN** the system SHALL throw an appropriate error and test SHALL verify this behavior
20
-
21
- #### Scenario: Missing manifest handling
22
- - **WHEN** discovering services with missing or invalid manifests
23
- - **THEN** the system SHALL handle gracefully and log appropriate warnings (tested)
@@ -1,27 +0,0 @@
1
- ## ADDED Requirements
2
-
3
- ### Requirement: CLI resource command TODOs are implemented
4
- The system SHALL implement all TODO comments in cli/src/commands/resource.ts.
5
-
6
- #### Scenario: Resource database check TODO
7
- - **WHEN** creating a new resource with database dependencies
8
- - **THEN** the system SHALL check if the database exists and create it if missing
9
-
10
- #### Scenario: Resource cache check TODO
11
- - **WHEN** creating a new resource with cache dependencies
12
- - **THEN** the system SHALL check if the cache service is configured
13
-
14
- #### Scenario: Resource routes TODO
15
- - **WHEN** creating a new backend resource
16
- - **THEN** the system SHALL generate a basic route file template with health check endpoint
17
-
18
- #### Scenario: Resource worker logic TODO
19
- - **WHEN** creating a new worker resource
20
- - **THEN** the system SHALL generate a basic worker script template with job processing structure
21
-
22
- ### Requirement: CLI config command diff is implemented
23
- The system SHALL implement the diff logic TODO in cli/src/commands/config.ts.
24
-
25
- #### Scenario: Config diff shows differences
26
- - **WHEN** user runs `tdk config diff`
27
- - **THEN** the system SHALL compare local and remote configuration and display differences
@@ -1,39 +0,0 @@
1
- ## 1. Codebase Audit
2
-
3
- - [x] 1.1 Create audit script to scan for TODO/FIXME/BUG/HACK markers
4
- - [x] 1.2 Run audit against cli/src directory (TypeScript files)
5
- - [x] 1.3 Run audit against discovery/ directory (Python and Starlark files)
6
- - [x] 1.4 Run audit against engine/ directory (Starlark files)
7
- - [x] 1.5 Generate prioritized report with CLI, Core, and Test categories
8
-
9
- ## 2. CLI TODO Resolution
10
-
11
- - [x] 2.1 Implement database check TODO in cli/src/commands/resource.ts
12
- - [x] 2.2 Implement cache check TODO in cli/src/commands/resource.ts
13
- - [x] 2.3 Implement routes TODO (generate route file template) in resource.ts
14
- - [x] 2.4 Implement worker logic TODO (generate worker template) in resource.ts
15
- - [x] 2.5 Implement diff logic TODO in cli/src/commands/config.ts
16
-
17
- ## 3. Test Coverage Improvements
18
-
19
- - [x] 3.1 Add unit tests for resource.ts command (creation, templates, port assignment)
20
- - [x] 3.2 Add unit tests for config.ts command (diff functionality)
21
- - [x] 3.3 Add error handling tests for invalid resource types
22
- - [x] 3.4 Add tests for missing/invalid manifest handling in discovery
23
- - [x] 3.5 Run full test suite and fix any regressions
24
-
25
- ## 4. Dead Code Cleanup
26
-
27
- - [x] 4.1 Identify and remove unused imports in cli/src TypeScript files
28
- - [x] 4.2 Identify and flag unused functions in discovery/ Python files
29
- - [x] 4.3 Identify and flag unused variables/functions in engine/ Starlark files
30
- - [x] 4.4 Consolidate duplicate template patterns in CLI commands
31
- - [x] 4.5 Move duplicated validation logic to shared utilities
32
-
33
- ## 5. Documentation and Finalization
34
-
35
- - [x] 5.1 Document all changes in commit messages
36
- - [x] 5.2 Update AGENTS.md files if implementation patterns changed
37
- - [x] 5.3 Run final linting and type checking
38
- - [x] 5.4 Verify all tests pass
39
- - [x] 5.5 Archive the audit report for future reference
@@ -1,2 +0,0 @@
1
- schema: spec-driven
2
- created: 2026-06-25
@@ -1,80 +0,0 @@
1
- ## Context
2
-
3
- ### CLI Duplication
4
- `beauty-crm/cli/` and `tdk-cli/cli/` both contain the `@tdk-landscape/tdk-cli-core` package. The `beauty-crm/cli/package.json` declares `"repository.directory": "cli"` pointing to `tdk-landscape/tdk-cli`, confirming it was originally published from the tdk-cli monorepo workspace. Over time, `tdk-cli/cli/` has evolved (12 src files, generator support, DRY assessment) while `beauty-crm/cli/` has lagged behind (9 src files). Any developer fixing the CLI must choose which copy to edit — and usually picks the wrong one.
5
-
6
- ### AI Config Sprawl
7
- The beauty-crm monorepo has accumulated configs for every AI coding assistant that gained popularity:
8
-
9
- | Assistant | Type | Size |
10
- |-----------|------|------|
11
- | `.claude/` | Dir | skills, CLAUDE.md (757 lines) |
12
- | `.cursor/` | Dir | rules, mcp.json, Dockerfile |
13
- | `.continue/` | Dir | skills config |
14
- | `.roo/` | Dir | 7 rulesets, mcp.json |
15
- | `.serena/` | Dir | memories, prompt templates |
16
- | `.agents/` | Dir | skills, mempalace |
17
- | `.augment/` | Dir | agents, skills |
18
- | `.kiro/` | Dir | agents, skills, settings, specs |
19
- | `CLAUDE.md` | File | 757 lines (canonical project context) |
20
- | `.cursorrules` | File | 32 lines (duplicates CLAUDE.md) |
21
- | `.windsurfrules` | File | 2855 lines (duplicates CLAUDE.md + more) |
22
- | `.roomodes` | File | 47 lines (mode definitions) |
23
- | `.augment-guidelines` | File | 457 lines (duplicates CLAUDE.md) |
24
-
25
- Most contain overlapping project context (tech stack, architecture, conventions) which creates a maintenance tax — every time the tech stack or conventions change, 13+ files need updating. The `.cursorrules` is a 32-line subset of `CLAUDE.md`. The `.windsurfrules` is 2855 lines that includes the full `CLAUDE.md` content plus extra.
26
-
27
- ## Goals / Non-Goals
28
-
29
- **Goals:**
30
- - Remove `beauty-crm/cli/` and replace with a symlink to `tdk-cli/cli/`
31
- - Update any beauty-crm tooling that references `beauty-crm/cli/` directly
32
- - Consolidate all AI configs into one canonical location per project
33
- - Remove duplicate root-level config files (`.cursorrules`, `.windsurfrules`, `.roomodes`, `.augment-guidelines`)
34
- - Move `.cursor/mcp.json`, `.roo/` mode definitions into a shared format if they add unique value
35
- - Verify no CI/CD breakage
36
-
37
- **Non-Goals:**
38
- - Merging AI assistant-specific features (e.g., Serena memories, Roo rulesets) — keep them in `.claude/skills/` or let each assistant read its own format
39
- - Renaming the entire root directory structure
40
- - Changing how `tdk-cli/` is organized internally
41
- - Adding or removing any AI assistant support — only consolidating configs
42
-
43
- ## Decisions
44
-
45
- ### Decision 1: Remove Completely (No Symlink)
46
- **Path**: `git rm -r beauty-crm/cli/` — deleted from git and disk, no replacement.
47
- **Rationale**: A symlink breaks `git add pathspec` resolution (git treats symlinked directories as single blobs and cannot traverse them). Since no scripts, workspaces, or CI pipelines reference `beauty-crm/cli/`, there's nothing to break. Removing entirely is the cleanest solution.
48
- **Alternatives considered**:
49
- - Symlink to `../tdk-cli/cli/` — Rejected: breaks `git add` and other git operations
50
- - Keep as-is (do nothing) — Drift will continue to grow
51
-
52
- ### Decision 2: Canonical AI Config = `.claude/` + `CLAUDE.md`
53
- **Rationale**: `CLAUDE.md` is the most comprehensive single file (757 lines covering tech stack, architecture, conventions). `.claude/` is the directory format used by Claude Code and Opencode. Other assistants (Cursor, Windsurf, Continue, Roo, Serena) can read symlinked or imported copies.
54
- **Implementation**: Other root config files get removed. Each assistant's directory gets a README pointing to `CLAUDE.md` as canonical.
55
-
56
- ### Decision 3: Preserve `.cursor/mcp.json` as Shared MCP Config
57
- **Rationale**: MCP server configuration is tool-agnostic and useful across assistants. Move it to a shared location or keep as a thin reference.
58
- **Approach**: Keep `.cursor/mcp.json` but add a comment header pointing to `CLAUDE.md` for context. Alternatively, move to `.opencode/mcp.json` if opencode is the canonical tool.
59
-
60
- ### Decision 4: Keep `.roo/` Rulesets
61
- **Rationale**: Roo's role-based rulesets (architect, code, debug, etc.) are unique to Roo's multi-agent workflow and don't duplicate CLAUDE.md content. They add value.
62
- **Approach**: Leave `.roo/rules/` in place. Only remove root-level `.roomodes` if Roo can find its modes via the directory.
63
-
64
- ### Decision 5: No Cross-Project AI Config Sync
65
- **Rationale**: `identity/`, `platform/`, and `tdk-cli/` don't have AI configs. Adding them would be scope creep. Each project should opt in when ready.
66
- **Approach**: Document in CONTRIBUTING.md that each project manages its own AI configs, and `.claude/` + `CLAUDE.md` is the recommended canonical format.
67
-
68
- ## Risks / Trade-offs
69
-
70
- **Risk**: Symlink breaks in CI/CD (Docker, git checkout without submodules)
71
- - **Mitigation**: Symlinks work with `git clone` and Docker COPY. Test explicitly.
72
-
73
- **Risk**: Developer has `.cursorrules` or `.windsurfrules` open in muscle memory and is confused when gone
74
- - **Mitigation**: Leave a one-line comment file: `.cursorrules → see CLAUDE.md`
75
-
76
- **Risk**: Cursor/Continue/Roo stop working optimally without their config files
77
- - **Mitigation**: Each assistant can still use its own directory format. We only remove root-level _files_ that duplicate `CLAUDE.md`. The directories (`.cursor/`, `.continue/`, `.roo/`) stay but get trimmed.
78
-
79
- **Risk**: Some AI assistant relies on `.windsurfrules` being 2855 lines (it contains everything)
80
- - **Mitigation**: WindSurf can also read `CLAUDE.md` directly. The `CLAUDE.md` is already comprehensive.
@@ -1,40 +0,0 @@
1
- ## Why
2
-
3
- The TDK landscape has accumulated two inefficiencies from its extraction from the original `beauty-crm` monorepo:
4
-
5
- 1. **Duplicated CLI client**: `beauty-crm/cli/` is a vendored copy of `tdk-cli/cli/` (both publish as `@tdk-landscape/tdk-cli-core`). This means every CLI fix must be applied twice, and the two copies have already diverged — `beauty-crm/cli/` has 9 source files while `tdk-cli/cli/` has 12 with additional features. This will only worsen over time.
6
-
7
- 2. **AI config sprawl**: `beauty-crm/` contains configuration for 8 AI coding assistants (`.claude/`, `.cursor/`, `.continue/`, `.roo/`, `.serena/`, `.agents/`, `.augment/`, `.kiro/`) plus 5 root-level config files (`CLAUDE.md`, `.cursorrules`, `.windsurfrules`, `.roomodes`, `.augment-guidelines`). Most contain duplicate project context. Developers waste time maintaining 13+ config files that say the same thing.
8
-
9
- Fixing both reduces maintenance burden, clarifies the canonical source of truth, and prevents future drift.
10
-
11
- ## What Changes
12
-
13
- ### Workstream A: CLI Duplicate Removal
14
- - Remove `beauty-crm/cli/` entirely via `git rm`
15
- - No symlink — symlinks break `git add` pathspec resolution
16
- - Update any `beauty-crm/` scripts/build pipelines that reference the old path
17
-
18
- ### Workstream B: AI Config Consolidation
19
- - Choose one canonical AI assistant config per project (recommend: `.claude/` + `CLAUDE.md`)
20
- - Remove duplicated root config files (`.cursorrules`, `.windsurfrules`, `.roomodes`, `.augment-guidelines`)
21
- - Consolidate `beauty-crm/.kiro/`, `beauty-crm/.agents/`, `beauty-crm/.augment/` into `beauty-crm/.claude/` or a shared `.ai-tools/` directory
22
- - Add `.cursor/mcp.json` as a workspace-level config (not project-specific)
23
- - Document which AI config is canonical for each project
24
-
25
- ## Capabilities
26
-
27
- ### New Capabilities
28
- - `cli-source-consolidation`: Single source of truth for `@tdk-landscape/tdk-cli-core`
29
- - `ai-config-consolidation`: Unified AI assistant configuration
30
-
31
- ### Modified Capabilities
32
- - Existing specs in `tdk-cli/openspec/specs/` may need minor updates if they reference `beauty-crm/cli/`
33
-
34
- ## Impact
35
-
36
- - **Files removed**: beauty-crm/cli/ (~50 files), AI root configs (5 files), AI assistant dirs (5+ dirs)
37
- - **Files added**: 1 symlink, 1-2 consolidated config files
38
- - **Dependencies**: CI/CD pipelines that reference beauty-crm/cli/ need updating
39
- - **Breaking Changes**: Any tooling that directly references `beauty-crm/cli/bin/tdk.js` will need to use `tdk-cli/cli/bin/tdk.js`
40
- - **Risk Level**: Low-Medium. CLI removal is mechanical and testable. AI config changes are cosmetic but need care not to break developer workflows.
@@ -1,52 +0,0 @@
1
- # landscape-consolidation Specification
2
-
3
- ## Purpose
4
-
5
- The TDK landscape has two sources of maintenance waste: a vendored duplicate of the `@tdk-landscape/tdk-cli-core` package in `beauty-crm/cli/` that has diverged from the canonical `tdk-cli/cli/`, and 13+ AI assistant config entries in `beauty-crm/` with overlapping project context spread across 8 directories and 5 root files. Consolidating both reduces maintenance burden and establishes canonical sources of truth.
6
-
7
- ## Requirements
8
-
9
- ### Requirement: Single CLI source of truth
10
-
11
- All source code and tooling for the `@tdk-landscape/tdk-cli-core` package SHALL originate from `tdk-cli/cli/`. The `beauty-crm/cli/` directory SHALL NOT contain its own copy of CLI source.
12
-
13
- #### Scenario: Remove duplicate CLI directory
14
- - **WHEN** inspecting the `beauty-crm/` project root
15
- - **THEN** there SHALL be no `cli/` directory containing standalone `@tdk-landscape/tdk-cli-core` source
16
-
17
- #### Scenario: Directory removed completely (no symlink)
18
- - **WHEN** inspecting the `beauty-crm/` project root
19
- - **THEN** `beauty-crm/cli/` SHALL NOT exist as a directory or symlink
20
-
21
- #### Scenario: No broken references after removal
22
- - **WHEN** searching `beauty-crm/` for direct `beauty-crm/cli/` path references
23
- - **THEN** no such references SHALL exist in scripts, configs, or documentation
24
-
25
- ### Requirement: Canonical AI project context
26
-
27
- All AI assistants operating in `beauty-crm/` SHALL use `CLAUDE.md` as the single canonical source for project context (tech stack, architecture, conventions).
28
-
29
- #### Scenario: Remove redundant root-level config files
30
- - **WHEN** listing root-level config files in `beauty-crm/`
31
- - **THEN** `.cursorrules`, `.windsurfrules`, and `.augment-guidelines` SHALL NOT exist
32
-
33
- #### Scenario: Assistant directory structure preserved
34
- - **WHEN** an AI assistant reads its configuration
35
- - **THEN** its native directory SHALL still exist (`.cursor/`, `.continue/`, `.roo/`, `.serena/`, `.agents/`, `.augment/`, `.kiro/`)
36
- - **AND** SHALL NOT have been moved or reformatted
37
-
38
- #### Scenario: Cross-reference from assistant configs
39
- - **WHEN** an AI assistant initializes
40
- - **THEN** its config files SHALL contain a comment or README referencing `CLAUDE.md` for project context
41
-
42
- ### Requirement: No regression in CLI functionality
43
-
44
- Removing `beauty-crm/cli/` SHALL NOT break any existing functionality that depends on the `@tdk-landscape/tdk-cli-core` package.
45
-
46
- #### Scenario: No workspace resolution errors after removal
47
- - **WHEN** running `bun install` in `beauty-crm/`
48
- - **THEN** it SHALL NOT error due to the removed `cli/` directory
49
-
50
- #### Scenario: No workspace resolution errors
51
- - **WHEN** running `bun install` in `beauty-crm/`
52
- - **THEN** it SHALL NOT error due to the removed `cli/` directory
@@ -1,51 +0,0 @@
1
- ## 1. CLI Duplicate — Audit & Verify
2
-
3
- - [x] 1.1 Confirm `beauty-crm/cli/` is not listed in `beauty-crm/package.json` workspaces
4
- - [x] 1.2 Confirm no CI/CD or scripts reference `beauty-crm/cli/` as a build path
5
- - [x] 1.3 Verify `beauty-crm/cli/package.json` name is `@tdk-landscape/tdk-cli-core` (not `@beauty-crm/cli`)
6
- - [x] 1.4 Verify `tdk-cli/cli/` has superset of files vs `beauty-crm/cli/` (72 vs 26 source files)
7
- - [x] 1.5 Check `beauty-crm/bun.lock` does NOT lock `@tdk-landscape/tdk-cli-core` to a `file:cli` path
8
- - [x] 1.6 Check `.tilt-engine/` and `Tiltfile` for any references to `beauty-crm/cli/`
9
-
10
- ## 2. CLI Duplicate — Remove
11
-
12
- - [x] 2.1 `git rm -r beauty-crm/cli/` (removed from git and disk)
13
- - [x] 2.2 Verify no stale references: `rg` found zero references
14
-
15
- ## 3. AI Config — Audit Current State
16
-
17
- - [x] 3.1 Catalog all AI assistant configs in `beauty-crm/`:
18
- - Directories: `.claude/`, `.cursor/`, `.continue/`, `.roo/`, `.serena/`, `.agents/`, `.augment/`, `.kiro/`
19
- - Root files: `CLAUDE.md`, `.cursorrules`, `.windsurfrules`, `.roomodes`, `.augment-guidelines`
20
- - [x] 3.2 Identify content overlap:
21
- - `.cursorrules` — 32-line communication style (no project context)
22
- - `.windsurfrules` — 2855-line superset of CLAUDE.md
23
- - `.augment-guidelines` — 457-line partially overlapping
24
- - [x] 3.3 Check `.roo/rules/` — unique workflow instructions (dev_workflow, self_improve, taskmaster)
25
- - [x] 3.4 Check `.cursor/mcp.json` — unique MCP server configs (task-master-ai, tilt)
26
-
27
- ## 4. AI Config — Consolidate
28
-
29
- - [x] 4.1 Remove `.cursorrules` (redundant with `CLAUDE.md`)
30
- - [x] 4.2 Remove `.windsurfrules` (redundant with `CLAUDE.md`)
31
- - [x] 4.3 Remove `.augment-guidelines` (redundant with `CLAUDE.md`)
32
- - [x] 4.4 Keep `.roomodes` (defines Roo's custom mode slugs — not redundant with CLAUDE.md)
33
- - [x] 4.5 Keep all AI assistant directories in place (each reads from its own native path):
34
- - `.cursor/`, `.continue/`, `.roo/`, `.serena/`, `.agents/`, `.augment/`, `.kiro/`
35
- - [x] 4.6 Add comment/README to each assistant config pointing to `CLAUDE.md`:
36
- - `.cursor/mcp.json` → `_comment` field
37
- - `.roo/README.md`, `.serena/README.md`, `.agents/README.md`, `.augment/README.md`, `.kiro/README.md`, `.continue/README.md`
38
-
39
- ## 5. AI Config — Documentation
40
-
41
- - [x] 5.1 Add banner to `CLAUDE.md` declaring it canonical source of truth
42
- - [x] 5.2 Keep `.cursor/rules/` in place (native Cursor format)
43
- - [x] 5.3 Verify `identity/`, `platform/`, `tdk-cli/` don't need AI configs (scope boundary)
44
-
45
- ## 6. Verification
46
-
47
- - [x] 6.1 Run `git status` — clean, 44 files changed
48
- - [x] 6.2 N/A (no symlink — removed directly via `git rm`)
49
- - [x] 6.3 No broken references found
50
- - [x] 6.4 CLAUDE.md is valid markdown, loadable by any AI
51
- - [ ] 6.5 Ask team to test their preferred AI assistant still works after consolidation
@@ -1,2 +0,0 @@
1
- schema: spec-driven
2
- created: 2026-09-17
@@ -1,43 +0,0 @@
1
- # Fix Generated Stack Boot - Design
2
-
3
- ## Context
4
-
5
- `tdk project` and `tdk resource` produce output that must run on a fresh machine with Docker + Tilt. Two defects broke this path for every user: (1) the backend source template emitted a literal newline inside a single-quoted `console.log` string, making every generated service uncompilable; (2) the generated Tiltfile pointed at an author-specific absolute path (`/private/var/www/2025/ollamar1/tdk-cli`) and fell back to a private GitHub repo that cannot be cloned, causing `tdk up` to hang in a git retry loop. The fixes below were implemented and verified in an isolated container (fixed binary rebuilt from source, `bun run` + `curl /health` green, `tilt ci` loads the vendored extension and reports a healthy workspace).
6
-
7
- ## Goals / Non-Goals
8
-
9
- **Goals:**
10
- - Generated services compile and serve `/health` on first run.
11
- - `tdk up` loads its Tiltfile on any machine with zero network or private-repo dependency.
12
- - Generated output contains no machine-specific paths and fails fast with actionable errors when misconfigured.
13
- - Extension loading uses a truthful local probe.
14
-
15
- **Non-Goals:**
16
- - Rewriting the TDK Tilt extension itself or its orchestration semantics.
17
- - Making the private `tdk-cli` source repo public.
18
- - Changing the generated `service.json` manifest shape (tracked separately in manifest-field-migration).
19
- - Container-to-host DNS routing (traefik `*.beauty-crm.localhost` mapping) is outside this change.
20
-
21
- ## Decisions
22
-
23
- ### D1. Do not hardcode or publish; vendor instead
24
- Vendor the extension into each generated project (`.tdk/.tdk-out/tdk-cli-ext/`) at generation time. Rationale: matches the "releases public, source private" position, works offline, and a vendored project stays reviewable and relocatable. The source is located via, in order: `$TDK_EXTENSION_SOURCE`, an executable-adjacent `tdk-cli` checkout, then a `../tdk-cli` sibling of the project root. Missing source logs a warning; the Tiltfile then fails fast with recovery instructions.
25
-
26
- ### D2. Escape newlines at the template boundary
27
- In `cli/src/commands/resource.ts`, `getBackendIndexTemplate` emits `console.log('\n🚀 ...')`. The template is a JS template literal, so `\n` becomes a real newline in the emitted file. The source therefore uses `\\n` so generated files contain the two-character escape sequence and remain valid Bun source.
28
-
29
- ### D3. Fail fast instead of a private-repo fallback
30
- The Tiltfile resolution order is: vendored path -> `$TDK_EXTENSION_PATH` -> `fail(...)` with the three recovery options. This eliminates the infinite `git clone` retry against `github.com/tdk-landscape/tdk-cli` (private, 404 to unauthenticated clients).
31
-
32
- ### D4. Truthful local probe
33
- The presence probe must produce output: `test -d <path> && echo yes || echo no`. A probe returning `""` (as the first iteration did) silently disables detection and routes every run to the fail-fast branch.
34
-
35
- ### D5. Vendoring lives in `generateMasterConfigs`
36
- The copy step runs in `generateMasterConfigs` (alongside writing `Tiltfile`, `spec.master`, etc.) so regeneration repairs a stale or missing vendored extension.
37
-
38
- ## Risks / Trade-offs
39
-
40
- - **Project size**: vendoring adds ~2.5 MB of starlark per project. Accepted for offline, private-repo-free bootstrapping; the copied set is limited to `Tiltfile`, `engine/`, `discovery/`, `specs/`, `ext/`.
41
- - **Stale binary releases**: released `release-dist-*` binaries still contain both bugs. Release artifacts must be rebuilt (proven command: `bun build --compile --target=bun-linux-arm64 --outfile tdk-linux-arm64 cli/src/cli.ts`) and republished before users see the fix.
42
- - **Probe coupling**: detection depends on `local()` emitting the echo; documented in the template comment so future edits keep the `&& echo yes || echo no` tail.
43
- - **Sandbox verification ceiling**: full container orchestration (image builds via traefik network, `*.beauty-crm.localhost` DNS) requires a host network; the isolated-container verification covers generation, compilation, Tiltfile loading, service discovery, resource creation, and workspace health.
@@ -1,29 +0,0 @@
1
- ## Why
2
-
3
- Generated projects from `tdk project` and `tdk resource` shipped two blockers that broke the quickstart for every user: generated Bun services did not compile (the backend template emits a literal newline inside a `console.log('...')` string, producing `Unterminated string literal`), and `tdk up` could never load its Tiltfile because it hardcoded a machine-specific extension path and fell back to a private GitHub repo that triggers an endless git-clone retry loop. Both were reproduced in an isolated Docker container and verified fixed in source, but the fixes are not yet reflected in released binaries or a tracked spec.
4
-
5
- ## What Changes
6
-
7
- - `cli/src/commands/resource.ts`: escape newlines in the generated backend `src/index.ts` so emitted files contain `\n` and compile (`console.log('\n...')`).
8
- - `cli/templates/Tiltfile.hbs`: resolve the TDK Tilt extension in order - vendored in-project copy (`.tdk/.tdk-out/tdk-cli-ext`) -> `$TDK_EXTENSION_PATH` -> fail fast with actionable instructions. Remove the hardcoded `/private/var/www/2025/ollamar1/tdk-cli` path and the private-repo fallback.
9
- - `cli/src/generator/template-engine.ts`: vendor the extension (engine/discovery/specs/ext) into `.tdk/.tdk-out/tdk-cli-ext/` during `generateMasterConfigs`, so `tdk up` works offline on any machine without GitHub access. Source is auto-detected via `$TDK_EXTENSION_SOURCE`, executable-adjacent checkout, or a `../tdk-cli` sibling.
10
- - `cli/templates/Tiltfile.hbs`: fix the local-directory probe to echo its result (`test -d <path> && echo yes || echo no`); the previous probe returned `""`, so the vendored extension was never detected and `tdk up` always failed at the new fail-fast gate.
11
- - Rebuild release binaries from the fixed source and republish to `tdk-landscape/tdk-cli-releases` (**BREAKING** for existing releases - new generated output shape).
12
-
13
- ## Capabilities
14
-
15
- ### New Capabilities
16
-
17
- - `self-contained-generated-projects`: generated projects must boot without network or private-repo access - extension vendored at generation time, Tiltfile loads it from a local `file://` repo, and generated service sources compile on first `bun run`.
18
-
19
- ### Modified Capabilities
20
-
21
- - `manifest-field-migration`: no requirement changes; generated `service.json` shape is unchanged.
22
-
23
- ## Impact
24
-
25
- - `cli/src/commands/resource.ts` - backend index template escaping.
26
- - `cli/templates/Tiltfile.hbs` - extension resolution and probe.
27
- - `cli/src/generator/template-engine.ts` - vendoring step, `.tdk/.tdk-out/tdk-cli-ext/` output.
28
- - `release-dist-*` snapshots - must be regenerated from fixed source.
29
- - Verification: generated services compile and serve `/health` via Bun; `tilt ci` on a generated Tiltfile loads the vendored extension, discovers services, creates resources, and reports a healthy workspace.