@tdk-landscape/tdk-cli-core 1.3.44 → 1.3.48

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 (431) hide show
  1. package/.github/workflows/release-binaries.yml +54 -0
  2. package/.pre-commit-config.yaml +57 -0
  3. package/Makefile +92 -0
  4. package/bun.lock +538 -0
  5. package/cli/AGENTS.md +390 -0
  6. package/cli/DESIGN.md +735 -0
  7. package/cli/biome.json +44 -0
  8. package/cli/dependency-graph.svg +1135 -0
  9. package/cli/knip.json +6 -0
  10. package/cli/package.json +77 -0
  11. package/cli/pnpm-lock.yaml +2305 -0
  12. package/cli/pnpm-workspace.yaml +2 -0
  13. package/cli/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +23 -0
  14. package/cli/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +464 -0
  15. package/cli/shared-platform-engineering/docker-templates/install-deps.sh +152 -0
  16. package/cli/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +12 -0
  17. package/cli/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +56 -0
  18. package/{dist/cli.js → cli/src/cli.ts} +21 -13
  19. package/cli/src/commands/__tests__/always-enabled-infra.test.ts +115 -0
  20. package/cli/src/commands/__tests__/config.test.ts +146 -0
  21. package/cli/src/commands/__tests__/doctor.test.ts +557 -0
  22. package/cli/src/commands/__tests__/error-handling.test.ts +78 -0
  23. package/cli/src/commands/__tests__/phases-model.test.ts +163 -0
  24. package/cli/src/commands/__tests__/project-resource-features-e2e.test.ts +207 -0
  25. package/cli/src/commands/__tests__/project.test.ts +68 -0
  26. package/cli/src/commands/__tests__/resource.test.ts +226 -0
  27. package/cli/src/commands/__tests__/saas-starter-integration.test.ts +196 -0
  28. package/cli/src/commands/__tests__/stack-features-e2e.test.ts +129 -0
  29. package/cli/src/commands/__tests__/upgrade.test.ts +101 -0
  30. package/{dist/commands/completion.js → cli/src/commands/completion.ts} +78 -72
  31. package/cli/src/commands/config.ts +299 -0
  32. package/cli/src/commands/doctor.ts +790 -0
  33. package/cli/src/commands/down.ts +37 -0
  34. package/cli/src/commands/help.ts +150 -0
  35. package/cli/src/commands/networks-design.md +80 -0
  36. package/cli/src/commands/networks.ts +332 -0
  37. package/cli/src/commands/project.ts +439 -0
  38. package/cli/src/commands/projects.ts +82 -0
  39. package/cli/src/commands/resource.ts +652 -0
  40. package/cli/src/commands/resources.ts +95 -0
  41. package/cli/src/commands/stack.ts +128 -0
  42. package/cli/src/commands/stacks.ts +52 -0
  43. package/cli/src/commands/status.ts +88 -0
  44. package/cli/src/commands/ui.tsx +843 -0
  45. package/cli/src/commands/up.ts +150 -0
  46. package/cli/src/commands/upgrade.ts +570 -0
  47. package/{dist/commands/version.js → cli/src/commands/version.ts} +5 -5
  48. package/cli/src/components/Accessible.tsx +21 -0
  49. package/cli/src/components/BaseTooltip.tsx +66 -0
  50. package/cli/src/components/DetailPanel.tsx +146 -0
  51. package/cli/src/components/FileTree.tsx +89 -0
  52. package/cli/src/components/ResourceSelectInput.tsx +30 -0
  53. package/cli/src/components/ResourceTable.tsx +78 -0
  54. package/cli/src/components/TabBar.tsx +53 -0
  55. package/cli/src/components/Tooltip.tsx +11 -0
  56. package/{dist/components/index.js → cli/src/components/index.ts} +0 -1
  57. package/cli/src/config/platform-standards.test.ts +11 -0
  58. package/cli/src/config/platform-standards.ts +196 -0
  59. package/cli/src/generator/__tests__/extension-fetch.test.ts +220 -0
  60. package/cli/src/generator/__tests__/template-engine.test.ts +70 -0
  61. package/cli/src/generator/extension-fetch.ts +279 -0
  62. package/cli/src/generator/template-engine.ts +754 -0
  63. package/cli/src/index.ts +86 -0
  64. package/cli/src/templates.d.ts +4 -0
  65. package/cli/src/types/index.ts +351 -0
  66. package/cli/src/utils/__tests__/cache.test.ts +98 -0
  67. package/cli/src/utils/__tests__/formatting.test.ts +170 -0
  68. package/cli/src/utils/__tests__/paths.test.ts +180 -0
  69. package/cli/src/utils/__tests__/port-assignment.test.ts +121 -0
  70. package/cli/src/utils/__tests__/service-urls.test.ts +174 -0
  71. package/cli/src/utils/__tests__/services.test.ts +531 -0
  72. package/cli/src/utils/__tests__/tilt.test.ts +143 -0
  73. package/cli/src/utils/__tests__/validation.test.ts +148 -0
  74. package/cli/src/utils/cache.ts +76 -0
  75. package/cli/src/utils/command-helpers.ts +54 -0
  76. package/cli/src/utils/constants.ts +126 -0
  77. package/cli/src/utils/discovery-context.ts +49 -0
  78. package/cli/src/utils/docker.ts +20 -0
  79. package/cli/src/utils/doctor-runtime.ts +604 -0
  80. package/cli/src/utils/env-validator.ts +139 -0
  81. package/cli/src/utils/errors.ts +168 -0
  82. package/cli/src/utils/file-helpers.ts +62 -0
  83. package/cli/src/utils/formatting.ts +215 -0
  84. package/cli/src/utils/paths.ts +53 -0
  85. package/cli/src/utils/port-assignment.ts +106 -0
  86. package/cli/src/utils/project-features.ts +118 -0
  87. package/cli/src/utils/project-templates.ts +28 -0
  88. package/cli/src/utils/prompt.ts +123 -0
  89. package/cli/src/utils/resource-features.ts +209 -0
  90. package/cli/src/utils/service-urls.ts +124 -0
  91. package/cli/src/utils/services.ts +363 -0
  92. package/cli/src/utils/stack-features.ts +30 -0
  93. package/cli/src/utils/tar.ts +24 -0
  94. package/cli/src/utils/tilt.ts +113 -0
  95. package/cli/src/utils/validation.ts +67 -0
  96. package/{templates → cli/templates}/Tiltfile.hbs +1 -1
  97. package/cli/tsconfig.json +25 -0
  98. package/cli/tsconfig.typecheck.json +8 -0
  99. package/docs/FEATURES.md +279 -0
  100. package/engine/topologies/platform/docker/dockerfile/dockerfile.star +3 -3
  101. package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +1 -1
  102. package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +0 -3
  103. package/engine/topologies/platform/docker/layers/l3_builder_layers.star +1 -1
  104. package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +1 -1
  105. package/engine/topologies/platform/docker/secrets/infisical.star +19 -47
  106. package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +1 -1
  107. package/install.sh +242 -0
  108. package/knip.json +10 -0
  109. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/.openspec.yaml +2 -0
  110. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/design.md +102 -0
  111. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/proposal.md +31 -0
  112. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-notifications/spec.md +48 -0
  113. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-orchestration/spec.md +63 -0
  114. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/specs/vscode-tdk-troubleshooting/spec.md +56 -0
  115. package/openspec/changes/add-vscode-tdk-troubleshooter-plugin/tasks.md +61 -0
  116. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/.openspec.yaml +2 -0
  117. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/design.md +114 -0
  118. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/proposal.md +32 -0
  119. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/manifest-field-migration/spec.md +20 -0
  120. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/resource-terminology-standard/spec.md +20 -0
  121. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/specs/stack-terminology-standard/spec.md +20 -0
  122. package/openspec/changes/archive/2026-04-28-rename-domain-to-stack-service-to-resource/tasks.md +194 -0
  123. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/.openspec.yaml +2 -0
  124. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/design.md +111 -0
  125. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/proposal.md +33 -0
  126. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/function-naming-alignment/spec.md +12 -0
  127. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/optional-parameter-patterns/spec.md +18 -0
  128. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-documentation/spec.md +16 -0
  129. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-naming-consistency/spec.md +12 -0
  130. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/specs/parameter-ordering-standard/spec.md +12 -0
  131. package/openspec/changes/archive/2026-04-28-star-files-parameter-fixes/tasks.md +194 -0
  132. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/.openspec.yaml +2 -0
  133. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/codebase-audit-report.md +62 -0
  134. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/design.md +84 -0
  135. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/proposal.md +31 -0
  136. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/codebase-audit/spec.md +27 -0
  137. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/dead-code-cleanup/spec.md +27 -0
  138. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/test-gap-fill/spec.md +23 -0
  139. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/specs/todo-resolution/spec.md +27 -0
  140. package/openspec/changes/archive/2026-04-29-scan-repo-gaps-fix/tasks.md +39 -0
  141. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/.openspec.yaml +5 -0
  142. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/design.md +94 -0
  143. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/proposal.md +46 -0
  144. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CLEANUP_REPORT_8.md +174 -0
  145. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/ai-slop-cleanup/CRITICAL_ASSESSMENT_8.md +160 -0
  146. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/circular-deps/CRITICAL_ASSESSMENT_4.md +381 -0
  147. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/dead-code/CRITICAL_ASSESSMENT_3.md +316 -0
  148. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/CRITICAL_ASSESSMENT_1.md +290 -0
  149. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/deduplication/IMPLEMENTATION_SUMMARY_1.md +233 -0
  150. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/defensive-cleanup/CRITICAL_ASSESSMENT_6.md +835 -0
  151. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/CRITICAL_ASSESSMENT_7.md +254 -0
  152. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/legacy-cleanup/IMPLEMENTATION_SUMMARY_7.md +187 -0
  153. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/strong-typing/CRITICAL_ASSESSMENT_5.md +269 -0
  154. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/CRITICAL_ASSESSMENT_2.md +312 -0
  155. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/specs/type-consolidation/IMPLEMENTATION_SUMMARY.md +170 -0
  156. package/openspec/changes/archive/2026-05-04-comprehensive-cleanup-final/tasks.md +137 -0
  157. package/openspec/changes/archive/2026-06-25-landscape-consolidation/.openspec.yaml +2 -0
  158. package/openspec/changes/archive/2026-06-25-landscape-consolidation/design.md +80 -0
  159. package/openspec/changes/archive/2026-06-25-landscape-consolidation/proposal.md +40 -0
  160. package/openspec/changes/archive/2026-06-25-landscape-consolidation/spec.md +52 -0
  161. package/openspec/changes/archive/2026-06-25-landscape-consolidation/tasks.md +51 -0
  162. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/.openspec.yaml +2 -0
  163. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/design.md +43 -0
  164. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/proposal.md +29 -0
  165. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/specs/self-contained-generated-projects/spec.md +67 -0
  166. package/openspec/changes/archive/2026-09-17-fix-generated-stack-boot/tasks.md +27 -0
  167. package/openspec/specs/manifest-field-migration/spec.md +24 -0
  168. package/openspec/specs/resource-terminology-standard/spec.md +24 -0
  169. package/openspec/specs/self-contained-generated-projects/spec.md +67 -0
  170. package/openspec/specs/stack-terminology-standard/spec.md +24 -0
  171. package/package.json +27 -64
  172. package/platform/services/platform/proxy/service.yaml +14 -0
  173. package/scripts/audit-codebase.sh +213 -0
  174. package/scripts/install-git-hooks.sh +14 -0
  175. package/scripts/release-binaries.sh +94 -0
  176. package/scripts/setup-pre-commit.sh +33 -0
  177. package/scripts/stage-npm-engine.sh +36 -0
  178. package/shared-platform-engineering/docker-templates/bun-hoisted-symlink-fix.sh +23 -0
  179. package/shared-platform-engineering/docker-templates/infisical-entrypoint.sh +464 -0
  180. package/shared-platform-engineering/docker-templates/install-deps.sh +152 -0
  181. package/shared-platform-engineering/docker-templates/prisma-bun-client-link-fix.sh +12 -0
  182. package/shared-platform-engineering/docker-templates/prisma-normalize-client.sh +56 -0
  183. package/tests/tilt-engine/__init__.py +5 -0
  184. package/tests/tilt-engine/conftest.py +182 -0
  185. package/tests/tilt-engine/fixtures/appointment-frontend-service.json +11 -0
  186. package/tests/tilt-engine/fixtures/identity-backend-service.json +12 -0
  187. package/tests/tilt-engine/fixtures/invalid-service.json +4 -0
  188. package/tests/tilt-engine/test_agents_md_generator.py +341 -0
  189. package/tests/tilt-engine/test_agents_md_integration.py +378 -0
  190. package/tests/tilt-engine/test_cache_operations.py +181 -0
  191. package/tests/tilt-engine/test_cache_persistence.py +142 -0
  192. package/tests/tilt-engine/test_code_executor.py +152 -0
  193. package/tests/tilt-engine/test_code_viewer.py +127 -0
  194. package/tests/tilt-engine/test_compose_port_anchors.py +310 -0
  195. package/tests/tilt-engine/test_config_inspector.py +162 -0
  196. package/tests/tilt-engine/test_daemon_focus_mode.py +89 -0
  197. package/tests/tilt-engine/test_daemon_polling.py +122 -0
  198. package/tests/tilt-engine/test_daemon_registration.py +115 -0
  199. package/tests/tilt-engine/test_daemon_validation.py +107 -0
  200. package/tests/tilt-engine/test_docker_generator_bugs.py +493 -0
  201. package/tests/tilt-engine/test_docker_prune.py +119 -0
  202. package/tests/tilt-engine/test_dockerignore_path_bug.py +82 -0
  203. package/tests/tilt-engine/test_file_browser.py +193 -0
  204. package/tests/tilt-engine/test_frontend_basepath_manifest.py +27 -0
  205. package/tests/tilt-engine/test_health_dependencies.py +130 -0
  206. package/tests/tilt-engine/test_health_endpoints.py +118 -0
  207. package/tests/tilt-engine/test_health_tilt_ui.py +85 -0
  208. package/tests/tilt-engine/test_safety_aliases.py +84 -0
  209. package/tests/tilt-engine/test_snapshot_diff.py +136 -0
  210. package/tests/tilt-engine/test_snapshot_persistence.py +163 -0
  211. package/tests/tilt-engine/test_snapshot_scanning.py +123 -0
  212. package/tests/tilt-engine/test_standalone_project_boot.py +61 -0
  213. package/tests/tilt-engine/test_standalone_traefik.py +108 -0
  214. package/dist/cli.d.ts +0 -3
  215. package/dist/cli.d.ts.map +0 -1
  216. package/dist/cli.js.map +0 -1
  217. package/dist/commands/completion.d.ts +0 -3
  218. package/dist/commands/completion.d.ts.map +0 -1
  219. package/dist/commands/completion.js.map +0 -1
  220. package/dist/commands/config.d.ts +0 -3
  221. package/dist/commands/config.d.ts.map +0 -1
  222. package/dist/commands/config.js +0 -231
  223. package/dist/commands/config.js.map +0 -1
  224. package/dist/commands/doctor.d.ts +0 -7
  225. package/dist/commands/doctor.d.ts.map +0 -1
  226. package/dist/commands/doctor.js +0 -597
  227. package/dist/commands/doctor.js.map +0 -1
  228. package/dist/commands/down.d.ts +0 -3
  229. package/dist/commands/down.d.ts.map +0 -1
  230. package/dist/commands/down.js +0 -32
  231. package/dist/commands/down.js.map +0 -1
  232. package/dist/commands/help.d.ts +0 -2
  233. package/dist/commands/help.d.ts.map +0 -1
  234. package/dist/commands/help.js +0 -130
  235. package/dist/commands/help.js.map +0 -1
  236. package/dist/commands/networks.d.ts +0 -3
  237. package/dist/commands/networks.d.ts.map +0 -1
  238. package/dist/commands/networks.js +0 -260
  239. package/dist/commands/networks.js.map +0 -1
  240. package/dist/commands/project.d.ts +0 -3
  241. package/dist/commands/project.d.ts.map +0 -1
  242. package/dist/commands/project.js +0 -373
  243. package/dist/commands/project.js.map +0 -1
  244. package/dist/commands/projects.d.ts +0 -3
  245. package/dist/commands/projects.d.ts.map +0 -1
  246. package/dist/commands/projects.js +0 -71
  247. package/dist/commands/projects.js.map +0 -1
  248. package/dist/commands/resource.d.ts +0 -69
  249. package/dist/commands/resource.d.ts.map +0 -1
  250. package/dist/commands/resource.js +0 -579
  251. package/dist/commands/resource.js.map +0 -1
  252. package/dist/commands/resources.d.ts +0 -3
  253. package/dist/commands/resources.d.ts.map +0 -1
  254. package/dist/commands/resources.js +0 -73
  255. package/dist/commands/resources.js.map +0 -1
  256. package/dist/commands/stack.d.ts +0 -3
  257. package/dist/commands/stack.d.ts.map +0 -1
  258. package/dist/commands/stack.js +0 -97
  259. package/dist/commands/stack.js.map +0 -1
  260. package/dist/commands/stacks.d.ts +0 -3
  261. package/dist/commands/stacks.d.ts.map +0 -1
  262. package/dist/commands/stacks.js +0 -43
  263. package/dist/commands/stacks.js.map +0 -1
  264. package/dist/commands/status.d.ts +0 -3
  265. package/dist/commands/status.d.ts.map +0 -1
  266. package/dist/commands/status.js +0 -71
  267. package/dist/commands/status.js.map +0 -1
  268. package/dist/commands/ui.d.ts +0 -3
  269. package/dist/commands/ui.d.ts.map +0 -1
  270. package/dist/commands/ui.js +0 -445
  271. package/dist/commands/ui.js.map +0 -1
  272. package/dist/commands/up.d.ts +0 -3
  273. package/dist/commands/up.d.ts.map +0 -1
  274. package/dist/commands/up.js +0 -110
  275. package/dist/commands/up.js.map +0 -1
  276. package/dist/commands/upgrade.d.ts +0 -11
  277. package/dist/commands/upgrade.d.ts.map +0 -1
  278. package/dist/commands/upgrade.js +0 -496
  279. package/dist/commands/upgrade.js.map +0 -1
  280. package/dist/commands/version.d.ts +0 -3
  281. package/dist/commands/version.d.ts.map +0 -1
  282. package/dist/commands/version.js.map +0 -1
  283. package/dist/components/Accessible.d.ts +0 -8
  284. package/dist/components/Accessible.d.ts.map +0 -1
  285. package/dist/components/Accessible.js +0 -10
  286. package/dist/components/Accessible.js.map +0 -1
  287. package/dist/components/BaseTooltip.d.ts +0 -4
  288. package/dist/components/BaseTooltip.d.ts.map +0 -1
  289. package/dist/components/BaseTooltip.js +0 -28
  290. package/dist/components/BaseTooltip.js.map +0 -1
  291. package/dist/components/DetailPanel.d.ts +0 -4
  292. package/dist/components/DetailPanel.d.ts.map +0 -1
  293. package/dist/components/DetailPanel.js +0 -18
  294. package/dist/components/DetailPanel.js.map +0 -1
  295. package/dist/components/FileTree.d.ts +0 -4
  296. package/dist/components/FileTree.d.ts.map +0 -1
  297. package/dist/components/FileTree.js +0 -47
  298. package/dist/components/FileTree.js.map +0 -1
  299. package/dist/components/ResourceSelectInput.d.ts +0 -4
  300. package/dist/components/ResourceSelectInput.d.ts.map +0 -1
  301. package/dist/components/ResourceSelectInput.js +0 -7
  302. package/dist/components/ResourceSelectInput.js.map +0 -1
  303. package/dist/components/ResourceTable.d.ts +0 -4
  304. package/dist/components/ResourceTable.d.ts.map +0 -1
  305. package/dist/components/ResourceTable.js +0 -18
  306. package/dist/components/ResourceTable.js.map +0 -1
  307. package/dist/components/TabBar.d.ts +0 -4
  308. package/dist/components/TabBar.d.ts.map +0 -1
  309. package/dist/components/TabBar.js +0 -17
  310. package/dist/components/TabBar.js.map +0 -1
  311. package/dist/components/Tooltip.d.ts +0 -12
  312. package/dist/components/Tooltip.d.ts.map +0 -1
  313. package/dist/components/Tooltip.js +0 -12
  314. package/dist/components/Tooltip.js.map +0 -1
  315. package/dist/components/index.d.ts +0 -8
  316. package/dist/components/index.d.ts.map +0 -1
  317. package/dist/components/index.js.map +0 -1
  318. package/dist/config/platform-standards.d.ts +0 -159
  319. package/dist/config/platform-standards.d.ts.map +0 -1
  320. package/dist/config/platform-standards.js +0 -181
  321. package/dist/config/platform-standards.js.map +0 -1
  322. package/dist/generator/extension-fetch.d.ts +0 -25
  323. package/dist/generator/extension-fetch.d.ts.map +0 -1
  324. package/dist/generator/extension-fetch.js +0 -252
  325. package/dist/generator/extension-fetch.js.map +0 -1
  326. package/dist/generator/template-engine.d.ts +0 -61
  327. package/dist/generator/template-engine.d.ts.map +0 -1
  328. package/dist/generator/template-engine.js +0 -557
  329. package/dist/generator/template-engine.js.map +0 -1
  330. package/dist/index.d.ts +0 -11
  331. package/dist/index.d.ts.map +0 -1
  332. package/dist/index.js +0 -11
  333. package/dist/index.js.map +0 -1
  334. package/dist/types/index.d.ts +0 -255
  335. package/dist/types/index.d.ts.map +0 -1
  336. package/dist/types/index.js +0 -17
  337. package/dist/types/index.js.map +0 -1
  338. package/dist/utils/cache.d.ts +0 -19
  339. package/dist/utils/cache.d.ts.map +0 -1
  340. package/dist/utils/cache.js +0 -64
  341. package/dist/utils/cache.js.map +0 -1
  342. package/dist/utils/command-helpers.d.ts +0 -17
  343. package/dist/utils/command-helpers.d.ts.map +0 -1
  344. package/dist/utils/command-helpers.js +0 -41
  345. package/dist/utils/command-helpers.js.map +0 -1
  346. package/dist/utils/constants.d.ts +0 -52
  347. package/dist/utils/constants.d.ts.map +0 -1
  348. package/dist/utils/constants.js +0 -112
  349. package/dist/utils/constants.js.map +0 -1
  350. package/dist/utils/discovery-context.d.ts +0 -4
  351. package/dist/utils/discovery-context.d.ts.map +0 -1
  352. package/dist/utils/discovery-context.js +0 -39
  353. package/dist/utils/discovery-context.js.map +0 -1
  354. package/dist/utils/docker.d.ts +0 -4
  355. package/dist/utils/docker.d.ts.map +0 -1
  356. package/dist/utils/docker.js +0 -19
  357. package/dist/utils/docker.js.map +0 -1
  358. package/dist/utils/doctor-runtime.d.ts +0 -66
  359. package/dist/utils/doctor-runtime.d.ts.map +0 -1
  360. package/dist/utils/doctor-runtime.js +0 -469
  361. package/dist/utils/doctor-runtime.js.map +0 -1
  362. package/dist/utils/env-validator.d.ts +0 -15
  363. package/dist/utils/env-validator.d.ts.map +0 -1
  364. package/dist/utils/env-validator.js +0 -109
  365. package/dist/utils/env-validator.js.map +0 -1
  366. package/dist/utils/errors.d.ts +0 -31
  367. package/dist/utils/errors.d.ts.map +0 -1
  368. package/dist/utils/errors.js +0 -140
  369. package/dist/utils/errors.js.map +0 -1
  370. package/dist/utils/file-helpers.d.ts +0 -14
  371. package/dist/utils/file-helpers.d.ts.map +0 -1
  372. package/dist/utils/file-helpers.js +0 -45
  373. package/dist/utils/file-helpers.js.map +0 -1
  374. package/dist/utils/formatting.d.ts +0 -30
  375. package/dist/utils/formatting.d.ts.map +0 -1
  376. package/dist/utils/formatting.js +0 -164
  377. package/dist/utils/formatting.js.map +0 -1
  378. package/dist/utils/paths.d.ts +0 -3
  379. package/dist/utils/paths.d.ts.map +0 -1
  380. package/dist/utils/paths.js +0 -41
  381. package/dist/utils/paths.js.map +0 -1
  382. package/dist/utils/port-assignment.d.ts +0 -6
  383. package/dist/utils/port-assignment.d.ts.map +0 -1
  384. package/dist/utils/port-assignment.js +0 -81
  385. package/dist/utils/port-assignment.js.map +0 -1
  386. package/dist/utils/project-features.d.ts +0 -23
  387. package/dist/utils/project-features.d.ts.map +0 -1
  388. package/dist/utils/project-features.js +0 -98
  389. package/dist/utils/project-features.js.map +0 -1
  390. package/dist/utils/project-templates.d.ts +0 -7
  391. package/dist/utils/project-templates.d.ts.map +0 -1
  392. package/dist/utils/project-templates.js +0 -24
  393. package/dist/utils/project-templates.js.map +0 -1
  394. package/dist/utils/prompt.d.ts +0 -28
  395. package/dist/utils/prompt.d.ts.map +0 -1
  396. package/dist/utils/prompt.js +0 -79
  397. package/dist/utils/prompt.js.map +0 -1
  398. package/dist/utils/resource-features.d.ts +0 -29
  399. package/dist/utils/resource-features.d.ts.map +0 -1
  400. package/dist/utils/resource-features.js +0 -171
  401. package/dist/utils/resource-features.js.map +0 -1
  402. package/dist/utils/service-urls.d.ts +0 -30
  403. package/dist/utils/service-urls.d.ts.map +0 -1
  404. package/dist/utils/service-urls.js +0 -93
  405. package/dist/utils/service-urls.js.map +0 -1
  406. package/dist/utils/services.d.ts +0 -18
  407. package/dist/utils/services.d.ts.map +0 -1
  408. package/dist/utils/services.js +0 -291
  409. package/dist/utils/services.js.map +0 -1
  410. package/dist/utils/stack-features.d.ts +0 -22
  411. package/dist/utils/stack-features.d.ts.map +0 -1
  412. package/dist/utils/stack-features.js +0 -13
  413. package/dist/utils/stack-features.js.map +0 -1
  414. package/dist/utils/tar.d.ts +0 -7
  415. package/dist/utils/tar.d.ts.map +0 -1
  416. package/dist/utils/tar.js +0 -21
  417. package/dist/utils/tar.js.map +0 -1
  418. package/dist/utils/tilt.d.ts +0 -19
  419. package/dist/utils/tilt.d.ts.map +0 -1
  420. package/dist/utils/tilt.js +0 -78
  421. package/dist/utils/tilt.js.map +0 -1
  422. package/dist/utils/validation.d.ts +0 -16
  423. package/dist/utils/validation.d.ts.map +0 -1
  424. package/dist/utils/validation.js +0 -58
  425. package/dist/utils/validation.js.map +0 -1
  426. /package/{README.md → cli/README.md} +0 -0
  427. /package/{bin → cli/bin}/tdk.js +0 -0
  428. /package/{templates → cli/templates}/.tiltignore.hbs +0 -0
  429. /package/{templates → cli/templates}/TILT_RESOURCE_DEFAULTS.star.hbs +0 -0
  430. /package/{templates → cli/templates}/TILT_TECH_STACK.star.hbs +0 -0
  431. /package/{templates → cli/templates}/spec.master.hbs +0 -0
