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.
Files changed (63) hide show
  1. package/bin/cli.js +2 -2
  2. package/package.json +2 -3
  3. package/template/.claude/agents/debugger.md +1 -1
  4. package/template/.claude/agents/e2e-runner.md +13 -3
  5. package/template/.claude/agents/implementer.md +1 -1
  6. package/template/.claude/agents/infra-provisioner.md +53 -59
  7. package/template/.claude/agents/planner.md +35 -29
  8. package/template/.claude/agents/researcher.md +16 -1
  9. package/template/.claude/agents/spec-author.md +9 -1
  10. package/template/.claude/agents/synthesizer.md +1 -1
  11. package/template/.claude/agents/test-author.md +9 -1
  12. package/template/.claude/anpunkit-manifest.json +52 -113
  13. package/template/.claude/commands/infra.md +7 -3
  14. package/template/.claude/commands/log-decision.md +1 -1
  15. package/template/.claude/commands/log-issue.md +1 -1
  16. package/template/.claude/commands/overview.md +37 -12
  17. package/template/.claude/commands/phase.md +50 -25
  18. package/template/.claude/commands/quick.md +1 -1
  19. package/template/.claude/commands/replan.md +1 -1
  20. package/template/.claude/commands/store-wisdom.md +1 -1
  21. package/template/.claude/commands/synthesize.md +1 -1
  22. package/template/.claude/commands/unstuck.md +1 -1
  23. package/template/.claude/hooks/session-start.sh +5 -11
  24. package/template/.claude/ref/compression.md +56 -0
  25. package/template/.claude/skills/karpathy-guidelines/SKILL.md +1 -1
  26. package/template/AGENTS.md +115 -84
  27. package/template/CLAUDE.md +4 -9
  28. package/template/README.md +91 -122
  29. package/template/commands.src/infra.md +7 -3
  30. package/template/commands.src/log-decision.md +1 -1
  31. package/template/commands.src/log-issue.md +1 -1
  32. package/template/commands.src/overview.md +37 -12
  33. package/template/commands.src/phase.md +50 -25
  34. package/template/commands.src/quick.md +1 -1
  35. package/template/commands.src/replan.md +1 -1
  36. package/template/commands.src/store-wisdom.md +1 -1
  37. package/template/commands.src/synthesize.md +1 -1
  38. package/template/commands.src/unstuck.md +1 -1
  39. package/template/docs/DESIGN_LOG.md +222 -8
  40. package/template/knowledge/azure.md +161 -0
  41. package/template/knowledge/webapp.md +265 -0
  42. package/template/setup.sh +30 -111
  43. package/template/.claude/hooks/cursor-session-start.sh +0 -17
  44. package/template/.claude/skills/caveman/SKILL.md +0 -39
  45. package/template/.cursor/commands/infra.md +0 -82
  46. package/template/.cursor/commands/log-decision.md +0 -29
  47. package/template/.cursor/commands/log-issue.md +0 -23
  48. package/template/.cursor/commands/overview.md +0 -162
  49. package/template/.cursor/commands/phase.md +0 -296
  50. package/template/.cursor/commands/quick.md +0 -25
  51. package/template/.cursor/commands/replan.md +0 -73
  52. package/template/.cursor/commands/store-wisdom.md +0 -191
  53. package/template/.cursor/commands/synthesize.md +0 -22
  54. package/template/.cursor/commands/unstuck.md +0 -36
  55. package/template/.cursor/hooks.json +0 -14
  56. package/template/.cursor/rules/anpunkit.md +0 -11
  57. package/template/anpunkit.png +0 -0
  58. package/template/docker-compose.test.yml +0 -34
  59. package/template/e2e/global-setup.ts +0 -57
  60. package/template/index.html +0 -339
  61. package/template/playwright.config.ts +0 -28
  62. package/template/scripts/auth-setup.sh +0 -51
  63. package/template/scripts/e2e-stack.sh +0 -65
