@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.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/package.json +37 -0
- package/skills/MANIFEST.json +373 -0
- package/skills/MANIFEST.md +121 -0
- package/skills/temporal-architect/SKILL.md +99 -0
- package/skills/temporal-architect/reference/decomposition.md +78 -0
- package/skills/temporal-architect-author-go/README.md +16 -0
- package/skills/temporal-architect-author-go/SKILL.md +191 -0
- package/skills/temporal-architect-author-go/SUBAGENT_ADOPTION.md +161 -0
- package/skills/temporal-architect-author-go/reference/activity-call.md +73 -0
- package/skills/temporal-architect-author-go/reference/activity-def.md +54 -0
- package/skills/temporal-architect-author-go/reference/assignment.md +36 -0
- package/skills/temporal-architect-author-go/reference/await-all.md +104 -0
- package/skills/temporal-architect-author-go/reference/await-one.md +193 -0
- package/skills/temporal-architect-author-go/reference/await-timer.md +35 -0
- package/skills/temporal-architect-author-go/reference/close.md +71 -0
- package/skills/temporal-architect-author-go/reference/composite-patterns.md +176 -0
- package/skills/temporal-architect-author-go/reference/condition.md +56 -0
- package/skills/temporal-architect-author-go/reference/control-flow.md +151 -0
- package/skills/temporal-architect-author-go/reference/dependency-resolution.md +29 -0
- package/skills/temporal-architect-author-go/reference/detach.md +52 -0
- package/skills/temporal-architect-author-go/reference/heartbeat.md +84 -0
- package/skills/temporal-architect-author-go/reference/nexus-service-def.md +73 -0
- package/skills/temporal-architect-author-go/reference/nexus.md +35 -0
- package/skills/temporal-architect-author-go/reference/options.md +138 -0
- package/skills/temporal-architect-author-go/reference/promise.md +73 -0
- package/skills/temporal-architect-author-go/reference/proto-driven.md +197 -0
- package/skills/temporal-architect-author-go/reference/query-handler.md +34 -0
- package/skills/temporal-architect-author-go/reference/signal-handler.md +73 -0
- package/skills/temporal-architect-author-go/reference/three-layer-testing.md +173 -0
- package/skills/temporal-architect-author-go/reference/types.md +72 -0
- package/skills/temporal-architect-author-go/reference/update-handler.md +64 -0
- package/skills/temporal-architect-author-go/reference/worker.md +215 -0
- package/skills/temporal-architect-author-go/reference/workflow-call.md +37 -0
- package/skills/temporal-architect-author-go/reference/workflow-def.md +45 -0
- package/skills/temporal-architect-author-infra/README.md +16 -0
- package/skills/temporal-architect-author-infra/SKILL.md +132 -0
- package/skills/temporal-architect-author-infra/reference/tcld.md +112 -0
- package/skills/temporal-architect-author-infra/reference/terraform.md +125 -0
- package/skills/temporal-architect-design/README.md +16 -0
- package/skills/temporal-architect-design/SKILL.md +224 -0
- package/skills/temporal-architect-design/reference/LANGUAGE.md +5 -0
- package/skills/temporal-architect-design/reference/anti-patterns.md +332 -0
- package/skills/temporal-architect-design/reference/common-errors.md +88 -0
- package/skills/temporal-architect-design/reference/core-principles.md +52 -0
- package/skills/temporal-architect-design/reference/design-checklist.md +59 -0
- package/skills/temporal-architect-design/reference/namespaces.md +84 -0
- package/skills/temporal-architect-design/reference/notation-examples.md +304 -0
- package/skills/temporal-architect-design/reference/notation-reference.md +70 -0
- package/skills/temporal-architect-design/reference/primitives-reference.md +65 -0
- package/skills/temporal-architect-design/reference/project-discovery-subagent.md +80 -0
- package/skills/temporal-architect-design/reference/reverse-engineering.md +53 -0
- package/skills/temporal-architect-design/reference/twf-conventions.md +43 -0
- package/skills/temporal-architect-design/reference/workflow-boundaries.md +43 -0
- package/skills/temporal-architect-design/topics/activities-advanced.md +358 -0
- package/skills/temporal-architect-design/topics/activities-advanced.twf +107 -0
- package/skills/temporal-architect-design/topics/child-workflows.md +347 -0
- package/skills/temporal-architect-design/topics/child-workflows.twf +171 -0
- package/skills/temporal-architect-design/topics/long-running.md +230 -0
- package/skills/temporal-architect-design/topics/long-running.twf +100 -0
- package/skills/temporal-architect-design/topics/nexus.md +248 -0
- package/skills/temporal-architect-design/topics/nexus.twf +148 -0
- package/skills/temporal-architect-design/topics/patterns.md +469 -0
- package/skills/temporal-architect-design/topics/patterns.twf +346 -0
- package/skills/temporal-architect-design/topics/promises-conditions.md +179 -0
- package/skills/temporal-architect-design/topics/promises-conditions.twf +213 -0
- package/skills/temporal-architect-design/topics/signals-queries-updates.md +319 -0
- package/skills/temporal-architect-design/topics/signals-queries-updates.twf +234 -0
- package/skills/temporal-architect-design/topics/task-queues.md +205 -0
- package/skills/temporal-architect-design/topics/task-queues.twf +184 -0
- package/skills/temporal-architect-design/topics/testing.md +437 -0
- package/skills/temporal-architect-design/topics/testing.twf +177 -0
- package/skills/temporal-architect-design/topics/timers-scheduling.md +131 -0
- package/skills/temporal-architect-design/topics/timers-scheduling.twf +129 -0
- package/skills/temporal-architect-design/topics/versioning.md +434 -0
- 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.
|