hammerkit 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/README.md +7 -7
  2. package/build.schema.json +59 -15
  3. package/dist/cache/backends/local-cache-backend.js +58 -1
  4. package/dist/cache/backends/registry/registry-client.js +264 -0
  5. package/dist/cache/backends/registry/registry-credentials.js +81 -0
  6. package/dist/cache/backends/registry/registry-reference.js +36 -0
  7. package/dist/cache/backends/registry-cache-backend.js +145 -0
  8. package/dist/cache/backends/s3-cache-backend.js +99 -46
  9. package/dist/cache/cache-backend-registry.js +2 -0
  10. package/dist/cache/cache-inventory.js +84 -0
  11. package/dist/cache/cache-sync.js +77 -0
  12. package/dist/cache/explain.js +214 -0
  13. package/dist/cache/last-resolved.js +48 -0
  14. package/dist/cache/read-only.js +15 -0
  15. package/dist/cache/retention.js +61 -0
  16. package/dist/cli.js +43 -0
  17. package/dist/docker/using-container.js +17 -1
  18. package/dist/executer/archive-task-entry.js +21 -0
  19. package/dist/executer/await-completed-dependencies.js +32 -14
  20. package/dist/executer/cache-metadata.js +9 -2
  21. package/dist/executer/docker-service.js +2 -1
  22. package/dist/executer/docker-task.js +18 -3
  23. package/dist/executer/dry-run.js +73 -0
  24. package/dist/executer/event-cache.js +6 -5
  25. package/dist/executer/execute-command.js +21 -3
  26. package/dist/executer/execute-docker.js +18 -2
  27. package/dist/executer/execute-work-service.js +10 -1
  28. package/dist/executer/execute-work-task.js +111 -26
  29. package/dist/executer/execute-work-tree.js +26 -1
  30. package/dist/executer/execution-steps.js +3 -8
  31. package/dist/executer/get-container-binds.js +13 -1
  32. package/dist/executer/get-scheduler-execute-result.js +4 -1
  33. package/dist/executer/lazy-resolver.js +15 -3
  34. package/dist/executer/reset-work-tree.js +2 -0
  35. package/dist/executer/run-summary.js +102 -0
  36. package/dist/executer/scheduler/enqueue-next.js +15 -60
  37. package/dist/executer/scheduler/state-key.js +78 -0
  38. package/dist/index.js +14 -1
  39. package/dist/kubernetes/apply.js +6 -7
  40. package/dist/kubernetes/await-running-state.js +100 -60
  41. package/dist/kubernetes/ensure-http-route.js +7 -10
  42. package/dist/kubernetes/ensure-namespace.js +9 -10
  43. package/dist/kubernetes/ensure-persistent-data.js +6 -5
  44. package/dist/kubernetes/get-service-ip.js +2 -2
  45. package/dist/kubernetes/kubernetes-instance.js +0 -4
  46. package/dist/kubernetes/remove-persistent-data.js +16 -6
  47. package/dist/kubernetes/resolve-pod-name.js +7 -7
  48. package/dist/log.js +16 -6
  49. package/dist/logging/live-logger.js +2 -1
  50. package/dist/optimizer/calculate-checksum.js +8 -2
  51. package/dist/optimizer/get-work-cache-stats.js +66 -16
  52. package/dist/optimizer/work-task-cache-description.js +34 -5
  53. package/dist/planner/project-root.js +26 -0
  54. package/dist/planner/utils/append-work-environment.js +1 -1
  55. package/dist/planner/utils/append-work-service.js +2 -1
  56. package/dist/planner/utils/append-work-task.js +7 -1
  57. package/dist/planner/utils/get-outputs-to-reset.js +20 -0
  58. package/dist/planner/utils/parse-work-generate.js +2 -2
  59. package/dist/planner/utils/parse-work-source.js +35 -30
  60. package/dist/planner/utils/portable-path.js +30 -0
  61. package/dist/planner/work-cache-id.js +2 -2
  62. package/dist/planner/work-graph-serializer.js +103 -0
  63. package/dist/planner/work-instance-id.js +15 -0
  64. package/dist/planner/work-runtime-docker.js +58 -15
  65. package/dist/planner/work-runtime-kubernetes.js +95 -45
  66. package/dist/planner/work-runtime-local.js +31 -8
  67. package/dist/planner/work-service-id.js +16 -4
  68. package/dist/program.js +235 -1
  69. package/dist/schema/build-file-base-task-schema.js +4 -0
  70. package/dist/schema/build-file-environment-schema-http-route.js +15 -0
  71. package/dist/schema/build-file-environment-schema.js +8 -2
  72. package/dist/schema/build-file-schema.js +1 -1
  73. package/dist/schema/cache-schema.js +21 -2
  74. package/dist/schema/duration-schema.js +18 -0
  75. package/dist/schema/envs-schema.js +1 -1
  76. package/dist/schema/reference-parser.js +3 -0
  77. package/dist/schema/size-schema.js +18 -0
  78. package/dist/schema/work-scope-parser.js +15 -2
  79. package/dist/utils/units.js +87 -0
  80. package/package.json +20 -9
  81. package/.agents/FEEDBACK.md +0 -74
  82. package/.agents/skills/before-commit/SKILL.md +0 -101
  83. package/.agents/skills/do-the-work/SKILL.md +0 -64
  84. package/.agents/skills/fix-ci/SKILL.md +0 -98
  85. package/.agents/skills/speckit-git-commit/SKILL.md +0 -53
  86. package/.agents/skills/speckit-git-feature/SKILL.md +0 -72
  87. package/.agents/skills/speckit-git-initialize/SKILL.md +0 -54
  88. package/.agents/skills/speckit-git-remote/SKILL.md +0 -50
  89. package/.agents/skills/speckit-git-validate/SKILL.md +0 -54
  90. package/.devcontainer/Dockerfile +0 -5
  91. package/.devcontainer/devcontainer.json +0 -40
  92. package/.gitbook.yaml +0 -5
  93. package/.specify/extensions/.registry +0 -37
  94. package/.specify/extensions/git/README.md +0 -100
  95. package/.specify/extensions/git/commands/speckit.git.commit.md +0 -48
  96. package/.specify/extensions/git/commands/speckit.git.feature.md +0 -67
  97. package/.specify/extensions/git/commands/speckit.git.initialize.md +0 -49
  98. package/.specify/extensions/git/commands/speckit.git.remote.md +0 -45
  99. package/.specify/extensions/git/commands/speckit.git.validate.md +0 -49
  100. package/.specify/extensions/git/config-template.yml +0 -62
  101. package/.specify/extensions/git/extension.yml +0 -140
  102. package/.specify/extensions/git/git-config.yml +0 -62
  103. package/.specify/extensions.yml +0 -149
  104. package/.specify/feature.json +0 -3
  105. package/.specify/init-options.json +0 -10
  106. package/.specify/integration.json +0 -15
  107. package/.specify/integrations/claude.manifest.json +0 -16
  108. package/.specify/integrations/speckit.manifest.json +0 -17
  109. package/.specify/memory/constitution.md +0 -162
  110. package/.specify/templates/checklist-template.md +0 -40
  111. package/.specify/templates/constitution-template.md +0 -50
  112. package/.specify/templates/plan-template.md +0 -113
  113. package/.specify/templates/spec-template.md +0 -131
  114. package/.specify/templates/tasks-template.md +0 -252
  115. package/.specify/workflows/speckit/workflow.yml +0 -77
  116. package/.specify/workflows/workflow-registry.json +0 -13
  117. package/AGENTS.md +0 -94
  118. package/Dockerfile +0 -32
  119. package/FOLLOWUPS.md +0 -34
  120. package/SUMMARY.md +0 -68
  121. package/VALUES.md +0 -53
  122. package/dist/cache/auto-pull.spec.js +0 -123
  123. package/dist/cache/backends/local-cache-backend.spec.js +0 -72
  124. package/dist/cache/backends/s3-cache-backend.spec.js +0 -118
  125. package/dist/cache/cache-backend-registry.spec.js +0 -22
  126. package/dist/cache/resolve-cache.spec.js +0 -52
  127. package/dist/cli.spec.js +0 -23
  128. package/dist/console/get-logger.spec.js +0 -23
  129. package/dist/docker/get-default-platform.spec.js +0 -29
  130. package/dist/docker/longest-common-prefix.spec.js +0 -26
  131. package/dist/docker/package.spec.js +0 -145
  132. package/dist/docker/remove-container.spec.js +0 -32
  133. package/dist/docker/using-container.spec.js +0 -90
  134. package/dist/environment/merge-environment-variables.spec.js +0 -24
  135. package/dist/environment/replace-env-variables.spec.js +0 -47
  136. package/dist/executer/abort.spec.js +0 -18
  137. package/dist/executer/environment-mock.spec.js +0 -22
  138. package/dist/executer/execute.spec.js +0 -51
  139. package/dist/executer/get-service-containers.spec.js +0 -59
  140. package/dist/executer/get-service-env-hints.spec.js +0 -65
  141. package/dist/executer/label-values.spec.js +0 -61
  142. package/dist/executer/lazy-resolver.spec.js +0 -20
  143. package/dist/executer/process-manager.spec.js +0 -54
  144. package/dist/executer/scheduler/enqueue-next.spec.js +0 -136
  145. package/dist/executer/state-resolver.spec.js +0 -37
  146. package/dist/executer/state.spec.js +0 -66
  147. package/dist/executer/states.spec.js +0 -14
  148. package/dist/file/get-file-context.spec.js +0 -178
  149. package/dist/file/move-files.spec.js +0 -48
  150. package/dist/kubernetes/ensure-http-route.spec.js +0 -70
  151. package/dist/kubernetes/ensure-ingress.js +0 -54
  152. package/dist/kubernetes/ensure-namespace.spec.js +0 -39
  153. package/dist/kubernetes/resolve-pod-name.spec.js +0 -81
  154. package/dist/log.spec.js +0 -131
  155. package/dist/logging/grouped-logger.spec.js +0 -84
  156. package/dist/logging/interactive-logger.spec.js +0 -57
  157. package/dist/logging/live-logger.spec.js +0 -37
  158. package/dist/logging/loggers.spec.js +0 -154
  159. package/dist/optimizer/calculate-checksum.spec.js +0 -34
  160. package/dist/optimizer/get-cache-directory.spec.js +0 -59
  161. package/dist/optimizer/get-work-cache-stats.spec.js +0 -79
  162. package/dist/optimizer/work-task-cache-description.spec.js +0 -45
  163. package/dist/parser/default-build-file.spec.js +0 -48
  164. package/dist/parser/parse-label-arguments.spec.js +0 -27
  165. package/dist/parser/read-build-file.spec.js +0 -89
  166. package/dist/parser/read-env-file.spec.js +0 -42
  167. package/dist/planner/utils/append-work-service.spec.js +0 -71
  168. package/dist/planner/utils/get-container-user.spec.js +0 -30
  169. package/dist/planner/utils/get-default-kube-config.spec.js +0 -11
  170. package/dist/planner/utils/normalize-path.spec.js +0 -24
  171. package/dist/planner/utils/parse-work-command.spec.js +0 -21
  172. package/dist/planner/utils/parse-work-generate.spec.js +0 -45
  173. package/dist/planner/utils/parse-work-mount.spec.js +0 -62
  174. package/dist/planner/utils/parse-work-mounts.spec.js +0 -19
  175. package/dist/planner/utils/parse-work-port.spec.js +0 -24
  176. package/dist/planner/utils/parse-work-ports.spec.js +0 -24
  177. package/dist/planner/utils/parse-work-source.spec.js +0 -58
  178. package/dist/planner/utils/parse-work-volume.spec.js +0 -18
  179. package/dist/planner/utils/plan-work-tasks.spec.js +0 -30
  180. package/dist/planner/utils/plan-work-volume.spec.js +0 -33
  181. package/dist/planner/utils/split-name.spec.js +0 -16
  182. package/dist/planner/utils/template-value.spec.js +0 -14
  183. package/dist/planner/validate.spec.js +0 -251
  184. package/dist/planner/work-cache-id.spec.js +0 -173
  185. package/dist/planner/work-runtime-local.spec.js +0 -193
  186. package/dist/program-commands.spec.js +0 -84
  187. package/dist/program.spec.js +0 -43
  188. package/dist/schema/build-file-environment-schema-ingress.js +0 -14
  189. package/dist/schema/build-file-schema.spec.js +0 -61
  190. package/dist/schema/doc-build-files.spec.js +0 -223
  191. package/dist/schema/parse-error.spec.js +0 -18
  192. package/dist/schema/reference-parser.spec.js +0 -83
  193. package/dist/schema/schema-parser.spec.js +0 -80
  194. package/dist/schema/type-guards.spec.js +0 -23
  195. package/dist/schema/work-scope-parser.spec.js +0 -66
  196. package/dist/service/update-service-status.spec.js +0 -27
  197. package/dist/testing/ensure-local-registry.js +0 -134
  198. package/dist/testing/example-test-suite.js +0 -63
  199. package/dist/testing/expect.js +0 -82
  200. package/dist/testing/get-test-suite.js +0 -9
  201. package/dist/testing/http-get.js +0 -21
  202. package/dist/testing/integration/cache.spec.js +0 -49
  203. package/dist/testing/integration/cancellation.spec.js +0 -45
  204. package/dist/testing/integration/clean.spec.js +0 -43
  205. package/dist/testing/integration/cmd.spec.js +0 -15
  206. package/dist/testing/integration/concurrency.spec.js +0 -19
  207. package/dist/testing/integration/docker-package-registry.spec.js +0 -44
  208. package/dist/testing/integration/docker-service-crash.spec.js +0 -36
  209. package/dist/testing/integration/docker.spec.js +0 -18
  210. package/dist/testing/integration/env.spec.js +0 -48
  211. package/dist/testing/integration/environment.spec.js +0 -97
  212. package/dist/testing/integration/error.spec.js +0 -19
  213. package/dist/testing/integration/export.spec.js +0 -22
  214. package/dist/testing/integration/extend.spec.js +0 -29
  215. package/dist/testing/integration/glob.spec.js +0 -40
  216. package/dist/testing/integration/include.spec.js +0 -31
  217. package/dist/testing/integration/invalid.spec.js +0 -17
  218. package/dist/testing/integration/invalid_loop.spec.js +0 -56
  219. package/dist/testing/integration/k8s-state-cache.spec.js +0 -41
  220. package/dist/testing/integration/kubernetes-service.spec.js +0 -148
  221. package/dist/testing/integration/kubernetes.spec.js +0 -99
  222. package/dist/testing/integration/labels.spec.js +0 -42
  223. package/dist/testing/integration/local.spec.js +0 -14
  224. package/dist/testing/integration/monorepo.spec.js +0 -15
  225. package/dist/testing/integration/multi-line.spec.js +0 -17
  226. package/dist/testing/integration/reference.spec.js +0 -21
  227. package/dist/testing/integration/services.spec.js +0 -38
  228. package/dist/testing/integration/store.spec.js +0 -52
  229. package/dist/testing/integration/unknown.spec.js +0 -28
  230. package/dist/testing/integration/validate.spec.js +0 -160
  231. package/dist/testing/integration/watch-dependency.spec.js +0 -33
  232. package/dist/testing/integration/watch.spec.js +0 -45
  233. package/dist/testing/requires-kubernetes.js +0 -18
  234. package/dist/testing/requires-linux-containers.js +0 -18
  235. package/dist/testing/requires-windows-containers.js +0 -18
  236. package/dist/testing/test-case.js +0 -75
  237. package/dist/testing/test-streams.js +0 -28
  238. package/dist/testing/test-suite-setup.js +0 -3
  239. package/dist/testing/test-suite.js +0 -3
  240. package/dist/testing/testing-timeout.js +0 -32
  241. package/dist/utils/abort-event.spec.js +0 -46
  242. package/dist/utils/buffer-context.spec.js +0 -38
  243. package/dist/utils/ci.spec.js +0 -53
  244. package/dist/utils/debouncer.spec.js +0 -58
  245. package/dist/utils/emitter.spec.js +0 -34
  246. package/dist/utils/empty-writable.spec.js +0 -18
  247. package/dist/utils/environment-config.spec.js +0 -26
  248. package/dist/utils/fail-never.spec.js +0 -9
  249. package/dist/utils/sleep.spec.js +0 -22
  250. package/dist/version.spec.js +0 -12
  251. package/specs/build-file/caches/spec.md +0 -114
  252. package/specs/build-file/environment-variables/spec.md +0 -82
  253. package/specs/build-file/includes/spec.md +0 -60
  254. package/specs/build-file/references/spec.md +0 -56
  255. package/specs/build-file/spec.md +0 -62
  256. package/specs/cli/clean/spec.md +0 -85
  257. package/specs/cli/down/spec.md +0 -85
  258. package/specs/cli/execute/spec.md +0 -101
  259. package/specs/cli/init/spec.md +0 -64
  260. package/specs/cli/ls/spec.md +0 -66
  261. package/specs/cli/package/spec.md +0 -110
  262. package/specs/cli/spec.md +0 -73
  263. package/specs/cli/store-restore/spec.md +0 -74
  264. package/specs/cli/up/spec.md +0 -80
  265. package/specs/cli/validate/spec.md +0 -70
  266. package/specs/labels/spec.md +0 -91
  267. package/specs/service/container/spec.md +0 -120
  268. package/specs/service/kubernetes/spec.md +0 -97
  269. package/specs/service/spec.md +0 -105
  270. package/specs/task/caching/spec.md +0 -107
  271. package/specs/task/container/spec.md +0 -118
  272. package/specs/task/dependencies/spec.md +0 -70
  273. package/specs/task/extending/spec.md +0 -74
  274. package/specs/task/kubernetes/spec.md +0 -125
  275. package/specs/task/needs/spec.md +0 -59
  276. package/specs/task/spec.md +0 -87
  277. package/specs/task/watching/spec.md +0 -69
