@tdk-landscape/tdk-cli-core 1.3.52 → 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 (390) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +1 -1
  3. package/cli/dist/commands/config.js +1 -1
  4. package/cli/dist/commands/resource.js +1 -1
  5. package/cli/dist/generator/extension-fetch.js +16 -9
  6. package/cli/package.json +1 -1
  7. package/package.json +16 -1
  8. package/.claude/skills/layer-autoresearch/SKILL.md +0 -48
  9. package/.claude/skills/tdk-troubleshoot/SKILL.md +0 -222
  10. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -40
  11. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  12. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -18
  13. package/.github/dependabot.yml +0 -33
  14. package/.github/pull_request_template.md +0 -5
  15. package/.github/workflows/ci.yml +0 -200
  16. package/.github/workflows/release-binaries.yml +0 -139
  17. package/.github/zizmor.yml +0 -9
  18. package/.pre-commit-config.yaml +0 -57
  19. package/CODE_OF_CONDUCT.md +0 -9
  20. package/CONTRIBUTING.md +0 -42
  21. package/Makefile +0 -92
  22. package/SECURITY.md +0 -17
  23. package/benchmarks/results/container-scale-2026-09-25T20-54-49-736Z.json +0 -45
  24. package/benchmarks/results/container-scale-2026-09-25T21-01-20-540Z.json +0 -150
  25. package/benchmarks/results/container-scale-2026-09-25T21-15-01-441Z.json +0 -73
  26. package/benchmarks/results/container-scale-2026-09-25T22-09-01-630Z.json +0 -77
  27. package/benchmarks/results/container-scale-2026-09-25T22-18-28-371Z.json +0 -202
  28. package/cli/AGENTS.md +0 -390
  29. package/cli/DESIGN.md +0 -735
  30. package/cli/README.md +0 -292
  31. package/cli/biome.json +0 -40
  32. package/cli/dependency-graph.svg +0 -1135
  33. package/cli/dist/cli.d.ts +0 -3
  34. package/cli/dist/cli.d.ts.map +0 -1
  35. package/cli/dist/cli.js.map +0 -1
  36. package/cli/dist/commands/completion.d.ts +0 -3
  37. package/cli/dist/commands/completion.d.ts.map +0 -1
  38. package/cli/dist/commands/completion.js.map +0 -1
  39. package/cli/dist/commands/config.d.ts +0 -3
  40. package/cli/dist/commands/config.d.ts.map +0 -1
  41. package/cli/dist/commands/config.js.map +0 -1
  42. package/cli/dist/commands/doctor.d.ts +0 -19
  43. package/cli/dist/commands/doctor.d.ts.map +0 -1
  44. package/cli/dist/commands/doctor.js.map +0 -1
  45. package/cli/dist/commands/down.d.ts +0 -3
  46. package/cli/dist/commands/down.d.ts.map +0 -1
  47. package/cli/dist/commands/down.js.map +0 -1
  48. package/cli/dist/commands/help.d.ts +0 -2
  49. package/cli/dist/commands/help.d.ts.map +0 -1
  50. package/cli/dist/commands/help.js.map +0 -1
  51. package/cli/dist/commands/networks.d.ts +0 -3
  52. package/cli/dist/commands/networks.d.ts.map +0 -1
  53. package/cli/dist/commands/networks.js.map +0 -1
  54. package/cli/dist/commands/project.d.ts +0 -9
  55. package/cli/dist/commands/project.d.ts.map +0 -1
  56. package/cli/dist/commands/project.js.map +0 -1
  57. package/cli/dist/commands/projects.d.ts +0 -3
  58. package/cli/dist/commands/projects.d.ts.map +0 -1
  59. package/cli/dist/commands/projects.js.map +0 -1
  60. package/cli/dist/commands/resource.d.ts +0 -69
  61. package/cli/dist/commands/resource.d.ts.map +0 -1
  62. package/cli/dist/commands/resource.js.map +0 -1
  63. package/cli/dist/commands/resources.d.ts +0 -3
  64. package/cli/dist/commands/resources.d.ts.map +0 -1
  65. package/cli/dist/commands/resources.js.map +0 -1
  66. package/cli/dist/commands/stack.d.ts +0 -3
  67. package/cli/dist/commands/stack.d.ts.map +0 -1
  68. package/cli/dist/commands/stack.js.map +0 -1
  69. package/cli/dist/commands/stacks.d.ts +0 -3
  70. package/cli/dist/commands/stacks.d.ts.map +0 -1
  71. package/cli/dist/commands/stacks.js.map +0 -1
  72. package/cli/dist/commands/status.d.ts +0 -3
  73. package/cli/dist/commands/status.d.ts.map +0 -1
  74. package/cli/dist/commands/status.js.map +0 -1
  75. package/cli/dist/commands/ui.d.ts +0 -3
  76. package/cli/dist/commands/ui.d.ts.map +0 -1
  77. package/cli/dist/commands/ui.js.map +0 -1
  78. package/cli/dist/commands/up.d.ts +0 -3
  79. package/cli/dist/commands/up.d.ts.map +0 -1
  80. package/cli/dist/commands/up.js.map +0 -1
  81. package/cli/dist/commands/upgrade.d.ts +0 -14
  82. package/cli/dist/commands/upgrade.d.ts.map +0 -1
  83. package/cli/dist/commands/upgrade.js.map +0 -1
  84. package/cli/dist/commands/version.d.ts +0 -3
  85. package/cli/dist/commands/version.d.ts.map +0 -1
  86. package/cli/dist/commands/version.js.map +0 -1
  87. package/cli/dist/components/Accessible.d.ts +0 -8
  88. package/cli/dist/components/Accessible.d.ts.map +0 -1
  89. package/cli/dist/components/Accessible.js.map +0 -1
  90. package/cli/dist/components/BaseTooltip.d.ts +0 -4
  91. package/cli/dist/components/BaseTooltip.d.ts.map +0 -1
  92. package/cli/dist/components/BaseTooltip.js.map +0 -1
  93. package/cli/dist/components/DetailPanel.d.ts +0 -4
  94. package/cli/dist/components/DetailPanel.d.ts.map +0 -1
  95. package/cli/dist/components/DetailPanel.js.map +0 -1
  96. package/cli/dist/components/FileTree.d.ts +0 -4
  97. package/cli/dist/components/FileTree.d.ts.map +0 -1
  98. package/cli/dist/components/FileTree.js.map +0 -1
  99. package/cli/dist/components/ResourceSelectInput.d.ts +0 -4
  100. package/cli/dist/components/ResourceSelectInput.d.ts.map +0 -1
  101. package/cli/dist/components/ResourceSelectInput.js.map +0 -1
  102. package/cli/dist/components/ResourceTable.d.ts +0 -4
  103. package/cli/dist/components/ResourceTable.d.ts.map +0 -1
  104. package/cli/dist/components/ResourceTable.js.map +0 -1
  105. package/cli/dist/components/TabBar.d.ts +0 -4
  106. package/cli/dist/components/TabBar.d.ts.map +0 -1
  107. package/cli/dist/components/TabBar.js.map +0 -1
  108. package/cli/dist/components/Tooltip.d.ts +0 -12
  109. package/cli/dist/components/Tooltip.d.ts.map +0 -1
  110. package/cli/dist/components/Tooltip.js.map +0 -1
  111. package/cli/dist/components/index.d.ts +0 -8
  112. package/cli/dist/components/index.d.ts.map +0 -1
  113. package/cli/dist/components/index.js.map +0 -1
  114. package/cli/dist/config/platform-standards.d.ts +0 -159
  115. package/cli/dist/config/platform-standards.d.ts.map +0 -1
  116. package/cli/dist/config/platform-standards.js.map +0 -1
  117. package/cli/dist/generator/extension-fetch.d.ts +0 -25
  118. package/cli/dist/generator/extension-fetch.d.ts.map +0 -1
  119. package/cli/dist/generator/extension-fetch.js.map +0 -1
  120. package/cli/dist/generator/template-engine.d.ts +0 -62
  121. package/cli/dist/generator/template-engine.d.ts.map +0 -1
  122. package/cli/dist/generator/template-engine.js.map +0 -1
  123. package/cli/dist/index.d.ts +0 -11
  124. package/cli/dist/index.d.ts.map +0 -1
  125. package/cli/dist/index.js.map +0 -1
  126. package/cli/dist/types/index.d.ts +0 -257
  127. package/cli/dist/types/index.d.ts.map +0 -1
  128. package/cli/dist/types/index.js.map +0 -1
  129. package/cli/dist/utils/cache.d.ts +0 -19
  130. package/cli/dist/utils/cache.d.ts.map +0 -1
  131. package/cli/dist/utils/cache.js.map +0 -1
  132. package/cli/dist/utils/command-helpers.d.ts +0 -17
  133. package/cli/dist/utils/command-helpers.d.ts.map +0 -1
  134. package/cli/dist/utils/command-helpers.js.map +0 -1
  135. package/cli/dist/utils/constants.d.ts +0 -53
  136. package/cli/dist/utils/constants.d.ts.map +0 -1
  137. package/cli/dist/utils/constants.js.map +0 -1
  138. package/cli/dist/utils/discovery-context.d.ts +0 -4
  139. package/cli/dist/utils/discovery-context.d.ts.map +0 -1
  140. package/cli/dist/utils/discovery-context.js.map +0 -1
  141. package/cli/dist/utils/docker.d.ts +0 -4
  142. package/cli/dist/utils/docker.d.ts.map +0 -1
  143. package/cli/dist/utils/docker.js.map +0 -1
  144. package/cli/dist/utils/doctor-runtime.d.ts +0 -81
  145. package/cli/dist/utils/doctor-runtime.d.ts.map +0 -1
  146. package/cli/dist/utils/doctor-runtime.js.map +0 -1
  147. package/cli/dist/utils/env-validator.d.ts +0 -15
  148. package/cli/dist/utils/env-validator.d.ts.map +0 -1
  149. package/cli/dist/utils/env-validator.js.map +0 -1
  150. package/cli/dist/utils/errors.d.ts +0 -31
  151. package/cli/dist/utils/errors.d.ts.map +0 -1
  152. package/cli/dist/utils/errors.js.map +0 -1
  153. package/cli/dist/utils/file-helpers.d.ts +0 -14
  154. package/cli/dist/utils/file-helpers.d.ts.map +0 -1
  155. package/cli/dist/utils/file-helpers.js.map +0 -1
  156. package/cli/dist/utils/formatting.d.ts +0 -30
  157. package/cli/dist/utils/formatting.d.ts.map +0 -1
  158. package/cli/dist/utils/formatting.js.map +0 -1
  159. package/cli/dist/utils/paths.d.ts +0 -3
  160. package/cli/dist/utils/paths.d.ts.map +0 -1
  161. package/cli/dist/utils/paths.js.map +0 -1
  162. package/cli/dist/utils/port-assignment.d.ts +0 -6
  163. package/cli/dist/utils/port-assignment.d.ts.map +0 -1
  164. package/cli/dist/utils/port-assignment.js.map +0 -1
  165. package/cli/dist/utils/project-features.d.ts +0 -23
  166. package/cli/dist/utils/project-features.d.ts.map +0 -1
  167. package/cli/dist/utils/project-features.js.map +0 -1
  168. package/cli/dist/utils/project-templates.d.ts +0 -7
  169. package/cli/dist/utils/project-templates.d.ts.map +0 -1
  170. package/cli/dist/utils/project-templates.js.map +0 -1
  171. package/cli/dist/utils/prompt.d.ts +0 -28
  172. package/cli/dist/utils/prompt.d.ts.map +0 -1
  173. package/cli/dist/utils/prompt.js.map +0 -1
  174. package/cli/dist/utils/resource-features.d.ts +0 -29
  175. package/cli/dist/utils/resource-features.d.ts.map +0 -1
  176. package/cli/dist/utils/resource-features.js.map +0 -1
  177. package/cli/dist/utils/service-urls.d.ts +0 -30
  178. package/cli/dist/utils/service-urls.d.ts.map +0 -1
  179. package/cli/dist/utils/service-urls.js.map +0 -1
  180. package/cli/dist/utils/services.d.ts +0 -18
  181. package/cli/dist/utils/services.d.ts.map +0 -1
  182. package/cli/dist/utils/services.js.map +0 -1
  183. package/cli/dist/utils/stack-features.d.ts +0 -22
  184. package/cli/dist/utils/stack-features.d.ts.map +0 -1
  185. package/cli/dist/utils/stack-features.js.map +0 -1
  186. package/cli/dist/utils/tar.d.ts +0 -7
  187. package/cli/dist/utils/tar.d.ts.map +0 -1
  188. package/cli/dist/utils/tar.js.map +0 -1
  189. package/cli/dist/utils/tilt.d.ts +0 -20
  190. package/cli/dist/utils/tilt.d.ts.map +0 -1
  191. package/cli/dist/utils/tilt.js.map +0 -1
  192. package/cli/dist/utils/validation.d.ts +0 -16
  193. package/cli/dist/utils/validation.d.ts.map +0 -1
  194. package/cli/dist/utils/validation.js.map +0 -1
  195. package/cli/knip.json +0 -6
  196. package/cli/pnpm-lock.yaml +0 -2305
  197. package/cli/pnpm-workspace.yaml +0 -2
  198. package/cli/src/cli.ts +0 -72
  199. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +0 -109
  200. package/cli/src/commands/__tests__/config.test.ts +0 -146
  201. package/cli/src/commands/__tests__/doctor.test.ts +0 -730
  202. package/cli/src/commands/__tests__/error-handling.test.ts +0 -78
  203. package/cli/src/commands/__tests__/phases-model.test.ts +0 -161
  204. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +0 -187
  205. package/cli/src/commands/__tests__/project.test.ts +0 -68
  206. package/cli/src/commands/__tests__/resource.test.ts +0 -226
  207. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +0 -194
  208. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +0 -135
  209. package/cli/src/commands/__tests__/upgrade.test.ts +0 -198
  210. package/cli/src/commands/completion.ts +0 -300
  211. package/cli/src/commands/config.ts +0 -299
  212. package/cli/src/commands/doctor.ts +0 -926
  213. package/cli/src/commands/down.ts +0 -37
  214. package/cli/src/commands/help.ts +0 -143
  215. package/cli/src/commands/networks-design.md +0 -80
  216. package/cli/src/commands/networks.ts +0 -332
  217. package/cli/src/commands/project.ts +0 -456
  218. package/cli/src/commands/projects.ts +0 -82
  219. package/cli/src/commands/resource.ts +0 -652
  220. package/cli/src/commands/resources.ts +0 -95
  221. package/cli/src/commands/stack.ts +0 -128
  222. package/cli/src/commands/stacks.ts +0 -52
  223. package/cli/src/commands/status.ts +0 -88
  224. package/cli/src/commands/ui.tsx +0 -843
  225. package/cli/src/commands/up.ts +0 -169
  226. package/cli/src/commands/upgrade.ts +0 -628
  227. package/cli/src/commands/version.ts +0 -9
  228. package/cli/src/components/Accessible.tsx +0 -21
  229. package/cli/src/components/BaseTooltip.tsx +0 -66
  230. package/cli/src/components/DetailPanel.tsx +0 -146
  231. package/cli/src/components/FileTree.tsx +0 -89
  232. package/cli/src/components/ResourceSelectInput.tsx +0 -30
  233. package/cli/src/components/ResourceTable.tsx +0 -78
  234. package/cli/src/components/TabBar.tsx +0 -53
  235. package/cli/src/components/Tooltip.tsx +0 -11
  236. package/cli/src/components/index.ts +0 -7
  237. package/cli/src/config/platform-standards.test.ts +0 -11
  238. package/cli/src/config/platform-standards.ts +0 -196
  239. package/cli/src/generator/__tests__/extension-fetch.test.ts +0 -242
  240. package/cli/src/generator/__tests__/template-engine.test.ts +0 -70
  241. package/cli/src/generator/extension-fetch.ts +0 -286
  242. package/cli/src/generator/template-engine.ts +0 -752
  243. package/cli/src/index.ts +0 -86
  244. package/cli/src/templates.d.ts +0 -4
  245. package/cli/src/types/index.ts +0 -353
  246. package/cli/src/utils/__tests__/cache.test.ts +0 -98
  247. package/cli/src/utils/__tests__/formatting.test.ts +0 -170
  248. package/cli/src/utils/__tests__/paths.test.ts +0 -180
  249. package/cli/src/utils/__tests__/port-assignment.test.ts +0 -121
  250. package/cli/src/utils/__tests__/service-urls.test.ts +0 -174
  251. package/cli/src/utils/__tests__/services.test.ts +0 -531
  252. package/cli/src/utils/__tests__/tilt.test.ts +0 -172
  253. package/cli/src/utils/__tests__/validation.test.ts +0 -148
  254. package/cli/src/utils/cache.ts +0 -76
  255. package/cli/src/utils/command-helpers.ts +0 -54
  256. package/cli/src/utils/constants.ts +0 -130
  257. package/cli/src/utils/discovery-context.ts +0 -49
  258. package/cli/src/utils/docker.ts +0 -20
  259. package/cli/src/utils/doctor-runtime.ts +0 -644
  260. package/cli/src/utils/env-validator.ts +0 -139
  261. package/cli/src/utils/errors.ts +0 -168
  262. package/cli/src/utils/file-helpers.ts +0 -62
  263. package/cli/src/utils/formatting.ts +0 -215
  264. package/cli/src/utils/paths.ts +0 -53
  265. package/cli/src/utils/port-assignment.ts +0 -106
  266. package/cli/src/utils/project-features.ts +0 -118
  267. package/cli/src/utils/project-templates.ts +0 -29
  268. package/cli/src/utils/prompt.ts +0 -128
  269. package/cli/src/utils/resource-features.ts +0 -215
  270. package/cli/src/utils/service-urls.ts +0 -124
  271. package/cli/src/utils/services.ts +0 -364
  272. package/cli/src/utils/stack-features.ts +0 -30
  273. package/cli/src/utils/tar.ts +0 -24
  274. package/cli/src/utils/tilt.ts +0 -133
  275. package/cli/src/utils/validation.ts +0 -67
  276. package/cli/tsconfig.json +0 -25
  277. package/cli/tsconfig.typecheck.json +0 -8
  278. package/docs/FEATURES.md +0 -279
  279. package/docs/demo.svg +0 -217
  280. package/engine/docs/AUTODISCOVERY_TEST.md +0 -182
  281. package/engine/docs/C4-ARCHITECTURE-operations.md +0 -396
  282. package/engine/docs/C4-ARCHITECTURE-overview.md +0 -284
  283. package/engine/docs/C4-ARCHITECTURE.md +0 -17
  284. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +0 -349
  285. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +0 -357
  286. package/engine/docs/README.md +0 -284
  287. package/install.sh +0 -19
  288. package/knip.json +0 -10
  289. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +0 -2
  290. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +0 -102
  291. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +0 -31
  292. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +0 -48
  293. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +0 -63
  294. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +0 -56
  295. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +0 -61
  296. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +0 -2
  297. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +0 -114
  298. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +0 -32
  299. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +0 -20
  300. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +0 -20
  301. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +0 -20
  302. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +0 -194
  303. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +0 -2
  304. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +0 -111
  305. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +0 -33
  306. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +0 -12
  307. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +0 -18
  308. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +0 -16
  309. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +0 -12
  310. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +0 -12
  311. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +0 -194
  312. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +0 -2
  313. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +0 -84
  314. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +0 -31
  315. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +0 -27
  316. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +0 -27
  317. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +0 -23
  318. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +0 -27
  319. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +0 -39
  320. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +0 -2
  321. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +0 -80
  322. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +0 -40
  323. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +0 -52
  324. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +0 -51
  325. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +0 -2
  326. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +0 -43
  327. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +0 -29
  328. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +0 -67
  329. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +0 -27
  330. package/openspec/changes/optimize-runtime-docker-layers/.openspec.yaml +0 -3
  331. package/openspec/changes/optimize-runtime-docker-layers/design.md +0 -81
  332. package/openspec/changes/optimize-runtime-docker-layers/proposal.md +0 -44
  333. package/openspec/changes/optimize-runtime-docker-layers/specs/runtime-container-footprint/spec.md +0 -79
  334. package/openspec/changes/optimize-runtime-docker-layers/tasks.md +0 -36
  335. package/openspec/changes/prioritized-cold-start/.openspec.yaml +0 -4
  336. package/openspec/changes/prioritized-cold-start/design.md +0 -137
  337. package/openspec/changes/prioritized-cold-start/proposal.md +0 -41
  338. package/openspec/changes/prioritized-cold-start/specs/on-demand-resource-startup/spec.md +0 -98
  339. package/openspec/changes/prioritized-cold-start/tasks.md +0 -69
  340. package/openspec/config.yaml +0 -1
  341. package/openspec/specs/manifest-field-migration/spec.md +0 -24
  342. package/openspec/specs/resource-terminology-standard/spec.md +0 -24
  343. package/openspec/specs/self-contained-generated-projects/spec.md +0 -67
  344. package/openspec/specs/stack-terminology-standard/spec.md +0 -24
  345. package/platform/services/platform/proxy/service.yaml +0 -14
  346. package/scripts/audit-codebase.sh +0 -213
  347. package/scripts/autoresearch/layer-eval.sh +0 -65
  348. package/scripts/benchmark/README.md +0 -25
  349. package/scripts/benchmark/container-scale.ts +0 -503
  350. package/scripts/benchmark/pre-release-gate.sh +0 -9
  351. package/scripts/install-git-hooks.sh +0 -14
  352. package/scripts/measure-idle-footprint.sh +0 -58
  353. package/scripts/record-demo.sh +0 -43
  354. package/scripts/release-binaries.sh +0 -97
  355. package/scripts/setup-pre-commit.sh +0 -33
  356. package/scripts/stage-npm-engine.sh +0 -36
  357. package/tests/tilt-engine/__init__.py +0 -5
  358. package/tests/tilt-engine/conftest.py +0 -182
  359. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +0 -11
  360. package/tests/tilt-engine/fixtures/identity-backend-service.json +0 -12
  361. package/tests/tilt-engine/fixtures/invalid-service.json +0 -4
  362. package/tests/tilt-engine/test_agents_md_generator.py +0 -341
  363. package/tests/tilt-engine/test_agents_md_integration.py +0 -378
  364. package/tests/tilt-engine/test_cache_operations.py +0 -181
  365. package/tests/tilt-engine/test_cache_persistence.py +0 -142
  366. package/tests/tilt-engine/test_code_executor.py +0 -152
  367. package/tests/tilt-engine/test_code_viewer.py +0 -127
  368. package/tests/tilt-engine/test_compose_port_anchors.py +0 -310
  369. package/tests/tilt-engine/test_config_inspector.py +0 -162
  370. package/tests/tilt-engine/test_daemon_focus_mode.py +0 -89
  371. package/tests/tilt-engine/test_daemon_polling.py +0 -122
  372. package/tests/tilt-engine/test_daemon_registration.py +0 -115
  373. package/tests/tilt-engine/test_daemon_validation.py +0 -107
  374. package/tests/tilt-engine/test_docker_generator_bugs.py +0 -493
  375. package/tests/tilt-engine/test_docker_prune.py +0 -119
  376. package/tests/tilt-engine/test_dockerignore_path_bug.py +0 -82
  377. package/tests/tilt-engine/test_file_browser.py +0 -193
  378. package/tests/tilt-engine/test_frontend_basepath_manifest.py +0 -27
  379. package/tests/tilt-engine/test_health_dependencies.py +0 -130
  380. package/tests/tilt-engine/test_health_endpoints.py +0 -118
  381. package/tests/tilt-engine/test_health_tilt_ui.py +0 -85
  382. package/tests/tilt-engine/test_runtime_container_footprint.py +0 -162
  383. package/tests/tilt-engine/test_sablier_defer_start.py +0 -237
  384. package/tests/tilt-engine/test_safety_aliases.py +0 -84
  385. package/tests/tilt-engine/test_snapshot_diff.py +0 -136
  386. package/tests/tilt-engine/test_snapshot_persistence.py +0 -163
  387. package/tests/tilt-engine/test_snapshot_scanning.py +0 -123
  388. package/tests/tilt-engine/test_standalone_project_boot.py +0 -61
  389. package/tests/tilt-engine/test_standalone_traefik.py +0 -160
  390. 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.