create-anpunkit 2.2.0 → 2.3.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/bin/cli.js +2 -2
- package/package.json +2 -3
- package/template/.claude/agents/debugger.md +1 -1
- package/template/.claude/agents/e2e-runner.md +13 -3
- package/template/.claude/agents/implementer.md +1 -1
- package/template/.claude/agents/infra-provisioner.md +53 -59
- package/template/.claude/agents/planner.md +35 -29
- package/template/.claude/agents/researcher.md +16 -1
- package/template/.claude/agents/spec-author.md +9 -1
- package/template/.claude/agents/synthesizer.md +1 -1
- package/template/.claude/agents/test-author.md +9 -1
- package/template/.claude/anpunkit-manifest.json +52 -113
- package/template/.claude/commands/infra.md +7 -3
- package/template/.claude/commands/log-decision.md +1 -1
- package/template/.claude/commands/log-issue.md +1 -1
- package/template/.claude/commands/overview.md +37 -12
- package/template/.claude/commands/phase.md +50 -25
- package/template/.claude/commands/quick.md +1 -1
- package/template/.claude/commands/replan.md +1 -1
- package/template/.claude/commands/store-wisdom.md +1 -1
- package/template/.claude/commands/synthesize.md +1 -1
- package/template/.claude/commands/unstuck.md +1 -1
- package/template/.claude/hooks/session-start.sh +5 -11
- package/template/.claude/ref/compression.md +56 -0
- package/template/.claude/skills/karpathy-guidelines/SKILL.md +1 -1
- package/template/AGENTS.md +115 -84
- package/template/CLAUDE.md +4 -9
- package/template/README.md +91 -122
- package/template/commands.src/infra.md +7 -3
- package/template/commands.src/log-decision.md +1 -1
- package/template/commands.src/log-issue.md +1 -1
- package/template/commands.src/overview.md +37 -12
- package/template/commands.src/phase.md +50 -25
- package/template/commands.src/quick.md +1 -1
- package/template/commands.src/replan.md +1 -1
- package/template/commands.src/store-wisdom.md +1 -1
- package/template/commands.src/synthesize.md +1 -1
- package/template/commands.src/unstuck.md +1 -1
- package/template/docs/DESIGN_LOG.md +222 -8
- package/template/knowledge/azure.md +161 -0
- package/template/knowledge/webapp.md +265 -0
- package/template/setup.sh +30 -111
- package/template/.claude/hooks/cursor-session-start.sh +0 -17
- package/template/.claude/skills/caveman/SKILL.md +0 -39
- package/template/.cursor/commands/infra.md +0 -82
- package/template/.cursor/commands/log-decision.md +0 -29
- package/template/.cursor/commands/log-issue.md +0 -23
- package/template/.cursor/commands/overview.md +0 -162
- package/template/.cursor/commands/phase.md +0 -296
- package/template/.cursor/commands/quick.md +0 -25
- package/template/.cursor/commands/replan.md +0 -73
- package/template/.cursor/commands/store-wisdom.md +0 -191
- package/template/.cursor/commands/synthesize.md +0 -22
- package/template/.cursor/commands/unstuck.md +0 -36
- package/template/.cursor/hooks.json +0 -14
- package/template/.cursor/rules/anpunkit.md +0 -11
- package/template/anpunkit.png +0 -0
- package/template/docker-compose.test.yml +0 -34
- package/template/e2e/global-setup.ts +0 -57
- package/template/index.html +0 -339
- package/template/playwright.config.ts +0 -28
- package/template/scripts/auth-setup.sh +0 -51
- package/template/scripts/e2e-stack.sh +0 -65
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2.
|
|
2
|
+
"version": "2.3.0",
|
|
3
3
|
"files": [
|
|
4
4
|
{
|
|
5
5
|
"path": "AGENTS.md",
|
|
6
|
-
"sha256": "
|
|
6
|
+
"sha256": "eb9e76938dd765cdc761cb53d9030f03d67edf04f1228bdb8fed4332273a29ee"
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
9
|
"path": "CLAUDE.md",
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "2dbf55cd7a8ad2279eab8ac2e3637855f25e5c96b77fe48bd4d5cfe3e36508ca"
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"path": "README.md",
|
|
14
|
-
"sha256": "
|
|
14
|
+
"sha256": "b0ac71a37d69f8c2a77db182e4930bfa7984e8d0f5685b18820d06eed83c9cb5"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
"path": ".gitattributes",
|
|
@@ -19,47 +19,55 @@
|
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
"path": "setup.sh",
|
|
22
|
-
"sha256": "
|
|
22
|
+
"sha256": "d19382499232221b2b180b684f1935f0fe7eda3d2078dd37ffe65c8aaeedaed1"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"path": ".claude/ref/compression.md",
|
|
26
|
+
"sha256": "baa49f9d97af1a168a5f74317732d13a9ce5085cebbbbf3c824f19886de483dd"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"path": "knowledge/webapp.md",
|
|
30
|
+
"sha256": "21898ae582abac519f9af0f054fa14c03d6648ff2c877609523f6a590eca6259"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "knowledge/azure.md",
|
|
34
|
+
"sha256": "f94e06ed2c6879014868550810c73b5b9520db7e8c8727744714d9e12539c056"
|
|
23
35
|
},
|
|
24
36
|
{
|
|
25
37
|
"path": ".claude/agents/debugger.md",
|
|
26
|
-
"sha256": "
|
|
38
|
+
"sha256": "843b6a96921d3e0957f507cba77e0b25125b946bfe2b3d20439e9627b49f3e6b"
|
|
27
39
|
},
|
|
28
40
|
{
|
|
29
41
|
"path": ".claude/agents/e2e-runner.md",
|
|
30
|
-
"sha256": "
|
|
42
|
+
"sha256": "b5712614f0f8e09bd1884250258231bd69f019ed15018566fe06b67d092e7d18"
|
|
31
43
|
},
|
|
32
44
|
{
|
|
33
45
|
"path": ".claude/agents/implementer.md",
|
|
34
|
-
"sha256": "
|
|
46
|
+
"sha256": "1a1d7cff9f64d519742932e36a0b89ee951d07a493493c37f27d1df00cd9e41f"
|
|
35
47
|
},
|
|
36
48
|
{
|
|
37
49
|
"path": ".claude/agents/infra-provisioner.md",
|
|
38
|
-
"sha256": "
|
|
50
|
+
"sha256": "6f7cba54296c2f46bc382a59007cfe7943fd2f0a713b4af541316247ad00099d"
|
|
39
51
|
},
|
|
40
52
|
{
|
|
41
53
|
"path": ".claude/agents/spec-author.md",
|
|
42
|
-
"sha256": "
|
|
54
|
+
"sha256": "d2f795b1555bf740af058282705079725ea68eb4293da25b964e11e65343e5d7"
|
|
43
55
|
},
|
|
44
56
|
{
|
|
45
57
|
"path": ".claude/agents/planner.md",
|
|
46
|
-
"sha256": "
|
|
58
|
+
"sha256": "7c497def29d093de877747cba350981bc804f477e4e3d48c2173e58a5366b1b4"
|
|
47
59
|
},
|
|
48
60
|
{
|
|
49
61
|
"path": ".claude/agents/researcher.md",
|
|
50
|
-
"sha256": "
|
|
62
|
+
"sha256": "e21a126a37f1054640f4ccd16d8f7719178570a4fa4c29a9e5a472b879589352"
|
|
51
63
|
},
|
|
52
64
|
{
|
|
53
65
|
"path": ".claude/agents/synthesizer.md",
|
|
54
|
-
"sha256": "
|
|
66
|
+
"sha256": "3d61df0c762eaf6e0d46722bfaab8a67666d06e05d8cc0f1afed03139071ad13"
|
|
55
67
|
},
|
|
56
68
|
{
|
|
57
69
|
"path": ".claude/agents/test-author.md",
|
|
58
|
-
"sha256": "
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"path": ".claude/hooks/cursor-session-start.sh",
|
|
62
|
-
"sha256": "e08bcd14fbcfe1831b64e7d8f181b57b02c561cd8d0de6eb16fe06db259be6af"
|
|
70
|
+
"sha256": "2cd74c971a9f04656535e44ab6d981911f447457a19d9a6e5c23b9146478071d"
|
|
63
71
|
},
|
|
64
72
|
{
|
|
65
73
|
"path": ".claude/hooks/pre-compact.sh",
|
|
@@ -67,167 +75,99 @@
|
|
|
67
75
|
},
|
|
68
76
|
{
|
|
69
77
|
"path": ".claude/hooks/session-start.sh",
|
|
70
|
-
"sha256": "
|
|
78
|
+
"sha256": "a47fc68a4f4a92cd093de2d49301e16fc499e358cbdc2c4cc364aed5f012cb97"
|
|
71
79
|
},
|
|
72
80
|
{
|
|
73
81
|
"path": ".claude/hooks/subagent-stop.sh",
|
|
74
82
|
"sha256": "fd4b48484db0511e6b78ff659213ebb826e3082e37c98d67dbcb09f159c3e318"
|
|
75
83
|
},
|
|
76
|
-
{
|
|
77
|
-
"path": ".claude/skills/caveman/SKILL.md",
|
|
78
|
-
"sha256": "62c1522b986679f75e574d7f04c939405df6fc200723d67a255b36d960d9880c"
|
|
79
|
-
},
|
|
80
84
|
{
|
|
81
85
|
"path": ".claude/skills/grill-me/SKILL.md",
|
|
82
86
|
"sha256": "1cf60d6ce350314e794033ae0773303b54fd1557c3f7ffecfc64dd788fdd4edc"
|
|
83
87
|
},
|
|
84
88
|
{
|
|
85
89
|
"path": ".claude/skills/karpathy-guidelines/SKILL.md",
|
|
86
|
-
"sha256": "
|
|
90
|
+
"sha256": "bb48ebcc401b9893dc7fad38b1a98960f5fdd0673456328bb11a1968e246f6dd"
|
|
87
91
|
},
|
|
88
92
|
{
|
|
89
93
|
"path": "commands.src/infra.md",
|
|
90
|
-
"sha256": "
|
|
94
|
+
"sha256": "06cd17689be763718ad2ebeded8a86c4d784c4e4ccf959828853f35b7c480d15"
|
|
91
95
|
},
|
|
92
96
|
{
|
|
93
97
|
"path": "commands.src/log-decision.md",
|
|
94
|
-
"sha256": "
|
|
98
|
+
"sha256": "b8964c64ed6d576573f34e8a2f050d880c4d60ccc7f63f0bf8b29e31be418063"
|
|
95
99
|
},
|
|
96
100
|
{
|
|
97
101
|
"path": "commands.src/log-issue.md",
|
|
98
|
-
"sha256": "
|
|
102
|
+
"sha256": "ba448c1b93b496e60ac59e14c126c014daf53e02ed60556d4e9eff2e0700d382"
|
|
99
103
|
},
|
|
100
104
|
{
|
|
101
105
|
"path": "commands.src/overview.md",
|
|
102
|
-
"sha256": "
|
|
106
|
+
"sha256": "3c36baa2711d6a1c8fe181f5081f9e04b1eaa974006f16f71a3901edbcddfca3"
|
|
103
107
|
},
|
|
104
108
|
{
|
|
105
109
|
"path": "commands.src/phase.md",
|
|
106
|
-
"sha256": "
|
|
110
|
+
"sha256": "21b417f32008e76fd9d3039bd71e6eb2556f5e4a5e214b05a1cded57a14193e1"
|
|
107
111
|
},
|
|
108
112
|
{
|
|
109
113
|
"path": "commands.src/quick.md",
|
|
110
|
-
"sha256": "
|
|
114
|
+
"sha256": "7d7ae50905dac714dfaf491b038c97c809e38fda49a783f0745aaa4c15cc485b"
|
|
111
115
|
},
|
|
112
116
|
{
|
|
113
117
|
"path": "commands.src/replan.md",
|
|
114
|
-
"sha256": "
|
|
118
|
+
"sha256": "e27e6057039138cb81d0a3041d652580f2eba99ace8b17f68ccbe89abcef303a"
|
|
115
119
|
},
|
|
116
120
|
{
|
|
117
121
|
"path": "commands.src/store-wisdom.md",
|
|
118
|
-
"sha256": "
|
|
122
|
+
"sha256": "f6427b6ad2ea671d7d6ab1c24cea4e6495e0fa14d4266d2f1c4863ed92b03e58"
|
|
119
123
|
},
|
|
120
124
|
{
|
|
121
125
|
"path": "commands.src/synthesize.md",
|
|
122
|
-
"sha256": "
|
|
126
|
+
"sha256": "41218772abe8c2d756b0851cdb14efaa59208dd5905119da374a436a608b4e8a"
|
|
123
127
|
},
|
|
124
128
|
{
|
|
125
129
|
"path": "commands.src/unstuck.md",
|
|
126
|
-
"sha256": "
|
|
130
|
+
"sha256": "72f093e0578b19745940741fc7062845196fe70110b6987af66fa44cfae5b154"
|
|
127
131
|
},
|
|
128
132
|
{
|
|
129
133
|
"path": ".claude/commands/infra.md",
|
|
130
|
-
"sha256": "
|
|
134
|
+
"sha256": "06cd17689be763718ad2ebeded8a86c4d784c4e4ccf959828853f35b7c480d15"
|
|
131
135
|
},
|
|
132
136
|
{
|
|
133
137
|
"path": ".claude/commands/log-decision.md",
|
|
134
|
-
"sha256": "
|
|
138
|
+
"sha256": "b8964c64ed6d576573f34e8a2f050d880c4d60ccc7f63f0bf8b29e31be418063"
|
|
135
139
|
},
|
|
136
140
|
{
|
|
137
141
|
"path": ".claude/commands/log-issue.md",
|
|
138
|
-
"sha256": "
|
|
142
|
+
"sha256": "ba448c1b93b496e60ac59e14c126c014daf53e02ed60556d4e9eff2e0700d382"
|
|
139
143
|
},
|
|
140
144
|
{
|
|
141
145
|
"path": ".claude/commands/overview.md",
|
|
142
|
-
"sha256": "
|
|
146
|
+
"sha256": "3c36baa2711d6a1c8fe181f5081f9e04b1eaa974006f16f71a3901edbcddfca3"
|
|
143
147
|
},
|
|
144
148
|
{
|
|
145
149
|
"path": ".claude/commands/phase.md",
|
|
146
|
-
"sha256": "
|
|
150
|
+
"sha256": "21b417f32008e76fd9d3039bd71e6eb2556f5e4a5e214b05a1cded57a14193e1"
|
|
147
151
|
},
|
|
148
152
|
{
|
|
149
153
|
"path": ".claude/commands/quick.md",
|
|
150
|
-
"sha256": "
|
|
154
|
+
"sha256": "7d7ae50905dac714dfaf491b038c97c809e38fda49a783f0745aaa4c15cc485b"
|
|
151
155
|
},
|
|
152
156
|
{
|
|
153
157
|
"path": ".claude/commands/replan.md",
|
|
154
|
-
"sha256": "
|
|
158
|
+
"sha256": "e27e6057039138cb81d0a3041d652580f2eba99ace8b17f68ccbe89abcef303a"
|
|
155
159
|
},
|
|
156
160
|
{
|
|
157
161
|
"path": ".claude/commands/store-wisdom.md",
|
|
158
|
-
"sha256": "
|
|
162
|
+
"sha256": "f6427b6ad2ea671d7d6ab1c24cea4e6495e0fa14d4266d2f1c4863ed92b03e58"
|
|
159
163
|
},
|
|
160
164
|
{
|
|
161
165
|
"path": ".claude/commands/synthesize.md",
|
|
162
|
-
"sha256": "
|
|
166
|
+
"sha256": "41218772abe8c2d756b0851cdb14efaa59208dd5905119da374a436a608b4e8a"
|
|
163
167
|
},
|
|
164
168
|
{
|
|
165
169
|
"path": ".claude/commands/unstuck.md",
|
|
166
|
-
"sha256": "
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"path": ".cursor/commands/infra.md",
|
|
170
|
-
"sha256": "d6f7a7ee93f76a4d68aeb74c1f43aa76b969043ac59fbc22b02675e05a6dfee5"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
"path": ".cursor/commands/log-decision.md",
|
|
174
|
-
"sha256": "3a4ea21091306d2cf1d24595318c4a0bb15e9fd4283d5fb96fc26f2749f26f73"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"path": ".cursor/commands/log-issue.md",
|
|
178
|
-
"sha256": "abf7199d735f7c994c628711e5aabd661a0656f13ac5723f0a8ffc2f048ad027"
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"path": ".cursor/commands/overview.md",
|
|
182
|
-
"sha256": "9ee65f44d44362aaa37e5df7ed95eb7d386cec6e2045a2f87a81b80da343ac00"
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
"path": ".cursor/commands/phase.md",
|
|
186
|
-
"sha256": "5a2bac0d8dc36892256e49ddfd6bccac36e1d71dbc4cc0602ac337e398a0733e"
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
"path": ".cursor/commands/quick.md",
|
|
190
|
-
"sha256": "771060033625e721b6a96f774aee4131e65ac2b0c481180004dfa8b8cef5d563"
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
"path": ".cursor/commands/replan.md",
|
|
194
|
-
"sha256": "3ad268b74c0218ae3530e3e7b86b75d9fd26bd98a79a74760efe767a63c251a2"
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"path": ".cursor/commands/store-wisdom.md",
|
|
198
|
-
"sha256": "95d553ed835888c36b5ff188844e76c3d8c3695654904ab1284766574938c26c"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
"path": ".cursor/commands/synthesize.md",
|
|
202
|
-
"sha256": "128067091a83934b7cc0c071713c7936cb4905cbcdd57831cecaac5301a20950"
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
"path": ".cursor/commands/unstuck.md",
|
|
206
|
-
"sha256": "d076cc6307af467f79ea41a934c1e14f2a08b01db93e80e912ab77ebd464f7be"
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
"path": ".cursor/rules/anpunkit.md",
|
|
210
|
-
"sha256": "f7ebf7b8a7d8cb6ad7cef55e06f7d36477cf0859b6f974dbb07059e81838a939"
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"path": "playwright.config.ts",
|
|
214
|
-
"sha256": "32091109fa51b085ddf562d2896de9b25b69fb6302461bb06212078892cb994a"
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
"path": "e2e/global-setup.ts",
|
|
218
|
-
"sha256": "f9fd377d45bad7925e7645b94f5a839ee5a781f51b5ad9f1b3a8011d527f3317"
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"path": "docker-compose.test.yml",
|
|
222
|
-
"sha256": "03d3d89354769abcfb2abb42540b4fd9d2bfcc382f62815822db9c910c01d9f7"
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
"path": "scripts/e2e-stack.sh",
|
|
226
|
-
"sha256": "98a6ab95e19e3b560887f6c7e935a1947fe59d5cf881f0da8286db66580a7ce4"
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
"path": "scripts/auth-setup.sh",
|
|
230
|
-
"sha256": "bb30646047a83bf857bf0ffc8cef0560f2ddf012d48a19185407f10740d8fa43"
|
|
170
|
+
"sha256": "72f093e0578b19745940741fc7062845196fe70110b6987af66fa44cfae5b154"
|
|
231
171
|
},
|
|
232
172
|
{
|
|
233
173
|
"path": "scripts/regression.sh",
|
|
@@ -251,15 +191,15 @@
|
|
|
251
191
|
},
|
|
252
192
|
{
|
|
253
193
|
"path": "create-anpunkit/package.json",
|
|
254
|
-
"sha256": "
|
|
194
|
+
"sha256": "f8b2c8d09f9a32f98bdcac68056adc696a84ab41c2d2497ba5e63f98a1dccb76"
|
|
255
195
|
},
|
|
256
196
|
{
|
|
257
197
|
"path": "create-anpunkit/bin/cli.js",
|
|
258
|
-
"sha256": "
|
|
198
|
+
"sha256": "b726046c637e1383bdf5aadf31d027fdab436f8ba7620d8812a25d87a8dc4d92"
|
|
259
199
|
},
|
|
260
200
|
{
|
|
261
201
|
"path": "create-anpunkit/build.sh",
|
|
262
|
-
"sha256": "
|
|
202
|
+
"sha256": "77f9b11ed5012429fa71fa7a0249e3825d3eb39a426629d3a1e014b8571ab9f9"
|
|
263
203
|
},
|
|
264
204
|
{
|
|
265
205
|
"path": "create-anpunkit/README.md",
|
|
@@ -268,9 +208,8 @@
|
|
|
268
208
|
],
|
|
269
209
|
"hybrid": [
|
|
270
210
|
".claude/settings.json",
|
|
271
|
-
".cursor/hooks.json",
|
|
272
211
|
".gitignore",
|
|
273
212
|
"docs/DESIGN_LOG.md"
|
|
274
213
|
],
|
|
275
|
-
"generated_from": "commands.src/ -> .claude/commands/
|
|
214
|
+
"generated_from": "commands.src/ -> .claude/commands/"
|
|
276
215
|
}
|
|
@@ -3,16 +3,20 @@ description: Provision or verify Azure infrastructure. Generates Bicep, shows wh
|
|
|
3
3
|
argument-hint: [provision | verify | update <what changed> | regenerate-env | auth-proof]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
compression: user (.claude/ref/compression.md). You are the ORCHESTRATOR.
|
|
7
7
|
|
|
8
8
|
Action: $ARGUMENTS (default: "provision" if INFRA.md missing, "verify" if present)
|
|
9
9
|
|
|
10
|
+
Only meaningful when docs/OVERVIEW.md has `infra_needed: true`. If
|
|
11
|
+
`infra_needed: false`, tell me this project has no infra phase and STOP.
|
|
12
|
+
|
|
10
13
|
---
|
|
11
14
|
|
|
12
15
|
## PRE-FLIGHT
|
|
13
16
|
|
|
14
|
-
1.
|
|
15
|
-
|
|
17
|
+
1. Confirm cloud CLI auth per the project's knowledge doc (Azure:
|
|
18
|
+
`knowledge/azure.md` ritual — `bash scripts/auth-setup.sh`; materialize it if
|
|
19
|
+
absent). If it fails, STOP and tell me the exact command to run.
|
|
16
20
|
|
|
17
21
|
2. Determine mode from $ARGUMENTS or default logic.
|
|
18
22
|
|
|
@@ -3,7 +3,7 @@ description: Record an architectural decision in docs/DESIGN_LOG.md. Use only wh
|
|
|
3
3
|
argument-hint: [what changed]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
compression: user (.claude/ref/compression.md).
|
|
7
7
|
|
|
8
8
|
Append an architectural decision to docs/DESIGN_LOG.md. Change: $ARGUMENTS
|
|
9
9
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: Bootstrap a new project. Runs design-research, research review, double grill (incl. data/state flow), datasource-understanding baseline, and planning. Run once per project.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
compression: user (.claude/ref/compression.md).
|
|
6
6
|
|
|
7
7
|
Recommended: run from plan mode (Shift+Tab). Planning agents are read-only by
|
|
8
8
|
tool grant; plan mode adds a read-only gate on the main session too. Optional.
|
|
@@ -16,11 +16,17 @@ Goal: stand up a fresh project workspace with a well-grounded plan.
|
|
|
16
16
|
### Round 1 — Initial grill
|
|
17
17
|
|
|
18
18
|
1. Run the `grill-me` skill to interrogate me. Goal: understand initial scope.
|
|
19
|
-
Cover: project purpose, success criteria, external services,
|
|
20
|
-
needed (type + sizing), region,
|
|
21
|
-
|
|
19
|
+
Cover: project purpose, success criteria, external services, cloud/infra
|
|
20
|
+
services needed (type + sizing, if any), region, known constraints, unknowns.
|
|
21
|
+
ALSO establish:
|
|
22
|
+
- **project_type**: web app / desktop app / script / library / other. This
|
|
23
|
+
drives the deterministic flag derivation (step 6) and knowledge-doc
|
|
24
|
+
selection.
|
|
22
25
|
- **has_frontend**: is there a browser-facing UI? If yes, what is the frontend
|
|
23
26
|
root path (e.g. `src/web/`, `app/`)? This drives the mandatory-E2E path match.
|
|
27
|
+
- **deploy meaning**: what does "done and shipped" mean for this project —
|
|
28
|
+
cloud deploy (where?), package publish (which registry?), verified
|
|
29
|
+
install/run instructions, or none (why)? This sets `deploy_kind`.
|
|
24
30
|
Do not stop early. Do not write OVERVIEW.md yet.
|
|
25
31
|
|
|
26
32
|
Store the round-1 answers as working context — do NOT write OVERVIEW.md yet.
|
|
@@ -86,11 +92,23 @@ Store the round-1 answers as working context — do NOT write OVERVIEW.md yet.
|
|
|
86
92
|
- Project purpose and success criteria
|
|
87
93
|
- Scope and constraints (informed by research findings)
|
|
88
94
|
- External services with confirmed capabilities/limits
|
|
89
|
-
-
|
|
90
|
-
- Deployment target (azure-deployed or local-docker for E2E)
|
|
95
|
+
- Cloud/infra services section: every service with expected SKU (if any)
|
|
91
96
|
- `has_frontend: true|false` and, if true, the frontend root path
|
|
92
97
|
- Known risks / open questions (if any remain)
|
|
93
98
|
|
|
99
|
+
PROJECT FLAGS (hard rule 10 — declared once here, recorded verbatim, never
|
|
100
|
+
re-derived later):
|
|
101
|
+
- `project_type: web app|desktop app|script|library|other` (declared in round 1)
|
|
102
|
+
- `infra_needed: true|false` — derived: application types (web app, desktop
|
|
103
|
+
app, service) → true; script / library → false. Overridable here with a
|
|
104
|
+
stated reason.
|
|
105
|
+
- `e2e_kind: browser|cli|http|library-api` — derived: has_frontend → browser;
|
|
106
|
+
backend/API service → http; script → cli; library → library-api.
|
|
107
|
+
- `deploy_kind: cloud-deploy|package-publish|install-run-verified|none(<reason>)`
|
|
108
|
+
(from the round-1 "deploy meaning" answer).
|
|
109
|
+
- `knowledge_docs:` — derived list: web app or has_frontend → `knowledge/webapp.md`;
|
|
110
|
+
Azure services declared OR Azure cloud-deploy → `knowledge/azure.md`; else empty.
|
|
111
|
+
|
|
94
112
|
OVERVIEW.md is written HERE — after the re-grill, not before.
|
|
95
113
|
|
|
96
114
|
7. Write docs/DATAFLOW.md — a state-transition table per key object, driven by the
|
|
@@ -112,8 +130,10 @@ Store the round-1 answers as working context — do NOT write OVERVIEW.md yet.
|
|
|
112
130
|
|
|
113
131
|
8. Hand OVERVIEW.md + DATAFLOW.md + design-research findings to the `planner`
|
|
114
132
|
subagent. PLAN.md MUST:
|
|
115
|
-
- Start with Phase 0 (infra setup) as the first entry
|
|
116
|
-
|
|
133
|
+
- Start with Phase 0 (infra setup) as the first entry IFF `infra_needed: true`;
|
|
134
|
+
when `infra_needed: false` there is no Phase 0 — Phase 1 is the first entry.
|
|
135
|
+
- End with a final code phase whose deploy task completes `deploy_kind`
|
|
136
|
+
(cloud deploy / package publish / verified install-run / none-with-reason).
|
|
117
137
|
- For any phase whose `changes` touch the frontend root: include ≥1
|
|
118
138
|
UI-existence acceptance criterion naming the specific user-visible
|
|
119
139
|
interactive element the phase introduces (not "page renders 200").
|
|
@@ -138,15 +158,18 @@ Store the round-1 answers as working context — do NOT write OVERVIEW.md yet.
|
|
|
138
158
|
|
|
139
159
|
phase: 0 (pending)
|
|
140
160
|
completed: project bootstrapped — design research, research review, double grill (incl. data/state flow) done
|
|
141
|
-
next: run /infra to provision
|
|
161
|
+
next: <if infra_needed: "run /infra to provision infrastructure (Phase 0)"; else "run /phase 1">
|
|
142
162
|
blocker: none
|
|
143
163
|
|
|
144
164
|
```
|
|
165
|
+
When `infra_needed: false`, set `phase: 1 (pending)` and the next line to
|
|
166
|
+
"run /phase 1".
|
|
145
167
|
10. Create docs/ISSUES.md with header `# Issues` and `## Archived` section.
|
|
146
168
|
|
|
147
169
|
11. Create empty docs/HISTORY.md.
|
|
148
170
|
|
|
149
|
-
12. Create docs/INFRA.md from the template (populated by /infra).
|
|
171
|
+
12. Create docs/INFRA.md from the template (populated by /infra). Skip when
|
|
172
|
+
`infra_needed: false`.
|
|
150
173
|
|
|
151
174
|
13. Create docs/ENDPOINTS.md:
|
|
152
175
|
```
|
|
@@ -162,5 +185,7 @@ case NAMES (no values). I confirm the case-name set is COMPLETE here — these n
|
|
|
162
185
|
are the up-front behavioral contract; values get filled + reviewed per phase at
|
|
163
186
|
`/phase` SPEC REVIEW.
|
|
164
187
|
|
|
165
|
-
Remind me
|
|
166
|
-
|
|
188
|
+
Remind me of the next step per `infra_needed`:
|
|
189
|
+
- `infra_needed: true` → "Run `/infra` next to provision the environment (Phase 0)
|
|
190
|
+
and run the one-time AUTH PROOF before starting Phase 1."
|
|
191
|
+
- `infra_needed: false` → "No infra phase — run `/phase 1` to start."
|
|
@@ -3,7 +3,7 @@ description: Run one phase end-to-end. TDD phases run SPEC fill -> SPEC REVIEW -
|
|
|
3
3
|
argument-hint: [phase number]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
compression: user (.claude/ref/compression.md). You are the ORCHESTRATOR. Route work to subagents —
|
|
7
7
|
you do NOT implement, fill specs, or debug yourself.
|
|
8
8
|
|
|
9
9
|
Note: subagents cannot talk to the user. Only YOU can.
|
|
@@ -14,8 +14,9 @@ Target phase: $ARGUMENTS (default: the phase marked pending in docs/PLAN.md)
|
|
|
14
14
|
|
|
15
15
|
## 0. PRE-FLIGHT
|
|
16
16
|
|
|
17
|
-
a. INFRA CHECK (phases > 0):
|
|
18
|
-
-
|
|
17
|
+
a. INFRA CHECK (phases > 0): read docs/OVERVIEW.md `infra_needed`.
|
|
18
|
+
- `infra_needed: false` -> no Phase 0 exists; SKIP this check entirely.
|
|
19
|
+
- `infra_needed: true`: read docs/INFRA.md. If Phase 0 not done -> STOP.
|
|
19
20
|
Tell me: "Phase 0 (infra) not complete. Run `/infra` first."
|
|
20
21
|
- Exception: if $ARGUMENTS is "0", tell me to run `/infra` directly.
|
|
21
22
|
|
|
@@ -29,13 +30,14 @@ b. PHASE STATE CHECK: Read docs/STATE.md and docs/PLAN.md.
|
|
|
29
30
|
c. FINAL PHASE CHECK: Read docs/PLAN.md. Is this the last phase (no further
|
|
30
31
|
pending phases after this one)? Record this as IS_FINAL_PHASE=true/false.
|
|
31
32
|
|
|
32
|
-
d. AUTH LIVENESS GATE (hard rule 16): if this phase
|
|
33
|
-
|
|
33
|
+
d. AUTH LIVENESS GATE (hard rule 16): only if this phase touches a credentialed
|
|
34
|
+
external service and will run a boundary/E2E suite. Skip otherwise.
|
|
34
35
|
- If INFRA.md has no `AUTH PROOF: PASS` marker -> STOP: "Auth never proven
|
|
35
36
|
reusable. Run `/infra` first."
|
|
36
|
-
- Run
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
- Run the liveness command recorded in docs/INFRA.md `## AUTH` (Azure projects:
|
|
38
|
+
the ritual per `knowledge/azure.md`, i.e. `bash scripts/auth-setup.sh`) and,
|
|
39
|
+
for each external system this phase touches (docs/DATAFLOW.md external rows +
|
|
40
|
+
docs/ENDPOINTS.md auth column), confirm its credential is obtainable
|
|
39
41
|
headlessly. Any failure -> boundary/E2E is BLOCKED; tell me what to run; the
|
|
40
42
|
MOCK suite may still proceed.
|
|
41
43
|
|
|
@@ -45,6 +47,10 @@ e. FRONTEND TRIGGER (hard rule 13): read docs/OVERVIEW.md `has_frontend` + the
|
|
|
45
47
|
This is a PATH MATCH, not a judgment call. Record FRONTEND_PHASE — it gates the
|
|
46
48
|
`ui` boundary run + evidence at CLOSE.
|
|
47
49
|
|
|
50
|
+
f. FLAG BASELINES: read docs/OVERVIEW.md `e2e_kind` + `deploy_kind`. These are the
|
|
51
|
+
project baselines; §1 binds this phase's effective E2E_KIND and (final phase)
|
|
52
|
+
confirms DEPLOY_KIND.
|
|
53
|
+
|
|
48
54
|
---
|
|
49
55
|
|
|
50
56
|
## 1. RESEARCH + TDD APPLICABILITY
|
|
@@ -75,6 +81,11 @@ Then classify the phase:
|
|
|
75
81
|
to me, so I can override to non-TDD BEFORE SPEC fill fires. (Hard rule 11: never
|
|
76
82
|
downgrade a TDD phase just to dodge the gates.)
|
|
77
83
|
|
|
84
|
+
FLAG BINDING (hard rule 10): bind this phase's effective E2E_KIND — `browser` iff
|
|
85
|
+
FRONTEND_PHASE, else the OVERVIEW `e2e_kind` baseline. If IS_FINAL_PHASE, restate
|
|
86
|
+
`deploy_kind` and confirm the final phase's deploy task realizes it. STATE both
|
|
87
|
+
bindings. Divergence from OVERVIEW is mine to resolve — never silently re-derived.
|
|
88
|
+
|
|
78
89
|
=====================================================================
|
|
79
90
|
## TDD PATH (TDD_PHASE=true)
|
|
80
91
|
=====================================================================
|
|
@@ -160,11 +171,16 @@ fixtures + research + the generated test file paths (it MAY read the tests — f
|
|
|
160
171
|
before logic, no overfit — but must NOT edit tests, spec, or fixtures). Fill to
|
|
161
172
|
green against the spec. Budget 3, WARN@2, STUCK@3.
|
|
162
173
|
|
|
163
|
-
Run the BOUNDARY suite (real HTTP/CLI/message; `TEST_MODE=real`)
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
174
|
+
Run the BOUNDARY suite (real HTTP/CLI/message; `TEST_MODE=real`) — the outer surface
|
|
175
|
+
per this phase's bound E2E_KIND. Capture evidence (hard rule 13):
|
|
176
|
+
- `browser` (FRONTEND_PHASE): dispatch `e2e-runner` to run its emitted `ui` specs —
|
|
177
|
+
MANDATORY — reads INFRA.md target, runs the stack ritual per `knowledge/webapp.md`
|
|
178
|
+
(`scripts/e2e-stack.sh up` / Playwright / `down`), captures a screenshot at EACH
|
|
179
|
+
UI-existence assertion regardless of pass/fail to docs/evidence/e2e-phase-<n>/,
|
|
180
|
+
with a summary in docs/research/e2e-<slug>.md.
|
|
181
|
+
- `cli` / `http` / `library-api`: the real-mode boundary suite IS the outer run;
|
|
182
|
+
capture its transcript (invocation + result) to docs/evidence/e2e-phase-<n>/.
|
|
183
|
+
No separate emitter is dispatched.
|
|
168
184
|
|
|
169
185
|
PHASE GATE (rule 5) -> go to §8/§9/§10 (see GATE below).
|
|
170
186
|
|
|
@@ -177,7 +193,8 @@ PHASE GATE (rule 5) -> go to §8/§9/§10 (see GATE below).
|
|
|
177
193
|
Dispatch `implementer` (legacy mode) with phase spec + research summary.
|
|
178
194
|
Returns STUCK -> go to ESCALATE.
|
|
179
195
|
If IS_FINAL_PHASE: phase spec includes the deploy task; confirm the return
|
|
180
|
-
|
|
196
|
+
realizes `deploy_kind` (deployed URL / published version / verified install-run)
|
|
197
|
+
before proceeding.
|
|
181
198
|
|
|
182
199
|
## 3N. TEST (blind)
|
|
183
200
|
|
|
@@ -237,8 +254,11 @@ REGRESSION + COVERAGE GATES (before closing — all FAIL HARD, do not close):
|
|
|
237
254
|
IS_FINAL_PHASE: any transition still PENDING -> FAIL HARD. (The case→test half is
|
|
238
255
|
already enforced by `spec-conformance.sh` at §6 — every case-id is cited by a
|
|
239
256
|
boundary test, which by placement lands in tests/regression/.)
|
|
240
|
-
- EVIDENCE (
|
|
241
|
-
|
|
257
|
+
- EVIDENCE (hard rule 13): docs/evidence/e2e-phase-<n>/ must contain the boundary
|
|
258
|
+
run's evidence — per-UI-existence-assertion screenshots for `browser`, or the
|
|
259
|
+
captured boundary-run transcript for `cli`/`http`/`library-api`. Required whenever
|
|
260
|
+
this phase closes an E2E_KIND boundary (browser: FRONTEND_PHASE; others: the phase
|
|
261
|
+
ships/changes the outer surface). Empty when required -> FAIL HARD.
|
|
242
262
|
- IF IS_FINAL_PHASE: additionally run `bash scripts/regression.sh --real` (full real
|
|
243
263
|
corpus). A failure blocks close.
|
|
244
264
|
|
|
@@ -256,24 +276,28 @@ IF IS_FINAL_PHASE — FINAL CLOSE sequence:
|
|
|
256
276
|
a. Run `/synthesize` — pass the signal that this is the final phase so the
|
|
257
277
|
synthesizer runs the extended pass (OVERVIEW.md + README.md update).
|
|
258
278
|
|
|
259
|
-
b.
|
|
279
|
+
b. Surface a "READY TO USE" summary to me, shaped by `deploy_kind`:
|
|
260
280
|
```
|
|
261
281
|
✅ PROJECT COMPLETE
|
|
262
282
|
|
|
263
|
-
|
|
283
|
+
<deploy_kind line:
|
|
284
|
+
cloud-deploy -> Deployed at: <base URL from docs/INFRA.md "Deployed base URL">
|
|
285
|
+
package-publish -> Published: <package name> @ <version> to <registry>
|
|
286
|
+
install-run-verified -> Verified install/run: <the exact commands, confirmed working>
|
|
287
|
+
none(<reason>) -> Not shipped: <reason>>
|
|
264
288
|
|
|
265
|
-
##
|
|
266
|
-
<paste the full docs/ENDPOINTS.md table
|
|
289
|
+
## Interface
|
|
290
|
+
<web/http: paste the full docs/ENDPOINTS.md table; cli: the command surface;
|
|
291
|
+
library: the public API surface>
|
|
267
292
|
|
|
268
293
|
## Quick start
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
- Health check: GET <base URL>/health
|
|
294
|
+
<how to use it, per deploy_kind — base URL + auth + health check for a service;
|
|
295
|
+
install + invoke for a CLI; import + call for a library>
|
|
272
296
|
|
|
273
297
|
## Docs
|
|
274
|
-
- Full
|
|
298
|
+
- Full interface catalogue: docs/ENDPOINTS.md
|
|
275
299
|
- Object/state flow: docs/DATAFLOW.md
|
|
276
|
-
- Infrastructure: docs/INFRA.md
|
|
300
|
+
- Infrastructure: docs/INFRA.md (if infra_needed)
|
|
277
301
|
- Project history: docs/HISTORY.md
|
|
278
302
|
```
|
|
279
303
|
Tell me the project is complete and ready to use.
|
|
@@ -293,6 +317,7 @@ After each step, update docs/STATE.md:
|
|
|
293
317
|
phase: <n> (in progress)
|
|
294
318
|
tdd: <true|false>
|
|
295
319
|
frontend_phase: <true|false>
|
|
320
|
+
e2e_kind: <browser|cli|http|library-api — the bound value>
|
|
296
321
|
completed: <steps done so far>
|
|
297
322
|
next: <exact next step>
|
|
298
323
|
blocker: <none or open issue>
|
|
@@ -3,7 +3,7 @@ description: Make a small, obvious change directly — no agent chain, no phase
|
|
|
3
3
|
argument-hint: [what to change]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
compression: user (.claude/ref/compression.md). Apply `karpathy-guidelines` skill.
|
|
7
7
|
|
|
8
8
|
Purpose: skip the orchestration tax for a 5-line fix.
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ description: Revise docs/PLAN.md when it no longer matches reality — add, cut,
|
|
|
3
3
|
argument-hint: [what changed about the plan]
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
compression: user (.claude/ref/compression.md).
|
|
7
7
|
|
|
8
8
|
Recommended: run from plan mode (Shift+Tab). Optional; the command stops for
|
|
9
9
|
your approval regardless.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
description: Promote resolved issues and research findings from this project to the shared anpunkit-kb repo. Analyzes, proposes candidates for your review, then pushes approved entries.
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
compression: user (.claude/ref/compression.md). You are the ORCHESTRATOR.
|
|
6
6
|
|
|
7
7
|
Purpose: share what this project learned with all future projects.
|
|
8
8
|
Only resolved issues and completed research qualify. Open issues do NOT.
|