@@ -1,140 +0,0 @@
1
- schema_version: "1.0"
2
-
3
- extension:
4
- id: git
5
- name: "Git Branching Workflow"
6
- version: "1.0.0"
7
- description: "Feature branch creation, numbering (sequential/timestamp), validation, and Git remote detection"
8
- author: spec-kit-core
9
- repository: https://github.com/github/spec-kit
10
- license: MIT
11
-
12
- requires:
13
- speckit_version: ">=0.2.0"
14
- tools:
15
- - name: git
16
- required: false
17
-
18
- provides:
19
- commands:
20
- - name: speckit.git.feature
21
- file: commands/speckit.git.feature.md
22
- description: "Create a feature branch with sequential or timestamp numbering"
23
- - name: speckit.git.validate
24
- file: commands/speckit.git.validate.md
25
- description: "Validate current branch follows feature branch naming conventions"
26
- - name: speckit.git.remote
27
- file: commands/speckit.git.remote.md
28
- description: "Detect Git remote URL for GitHub integration"
29
- - name: speckit.git.initialize
30
- file: commands/speckit.git.initialize.md
31
- description: "Initialize a Git repository with an initial commit"
32
- - name: speckit.git.commit
33
- file: commands/speckit.git.commit.md
34
- description: "Auto-commit changes after a Spec Kit command completes"
35
-
36
- config:
37
- - name: "git-config.yml"
38
- template: "config-template.yml"
39
- description: "Git branching configuration"
40
- required: false
41
-
42
- hooks:
43
- before_constitution:
44
- command: speckit.git.initialize
45
- optional: false
46
- description: "Initialize Git repository before constitution setup"
47
- before_specify:
48
- command: speckit.git.feature
49
- optional: false
50
- description: "Create feature branch before specification"
51
- before_clarify:
52
- command: speckit.git.commit
53
- optional: true
54
- prompt: "Commit outstanding changes before clarification?"
55
- description: "Auto-commit before spec clarification"
56
- before_plan:
57
- command: speckit.git.commit
58
- optional: true
59
- prompt: "Commit outstanding changes before planning?"
60
- description: "Auto-commit before implementation planning"
61
- before_tasks:
62
- command: speckit.git.commit
63
- optional: true
64
- prompt: "Commit outstanding changes before task generation?"
65
- description: "Auto-commit before task generation"
66
- before_implement:
67
- command: speckit.git.commit
68
- optional: true
69
- prompt: "Commit outstanding changes before implementation?"
70
- description: "Auto-commit before implementation"
71
- before_checklist:
72
- command: speckit.git.commit
73
- optional: true
74
- prompt: "Commit outstanding changes before checklist?"
75
- description: "Auto-commit before checklist generation"
76
- before_analyze:
77
- command: speckit.git.commit
78
- optional: true
79
- prompt: "Commit outstanding changes before analysis?"
80
- description: "Auto-commit before analysis"
81
- before_taskstoissues:
82
- command: speckit.git.commit
83
- optional: true
84
- prompt: "Commit outstanding changes before issue sync?"
85
- description: "Auto-commit before tasks-to-issues conversion"
86
- after_constitution:
87
- command: speckit.git.commit
88
- optional: true
89
- prompt: "Commit constitution changes?"
90
- description: "Auto-commit after constitution update"
91
- after_specify:
92
- command: speckit.git.commit
93
- optional: true
94
- prompt: "Commit specification changes?"
95
- description: "Auto-commit after specification"
96
- after_clarify:
97
- command: speckit.git.commit
98
- optional: true
99
- prompt: "Commit clarification changes?"
100
- description: "Auto-commit after spec clarification"
101
- after_plan:
102
- command: speckit.git.commit
103
- optional: true
104
- prompt: "Commit plan changes?"
105
- description: "Auto-commit after implementation planning"
106
- after_tasks:
107
- command: speckit.git.commit
108
- optional: true
109
- prompt: "Commit task changes?"
110
- description: "Auto-commit after task generation"
111
- after_implement:
112
- command: speckit.git.commit
113
- optional: true
114
- prompt: "Commit implementation changes?"
115
- description: "Auto-commit after implementation"
116
- after_checklist:
117
- command: speckit.git.commit
118
- optional: true
119
- prompt: "Commit checklist changes?"
120
- description: "Auto-commit after checklist generation"
121
- after_analyze:
122
- command: speckit.git.commit
123
- optional: true
124
- prompt: "Commit analysis results?"
125
- description: "Auto-commit after analysis"
126
- after_taskstoissues:
127
- command: speckit.git.commit
128
- optional: true
129
- prompt: "Commit after syncing issues?"
130
- description: "Auto-commit after tasks-to-issues conversion"
131
-
132
- tags:
133
- - "git"
134
- - "branching"
135
- - "workflow"
136
-
137
- config:
138
- defaults:
139
- branch_numbering: sequential
140
- init_commit_message: "[Spec Kit] Initial commit"
@@ -1,62 +0,0 @@
1
- # Git Branching Workflow Extension Configuration
2
- # Copied to .specify/extensions/git/git-config.yml on install
3
-
4
- # Branch numbering strategy: "sequential" (001, 002, ...) or "timestamp" (YYYYMMDD-HHMMSS)
5
- branch_numbering: sequential
6
-
7
- # Commit message used by `git commit` during repository initialization
8
- init_commit_message: "[Spec Kit] Initial commit"
9
-
10
- # Auto-commit before/after core commands.
11
- # Set "default" to enable for all commands, then override per-command.
12
- # Each key can be true/false. Message is customizable per-command.
13
- auto_commit:
14
- default: false
15
- before_clarify:
16
- enabled: false
17
- message: "[Spec Kit] Save progress before clarification"
18
- before_plan:
19
- enabled: false
20
- message: "[Spec Kit] Save progress before planning"
21
- before_tasks:
22
- enabled: false
23
- message: "[Spec Kit] Save progress before task generation"
24
- before_implement:
25
- enabled: false
26
- message: "[Spec Kit] Save progress before implementation"
27
- before_checklist:
28
- enabled: false
29
- message: "[Spec Kit] Save progress before checklist"
30
- before_analyze:
31
- enabled: false
32
- message: "[Spec Kit] Save progress before analysis"
33
- before_taskstoissues:
34
- enabled: false
35
- message: "[Spec Kit] Save progress before issue sync"
36
- after_constitution:
37
- enabled: false
38
- message: "[Spec Kit] Add project constitution"
39
- after_specify:
40
- enabled: false
41
- message: "[Spec Kit] Add specification"
42
- after_clarify:
43
- enabled: false
44
- message: "[Spec Kit] Clarify specification"
45
- after_plan:
46
- enabled: false
47
- message: "[Spec Kit] Add implementation plan"
48
- after_tasks:
49
- enabled: false
50
- message: "[Spec Kit] Add tasks"
51
- after_implement:
52
- enabled: false
53
- message: "[Spec Kit] Implementation progress"
54
- after_checklist:
55
- enabled: false
56
- message: "[Spec Kit] Add checklist"
57
- after_analyze:
58
- enabled: false
59
- message: "[Spec Kit] Add analysis report"
60
- after_taskstoissues:
61
- enabled: false
62
- message: "[Spec Kit] Sync tasks to issues"
@@ -1,149 +0,0 @@
1
- installed:
2
- - git
3
- settings:
4
- auto_execute_hooks: true
5
- hooks:
6
- before_constitution:
7
- - extension: git
8
- command: speckit.git.initialize
9
- enabled: true
10
- optional: false
11
- prompt: Execute speckit.git.initialize?
12
- description: Initialize Git repository before constitution setup
13
- condition: null
14
- before_specify:
15
- - extension: git
16
- command: speckit.git.feature
17
- enabled: true
18
- optional: false
19
- prompt: Execute speckit.git.feature?
20
- description: Create feature branch before specification
21
- condition: null
22
- before_clarify:
23
- - extension: git
24
- command: speckit.git.commit
25
- enabled: true
26
- optional: true
27
- prompt: Commit outstanding changes before clarification?
28
- description: Auto-commit before spec clarification
29
- condition: null
30
- before_plan:
31
- - extension: git
32
- command: speckit.git.commit
33
- enabled: true
34
- optional: true
35
- prompt: Commit outstanding changes before planning?
36
- description: Auto-commit before implementation planning
37
- condition: null
38
- before_tasks:
39
- - extension: git
40
- command: speckit.git.commit
41
- enabled: true
42
- optional: true
43
- prompt: Commit outstanding changes before task generation?
44
- description: Auto-commit before task generation
45
- condition: null
46
- before_implement:
47
- - extension: git
48
- command: speckit.git.commit
49
- enabled: true
50
- optional: true
51
- prompt: Commit outstanding changes before implementation?
52
- description: Auto-commit before implementation
53
- condition: null
54
- before_checklist:
55
- - extension: git
56
- command: speckit.git.commit
57
- enabled: true
58
- optional: true
59
- prompt: Commit outstanding changes before checklist?
60
- description: Auto-commit before checklist generation
61
- condition: null
62
- before_analyze:
63
- - extension: git
64
- command: speckit.git.commit
65
- enabled: true
66
- optional: true
67
- prompt: Commit outstanding changes before analysis?
68
- description: Auto-commit before analysis
69
- condition: null
70
- before_taskstoissues:
71
- - extension: git
72
- command: speckit.git.commit
73
- enabled: true
74
- optional: true
75
- prompt: Commit outstanding changes before issue sync?
76
- description: Auto-commit before tasks-to-issues conversion
77
- condition: null
78
- after_constitution:
79
- - extension: git
80
- command: speckit.git.commit
81
- enabled: true
82
- optional: true
83
- prompt: Commit constitution changes?
84
- description: Auto-commit after constitution update
85
- condition: null
86
- after_specify:
87
- - extension: git
88
- command: speckit.git.commit
89
- enabled: true
90
- optional: true
91
- prompt: Commit specification changes?
92
- description: Auto-commit after specification
93
- condition: null
94
- after_clarify:
95
- - extension: git
96
- command: speckit.git.commit
97
- enabled: true
98
- optional: true
99
- prompt: Commit clarification changes?
100
- description: Auto-commit after spec clarification
101
- condition: null
102
- after_plan:
103
- - extension: git
104
- command: speckit.git.commit
105
- enabled: true
106
- optional: true
107
- prompt: Commit plan changes?
108
- description: Auto-commit after implementation planning
109
- condition: null
110
- after_tasks:
111
- - extension: git
112
- command: speckit.git.commit
113
- enabled: true
114
- optional: true
115
- prompt: Commit task changes?
116
- description: Auto-commit after task generation
117
- condition: null
118
- after_implement:
119
- - extension: git
120
- command: speckit.git.commit
121
- enabled: true
122
- optional: true
123
- prompt: Commit implementation changes?
124
- description: Auto-commit after implementation
125
- condition: null
126
- after_checklist:
127
- - extension: git
128
- command: speckit.git.commit
129
- enabled: true
130
- optional: true
131
- prompt: Commit checklist changes?
132
- description: Auto-commit after checklist generation
133
- condition: null
134
- after_analyze:
135
- - extension: git
136
- command: speckit.git.commit
137
- enabled: true
138
- optional: true
139
- prompt: Commit analysis results?
140
- description: Auto-commit after analysis
141
- condition: null
142
- after_taskstoissues:
143
- - extension: git
144
- command: speckit.git.commit
145
- enabled: true
146
- optional: true
147
- prompt: Commit after syncing issues?
148
- description: Auto-commit after tasks-to-issues conversion
149
- condition: null
@@ -1,3 +0,0 @@
1
- {
2
- "feature_directory": "specs"
3
- }
@@ -1,10 +0,0 @@
1
- {
2
- "ai": "claude",
3
- "ai_skills": true,
4
- "branch_numbering": "sequential",
5
- "context_file": "CLAUDE.md",
6
- "here": false,
7
- "integration": "claude",
8
- "script": "sh",
9
- "speckit_version": "0.8.18"
10
- }
@@ -1,15 +0,0 @@
1
- {
2
- "version": "0.8.18",
3
- "integration_state_schema": 1,
4
- "installed_integrations": [
5
- "claude"
6
- ],
7
- "integration_settings": {
8
- "claude": {
9
- "script": "sh",
10
- "invoke_separator": "-"
11
- }
12
- },
13
- "integration": "claude",
14
- "default_integration": "claude"
15
- }
@@ -1,16 +0,0 @@
1
- {
2
- "integration": "claude",
3
- "version": "0.8.18",
4
- "installed_at": "2026-05-30T06:27:46.809754+00:00",
5
- "files": {
6
- ".claude/skills/speckit-analyze/SKILL.md": "2eef0fbff6cad15c9d4714d8986192387811c971a82a1135ab0404f3db0c5e90",
7
- ".claude/skills/speckit-checklist/SKILL.md": "26419fc118dcd9c4e1e977460696a04b7757b8fb0a2d1ff9c64732669deb7977",
8
- ".claude/skills/speckit-clarify/SKILL.md": "35795a017d6d2ed3ace35a333b22e450788e539e24ed5c756d815aa34cd5b6f5",
9
- ".claude/skills/speckit-constitution/SKILL.md": "c1a044aba243ca6aff627fb5e4404feb6f1108d4f7dd174631bee3ae477d6c15",
10
- ".claude/skills/speckit-implement/SKILL.md": "042a0415ce60a5b66adf039da431d9a98cb4897ff330635e0bab0becbbaf3cd2",
11
- ".claude/skills/speckit-plan/SKILL.md": "bad923f08ffd0e61e37da038626bff374386541fb4c69858a5473d6dc302ee17",
12
- ".claude/skills/speckit-specify/SKILL.md": "4cb1cb21f598288859e84cbf29052c1c41f213a2ca42b79b3a6d6293dde99d02",
13
- ".claude/skills/speckit-tasks/SKILL.md": "ca048fadbe29d761c05b497605789656d112a3a9db5f774efcf84503e77a684e",
14
- ".claude/skills/speckit-taskstoissues/SKILL.md": "99bf5ffd90dcb57b63007c7f659a5160a18ce6feb82889895808e2d277abe83b"
15
- }
16
- }
@@ -1,17 +0,0 @@
1
- {
2
- "integration": "speckit",
3
- "version": "0.8.18",
4
- "installed_at": "2026-05-30T06:27:46.820090+00:00",
5
- "files": {
6
- ".specify/scripts/bash/common.sh": "0ac0b422fecf41a172a21dc163be1558a87e8a8b885cb48eb9307c99427c4102",
7
- ".specify/scripts/bash/setup-plan.sh": "b23cca3d769a217ab812a6059adb549622471f6893af234cf98ca2019ac4e1a1",
8
- ".specify/scripts/bash/setup-tasks.sh": "7aeee15192a5ab3ba9ff3c3ae450d9994043bf0493c1eabc840da72a9742fc87",
9
- ".specify/scripts/bash/check-prerequisites.sh": "f4541a00257f035aa55a9fede6d964e51e6851c3dc2f81d0a6f367db18944765",
10
- ".specify/scripts/bash/create-new-feature.sh": "bcf4964ca0c6c78717bb42d9e66b8c7e5ee82779cd96afc5aa7b08b75abe5790",
11
- ".specify/templates/constitution-template.md": "ce7549540fa45543cca797a150201d868e64495fdff39dc38246fb17bd4024b3",
12
- ".specify/templates/checklist-template.md": "c37695297e5d3153d64f82c21223509940b13932046c7961c42d1d669516130c",
13
- ".specify/templates/tasks-template.md": "fc29a233f6f5a27ca31f1aa46b596af6500c627441c6e62b2bc4a1d721525842",
14
- ".specify/templates/spec-template.md": "3945437fc35cd30a5b2bf7beea680337c3516826d3efa5a6b92c4a7eca1ba28e",
15
- ".specify/templates/plan-template.md": "cc7f7979cf8d8836ec26492785affd80791d3422a2b745062ec695be8c985ef7"
16
- }
17
- }
@@ -1,162 +0,0 @@
1
- <!--
2
- SYNC IMPACT REPORT
3
- Version change: (uninitialized template) → 1.0.0
4
- Rationale: Initial ratification. Constitution materialized from the canonical
5
- VALUES.md; no prior versioned principles existed.
6
-
7
- Modified principles: none (all newly defined)
8
- Added principles:
9
- - I. Local-First
10
- - II. Platform-Agnostic
11
- - III. One Config, Many Tools
12
- - IV. Caching Reduces Waste
13
- - V. Stable Contracts (NON-NEGOTIABLE)
14
- - VI. Simplicity & Composability
15
- - VII. Pragmatic Typing
16
- - VIII. Tests Carry Their Weight (NON-NEGOTIABLE)
17
- Added sections:
18
- - Decision Heuristics
19
- - Development Workflow & Quality Gates
20
- - Governance
21
- Removed sections: none
22
-
23
- Templates reviewed for alignment:
24
- - .specify/templates/plan-template.md ............ ✅ Constitution Check gate is
25
- generic ("Gates determined based on constitution file"); Complexity Tracking
26
- already supports Principle VI / "Add nothing speculative". No edit required.
27
- - .specify/templates/spec-template.md ............ ✅ No principle conflict. No edit.
28
- - .specify/templates/tasks-template.md ........... ✅ Tests-optional wording does
29
- not contradict Principle VIII (which governs the product, not generated
30
- task lists). No edit required.
31
- - .specify/templates/checklist-template.md ....... ✅ No principle conflict. No edit.
32
-
33
- Follow-up TODOs: none. RATIFICATION_DATE set to 2026-05-30 (initial adoption).
34
- -->
35
-
36
- # Hammerkit Constitution
37
-
38
- ## Core Principles
39
-
40
- ### I. Local-First
41
-
42
- Every hammerkit build MUST run on a developer's laptop, not only in CI. A feature that
43
- functions exclusively inside a CI environment is incomplete. Local execution is the
44
- primary target; CI is one consumer among many.
45
-
46
- **Rationale**: A build tool that only runs on CI is broken.
47
-
48
- ### II. Platform-Agnostic
49
-
50
- Hammerkit MUST NOT couple its core to any single CI/CD provider (GitHub Actions, GitLab
51
- CI, or otherwise). The same build MUST run anywhere a container runs. Provider-specific
52
- behavior is prohibited in core and, where genuinely needed, MUST sit behind a clear
53
- boundary.
54
-
55
- **Rationale**: Portability across environments is a core promise, not a configuration
56
- option.
57
-
58
- ### III. One Config, Many Tools
59
-
60
- A single hammerkit build file MUST be able to replace many tool-specific configs. Changes
61
- SHOULD reduce config sprawl, not add to it; any new configuration surface MUST justify its
62
- existence against this goal.
63
-
64
- **Rationale**: Reducing config sprawl is a feature, not a side effect.
65
-
66
- ### IV. Caching Reduces Waste
67
-
68
- Caching MUST be evaluated for compute and cost savings, not only wall-clock speed.
69
- Distributed and smart caching is a first-class concern. Cache-key correctness is
70
- non-negotiable: a false cache hit (serving stale output as fresh) is a defect, never an
71
- acceptable trade for speed.
72
-
73
- **Rationale**: Smart caching saves compute — that matters for cost and footprint, not only
74
- build time.
75
-
76
- ### V. Stable Contracts (NON-NEGOTIABLE)
77
-
78
- The CLI surface and the build-file schema are public contracts. Backward-incompatible
79
- changes to either MUST be deliberate and versioned — never an incidental side effect of a
80
- refactor. A breaking change requires a MAJOR version bump and migration notes.
81
-
82
- **Rationale**: Users depend on these contracts; silent breakage erodes trust in the tool.
83
-
84
- ### VI. Simplicity & Composability
85
-
86
- Prefer small, composable pieces over clever abstractions. If two features can be one, make
87
- them one. Abstractions, features, and config knobs MUST NOT land without a concrete present
88
- need (YAGNI).
89
-
90
- **Rationale**: Composable simplicity keeps the system maintainable and keeps the surface
91
- area honest.
92
-
93
- ### VII. Pragmatic Typing
94
-
95
- TypeScript strict mode MUST stay enabled. `any` is permitted where it pulls its weight;
96
- type purity is a means, not the goal. Type-level cleverness MUST NOT be bought at the cost
97
- of readability or delivery velocity.
98
-
99
- **Rationale**: Types exist to serve correctness and developer experience, not the reverse.
100
-
101
- ### VIII. Tests Carry Their Weight (NON-NEGOTIABLE)
102
-
103
- Quality and coverage are non-negotiable. New behavior ships with tests that would fail
104
- without it. Slow integration tests are accepted because they buy real confidence. Tests
105
- MUST NOT be skipped, muted, excluded, `xfail`-ed, or weakened to make a check pass; close
106
- gaps, do not exclude them.
107
-
108
- **Rationale**: Real confidence beats a green checkmark earned by lowering the bar.
109
-
110
- ## Decision Heuristics
111
-
112
- When a judgment call is not settled by a principle above, apply these heuristics (verbatim
113
- from `VALUES.md`):
114
-
115
- - **Fix root causes, not symptoms** — A red check is fixed by repairing what's broken, not
116
- by removing, muting, or weakening the check (no skipped tests, no relaxed lint/prettier
117
- config to dodge an error).
118
- - **Real integrations over mocks** — Where feasible, exercise real Docker / real registries
119
- / real Kubernetes. Mocks are a last resort, not a default.
120
- - **Add nothing speculative** — Features, abstractions, and config knobs land when a
121
- concrete need exists, not for hypothetical futures.
122
-
123
- ## Development Workflow & Quality Gates
124
-
125
- Every change MUST pass the same gates CI enforces before it merges. Locally these are:
126
-
127
- - **Formatting** — `prettier --check 'src/**'` (strict: no semicolons, single quotes, 120
128
- columns, 2-space indent, `es5` trailing commas). `npm run format` to fix.
129
- - **Linting** — `eslint . --ext .ts`. `no-console` is an error; output MUST route through
130
- the `Environment` (`stdout`/`stderr`/`console`/`status`), never `console.*` in `src/`.
131
- - **Typecheck / build** — `tsc -b tsconfig.json` (this also typechecks spec files).
132
- - **Unit suite** — `CI=true npm test`. The `CI=true` flag matches CI; container/k8s suites
133
- gate themselves on their env flags and no-op when unset.
134
- - **Integration suite** — `jest --config jest.integration.config.ts` exercises real
135
- Docker / registries / Kubernetes per Principle VIII and the Decision Heuristics.
136
-
137
- Coverage MUST NOT regress. Code review MUST verify compliance with these principles, and
138
- any added complexity MUST be justified (see the plan template's Complexity Tracking).
139
-
140
- ## Governance
141
-
142
- This constitution supersedes ad-hoc practice. When guidance conflicts, the constitution
143
- wins; deviations require explicit justification in the pull request.
144
-
145
- **Amendments** MUST be proposed via pull request, recorded in the Sync Impact Report at the
146
- top of this file, and version-bumped per the policy below. Material principle changes SHOULD
147
- note migration impact for dependent templates and docs.
148
-
149
- **Versioning policy** (for this constitution):
150
-
151
- - **MAJOR** — Backward-incompatible governance or principle removal/redefinition.
152
- - **MINOR** — A new principle or section, or materially expanded guidance.
153
- - **PATCH** — Clarifications, wording, and non-semantic refinements.
154
-
155
- **Compliance**: PRs and reviews MUST verify alignment with these principles. Unjustified
156
- violations block merge.
157
-
158
- **Runtime guidance**: `VALUES.md` is the canonical statement of intent and the source of
159
- these principles. Day-to-day agent operating rules live in `AGENTS.md`; durable corrections
160
- live in `.agents/FEEDBACK.md`. Read those for operational detail; this document governs.
161
-
162
- **Version**: 1.0.0 | **Ratified**: 2026-05-30 | **Last Amended**: 2026-05-30
@@ -1,40 +0,0 @@
1
- # [CHECKLIST TYPE] Checklist: [FEATURE NAME]
2
-
3
- **Purpose**: [Brief description of what this checklist covers]
4
- **Created**: [DATE]
5
- **Feature**: [Link to spec.md or relevant documentation]
6
-
7
- **Note**: This checklist is generated by the `/speckit-checklist` command based on feature context and requirements.
8
-
9
- <!--
10
- ============================================================================
11
- IMPORTANT: The checklist items below are SAMPLE ITEMS for illustration only.
12
-
13
- The /speckit-checklist command MUST replace these with actual items based on:
14
- - User's specific checklist request
15
- - Feature requirements from spec.md
16
- - Technical context from plan.md
17
- - Implementation details from tasks.md
18
-
19
- DO NOT keep these sample items in the generated checklist file.
20
- ============================================================================
21
- -->
22
-
23
- ## [Category 1]
24
-
25
- - [ ] CHK001 First checklist item with clear action
26
- - [ ] CHK002 Second checklist item
27
- - [ ] CHK003 Third checklist item
28
-
29
- ## [Category 2]
30
-
31
- - [ ] CHK004 Another category item
32
- - [ ] CHK005 Item with specific criteria
33
- - [ ] CHK006 Final item in this category
34
-
35
- ## Notes
36
-
37
- - Check items off as completed: `[x]`
38
- - Add comments or findings inline
39
- - Link to relevant resources or documentation
40
- - Items are numbered sequentially for easy reference
@@ -1,50 +0,0 @@
1
- # [PROJECT_NAME] Constitution
2
- <!-- Example: Spec Constitution, TaskFlow Constitution, etc. -->
3
-
4
- ## Core Principles
5
-
6
- ### [PRINCIPLE_1_NAME]
7
- <!-- Example: I. Library-First -->
8
- [PRINCIPLE_1_DESCRIPTION]
9
- <!-- Example: Every feature starts as a standalone library; Libraries must be self-contained, independently testable, documented; Clear purpose required - no organizational-only libraries -->
10
-
11
- ### [PRINCIPLE_2_NAME]
12
- <!-- Example: II. CLI Interface -->
13
- [PRINCIPLE_2_DESCRIPTION]
14
- <!-- Example: Every library exposes functionality via CLI; Text in/out protocol: stdin/args → stdout, errors → stderr; Support JSON + human-readable formats -->
15
-
16
- ### [PRINCIPLE_3_NAME]
17
- <!-- Example: III. Test-First (NON-NEGOTIABLE) -->
18
- [PRINCIPLE_3_DESCRIPTION]
19
- <!-- Example: TDD mandatory: Tests written → User approved → Tests fail → Then implement; Red-Green-Refactor cycle strictly enforced -->
20
-
21
- ### [PRINCIPLE_4_NAME]
22
- <!-- Example: IV. Integration Testing -->
23
- [PRINCIPLE_4_DESCRIPTION]
24
- <!-- Example: Focus areas requiring integration tests: New library contract tests, Contract changes, Inter-service communication, Shared schemas -->
25
-
26
- ### [PRINCIPLE_5_NAME]
27
- <!-- Example: V. Observability, VI. Versioning & Breaking Changes, VII. Simplicity -->
28
- [PRINCIPLE_5_DESCRIPTION]
29
- <!-- Example: Text I/O ensures debuggability; Structured logging required; Or: MAJOR.MINOR.BUILD format; Or: Start simple, YAGNI principles -->
30
-
31
- ## [SECTION_2_NAME]
32
- <!-- Example: Additional Constraints, Security Requirements, Performance Standards, etc. -->
33
-
34
- [SECTION_2_CONTENT]
35
- <!-- Example: Technology stack requirements, compliance standards, deployment policies, etc. -->
36
-
37
- ## [SECTION_3_NAME]
38
- <!-- Example: Development Workflow, Review Process, Quality Gates, etc. -->
39
-
40
- [SECTION_3_CONTENT]
41
- <!-- Example: Code review requirements, testing gates, deployment approval process, etc. -->
42
-
43
- ## Governance
44
- <!-- Example: Constitution supersedes all other practices; Amendments require documentation, approval, migration plan -->
45
-
46
- [GOVERNANCE_RULES]
47
- <!-- Example: All PRs/reviews must verify compliance; Complexity must be justified; Use [GUIDANCE_FILE] for runtime development guidance -->
48
-
49
- **Version**: [CONSTITUTION_VERSION] | **Ratified**: [RATIFICATION_DATE] | **Last Amended**: [LAST_AMENDED_DATE]
50
- <!-- Example: Version: 2.1.1 | Ratified: 2025-06-13 | Last Amended: 2025-07-16 -->