@temporal-architect/claude-plugin 0.9.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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/package.json +37 -0
  4. package/skills/MANIFEST.json +373 -0
  5. package/skills/MANIFEST.md +121 -0
  6. package/skills/temporal-architect/SKILL.md +99 -0
  7. package/skills/temporal-architect/reference/decomposition.md +78 -0
  8. package/skills/temporal-architect-author-go/README.md +16 -0
  9. package/skills/temporal-architect-author-go/SKILL.md +191 -0
  10. package/skills/temporal-architect-author-go/SUBAGENT_ADOPTION.md +161 -0
  11. package/skills/temporal-architect-author-go/reference/activity-call.md +73 -0
  12. package/skills/temporal-architect-author-go/reference/activity-def.md +54 -0
  13. package/skills/temporal-architect-author-go/reference/assignment.md +36 -0
  14. package/skills/temporal-architect-author-go/reference/await-all.md +104 -0
  15. package/skills/temporal-architect-author-go/reference/await-one.md +193 -0
  16. package/skills/temporal-architect-author-go/reference/await-timer.md +35 -0
  17. package/skills/temporal-architect-author-go/reference/close.md +71 -0
  18. package/skills/temporal-architect-author-go/reference/composite-patterns.md +176 -0
  19. package/skills/temporal-architect-author-go/reference/condition.md +56 -0
  20. package/skills/temporal-architect-author-go/reference/control-flow.md +151 -0
  21. package/skills/temporal-architect-author-go/reference/dependency-resolution.md +29 -0
  22. package/skills/temporal-architect-author-go/reference/detach.md +52 -0
  23. package/skills/temporal-architect-author-go/reference/heartbeat.md +84 -0
  24. package/skills/temporal-architect-author-go/reference/nexus-service-def.md +73 -0
  25. package/skills/temporal-architect-author-go/reference/nexus.md +35 -0
  26. package/skills/temporal-architect-author-go/reference/options.md +138 -0
  27. package/skills/temporal-architect-author-go/reference/promise.md +73 -0
  28. package/skills/temporal-architect-author-go/reference/proto-driven.md +197 -0
  29. package/skills/temporal-architect-author-go/reference/query-handler.md +34 -0
  30. package/skills/temporal-architect-author-go/reference/signal-handler.md +73 -0
  31. package/skills/temporal-architect-author-go/reference/three-layer-testing.md +173 -0
  32. package/skills/temporal-architect-author-go/reference/types.md +72 -0
  33. package/skills/temporal-architect-author-go/reference/update-handler.md +64 -0
  34. package/skills/temporal-architect-author-go/reference/worker.md +215 -0
  35. package/skills/temporal-architect-author-go/reference/workflow-call.md +37 -0
  36. package/skills/temporal-architect-author-go/reference/workflow-def.md +45 -0
  37. package/skills/temporal-architect-author-infra/README.md +16 -0
  38. package/skills/temporal-architect-author-infra/SKILL.md +132 -0
  39. package/skills/temporal-architect-author-infra/reference/tcld.md +112 -0
  40. package/skills/temporal-architect-author-infra/reference/terraform.md +125 -0
  41. package/skills/temporal-architect-design/README.md +16 -0
  42. package/skills/temporal-architect-design/SKILL.md +224 -0
  43. package/skills/temporal-architect-design/reference/LANGUAGE.md +5 -0
  44. package/skills/temporal-architect-design/reference/anti-patterns.md +332 -0
  45. package/skills/temporal-architect-design/reference/common-errors.md +88 -0
  46. package/skills/temporal-architect-design/reference/core-principles.md +52 -0
  47. package/skills/temporal-architect-design/reference/design-checklist.md +59 -0
  48. package/skills/temporal-architect-design/reference/namespaces.md +84 -0
  49. package/skills/temporal-architect-design/reference/notation-examples.md +304 -0
  50. package/skills/temporal-architect-design/reference/notation-reference.md +70 -0
  51. package/skills/temporal-architect-design/reference/primitives-reference.md +65 -0
  52. package/skills/temporal-architect-design/reference/project-discovery-subagent.md +80 -0
  53. package/skills/temporal-architect-design/reference/reverse-engineering.md +53 -0
  54. package/skills/temporal-architect-design/reference/twf-conventions.md +43 -0
  55. package/skills/temporal-architect-design/reference/workflow-boundaries.md +43 -0
  56. package/skills/temporal-architect-design/topics/activities-advanced.md +358 -0
  57. package/skills/temporal-architect-design/topics/activities-advanced.twf +107 -0
  58. package/skills/temporal-architect-design/topics/child-workflows.md +347 -0
  59. package/skills/temporal-architect-design/topics/child-workflows.twf +171 -0
  60. package/skills/temporal-architect-design/topics/long-running.md +230 -0
  61. package/skills/temporal-architect-design/topics/long-running.twf +100 -0
  62. package/skills/temporal-architect-design/topics/nexus.md +248 -0
  63. package/skills/temporal-architect-design/topics/nexus.twf +148 -0
  64. package/skills/temporal-architect-design/topics/patterns.md +469 -0
  65. package/skills/temporal-architect-design/topics/patterns.twf +346 -0
  66. package/skills/temporal-architect-design/topics/promises-conditions.md +179 -0
  67. package/skills/temporal-architect-design/topics/promises-conditions.twf +213 -0
  68. package/skills/temporal-architect-design/topics/signals-queries-updates.md +319 -0
  69. package/skills/temporal-architect-design/topics/signals-queries-updates.twf +234 -0
  70. package/skills/temporal-architect-design/topics/task-queues.md +205 -0
  71. package/skills/temporal-architect-design/topics/task-queues.twf +184 -0
  72. package/skills/temporal-architect-design/topics/testing.md +437 -0
  73. package/skills/temporal-architect-design/topics/testing.twf +177 -0
  74. package/skills/temporal-architect-design/topics/timers-scheduling.md +131 -0
  75. package/skills/temporal-architect-design/topics/timers-scheduling.twf +129 -0
  76. package/skills/temporal-architect-design/topics/versioning.md +434 -0
  77. package/skills/temporal-architect-design/topics/versioning.twf +174 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jacob Barzee
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # @temporal-architect/claude-plugin
2
+
3
+ The skills payload for the [temporal-architect Claude Code plugin](https://github.com/jmbarzee/temporal-architect).
4
+
5
+ You almost certainly don't want to install this directly. It's the npm-side
6
+ delivery vehicle that Claude Code's marketplace mechanism pulls from when a
7
+ user installs the `temporal-architect` plugin.
8
+
9
+ ## Install (the user-facing way)
10
+
11
+ ```text
12
+ /plugin marketplace add jmbarzee/temporal-architect
13
+ /plugin install temporal-architect@temporal-architect
14
+ ```
15
+
16
+ Bundles:
17
+
18
+ - **Skills** — `temporal-architect-design`, `temporal-architect-author-go`, and
19
+ `temporal-architect-author-infra`, available to Claude as auto-discoverable agent skills.
20
+ - **MCP server** — the `twf` MCP server (via `npx -y @temporal-architect/twf mcp`),
21
+ exposing TWF parser tools, embedded spec resources, and skill prompts.
22
+
23
+ The plugin definition itself lives in
24
+ [`.claude-plugin/marketplace.json`](https://github.com/jmbarzee/temporal-architect/blob/main/.claude-plugin/marketplace.json)
25
+ at the repo root and uses `strict: false` to declare components inline. This
26
+ npm package contributes only the `skills/` payload.
27
+
28
+ ## Source of truth
29
+
30
+ The skills shipped here are a build-time copy of the canonical
31
+ [`skills/`](https://github.com/jmbarzee/temporal-architect/tree/main/skills) at
32
+ the repo root. Edit there, then `make build-claude-plugin` regenerates the
33
+ copy. The copy is gitignored — it only exists in this directory after a
34
+ local build or during npm publish.
35
+
36
+ ## License
37
+
38
+ MIT — see the bundled `LICENSE` (copied from the repo root at pack time).
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@temporal-architect/claude-plugin",
3
+ "version": "0.9.0",
4
+ "description": "Claude Code plugin payload for temporal-architect — the `.twf` architecture toolchain for designing, validating, and implementing entire Temporal systems (design, Go-authoring, and infra-provisioning skills, plus the twf MCP server).",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/jmbarzee/temporal-architect",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/jmbarzee/temporal-architect-dist",
10
+ "directory": "packages/npm/claude-plugin"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/jmbarzee/temporal-architect/issues"
14
+ },
15
+ "keywords": [
16
+ "claude-code",
17
+ "claude-plugin",
18
+ "temporal",
19
+ "workflow",
20
+ "twf",
21
+ "architecture",
22
+ "system design",
23
+ "mcp"
24
+ ],
25
+ "files": [
26
+ "skills",
27
+ "README.md",
28
+ "LICENSE"
29
+ ],
30
+ "scripts": {
31
+ "prepack": "cp ../../../LICENSE LICENSE",
32
+ "postpack": "rm -f LICENSE"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ }
37
+ }
@@ -0,0 +1,373 @@
1
+ {
2
+ "version": "v0.9.0",
3
+ "root": "skills",
4
+ "file_count": 73,
5
+ "total_bytes": 396474,
6
+ "files": [
7
+ {
8
+ "path": "MANIFEST.md",
9
+ "size": 4254,
10
+ "sha256": "3afdfadca9821c48bb3710f3e3ff62e0bb925a2856cdefaf95103b31ecea8186"
11
+ },
12
+ {
13
+ "path": "temporal-architect-author-go/README.md",
14
+ "size": 999,
15
+ "sha256": "2e46ba11aafc3bc031712698326d421c4c06281bc050db90775c5dd857f24236"
16
+ },
17
+ {
18
+ "path": "temporal-architect-author-go/SKILL.md",
19
+ "size": 12045,
20
+ "sha256": "126e414e59d99af8dd2bb6fec56ce725707dcb7d1ab311f8914b7875392624e3"
21
+ },
22
+ {
23
+ "path": "temporal-architect-author-go/SUBAGENT_ADOPTION.md",
24
+ "size": 7371,
25
+ "sha256": "7de7b6a7c59ac9d34d6572c5d8e0eff6ab1c741876f82aea8615a7a65cb9e194"
26
+ },
27
+ {
28
+ "path": "temporal-architect-author-go/reference/activity-call.md",
29
+ "size": 2543,
30
+ "sha256": "baae81a991f009e5b9a8bc71691de9e069848bd8d5ef05a254d074fa2d51af24"
31
+ },
32
+ {
33
+ "path": "temporal-architect-author-go/reference/activity-def.md",
34
+ "size": 2409,
35
+ "sha256": "58f222ed5ae6f6b60362dd9ddf431c35cd18bd21bb787c8eb16235e92c45ec8f"
36
+ },
37
+ {
38
+ "path": "temporal-architect-author-go/reference/assignment.md",
39
+ "size": 1341,
40
+ "sha256": "5c8c0e87391469cad42855b73516937b6d7798457e975cc303a2258d1712254c"
41
+ },
42
+ {
43
+ "path": "temporal-architect-author-go/reference/await-all.md",
44
+ "size": 2516,
45
+ "sha256": "38372b6a0460aba61964571ff0e2153c5c0cf11fd6f591a182ff21952cc1ac5e"
46
+ },
47
+ {
48
+ "path": "temporal-architect-author-go/reference/await-one.md",
49
+ "size": 7259,
50
+ "sha256": "c2aea56de4a7a49e475d3bc966ba7bda6195e7d1da0edb1287e28ddca2d92623"
51
+ },
52
+ {
53
+ "path": "temporal-architect-author-go/reference/await-timer.md",
54
+ "size": 963,
55
+ "sha256": "5180ce93b6a62517f8b09a8cf4179ce9f071c408d21b8771332214f3d446f16e"
56
+ },
57
+ {
58
+ "path": "temporal-architect-author-go/reference/close.md",
59
+ "size": 1985,
60
+ "sha256": "c1bb60956727e537b1811d9f0dcf358767be8add2ee85dd5f65c01590e34b353"
61
+ },
62
+ {
63
+ "path": "temporal-architect-author-go/reference/composite-patterns.md",
64
+ "size": 6452,
65
+ "sha256": "27e09a61b486667c680580e681ab0dc27dacf499168138c190e6c50387003555"
66
+ },
67
+ {
68
+ "path": "temporal-architect-author-go/reference/condition.md",
69
+ "size": 2191,
70
+ "sha256": "7a9f1f31f6beec56bfbfb9e9bb7d663506ce9750151b9a32a8bae77ea922bd56"
71
+ },
72
+ {
73
+ "path": "temporal-architect-author-go/reference/control-flow.md",
74
+ "size": 3065,
75
+ "sha256": "2021ab5c5ffeee72bd5b3493a2ef15c8119d32f2dccba9ae9e7ca26953807843"
76
+ },
77
+ {
78
+ "path": "temporal-architect-author-go/reference/dependency-resolution.md",
79
+ "size": 1629,
80
+ "sha256": "48669909edd2e948c7b03a028a1a652f07da043e325033e2c604f3ff7a29170e"
81
+ },
82
+ {
83
+ "path": "temporal-architect-author-go/reference/detach.md",
84
+ "size": 2485,
85
+ "sha256": "000e97ebd9b7e5d4ad425c89274d77912aecceae7cdc11767c54fa2464329681"
86
+ },
87
+ {
88
+ "path": "temporal-architect-author-go/reference/heartbeat.md",
89
+ "size": 2900,
90
+ "sha256": "67977d94bdb3ca80887670a38bdbcfa9edae3a210a2c5e0a8c13569f7887819b"
91
+ },
92
+ {
93
+ "path": "temporal-architect-author-go/reference/nexus-service-def.md",
94
+ "size": 3497,
95
+ "sha256": "41e4f6a0c01e6a8f75fa3ff360c42ee45d117b51eedf199325d19e5406a422f0"
96
+ },
97
+ {
98
+ "path": "temporal-architect-author-go/reference/nexus.md",
99
+ "size": 2049,
100
+ "sha256": "c2f521e6d20225badad9aaef418097ad0e84dfbf5d46f824732cf1685cad8c2b"
101
+ },
102
+ {
103
+ "path": "temporal-architect-author-go/reference/options.md",
104
+ "size": 4666,
105
+ "sha256": "41a6e25bd0fb87cb490c270f618cd1339133ab9227e1d6563ae09f25349e69ee"
106
+ },
107
+ {
108
+ "path": "temporal-architect-author-go/reference/promise.md",
109
+ "size": 2476,
110
+ "sha256": "2fad47675d803dd157fc4a342dcac824f8df3ac0c7721d6900c48cd1fc9eb3ba"
111
+ },
112
+ {
113
+ "path": "temporal-architect-author-go/reference/proto-driven.md",
114
+ "size": 7470,
115
+ "sha256": "db7388afdc1ac3a27743826f64f65a87633b6fbf13bc1da2c5fd89da826a2ac5"
116
+ },
117
+ {
118
+ "path": "temporal-architect-author-go/reference/query-handler.md",
119
+ "size": 1450,
120
+ "sha256": "bd6b66d4b126423c2a05bfc8bddfa2bc5608f967fdd4c07bd41478f24dcabe3f"
121
+ },
122
+ {
123
+ "path": "temporal-architect-author-go/reference/signal-handler.md",
124
+ "size": 2900,
125
+ "sha256": "e953ee2ecac5ebbc344f71c4004d15c7c0cb98807dd7bd1d8bd6f3ca796e8676"
126
+ },
127
+ {
128
+ "path": "temporal-architect-author-go/reference/three-layer-testing.md",
129
+ "size": 7217,
130
+ "sha256": "860337a4d464c0f7b1e539a123abe5c0c9c5123685c850cbc1778477d5566e79"
131
+ },
132
+ {
133
+ "path": "temporal-architect-author-go/reference/types.md",
134
+ "size": 3846,
135
+ "sha256": "c442f491adae176b51809e987d97b1a37bfc3ec3f840a240a2449f4818e0bb11"
136
+ },
137
+ {
138
+ "path": "temporal-architect-author-go/reference/update-handler.md",
139
+ "size": 3279,
140
+ "sha256": "14872fab4cc4c0e80a6e9eea9fa0728c314c2d4c962f5c8a470c35a7611036f4"
141
+ },
142
+ {
143
+ "path": "temporal-architect-author-go/reference/worker.md",
144
+ "size": 10293,
145
+ "sha256": "2e73f0f9f2a56962ff9ce61a7bea76d78efc42dc87ad4d5dc451f066a49d71ea"
146
+ },
147
+ {
148
+ "path": "temporal-architect-author-go/reference/workflow-call.md",
149
+ "size": 2071,
150
+ "sha256": "da4dff1e7750301858d2af905785afe7104ca7a8e62da7156121035cfe3e7fc4"
151
+ },
152
+ {
153
+ "path": "temporal-architect-author-go/reference/workflow-def.md",
154
+ "size": 1874,
155
+ "sha256": "ae023bb104a2b8a37e9576650cb13e91a3e34f650ba8b0db868c70ed542cd6a7"
156
+ },
157
+ {
158
+ "path": "temporal-architect-author-infra/README.md",
159
+ "size": 1254,
160
+ "sha256": "e79e7f71a25409c9f84fd1c7fdd4807c9810ed3a9327b8fa839899771ba1bde4"
161
+ },
162
+ {
163
+ "path": "temporal-architect-author-infra/SKILL.md",
164
+ "size": 9118,
165
+ "sha256": "dd57f3308d3ea429926ae63c5e93717587d2cf83cb730ce75c45dbc29d7e9944"
166
+ },
167
+ {
168
+ "path": "temporal-architect-author-infra/reference/tcld.md",
169
+ "size": 3940,
170
+ "sha256": "2c5c4f6fa5b3380b42e4dff26bafef10cca3f1998e02877c5edd923f12e01403"
171
+ },
172
+ {
173
+ "path": "temporal-architect-author-infra/reference/terraform.md",
174
+ "size": 5178,
175
+ "sha256": "cb8087a00f5b966987eda6cb938215014d9a04f1a41e63c01caeb83d46620125"
176
+ },
177
+ {
178
+ "path": "temporal-architect-design/README.md",
179
+ "size": 1021,
180
+ "sha256": "536d4cbdde8f526de2f5e9675798c77d588c2b218453e33e57ecec90d5c24e43"
181
+ },
182
+ {
183
+ "path": "temporal-architect-design/SKILL.md",
184
+ "size": 15302,
185
+ "sha256": "249388112c454f79ea135ecc3ed54868f1f8b91ef52281136b924ff5cf75af49"
186
+ },
187
+ {
188
+ "path": "temporal-architect-design/reference/LANGUAGE.md",
189
+ "size": 399,
190
+ "sha256": "0b7a8338dd5376d5f461b5f11443933d310bd6bed2883650cd8f91cbd364e5ed"
191
+ },
192
+ {
193
+ "path": "temporal-architect-design/reference/anti-patterns.md",
194
+ "size": 13999,
195
+ "sha256": "a0938fdb4937fbd88c62c3f8fb80c673df3f0d68720d6780970e516efc8dba6d"
196
+ },
197
+ {
198
+ "path": "temporal-architect-design/reference/common-errors.md",
199
+ "size": 9037,
200
+ "sha256": "8829d66240e59ef95e81c10544b85283091102468a7b768fb5e7c712389ab8f4"
201
+ },
202
+ {
203
+ "path": "temporal-architect-design/reference/core-principles.md",
204
+ "size": 3951,
205
+ "sha256": "c27d169baf6bf72e5b508ee130c75ccf50f1c4b4dab7e1fc1f95f280fe90781b"
206
+ },
207
+ {
208
+ "path": "temporal-architect-design/reference/design-checklist.md",
209
+ "size": 3351,
210
+ "sha256": "ac5eea965436614a15ff24ab9811da0f86d097d5f506e235fd64caad01429c54"
211
+ },
212
+ {
213
+ "path": "temporal-architect-design/reference/namespaces.md",
214
+ "size": 4217,
215
+ "sha256": "56d79ba149394ffd645916a7495247d6fef60918b461c8a7081f7af99569c5c3"
216
+ },
217
+ {
218
+ "path": "temporal-architect-design/reference/notation-examples.md",
219
+ "size": 9269,
220
+ "sha256": "9dfea38be2e151a694453998c6efcd8715b900ebbe0e36a0f978f2d7fc1fd38b"
221
+ },
222
+ {
223
+ "path": "temporal-architect-design/reference/notation-reference.md",
224
+ "size": 5656,
225
+ "sha256": "41592828cb0d587c8eed8b17f8f76f60bed8e86f60c883e5e4102721276b1e46"
226
+ },
227
+ {
228
+ "path": "temporal-architect-design/reference/primitives-reference.md",
229
+ "size": 4396,
230
+ "sha256": "d6605500b3925a80323860dfc6ae356c56efb41edb07daa828a4fde82974c4f1"
231
+ },
232
+ {
233
+ "path": "temporal-architect-design/reference/project-discovery-subagent.md",
234
+ "size": 4894,
235
+ "sha256": "e64b1469c2d6f5dcfdd38659e25b8a7c3d4f5ecb4afdcb9e90034329e67cc9fd"
236
+ },
237
+ {
238
+ "path": "temporal-architect-design/reference/reverse-engineering.md",
239
+ "size": 5270,
240
+ "sha256": "c802a6d440916a72919060ad21e2801e5e78e0c2facc08a6ac46d123ffac632f"
241
+ },
242
+ {
243
+ "path": "temporal-architect-design/reference/twf-conventions.md",
244
+ "size": 2912,
245
+ "sha256": "9724bb70433ceefebb8c22097acb4c6890f8e0228b5fefb5a0835f0ef84a78f6"
246
+ },
247
+ {
248
+ "path": "temporal-architect-design/reference/workflow-boundaries.md",
249
+ "size": 2586,
250
+ "sha256": "9f851c0af03a9bf95b8a6d5ec5dfd56a2d6d128c386383756f42d4c5db39da85"
251
+ },
252
+ {
253
+ "path": "temporal-architect-design/topics/activities-advanced.md",
254
+ "size": 9747,
255
+ "sha256": "6b2bbde57b055a0c550885a465fecbc79a2dfde7edce0c7973d565f66c01da22"
256
+ },
257
+ {
258
+ "path": "temporal-architect-design/topics/activities-advanced.twf",
259
+ "size": 3178,
260
+ "sha256": "6e6fcf1adb0e002ca35196fa4502ad79378bc9ffcd0e68c9976edbcd3ff31459"
261
+ },
262
+ {
263
+ "path": "temporal-architect-design/topics/child-workflows.md",
264
+ "size": 11078,
265
+ "sha256": "384739095340feb0d158bb244a5c108e5b9df2c2c9f48da3ddc4ee14e4d13e50"
266
+ },
267
+ {
268
+ "path": "temporal-architect-design/topics/child-workflows.twf",
269
+ "size": 4889,
270
+ "sha256": "d773d0ba57fc7da7bb7b4d476f046ccfabfe37632f616b6ed5f0e4a696dd9b28"
271
+ },
272
+ {
273
+ "path": "temporal-architect-design/topics/long-running.md",
274
+ "size": 7149,
275
+ "sha256": "6772d7646d57288dc758a43ec8c930456822d5ca24ababaea07d27afcdd49404"
276
+ },
277
+ {
278
+ "path": "temporal-architect-design/topics/long-running.twf",
279
+ "size": 2608,
280
+ "sha256": "3e4f37ec0ef64358b00043bb257bd70956b530e7f6ac3ea9b2b6049549096c90"
281
+ },
282
+ {
283
+ "path": "temporal-architect-design/topics/nexus.md",
284
+ "size": 8428,
285
+ "sha256": "188f8e15ac16a9e75613363df8222aeb214d7ae460a6fcf47f715c82f5a59409"
286
+ },
287
+ {
288
+ "path": "temporal-architect-design/topics/nexus.twf",
289
+ "size": 4637,
290
+ "sha256": "d167e46d16c01455c2af346fe8af15e42bf2b90a9b4734b6091c5cd8767b6541"
291
+ },
292
+ {
293
+ "path": "temporal-architect-design/topics/patterns.md",
294
+ "size": 13335,
295
+ "sha256": "e963a1a1f2e3841c96aad08b5ecca3e7cfc52e8239af29816008a972c72f758e"
296
+ },
297
+ {
298
+ "path": "temporal-architect-design/topics/patterns.twf",
299
+ "size": 10171,
300
+ "sha256": "f7947716f3258993fff79de598129eb18783698f9271946eb1bfa87857a96e2d"
301
+ },
302
+ {
303
+ "path": "temporal-architect-design/topics/promises-conditions.md",
304
+ "size": 4998,
305
+ "sha256": "d34c43b734f31b8a3863e973c4c8ee869b738d1c09e6271613a09e21d4fceff3"
306
+ },
307
+ {
308
+ "path": "temporal-architect-design/topics/promises-conditions.twf",
309
+ "size": 5529,
310
+ "sha256": "5c550e4b531e81de0a886adde568953ca52c646de6e9e54e77ac5b2819456090"
311
+ },
312
+ {
313
+ "path": "temporal-architect-design/topics/signals-queries-updates.md",
314
+ "size": 12981,
315
+ "sha256": "5f79e7d1fdcaf6c2c0769d0a1d40f37226713cd0f1204aa4e66e5f40e13721b3"
316
+ },
317
+ {
318
+ "path": "temporal-architect-design/topics/signals-queries-updates.twf",
319
+ "size": 6628,
320
+ "sha256": "0248befa0889fd35ae59d8027910961499ed69623a4a79e0f6af86f1de34ec42"
321
+ },
322
+ {
323
+ "path": "temporal-architect-design/topics/task-queues.md",
324
+ "size": 7643,
325
+ "sha256": "47c0bdf11517516b0949876d88e9352578e3c9b0d0c543ee1e8e352f2c178480"
326
+ },
327
+ {
328
+ "path": "temporal-architect-design/topics/task-queues.twf",
329
+ "size": 5827,
330
+ "sha256": "75af6d10de2d52366fe91aa2c4aad67fa21c0a21c051f9c730bdc5a015d871af"
331
+ },
332
+ {
333
+ "path": "temporal-architect-design/topics/testing.md",
334
+ "size": 11725,
335
+ "sha256": "c06175ac136cf2b278cc1edab84ce074738998028c503eb7ef7b0666a8e8753e"
336
+ },
337
+ {
338
+ "path": "temporal-architect-design/topics/testing.twf",
339
+ "size": 5243,
340
+ "sha256": "34b1a9e399767fbdcf4c8d3b3e29f3999985619313c803758e2d851ee3da02e0"
341
+ },
342
+ {
343
+ "path": "temporal-architect-design/topics/timers-scheduling.md",
344
+ "size": 4168,
345
+ "sha256": "3e41baf677d4ea3aff3011f31fbb0fbc88873de97c698c353c2723bf78c70d7e"
346
+ },
347
+ {
348
+ "path": "temporal-architect-design/topics/timers-scheduling.twf",
349
+ "size": 3530,
350
+ "sha256": "099fa6f65e498ec897b66e0db52437df1a221e1740d7d6a169b62d92530113e5"
351
+ },
352
+ {
353
+ "path": "temporal-architect-design/topics/versioning.md",
354
+ "size": 11755,
355
+ "sha256": "0697f629e351d332bbb5a6c798576516e12dce567b91c49589923bcb8b62d7b3"
356
+ },
357
+ {
358
+ "path": "temporal-architect-design/topics/versioning.twf",
359
+ "size": 4675,
360
+ "sha256": "5813ee3a2808dd226619225282c2ea612c4aaf49fe320b2f944c0602b8330d63"
361
+ },
362
+ {
363
+ "path": "temporal-architect/SKILL.md",
364
+ "size": 9177,
365
+ "sha256": "0cefde6d7e750a601f9665265e1e0a9490654d192b8b293704fb026c0b7db065"
366
+ },
367
+ {
368
+ "path": "temporal-architect/reference/decomposition.md",
369
+ "size": 6130,
370
+ "sha256": "205bb84e3e8febe563ab5696c94346184896a66d61335201229befa629af3ba1"
371
+ }
372
+ ]
373
+ }
@@ -0,0 +1,121 @@
1
+ # Skills Bundle Manifest
2
+
3
+ Each `v*` release of `temporal-architect` attaches a deterministic tarball of
4
+ the `skills/` tree as a GitHub Release asset, so downstream consumers
5
+ (prompt builders, doc tooling, non-Go runtimes) can pin a single archive +
6
+ checksum instead of vendoring individual files or scraping raw GitHub URLs.
7
+
8
+ This document is the stable contract for that bundle.
9
+
10
+ ## Asset names
11
+
12
+ ```
13
+ skills-vX.Y.Z.tar.gz # the bundle (always gzipped tar)
14
+ SHA256SUMS # checksum file shared with the twf binaries
15
+ ```
16
+
17
+ The `SHA256SUMS` file is the same one that pins the `twf-*` binaries, so
18
+ verification flows uniformly:
19
+
20
+ ```bash
21
+ grep "skills-vX.Y.Z.tar.gz" SHA256SUMS | sha256sum --check
22
+ ```
23
+
24
+ ## Tarball layout
25
+
26
+ The tarball reproduces the repo's `skills/` directory verbatim, with one
27
+ addition — a `MANIFEST.json` at the root:
28
+
29
+ ```
30
+ skills/
31
+ MANIFEST.json
32
+ temporal-architect-design/
33
+ SKILL.md
34
+ reference/...
35
+ topics/...
36
+ temporal-architect-author-go/
37
+ SKILL.md
38
+ reference/...
39
+ temporal-architect-author-infra/
40
+ SKILL.md
41
+ reference/...
42
+ ```
43
+
44
+ The top-level directory is always `skills/`. Untar in place to drop the
45
+ tree at any location.
46
+
47
+ ## `MANIFEST.json` schema
48
+
49
+ ```json
50
+ {
51
+ "version": "v0.3.0",
52
+ "root": "skills",
53
+ "file_count": 60,
54
+ "total_bytes": 280417,
55
+ "files": [
56
+ {
57
+ "path": "temporal-architect-design/SKILL.md",
58
+ "size": 9150,
59
+ "sha256": "b871ea8b982130d282c5578d2847b319525f87bc8a9dec98cf23fcc2b0819be3"
60
+ }
61
+ ]
62
+ }
63
+ ```
64
+
65
+ ### Field semantics
66
+
67
+ | Field | Type | Notes |
68
+ |---------------|---------|----------------------------------------------------------------------|
69
+ | `version` | string | Matches the Git tag (e.g. `v0.3.0`); is the `--version` flag value. |
70
+ | `root` | string | Top-level directory inside the tarball. Always `"skills"`. |
71
+ | `file_count` | integer | Number of entries in `files`. |
72
+ | `total_bytes` | integer | Sum of `size` across all files. Excludes `MANIFEST.json` itself. |
73
+ | `files` | array | Sorted lexicographically by `path`. Excludes `MANIFEST.json`. |
74
+ | `files[].path` | string | Forward-slash, relative to `root` (e.g. `"temporal-architect-design/SKILL.md"`). |
75
+ | `files[].size` | integer | File size in bytes. |
76
+ | `files[].sha256` | string | Lowercase-hex SHA-256 of the file's raw bytes. |
77
+
78
+ `MANIFEST.json` does not include an entry for itself. This keeps the
79
+ schema's hash → file-content invariant trivially verifiable without
80
+ solving a fixed-point equation.
81
+
82
+ ## Determinism guarantees
83
+
84
+ - File entries in `MANIFEST.json` are sorted by `path` (lexicographic).
85
+ - Tar headers use a fixed mtime (Unix epoch), uid/gid 0, mode 0644 for
86
+ regular files and 0755 for directories, and PAX format.
87
+ - The gzip header is written without an embedded filename or timestamp.
88
+ - Two runs over the same source bytes (and same `--version`) produce
89
+ byte-identical archives — and therefore identical `SHA256SUMS` entries.
90
+
91
+ This makes the bundle safe to checksum-pin in lockfiles and CI caches.
92
+
93
+ ## Verification snippet
94
+
95
+ ```bash
96
+ # Download once
97
+ curl -sSfLO https://github.com/jmbarzee/temporal-architect/releases/download/vX.Y.Z/skills-vX.Y.Z.tar.gz
98
+ curl -sSfLO https://github.com/jmbarzee/temporal-architect/releases/download/vX.Y.Z/SHA256SUMS
99
+
100
+ # Verify tarball
101
+ grep "skills-vX.Y.Z.tar.gz" SHA256SUMS | sha256sum --check
102
+
103
+ # Extract and verify every file against its manifest entry
104
+ tar -xzf skills-vX.Y.Z.tar.gz
105
+ ( cd skills && jq -r '.files[] | "\(.sha256) \(.path)"' MANIFEST.json \
106
+ | sha256sum --check )
107
+ ```
108
+
109
+ A non-zero exit from either `sha256sum --check` means the bundle was
110
+ tampered with or built non-reproducibly — fail closed.
111
+
112
+ ## Producing the bundle locally
113
+
114
+ ```bash
115
+ make build-skills-archive VERSION=0.3.0 # → dist/skills-v0.3.0.tar.gz
116
+ make build-skills-archive VERSION=v0.3.0 # equivalent
117
+ ```
118
+
119
+ The generator lives at `internal/release/gen-skills-manifest/`. It walks `skills/`,
120
+ computes hashes, and writes the archive — no third-party deps beyond
121
+ the Go standard library.