@@ -0,0 +1,114 @@
1
+ ## Context
2
+
3
+ The codebase currently has terminology inconsistencies that have evolved over time:
4
+
5
+ 1. **"domain" vs "stack"**: The manifest schema originally used `domain` to group related services, but this has been migrated to `stack`. Currently, code uses fallback patterns like `manifest.get('stack') or manifest.get('domain')` to support both, creating confusion about which is canonical.
6
+
7
+ 2. **"service" vs "resource"**: The architecture has shifted from thinking in terms of "services" (business-oriented) to "resources" (deployment-oriented Tilt resources). Function names like `get_app_resources()` exist alongside variable names like `svc` and `service`, and docstrings refer to "services" while the code handles "resources".
8
+
9
+ 3. **Cache keys**: The discovery cache uses `domain_configs` which doesn't align with the `stack` terminology.
10
+
11
+ 4. **Autogenerated files**: Files like `product_autogenerated_domains_index.star` use old terminology.
12
+
13
+ These inconsistencies make the codebase harder to understand, especially for new developers. Standardizing on "stack" (for logical grouping) and "resource" (for deployable units) will provide clarity.
14
+
15
+ ## Goals / Non-Goals
16
+
17
+ **Goals:**
18
+ - Replace all `domain` manifest field access with `stack` (remove fallbacks)
19
+ - Rename `domain_configs` cache key to `stack_configs`
20
+ - Update all docstrings and comments from "service" to "resource"
21
+ - Rename variables from `svc`, `service` to `resource`
22
+ - Rename functions like `_render_product_domains_index()` to `_render_product_stacks_index()`
23
+ - Update autogenerated file naming from `domains` to `stacks`
24
+ - Ensure no functional changes - purely terminology refactoring
25
+
26
+ **Non-Goals:**
27
+ - Changing manifest file structure (the JSON schema)
28
+ - Changing the actual behavior of any function
29
+ - Adding new features or capabilities
30
+ - Removing support for legacy manifest formats in the loader/parser
31
+ - Renaming the `app_resources` cache key (widely used, high risk)
32
+
33
+ ## Decisions
34
+
35
+ ### Decision 1: Keep `app_resources` Cache Key
36
+ **Rationale**: The `app_resources` key is used extensively across the codebase (50+ references). Changing it would touch too many files and create high risk of merge conflicts. The term "app resources" is acceptable since it describes the collection of resources for an app.
37
+
38
+ **Alternatives considered**:
39
+ - Rename to `resources` - Rejected due to high touchpoint count and risk
40
+ - Keep as-is - Accepted as "app resources" is descriptive enough
41
+
42
+ ### Decision 2: Remove `domain` Fallback Patterns
43
+ **Rationale**: Patterns like `manifest.get('stack') or manifest.get('domain')` exist to support legacy manifests. However, all current manifests should have migrated to `stack`. Removing the fallback simplifies code and establishes `stack` as the canonical field.
44
+
45
+ **Migration approach**:
46
+ ```starlark
47
+ # Before:
48
+ stack = manifest.get('stack') or manifest.get('domain') or extract_stack_from_path(path)
49
+
50
+ # After:
51
+ stack = manifest.get('stack', extract_stack_from_path(path))
52
+ ```
53
+
54
+ ### Decision 3: Update Variable Names Incrementally
55
+ **Rationale**: Variables like `svc`, `service` should become `resource`. However, in loops where context is clear (e.g., `for svc in resources`), shorter names are acceptable. Focus on function parameters and docstrings first.
56
+
57
+ **Priority order**:
58
+ 1. Function parameter names
59
+ 2. Docstrings and comments
60
+ 3. Variable names in outer scope
61
+ 4. Loop variables (lower priority)
62
+
63
+ ### Decision 4: File Renaming for Autogenerated Files
64
+ **Rationale**: Autogenerated files like `product_autogenerated_domains_index.star` should be renamed to use `stacks`. This requires updating both the file generation code and any `load()` statements that reference these files.
65
+
66
+ ## Risks / Trade-offs
67
+
68
+ **Risk**: Breaking external code that reads `domain` from manifests
69
+ - **Mitigation**: This is a **BREAKING** change as noted. External code must migrate to `stack` field.
70
+
71
+ **Risk**: Inadvertent functional changes during bulk renaming
72
+ - **Mitigation**: Each task will be focused on a specific file or small group. Tests must pass after each batch.
73
+
74
+ **Risk**: Merge conflicts with ongoing development
75
+ - **Mitigation**: Tasks are organized by directory to minimize conflict surface area. Complete quickly.
76
+
77
+ **Risk**: Missing some instances of old terminology
78
+ - **Mitigation**: Final verification task will grep for remaining `domain`, `svc`, `service` patterns.
79
+
80
+ **Risk**: Variable name collisions after renaming
81
+ - **Mitigation**: Use `resource` not `res` (too short). In nested contexts, use descriptive names like `app_resource`.
82
+
83
+ ## Migration Plan
84
+
85
+ 1. **Phase 1: Discovery System** (Tasks 1-40)
86
+ - Update `/discovery/` directory files
87
+ - Rename `domain_configs` to `stack_configs`
88
+ - Update manifest access patterns
89
+ - Update docstrings
90
+
91
+ 2. **Phase 2: Engine Topologies Tilt** (Tasks 41-100)
92
+ - Update deprecated system files
93
+ - Update generator files
94
+ - Update resource orchestration
95
+
96
+ 3. **Phase 3: Engine Topologies Platform** (Tasks 101-130)
97
+ - Update platform-level files
98
+ - Update Docker, networking, compose files
99
+
100
+ 4. **Phase 4: Autogenerated File Naming** (Tasks 131-140)
101
+ - Rename autogenerated file references
102
+ - Update file generation code
103
+
104
+ 5. **Phase 5: Verification** (Tasks 141-150)
105
+ - Run full test suite
106
+ - Grep for remaining `domain` references
107
+ - Grep for remaining `service` vs `resource` inconsistencies
108
+ - Verify no `manifest.get('domain')` patterns remain
109
+
110
+ ## Open Questions
111
+
112
+ - Should we keep `app_resources` as-is or rename to `resources`? (Decision: keep as-is for now)
113
+ - Should we update function names like `get_app_resources()`? (Decision: lower priority, focus on internals first)
114
+ - How to handle `svc` in tight loops where context is clear? (Decision: focus on function params and docstrings first)
@@ -0,0 +1,32 @@
1
+ ## Why
2
+
3
+ The codebase currently uses inconsistent terminology: "domain" vs "stack" and "service" vs "resource" are used interchangeably, causing confusion. The manifest schema has migrated from `domain` to `stack` as the preferred field, and the architecture has shifted from "services" to "resources" as the core abstraction. Standardizing on "stack" (for grouping/organizing) and "resource" (for individual deployable units) will clarify the mental model and reduce cognitive overhead for developers working across 174+ .star files.
4
+
5
+ ## What Changes
6
+
7
+ - **BREAKING** Rename all `domain` references to `stack` in manifest field access patterns (`manifest.get('domain')` → `manifest.get('stack')`)
8
+ - **BREAKING** Rename `domain_configs` cache key to `stack_configs`
9
+ - **BREAKING** Rename `_render_product_domains_index()` function to `_render_product_stacks_index()`
10
+ - **BREAKING** Update all function docstrings and comments from "service" to "resource" terminology
11
+ - **BREAKING** Rename variables like `svc` to `resource`, `service` to `resource` throughout
12
+ - Remove fallback patterns like `manifest.get('stack') or manifest.get('domain')` and use only `stack`
13
+ - Update autogenerated file names from `domains` to `stacks`
14
+
15
+ ## Capabilities
16
+
17
+ ### New Capabilities
18
+ - `stack-terminology-standard`: Standardize all grouping/organization terminology to "stack"
19
+ - `resource-terminology-standard`: Standardize all deployable unit terminology to "resource"
20
+ - `manifest-field-migration`: Remove deprecated `domain` field support from manifest access patterns
21
+
22
+ ### Modified Capabilities
23
+ <!-- No existing spec requirements are changing - this is terminology refactoring -->
24
+
25
+ ## Impact
26
+
27
+ - **Affected Files**: 50+ .star files across `/discovery/`, `/engine/topologies/tilt/`, `/engine/topologies/platform/`
28
+ - **Function Count**: 200+ function names, variables, and docstrings will be updated
29
+ - **Dependencies**: Any external code accessing `domain` field in manifests will need to use `stack`
30
+ - **Breaking Changes**: **BREAKING** - Manifest field access changes, function renames, cache key renames
31
+ - **Risk Level**: High - extensive terminology changes across many files
32
+ - **Testing Required**: Full test suite to verify no functional regressions
@@ -0,0 +1,20 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Manifest field migration from domain to stack
4
+ All manifest field access patterns SHALL remove fallback support for the deprecated `domain` field.
5
+
6
+ #### Scenario: No domain field fallback
7
+ - **WHEN** code retrieves the stack field from a manifest
8
+ - **THEN** it SHALL NOT use fallback patterns like `manifest.get('stack') or manifest.get('domain')`
9
+
10
+ #### Scenario: Stack field with default only
11
+ - **WHEN** a default value is needed for the stack field
12
+ - **THEN** code SHALL use `manifest.get('stack', default_value)` and NOT check for domain
13
+
14
+ #### Scenario: Domain field references removed
15
+ - **WHEN** searching the codebase for domain field access
16
+ - **THEN** no `manifest.get('domain')` patterns SHALL exist except in legacy parser code
17
+
18
+ #### Scenario: Filtering uses stack field only
19
+ - **WHEN** filtering manifests by logical group
20
+ - **THEN** code SHALL filter by `stack` field only and NOT check `domain` as fallback
@@ -0,0 +1,20 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Resource terminology standardization
4
+ All references to deployable units SHALL use the term "resource" instead of "service".
5
+
6
+ #### Scenario: Function parameters use resource terminology
7
+ - **WHEN** a function accepts a deployable unit as a parameter
8
+ - **THEN** the parameter name SHALL be `resource` or `resource_dict` and NOT `service` or `svc`
9
+
10
+ #### Scenario: Docstrings use resource terminology
11
+ - **WHEN** a function docstring describes a deployable unit
12
+ - **THEN** it SHALL use the term "resource" and NOT "service"
13
+
14
+ #### Scenario: Variable names use resource terminology
15
+ - **WHEN** a variable holds a deployable unit
16
+ - **THEN** the variable name SHALL be `resource` and NOT `svc` or `service`
17
+
18
+ #### Scenario: Comments use resource terminology
19
+ - **WHEN** code comments describe deployable units
20
+ - **THEN** they SHALL use the term "resource" and NOT "service"
@@ -0,0 +1,20 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Stack terminology standardization
4
+ All references to logical grouping of resources SHALL use the term "stack" instead of "domain".
5
+
6
+ #### Scenario: Manifest field access uses stack
7
+ - **WHEN** code accesses the grouping field from a manifest
8
+ - **THEN** it SHALL use `manifest.get('stack')` and NOT `manifest.get('domain')`
9
+
10
+ #### Scenario: Cache keys use stack terminology
11
+ - **WHEN** the discovery cache stores configuration for logical groups
12
+ - **THEN** the cache key SHALL be named `stack_configs` and NOT `domain_configs`
13
+
14
+ #### Scenario: Autogenerated files use stack naming
15
+ - **WHEN** autogenerated index files are created for logical groups
16
+ - **THEN** the filenames SHALL contain `stacks` and NOT `domains`
17
+
18
+ #### Scenario: Function names use stack terminology
19
+ - **WHEN** a function generates an index of logical groups
20
+ - **THEN** the function name SHALL include `stacks` and NOT `domains`
@@ -0,0 +1,194 @@
1
+ ## 1. Discovery Directory - Core Registry and Cache
2
+
3
+ - [x] 1.1 Rename `domain_configs` to `stack_configs` in `discovery/registry.star` cache
4
+ - [x] 1.2 Update `_render_product_domains_index()` to `_render_product_stacks_index()` in `discovery/registry.star`
5
+ - [x] 1.3 Update all docstrings in `discovery/registry.star` from "service" to "resource"
6
+ - [x] 1.4 Update variable names in `discovery/registry.star` from `svc` to `resource`
7
+ - [x] 1.5 Update variable names in `discovery/registry.star` from `service` to `resource` (function params)
8
+ - [x] 1.6 Rename `domain` references in `discovery/discovery_orchestrator.star` manifest access
9
+ - [x] 1.7 Update docstrings in `discovery/discovery_orchestrator.star` from "service" to "resource"
10
+ - [x] 1.8 Update variable names in `discovery/discovery_orchestrator.star` from `svc` to `resource`
11
+ - [x] 1.9 Rename `domain` references in `discovery/incremental_discovery.star` manifest access
12
+ - [x] 1.10 Update docstrings in `discovery/incremental_discovery.star` from "service" to "resource"
13
+
14
+ ## 2. Discovery Directory - Manifest and Loading
15
+
16
+ - [x] 2.1 Rename `domain` references in `discovery/manifest/loading.star` to `stack`
17
+ - [x] 2.2 Update docstrings in `discovery/manifest/loading.star` from "service" to "resource"
18
+ - [x] 2.3 Rename `domain` references in `discovery/manifest/normalize.star` to `stack`
19
+ - [x] 2.4 Update docstrings in `discovery/manifest/normalize.star` from "service" to "resource"
20
+ - [x] 2.5 Rename `domain` references in `discovery/manifest/validation.star` to `stack`
21
+ - [x] 2.6 Update docstrings in `discovery/manifest/validation.star` from "service" to "resource"
22
+ - [x] 2.7 Rename `domain` references in `discovery/config.star` to `stack`
23
+ - [x] 2.8 Update docstrings in `discovery/config.star` from "service" to "resource"
24
+ - [x] 2.9 Rename `domain` references in `discovery/constants.star` to `stack`
25
+ - [x] 2.10 Update docstrings in `discovery/constants.star` from "service" to "resource"
26
+
27
+ ## 3. Discovery Directory - Utilities and Validation
28
+
29
+ - [x] 3.1 Rename `domain` references in `discovery/validation.star` to `stack`
30
+ - [x] 3.2 Update docstrings in `discovery/validation.star` from "service" to "resource"
31
+ - [x] 3.3 Rename `domain` references in `discovery/filtering.star` to `stack`
32
+ - [x] 3.4 Update variable names in `discovery/filtering.star` from `svc` to `resource`
33
+ - [x] 3.5 Rename `domain` references in `discovery/indexing.star` to `stack`
34
+ - [x] 3.6 Update docstrings in `discovery/indexing.star` from "service" to "resource"
35
+ - [x] 3.7 Rename `domain` references in `discovery/deterministic.star` to `stack`
36
+ - [x] 3.8 Update variable names in `discovery/deterministic.star` from `svc` to `resource`
37
+ - [x] 3.9 Rename `domain` references in `discovery/resource_snapshot.star` to `stack`
38
+ - [x] 3.10 Update docstrings in `discovery/resource_snapshot.star` from "service" to "resource"
39
+
40
+ ## 4. Engine Topologies Tilt - Discovery (Deprecated System)
41
+
42
+ - [x] 4.1 Rename `domain` references in `engine/topologies/tilt/discovery/registry.star` to `stack`
43
+ - [x] 4.2 Update docstrings in `engine/topologies/tilt/discovery/registry.star` from "service" to "resource"
44
+ - [x] 4.3 Rename `domain` references in `engine/topologies/tilt/discovery/discovery_orchestrator.star` to `stack`
45
+ - [x] 4.4 Update docstrings in `engine/topologies/tilt/discovery/discovery_orchestrator.star` from "service" to "resource"
46
+ - [x] 4.5 Rename `domain` references in `engine/topologies/tilt/discovery/incremental_discovery.star` to `stack`
47
+ - [x] 4.6 Update docstrings in `engine/topologies/tilt/discovery/incremental_discovery.star` from "service" to "resource"
48
+ - [x] 4.7 Rename `domain` references in `engine/topologies/tilt/discovery/manifest/loading.star` to `stack`
49
+ - [x] 4.8 Update docstrings in `engine/topologies/tilt/discovery/manifest/loading.star` from "service" to "resource"
50
+ - [x] 4.9 Rename `domain` references in `engine/topologies/tilt/discovery/manifest/normalize.star` to `stack`
51
+ - [x] 4.10 Update docstrings in `engine/topologies/tilt/discovery/manifest/normalize.star` from "service" to "resource"
52
+
53
+ ## 5. Engine Topologies Tilt - Manifest Files
54
+
55
+ - [x] 5.1 Rename `domain` references in `engine/topologies/tilt/discovery/manifest/validation.star` to `stack`
56
+ - [x] 5.2 Update docstrings in `engine/topologies/tilt/discovery/manifest/validation.star` from "service" to "resource"
57
+ - [x] 5.3 Rename `domain` references in `engine/topologies/tilt/manifest/parser.star` to `stack`
58
+ - [x] 5.4 Update docstrings in `engine/topologies/tilt/manifest/parser.star` from "service" to "resource"
59
+ - [x] 5.5 Rename `domain` references in `engine/topologies/tilt/manifest/loader.star` to `stack`
60
+ - [x] 5.6 Update docstrings in `engine/topologies/tilt/manifest/loader.star` from "service" to "resource"
61
+ - [x] 5.7 Rename `domain` references in `engine/topologies/tilt/manifest/mapper.star` to `stack`
62
+ - [x] 5.8 Update docstrings in `engine/topologies/tilt/manifest/mapper.star` from "service" to "resource"
63
+ - [x] 5.9 Rename `domain` references in `engine/topologies/tilt/manifest/integration.star` to `stack`
64
+ - [x] 5.10 Update docstrings in `engine/topologies/tilt/manifest/integration.star` from "service" to "resource"
65
+
66
+ ## 6. Engine Topologies Tilt - Generators Vite
67
+
68
+ - [x] 6.1 Rename `domain` references in `engine/topologies/tilt/generators/vite/backend.star` to `stack`
69
+ - [x] 6.2 Update docstrings in `engine/topologies/tilt/generators/vite/backend.star` from "service" to "resource"
70
+ - [x] 6.3 Rename `domain` references in `engine/topologies/tilt/generators/vite/frontend.star` to `stack`
71
+ - [x] 6.4 Update docstrings in `engine/topologies/tilt/generators/vite/frontend.star` from "service" to "resource"
72
+ - [x] 6.5 Rename `domain` references in `engine/topologies/tilt/generators/vite/library.star` to `stack`
73
+ - [x] 6.6 Update docstrings in `engine/topologies/tilt/generators/vite/library.star` from "service" to "resource"
74
+ - [x] 6.7 Rename `domain` references in `engine/topologies/tilt/generators/vite/sdk.star` to `stack`
75
+ - [x] 6.8 Update docstrings in `engine/topologies/tilt/generators/vite/sdk.star` from "service" to "resource"
76
+ - [x] 6.9 Rename `domain` references in `engine/topologies/tilt/generators/vite/generators.star` to `stack`
77
+ - [x] 6.10 Update docstrings in `engine/topologies/tilt/generators/vite/generators.star` from "service" to "resource"
78
+
79
+ ## 7. Engine Topologies Tilt - Generators Docker
80
+
81
+ - [x] 7.1 Rename `domain` references in `engine/topologies/tilt/generators/docker/frontend.star` to `stack` (file doesn't exist - moved to platform/docker/)
82
+ - [x] 7.2 Update docstrings in `engine/topologies/tilt/generators/docker/frontend.star` from "service" to "resource" (file doesn't exist)
83
+ - [x] 7.3 Rename `domain` references in `engine/topologies/tilt/generators/docker/backend.star` to `stack` (file doesn't exist - moved to platform/docker/)
84
+ - [x] 7.4 Update docstrings in `engine/topologies/tilt/generators/docker/backend.star` from "service" to "resource" (file doesn't exist)
85
+ - [x] 7.5 Rename `domain` references in `engine/topologies/tilt/generators/docker/compose.star` to `stack` (file doesn't exist - moved to platform/docker/compose/)
86
+ - [x] 7.6 Update docstrings in `engine/topologies/tilt/generators/docker/compose.star` from "service" to "resource" (file doesn't exist)
87
+ - [x] 7.7 Rename `domain` references in `engine/topologies/tilt/generators/validators.star` to `stack`
88
+ - [x] 7.8 Update docstrings in `engine/topologies/tilt/generators/validators.star` from "service" to "resource"
89
+ - [x] 7.9 Rename `domain` references in `engine/topologies/tilt/generators/database_provisioner.star` to `stack`
90
+ - [x] 7.10 Update docstrings in `engine/topologies/tilt/generators/database_provisioner.star` from "service" to "resource"
91
+
92
+ ## 8. Engine Topologies Tilt - More Generators
93
+
94
+ - [x] 8.1 Rename `domain` references in `engine/topologies/tilt/generators/nginx_conf.star` to `stack`
95
+ - [x] 8.2 Update docstrings in `engine/topologies/tilt/generators/nginx_conf.star` from "service" to "resource"
96
+ - [x] 8.3 Rename `domain` references in `engine/topologies/tilt/generators/npmrc.star` to `stack`
97
+ - [x] 8.4 Update docstrings in `engine/topologies/tilt/generators/npmrc.star` from "service" to "resource"
98
+ - [x] 8.5 Rename `domain` references in `engine/topologies/tilt/generators/env.star` to `stack` (file doesn't exist)
99
+ - [x] 8.6 Update docstrings in `engine/topologies/tilt/generators/env.star` from "service" to "resource" (file doesn't exist)
100
+ - [x] 8.7 Rename `domain` references in `engine/topologies/tilt/generators/tsconfig.star` to `stack`
101
+ - [x] 8.8 Update docstrings in `engine/topologies/tilt/generators/tsconfig.star` from "service" to "resource"
102
+ - [x] 8.9 Rename `domain` references in `engine/topologies/tilt/generators/dependency_manifest.star` to `stack`
103
+ - [x] 8.10 Update docstrings in `engine/topologies/tilt/generators/dependency_manifest.star` from "service" to "resource"
104
+
105
+ ## 9. Engine Topologies Tilt - Infisical Generators
106
+
107
+ - [x] 9.1 Rename `domain` references in `engine/topologies/tilt/generators/infisical/path_manager.star` to `stack`
108
+ - [x] 9.2 Update docstrings in `engine/topologies/tilt/generators/infisical/path_manager.star` from "service" to "resource"
109
+ - [x] 9.3 Rename `domain` references in `engine/topologies/tilt/generators/infisical/sync.star` to `stack` (file doesn't exist)
110
+ - [x] 9.4 Update docstrings in `engine/topologies/tilt/generators/infisical/sync.star` from "service" to "resource" (file doesn't exist)
111
+ - [x] 9.5 Rename `domain` references in `engine/topologies/tilt/generators/infisical/star_to_json.star` to `stack` (file doesn't exist)
112
+ - [x] 9.6 Update docstrings in `engine/topologies/tilt/generators/infisical/star_to_json.star` from "service" to "resource" (file doesn't exist)
113
+ - [x] 9.7 Rename `domain` references in `engine/topologies/tilt/generators/agents_md.star` to `stack`
114
+ - [x] 9.8 Update docstrings in `engine/topologies/tilt/generators/agents_md.star` from "service" to "resource"
115
+ - [x] 9.9 Rename `domain` references in `engine/topologies/tilt/generators/c4_diagram.star` to `stack`
116
+ - [x] 9.10 Update docstrings in `engine/topologies/tilt/generators/c4_diagram.star` from "service" to "resource"
117
+
118
+ ## 10. Engine Topologies Tilt - Resource Orchestration
119
+
120
+ - [x] 10.1 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star` to `stack`
121
+ - [x] 10.2 Update variable names in `engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star` from `svc` to `resource`
122
+ - [x] 10.3 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star` to `stack`
123
+ - [x] 10.4 Update variable names in `engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star` from `svc` to `resource`
124
+ - [x] 10.5 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star` to `stack`
125
+ - [x] 10.6 Update variable names in `engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star` from `svc` to `resource`
126
+ - [x] 10.7 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/generators/frontend.star` to `stack`
127
+ - [x] 10.8 Update variable names in `engine/topologies/tilt/resources/orchestrator/generators/frontend.star` from `svc` to `resource`
128
+ - [x] 10.9 Rename `domain` references in `engine/topologies/tilt/resources/orchestrator/generators/env.star` to `stack`
129
+ - [x] 10.10 Update variable names in `engine/topologies/tilt/resources/orchestrator/generators/env.star` from `svc` to `resource`
130
+
131
+ ## 11. Engine Topologies Tilt - Resource Definition Files
132
+
133
+ - [x] 11.1 Rename `domain` references in `engine/topologies/tilt/resources/libs_resource_definition.star` to `stack`
134
+ - [x] 11.2 Update variable names in `engine/topologies/tilt/resources/libs_resource_definition.star` from `svc` to `resource`
135
+ - [x] 11.3 Rename `domain` references in `engine/topologies/tilt/resources/libs_tsconfig.star` to `stack`
136
+ - [x] 11.4 Update variable names in `engine/topologies/tilt/resources/libs_tsconfig.star` from `svc` to `resource`
137
+ - [x] 11.5 Rename `domain` references in `engine/topologies/tilt/resources/libs_setup.star` to `stack`
138
+ - [x] 11.6 Update variable names in `engine/topologies/tilt/resources/libs_setup.star` from `svc` to `resource`
139
+ - [x] 11.7 Rename `domain` references in `engine/topologies/tilt/resources/infra-loader.star` to `stack`
140
+ - [x] 11.8 Update variable names in `engine/topologies/tilt/resources/infra-loader.star` from `svc` to `resource`
141
+ - [x] 11.9 Rename `domain` references in `engine/topologies/tilt/resources/frontend_resource.star` to `stack` (file doesn't exist)
142
+ - [x] 11.10 Update variable names in `engine/topologies/tilt/resources/frontend_resource.star` from `svc` to `resource` (file doesn't exist)
143
+
144
+ ## 12. Engine Topologies Tilt - More Resource Files
145
+
146
+ - [x] 12.1 Rename `domain` references in `engine/topologies/tilt/resources/backend_resource.star` to `stack` (file doesn't exist)
147
+ - [x] 12.2 Update variable names in `engine/topologies/tilt/resources/backend_resource.star` from `svc` to `resource` (file doesn't exist)
148
+ - [x] 12.3 Rename `domain` references in `engine/topologies/tilt/resources/database_resource.star` to `stack` (file doesn't exist)
149
+ - [x] 12.4 Update variable names in `engine/topologies/tilt/resources/database_resource.star` from `svc` to `resource` (file doesn't exist)
150
+ - [x] 12.5 Rename `domain` references in `engine/topologies/tilt/resources/infra_resource.star` to `stack` (file doesn't exist)
151
+ - [x] 12.6 Update variable names in `engine/topologies/tilt/resources/infra_resource.star` from `svc` to `resource` (file doesn't exist)
152
+ - [x] 12.7 Rename `domain` references in `engine/topologies/tilt/resources/proxy_resource.star` to `stack` (file doesn't exist)
153
+ - [x] 12.8 Update variable names in `engine/topologies/tilt/resources/proxy_resource.star` from `svc` to `resource` (file doesn't exist)
154
+ - [x] 12.9 Rename `domain` references in `engine/topologies/tilt/resources/migration_resource.star` to `stack` (file doesn't exist)
155
+ - [x] 12.10 Update variable names in `engine/topologies/tilt/resources/migration_resource.star` from `svc` to `resource` (file doesn't exist)
156
+
157
+ ## 13. Engine Topologies Platform - Docker and Compose
158
+
159
+ - [x] 13.1 Rename `domain` references in `engine/topologies/platform/docker/compose/compose.star` to `stack`
160
+ - [x] 13.2 Update docstrings in `engine/topologies/platform/docker/compose/compose.star` from "service" to "resource"
161
+ - [x] 13.3 Rename `domain` references in `engine/topologies/platform/docker/layers.star` to `stack` (file doesn't exist)
162
+ - [x] 13.4 Update docstrings in `engine/topologies/platform/docker/layers.star` from "service" to "resource" (file doesn't exist)
163
+ - [x] 13.5 Rename `domain` references in `engine/topologies/platform/docker/networking/traefik.star` to `stack`
164
+ - [x] 13.6 Update docstrings in `engine/topologies/platform/docker/networking/traefik.star` from "service" to "resource"
165
+ - [x] 13.7 Rename `domain` references in `engine/topologies/platform/docker/networking/traefik_helpers.star` to `stack`
166
+ - [x] 13.8 Update docstrings in `engine/topologies/platform/docker/networking/traefik_helpers.star` from "service" to "resource"
167
+ - [x] 13.9 Rename `domain` references in `engine/topologies/platform/docker/constants.star` to `stack`
168
+ - [x] 13.10 Update docstrings in `engine/topologies/platform/docker/constants.star` from "service" to "resource"
169
+
170
+ ## 14. Engine Topologies Platform - Security and Proxy
171
+
172
+ - [x] 14.1 Rename `domain` references in `engine/topologies/platform/security/secrets.star` to `stack`
173
+ - [x] 14.2 Update docstrings in `engine/topologies/platform/security/secrets.star` from "service" to "resource"
174
+ - [x] 14.3 Rename `domain` references in `engine/topologies/platform/security/infisical.star` to `stack` (file doesn't exist)
175
+ - [x] 14.4 Update docstrings in `engine/topologies/platform/security/infisical.star` from "service" to "resource" (file doesn't exist)
176
+ - [x] 14.5 Rename `domain` references in `engine/topologies/platform/proxy/caddy.star` to `stack` (file doesn't exist)
177
+ - [x] 14.6 Update docstrings in `engine/topologies/platform/proxy/caddy.star` from "service" to "resource" (file doesn't exist)
178
+ - [x] 14.7 Rename `domain` references in `engine/topologies/platform/proxy/nginx.star` to `stack` (file doesn't exist)
179
+ - [x] 14.8 Update docstrings in `engine/topologies/platform/proxy/nginx.star` from "service" to "resource" (file doesn't exist)
180
+ - [x] 14.9 Rename `domain` references in `engine/topologies/platform/state/persistence.star` to `stack` (file doesn't exist)
181
+ - [x] 14.10 Update docstrings in `engine/topologies/platform/state/persistence.star` from "service" to "resource" (file doesn't exist)
182
+
183
+ ## 15. Autogenerated Files and Final Verification
184
+
185
+ - [x] 15.1 Update autogenerated file naming in `discovery/registry.star` from `domains` to `stacks`
186
+ - [x] 15.2 Update autogenerated file naming in `engine/topologies/tilt/discovery/registry.star` from `domains` to `stacks`
187
+ - [x] 15.3 Update all `load()` statements that reference domain-named files to stack-named files
188
+ - [x] 15.4 Run test suite to verify all terminology changes work correctly
189
+ - [x] 15.5 Grep for remaining `manifest.get('domain')` patterns - should be 0
190
+ - [x] 15.6 Grep for remaining `domain_configs` references - should be 0
191
+ - [x] 15.7 Grep for remaining `svc` variables that should be `resource` - verified minimal
192
+ - [x] 15.8 Grep for remaining `service` docstrings that should say `resource` - verified 0
193
+ - [x] 15.9 Verify `app_resources` cache key is intentionally kept (per design decision)
194
+ - [x] 15.10 Final review: All domain→stack and service→resource migrations complete
@@ -0,0 +1,2 @@
1
+ schema: spec-driven
2
+ created: 2026-04-28
@@ -0,0 +1,111 @@
1
+ ## Context
2
+
3
+ The codebase currently has 174 .star files with 774 function definitions across multiple directories. Through analysis, we've identified several parameter inconsistency issues:
4
+
5
+ 1. **Write Function Parameter Naming**: Functions use `write_fn`, `write_file_fn`, and `write_file_if_changed_fn` interchangeably for the same concept
6
+ 2. **Parameter Ordering**: Some functions have `write_fn` at the end, others have it earlier in the parameter list
7
+ 3. **Missing Documentation**: Most functions lack parameter documentation explaining expected types and purposes
8
+ 4. **Naming Divergence**: The primary `/discovery/` system and deprecated `/engine/topologies/tilt/discovery/` system use different naming conventions (e.g., `register_new_service` vs `register_new_resource`)
9
+ 5. **Optional Parameter Patterns**: Inconsistent use of `write_fn=None` pattern for dependency injection
10
+
11
+ These inconsistencies make the codebase harder to navigate, maintain, and extend. This refactoring aims to establish clear conventions without changing any functional behavior.
12
+
13
+ ## Goals / Non-Goals
14
+
15
+ **Goals:**
16
+ - Standardize all write function parameter names to `write_fn`
17
+ - Ensure optional parameters consistently appear at the end of parameter lists
18
+ - Add parameter documentation (docstring-style comments) to all functions
19
+ - Align function names between duplicate discovery systems where they diverge
20
+ - Maintain 100% backward compatibility in behavior (no functional changes)
21
+ - Enable parallel execution of all 100 subtasks
22
+
23
+ **Non-Goals:**
24
+ - Changing function logic or behavior
25
+ - Adding new features or capabilities
26
+ - Removing deprecated files (they are kept for backward compatibility)
27
+ - Renaming functions unless they have divergent names between duplicate systems
28
+ - Adding runtime type checking (only documentation)
29
+
30
+ ## Decisions
31
+
32
+ ### Decision 1: Standardize on `write_fn` Parameter Name
33
+ **Rationale**: The name `write_fn` is concise, clear, and already used in the majority of functions. It's shorter than `write_file_if_changed_fn` without losing clarity.
34
+
35
+ **Alternatives considered**:
36
+ - `write_file_fn` - More explicit but redundant since context makes it clear
37
+ - `write_file_if_changed_fn` - Too verbose for frequent use
38
+ - Keep all variations - Rejected as it perpetuates inconsistency
39
+
40
+ ### Decision 2: Optional Parameters at End of Signature
41
+ **Rationale**: Following Python/Starlark conventions, parameters with default values should come after required parameters. This makes function calls more readable and prevents positional argument errors.
42
+
43
+ **Pattern to enforce**:
44
+ ```starlark
45
+ def function_name(required1, required2, optional1=None, optional2=True):
46
+ ```
47
+
48
+ ### Decision 3: Docstring Format for Starlark
49
+ **Rationale**: Starlark doesn't have a formal docstring standard like Python. We'll use a consistent comment-based format:
50
+
51
+ ```starlark
52
+ def function_name(param1, param2, write_fn=None):
53
+ """
54
+ Brief description of function.
55
+
56
+ Args:
57
+ param1: Description of param1 (type)
58
+ param2: Description of param2 (type)
59
+ write_fn: Optional write function for dependency injection (callable)
60
+
61
+ Returns:
62
+ Description of return value (type)
63
+ """
64
+ ```
65
+
66
+ ### Decision 4: Parallel Task Execution
67
+ **Rationale**: Since these are independent refactoring tasks across different files, they can be executed in parallel. Each task focuses on a specific file or small group of related files.
68
+
69
+ **Task organization**:
70
+ - Group 1-40: `/discovery/` directory (primary system)
71
+ - Group 41-80: `/engine/topologies/tilt/` directory (deprecated system)
72
+ - Group 81-95: `/engine/topologies/platform/` directory
73
+ - Group 96-100: `/specs/` directory and cross-cutting concerns
74
+
75
+ ## Risks / Trade-offs
76
+
77
+ **Risk**: Breaking changes for external callers using keyword arguments
78
+ - **Mitigation**: This is a **BREAKING** change as noted in proposal. External code will need to update parameter names. We'll document all changed parameter names in the tasks.
79
+
80
+ **Risk**: Inadvertent functional changes during refactoring
81
+ - **Mitigation**: Each task includes verification step to confirm no behavior changes. All existing tests must pass.
82
+
83
+ **Risk**: Merge conflicts with ongoing development
84
+ - **Mitigation**: Short timeline for completion. Tasks are small and focused, minimizing conflict window.
85
+
86
+ **Risk**: Deprecated system modifications may seem wasteful
87
+ - **Mitigation**: Keeping deprecated system consistent reduces cognitive load when comparing or potentially migrating between systems.
88
+
89
+ ## Migration Plan
90
+
91
+ 1. **Phase 1: Analysis** (completed)
92
+ - Catalog all 174 .star files and 774 functions
93
+ - Identify specific parameter inconsistencies
94
+
95
+ 2. **Phase 2: Implementation** (current)
96
+ - Execute 100 parallel subtasks to fix parameter issues
97
+ - Each task updates specific files with standardized patterns
98
+
99
+ 3. **Phase 3: Verification**
100
+ - Run full test suite
101
+ - Verify no functional changes
102
+ - Check for any missed inconsistencies
103
+
104
+ 4. **Phase 4: Documentation**
105
+ - Update any developer documentation with new conventions
106
+ - Add parameter naming conventions to coding standards
107
+
108
+ ## Open Questions
109
+
110
+ - Should we add a linting rule to prevent future parameter naming inconsistencies?
111
+ - Should we create a style guide document for Starlark conventions?
@@ -0,0 +1,33 @@
1
+ ## Why
2
+
3
+ The codebase contains 174 .star files with 774 function definitions that have inconsistent parameter naming, ordering, and documentation. This inconsistency creates cognitive overhead for developers, makes the code harder to maintain, and increases the risk of bugs when functions are called with incorrect arguments. Standardizing function parameters across all star files will improve code readability, reduce maintenance burden, and establish clear conventions for future development.
4
+
5
+ ## What Changes
6
+
7
+ - **Standardize write function parameter naming**: Unify all variations (`write_fn`, `write_file_fn`, `write_file_if_changed_fn`) to a consistent `write_fn` parameter name across all generator functions
8
+ - **Fix parameter ordering**: Ensure optional parameters with defaults (especially `write_fn=None`) consistently appear at the end of parameter lists
9
+ - **Add missing parameter documentation**: Add docstring-style comments for all function parameters explaining their purpose and types
10
+ - **Normalize function naming between duplicate systems**: Align function names between `/discovery/` (primary) and `/engine/topologies/tilt/discovery/` (deprecated) where they diverge (e.g., `register_new_service` vs `register_new_resource`)
11
+ - **Standardize optional parameter patterns**: Ensure all file-writing functions use consistent `write_fn=None` pattern for dependency injection
12
+ - **Add type hints where missing**: Document expected parameter types (string, dict, bool, function, etc.) in function signatures
13
+
14
+ ## Capabilities
15
+
16
+ ### New Capabilities
17
+ - `parameter-naming-consistency`: Standardize all write function parameter names to `write_fn`
18
+ - `parameter-ordering-standard`: Ensure consistent parameter ordering with optional params last
19
+ - `parameter-documentation`: Add docstring documentation for all function parameters
20
+ - `function-naming-alignment`: Align function names between duplicate discovery systems
21
+ - `optional-parameter-patterns`: Standardize `write_fn=None` pattern across all generators
22
+
23
+ ### Modified Capabilities
24
+ <!-- No existing spec requirements are changing - this is purely refactoring for consistency -->
25
+
26
+ ## Impact
27
+
28
+ - **Affected Files**: 174 .star files across `/discovery/`, `/engine/topologies/tilt/`, `/engine/topologies/platform/`, and `/specs/` directories
29
+ - **Function Count**: 774 function definitions will be reviewed and standardized
30
+ - **Dependencies**: No external dependencies affected - this is internal refactoring
31
+ - **Breaking Changes**: **BREAKING** - Any external code calling these functions with keyword arguments will need to update parameter names
32
+ - **Risk Level**: Medium - extensive changes across many files, but purely refactoring with no behavioral changes
33
+ - **Testing Required**: All existing tests must pass; no functional changes expected
@@ -0,0 +1,12 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Function naming alignment between duplicate systems
4
+ Functions in the primary `/discovery/` system and deprecated `/engine/topologies/tilt/discovery/` system SHALL use consistent naming where they serve identical purposes.
5
+
6
+ #### Scenario: Function names match between systems
7
+ - **WHEN** two functions in duplicate systems perform the same operation
8
+ - **THEN** they SHALL have identical names
9
+
10
+ #### Scenario: Divergent names are aligned
11
+ - **WHEN** a function in the primary system is named `register_new_service` and the equivalent in the deprecated system is named `register_new_resource`
12
+ - **THEN** the deprecated system function SHALL be renamed to match the primary system naming convention
@@ -0,0 +1,18 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Consistent optional write function parameter pattern
4
+ All file-writing functions SHALL use the `write_fn=None` pattern for optional write function injection.
5
+
6
+ #### Scenario: Write function parameter has None default
7
+ - **WHEN** a function accepts an optional write function parameter
8
+ - **THEN** the parameter SHALL have a default value of `None`
9
+
10
+ #### Scenario: Write function parameter is optional
11
+ - **WHEN** a generator function does not require an external write function
12
+ - **THEN** the `write_fn` parameter SHALL be optional with `None` default, allowing the function to use an internal default implementation
13
+
14
+ #### Scenario: Write function conditional usage
15
+ - **WHEN** a function receives `write_fn=None`
16
+ - **THEN** the function SHALL use its internal default write implementation
17
+ - **AND** **WHEN** a callable is passed to `write_fn`
18
+ - **THEN** the function SHALL use the provided callable instead
@@ -0,0 +1,16 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Function parameter documentation
4
+ All function parameters SHALL be documented with their purpose and expected type.
5
+
6
+ #### Scenario: Parameter has documentation comment
7
+ - **WHEN** a function defines parameters
8
+ - **THEN** each parameter SHALL have a docstring-style comment describing its purpose and type
9
+
10
+ #### Scenario: Parameter documentation includes type information
11
+ - **WHEN** parameter documentation is added
12
+ - **THEN** the documentation SHALL indicate the expected type (string, dict, bool, callable, etc.)
13
+
14
+ #### Scenario: Optional parameter documentation notes default
15
+ - **WHEN** a parameter has a default value
16
+ - **THEN** the documentation SHALL indicate the default value and that the parameter is optional
@@ -0,0 +1,12 @@
1
+ ## ADDED Requirements
2
+
3
+ ### Requirement: Write function parameter naming consistency
4
+ All functions that accept a file-writing callback parameter SHALL use the parameter name `write_fn` exclusively.
5
+
6
+ #### Scenario: Function uses write_fn parameter
7
+ - **WHEN** a generator function accepts a file-writing callback
8
+ - **THEN** the parameter SHALL be named `write_fn` and NOT `write_file_fn`, `write_file_if_changed_fn`, or other variations
9
+
10
+ #### Scenario: Inconsistent parameter names are corrected
11
+ - **WHEN** a function uses `write_file_fn` or `write_file_if_changed_fn` as parameter names
12
+ - **THEN** the parameter name SHALL be changed to `write_fn`