@@ -1,17 +1,17 @@
1
1
  {
2
- "version": "2.2.0",
2
+ "version": "2.3.0",
3
3
  "files": [
4
4
  {
5
5
  "path": "AGENTS.md",
6
- "sha256": "0e4bdc92e8e33355fdfca8d7c3f644bd5f6b91d8b11b1837c65241c25a8dd695"
6
+ "sha256": "eb9e76938dd765cdc761cb53d9030f03d67edf04f1228bdb8fed4332273a29ee"
7
7
  },
8
8
  {
9
9
  "path": "CLAUDE.md",
10
- "sha256": "132e64b4a9a5a178deb4db810324f79338c2af65d598fd5e26f183225c2a4d98"
10
+ "sha256": "2dbf55cd7a8ad2279eab8ac2e3637855f25e5c96b77fe48bd4d5cfe3e36508ca"
11
11
  },
12
12
  {
13
13
  "path": "README.md",
14
- "sha256": "ca353eea88978b65dab78355ec304de0b8fb5d8ecb54d4316ee493de4459f002"
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": "77e994cbd6db69dde57fbdd8ce1460bc61cd24ad338e816303f7243165001e32"
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": "4ddc97252275db82356489061b87b71ac39bd9e4cc7a47d0501132c7c7024a52"
38
+ "sha256": "843b6a96921d3e0957f507cba77e0b25125b946bfe2b3d20439e9627b49f3e6b"
27
39
  },
28
40
  {
29
41
  "path": ".claude/agents/e2e-runner.md",
30
- "sha256": "c454ad3217d6adc21e0e6cda5746e3094ea299cd7e71f761e1f417a7d6a2391e"
42
+ "sha256": "b5712614f0f8e09bd1884250258231bd69f019ed15018566fe06b67d092e7d18"
31
43
  },
32
44
  {
33
45
  "path": ".claude/agents/implementer.md",
34
- "sha256": "e6598fdb77657616f821695323653cfdded44db85a428597d1c8074a56bbf816"
46
+ "sha256": "1a1d7cff9f64d519742932e36a0b89ee951d07a493493c37f27d1df00cd9e41f"
35
47
  },
36
48
  {
37
49
  "path": ".claude/agents/infra-provisioner.md",
38
- "sha256": "52a54a2aaaf7e53d28e261f5e01f2693fd0a4883fd93f844a112a742a91f9149"
50
+ "sha256": "6f7cba54296c2f46bc382a59007cfe7943fd2f0a713b4af541316247ad00099d"
39
51
  },
40
52
  {
41
53
  "path": ".claude/agents/spec-author.md",
42
- "sha256": "3e352514bfd5eb32f966cfa12014d706d17b3a12ad2155e2f826243c03fb7d0c"
54
+ "sha256": "d2f795b1555bf740af058282705079725ea68eb4293da25b964e11e65343e5d7"
43
55
  },
44
56
  {
45
57
  "path": ".claude/agents/planner.md",
46
- "sha256": "a1a2b86aa5a88d8b9fee9af3a8d10c7f1f09e5a2fb32f831dce38b010c507771"
58
+ "sha256": "7c497def29d093de877747cba350981bc804f477e4e3d48c2173e58a5366b1b4"
47
59
  },
48
60
  {
49
61
  "path": ".claude/agents/researcher.md",
50
- "sha256": "aa54503f8c9998d3aa97aa322c0ba47d23cae8aea6236530ddc2dfc44e7c4658"
62
+ "sha256": "e21a126a37f1054640f4ccd16d8f7719178570a4fa4c29a9e5a472b879589352"
51
63
  },
52
64
  {
53
65
  "path": ".claude/agents/synthesizer.md",
54
- "sha256": "d17de592a3c83f2439ff9be68337d04c9d4933aa2193c68372005a85a2fdec95"
66
+ "sha256": "3d61df0c762eaf6e0d46722bfaab8a67666d06e05d8cc0f1afed03139071ad13"
55
67
  },
56
68
  {
57
69
  "path": ".claude/agents/test-author.md",
58
- "sha256": "adc53adb326424dcb215a5f074c7df3dfcb6644f2c63ce1e9ed68d2810dc8398"
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": "9cfce17a40cebf3bc518f37b33b4fad2c47f43b5913fec03b98e96e1d232bc94"
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": "5423139b03a976713348ed4badd5de65e64fbf04d997e7b692917b1d0baddc3b"
90
+ "sha256": "bb48ebcc401b9893dc7fad38b1a98960f5fdd0673456328bb11a1968e246f6dd"
87
91
  },
88
92
  {
89
93
  "path": "commands.src/infra.md",
90
- "sha256": "fe0e6ba6cf0c2fc3826ab67cd882752e9450677b1ffef440388349f0ba3c4fb6"
94
+ "sha256": "06cd17689be763718ad2ebeded8a86c4d784c4e4ccf959828853f35b7c480d15"
91
95
  },
92
96
  {
93
97
  "path": "commands.src/log-decision.md",
94
- "sha256": "90c1bd5d6e625730e0b735eefc521239a8e1f547e8f1a0e8d2b8d96ca95612ed"
98
+ "sha256": "b8964c64ed6d576573f34e8a2f050d880c4d60ccc7f63f0bf8b29e31be418063"
95
99
  },
96
100
  {
97
101
  "path": "commands.src/log-issue.md",
98
- "sha256": "359967180b5dde14f36cfabda0b0a2bc8bbb17580da557805879ab4e50eabeca"
102
+ "sha256": "ba448c1b93b496e60ac59e14c126c014daf53e02ed60556d4e9eff2e0700d382"
99
103
  },
100
104
  {
101
105
  "path": "commands.src/overview.md",
102
- "sha256": "85a300dcdd94d95c87c25c84d06619a38b5b3679631f68b511da11d7010e5cb8"
106
+ "sha256": "3c36baa2711d6a1c8fe181f5081f9e04b1eaa974006f16f71a3901edbcddfca3"
103
107
  },
104
108
  {
105
109
  "path": "commands.src/phase.md",
106
- "sha256": "60a0e6442c2a3945afc4aec991cd44d48705eb8c142f3c2284db7095bb5441d9"
110
+ "sha256": "21b417f32008e76fd9d3039bd71e6eb2556f5e4a5e214b05a1cded57a14193e1"
107
111
  },
108
112
  {
109
113
  "path": "commands.src/quick.md",
110
- "sha256": "6517eefcc1c6458d441ebea1db736d7070abf6531a7e96c55ae00b90a0763313"
114
+ "sha256": "7d7ae50905dac714dfaf491b038c97c809e38fda49a783f0745aaa4c15cc485b"
111
115
  },
112
116
  {
113
117
  "path": "commands.src/replan.md",
114
- "sha256": "57597623a2118e5867963aa61a04cff7808eb5ce8e2aed5bebb5247cff6be8ad"
118
+ "sha256": "e27e6057039138cb81d0a3041d652580f2eba99ace8b17f68ccbe89abcef303a"
115
119
  },
116
120
  {
117
121
  "path": "commands.src/store-wisdom.md",
118
- "sha256": "960bf4e281d30a451298b5a34c4052cc65be5bc0e9f4a7a91140c7915a2dd362"
122
+ "sha256": "f6427b6ad2ea671d7d6ab1c24cea4e6495e0fa14d4266d2f1c4863ed92b03e58"
119
123
  },
120
124
  {
121
125
  "path": "commands.src/synthesize.md",
122
- "sha256": "db4a19ff627eb22fbc1f78d1e8e2c98d73ab05fdd780afe0ca62b7ce9885c21c"
126
+ "sha256": "41218772abe8c2d756b0851cdb14efaa59208dd5905119da374a436a608b4e8a"
123
127
  },
124
128
  {
125
129
  "path": "commands.src/unstuck.md",
126
- "sha256": "a675a648af299074240d3b7b4aa7ca39d41fdfc44520352c67f0895d5c5c1102"
130
+ "sha256": "72f093e0578b19745940741fc7062845196fe70110b6987af66fa44cfae5b154"
127
131
  },
128
132
  {
129
133
  "path": ".claude/commands/infra.md",
130
- "sha256": "fe0e6ba6cf0c2fc3826ab67cd882752e9450677b1ffef440388349f0ba3c4fb6"
134
+ "sha256": "06cd17689be763718ad2ebeded8a86c4d784c4e4ccf959828853f35b7c480d15"
131
135
  },
132
136
  {
133
137
  "path": ".claude/commands/log-decision.md",
134
- "sha256": "90c1bd5d6e625730e0b735eefc521239a8e1f547e8f1a0e8d2b8d96ca95612ed"
138
+ "sha256": "b8964c64ed6d576573f34e8a2f050d880c4d60ccc7f63f0bf8b29e31be418063"
135
139
  },
136
140
  {
137
141
  "path": ".claude/commands/log-issue.md",
138
- "sha256": "359967180b5dde14f36cfabda0b0a2bc8bbb17580da557805879ab4e50eabeca"
142
+ "sha256": "ba448c1b93b496e60ac59e14c126c014daf53e02ed60556d4e9eff2e0700d382"
139
143
  },
140
144
  {
141
145
  "path": ".claude/commands/overview.md",
142
- "sha256": "85a300dcdd94d95c87c25c84d06619a38b5b3679631f68b511da11d7010e5cb8"
146
+ "sha256": "3c36baa2711d6a1c8fe181f5081f9e04b1eaa974006f16f71a3901edbcddfca3"
143
147
  },
144
148
  {
145
149
  "path": ".claude/commands/phase.md",
146
- "sha256": "60a0e6442c2a3945afc4aec991cd44d48705eb8c142f3c2284db7095bb5441d9"
150
+ "sha256": "21b417f32008e76fd9d3039bd71e6eb2556f5e4a5e214b05a1cded57a14193e1"
147
151
  },
148
152
  {
149
153
  "path": ".claude/commands/quick.md",
150
- "sha256": "6517eefcc1c6458d441ebea1db736d7070abf6531a7e96c55ae00b90a0763313"
154
+ "sha256": "7d7ae50905dac714dfaf491b038c97c809e38fda49a783f0745aaa4c15cc485b"
151
155
  },
152
156
  {
153
157
  "path": ".claude/commands/replan.md",
154
- "sha256": "57597623a2118e5867963aa61a04cff7808eb5ce8e2aed5bebb5247cff6be8ad"
158
+ "sha256": "e27e6057039138cb81d0a3041d652580f2eba99ace8b17f68ccbe89abcef303a"
155
159
  },
156
160
  {
157
161
  "path": ".claude/commands/store-wisdom.md",
158
- "sha256": "960bf4e281d30a451298b5a34c4052cc65be5bc0e9f4a7a91140c7915a2dd362"
162
+ "sha256": "f6427b6ad2ea671d7d6ab1c24cea4e6495e0fa14d4266d2f1c4863ed92b03e58"
159
163
  },
160
164
  {
161
165
  "path": ".claude/commands/synthesize.md",
162
- "sha256": "db4a19ff627eb22fbc1f78d1e8e2c98d73ab05fdd780afe0ca62b7ce9885c21c"
166
+ "sha256": "41218772abe8c2d756b0851cdb14efaa59208dd5905119da374a436a608b4e8a"
163
167
  },
164
168
  {
165
169
  "path": ".claude/commands/unstuck.md",
166
- "sha256": "a675a648af299074240d3b7b4aa7ca39d41fdfc44520352c67f0895d5c5c1102"
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": "e283531b788e94cf9ca604a119e9d581e9cede3e1276770087f2c4874927e567"
194
+ "sha256": "f8b2c8d09f9a32f98bdcac68056adc696a84ab41c2d2497ba5e63f98a1dccb76"
255
195
  },
256
196
  {
257
197
  "path": "create-anpunkit/bin/cli.js",
258
- "sha256": "f96460757110e6a0f81cef750c5b39442ea5589f53ae83b69951555632cce7ec"
198
+ "sha256": "b726046c637e1383bdf5aadf31d027fdab436f8ba7620d8812a25d87a8dc4d92"
259
199
  },
260
200
  {
261
201
  "path": "create-anpunkit/build.sh",
262
- "sha256": "3a5062e46ba09ff23736de08545cefd1c0f30b216c3820bd2ada22e3d0db5b79"
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/ + .cursor/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
- Caveman ULTRA mode. You are the ORCHESTRATOR.
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. Check `az account show` if it fails, STOP.
15
- Tell me: "Run `scripts/auth-setup.sh` first."
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
- Caveman ULTRA mode.
6
+ compression: user (.claude/ref/compression.md).
7
7
 
8
8
  Append an architectural decision to docs/DESIGN_LOG.md. Change: $ARGUMENTS
9
9
 
@@ -3,7 +3,7 @@ description: Log an error to docs/ISSUES.md with root cause + solution, in the c
3
3
  argument-hint: [short error description]
4
4
  ---
5
5
 
6
- Caveman ULTRA mode.
6
+ compression: user (.claude/ref/compression.md).
7
7
 
8
8
  Append an entry to docs/ISSUES.md. Error: $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
- Caveman ULTRA mode.
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, Azure services
20
- needed (type + sizing), region, deployment target (Azure or local for E2E),
21
- known constraints, unknowns. ALSO establish:
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
- - "Azure services" section: every service with expected SKU
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 (always).
116
- - End with a final code phase that contains the deploy task block.
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 Azure infrastructure
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: "Run `/infra` next to provision the Azure environment (Phase 0) and
166
- run the one-time AUTH PROOF before starting Phase 1."
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
- Caveman ULTRA mode. You are the ORCHESTRATOR. Route work to subagents —
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
- - Read docs/INFRA.md. If Phase 0 not done -> STOP.
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 will run a boundary/E2E suite,
33
- confirm every credential it needs is live NOW.
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 `scripts/auth-setup.sh --check` (Entra token obtainable + not expired)
37
- and, for each external system this phase touches (docs/DATAFLOW.md external
38
- rows + docs/ENDPOINTS.md auth column), confirm its credential is obtainable
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`). If FRONTEND_PHASE,
164
- `e2e-runner` runs its emitted `ui` specs MANDATORY (hard rule 13) — reads INFRA.md
165
- target, runs `scripts/e2e-stack.sh up` / Playwright / `down`, and captures a
166
- screenshot at EACH UI-existence assertion regardless of pass/fail to
167
- docs/evidence/e2e-phase-<n>/, with a summary in docs/research/e2e-<slug>.md.
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
- includes "deployed URL" before proceeding.
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 (FRONTEND_PHASE only, hard rule 13): docs/evidence/e2e-phase-<n>/ must
241
- contain at least the per-UI-existence-assertion screenshots. Empty -> FAIL HARD.
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. Read docs/ENDPOINTS.md. Surface a "READY TO USE" summary to me:
279
+ b. Surface a "READY TO USE" summary to me, shaped by `deploy_kind`:
260
280
  ```
261
281
  ✅ PROJECT COMPLETE
262
282
 
263
- Deployed at: <base URL from docs/INFRA.md "Deployed base URL">
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
- ## Endpoints
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
- - Base URL: <URL>
270
- - Auth: <Bearer token / API key / none from ENDPOINTS.md>
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 endpoint catalogue: docs/ENDPOINTS.md
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
- Caveman ULTRA mode. Apply `karpathy-guidelines` skill.
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
- Caveman ULTRA mode.
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
- Caveman ULTRA mode. You are the ORCHESTRATOR.
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.
@@ -2,7 +2,7 @@
2
2
  description: Compress handoff docs, dedup the issue log, prune snapshots. Run before /clear.
3
3
  ---
4
4
 
5
- Caveman ULTRA mode.
5
+ compression: user (.claude/ref/compression.md).
6
6
 
7
7
  Trigger: end of a phase, or any time STATE.md / ISSUES.md feel bloated.
8
8