spexcode 0.2.8 → 0.4.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 (101) hide show
  1. package/README.md +56 -44
  2. package/package.json +3 -3
  3. package/spec-cli/bin/spex.mjs +2 -2
  4. package/spec-cli/hooks/dispatch.sh +1 -1
  5. package/spec-cli/hooks/harness.sh +26 -6
  6. package/spec-cli/src/anchors.ts +300 -0
  7. package/spec-cli/src/attach.ts +2 -2
  8. package/spec-cli/src/cli.ts +691 -536
  9. package/spec-cli/src/client.ts +31 -30
  10. package/spec-cli/src/contract-filter.ts +1 -1
  11. package/spec-cli/src/doctor.ts +40 -13
  12. package/spec-cli/src/gateway.ts +11 -7
  13. package/spec-cli/src/git.ts +23 -15
  14. package/spec-cli/src/{board.ts → graph.ts} +44 -14
  15. package/spec-cli/src/{boardCache.ts → graphCache.ts} +41 -21
  16. package/spec-cli/src/{boardDelta.ts → graphDelta.ts} +1 -1
  17. package/spec-cli/src/graphStream.ts +288 -0
  18. package/spec-cli/src/guide.ts +142 -98
  19. package/spec-cli/src/harness-select.ts +2 -2
  20. package/spec-cli/src/harness.ts +30 -14
  21. package/spec-cli/src/help.ts +300 -385
  22. package/spec-cli/src/hooks.ts +1 -1
  23. package/spec-cli/src/index.ts +144 -103
  24. package/spec-cli/src/init.ts +14 -13
  25. package/spec-cli/src/issues.ts +89 -33
  26. package/spec-cli/src/layout.ts +5 -5
  27. package/spec-cli/src/lint.ts +128 -30
  28. package/spec-cli/src/localIssues.ts +61 -60
  29. package/spec-cli/src/materialize.ts +1 -1
  30. package/spec-cli/src/mentions.ts +15 -15
  31. package/spec-cli/src/migrate-table.ts +398 -0
  32. package/spec-cli/src/migrate.ts +386 -0
  33. package/spec-cli/src/ranker.ts +30 -4
  34. package/spec-cli/src/reaper.ts +117 -0
  35. package/spec-cli/src/search.bench.mjs +12 -12
  36. package/spec-cli/src/search.ts +1 -1
  37. package/spec-cli/src/sessions.ts +244 -138
  38. package/spec-cli/src/specs.ts +40 -25
  39. package/spec-cli/src/supervise.ts +2 -2
  40. package/spec-cli/src/tree.ts +5 -5
  41. package/spec-cli/src/uninstall.ts +4 -4
  42. package/spec-cli/templates/hooks/post-checkout +1 -1
  43. package/spec-cli/templates/hooks/post-merge +3 -3
  44. package/spec-cli/templates/hooks/pre-commit +9 -9
  45. package/spec-cli/templates/hooks/prepare-commit-msg +1 -1
  46. package/spec-cli/templates/spec/project/{.config → .plugins}/core/idle/idle.sh +2 -2
  47. package/spec-cli/templates/spec/project/{.config → .plugins}/core/mark-active/mark-active.sh +7 -0
  48. package/spec-cli/templates/spec/project/{.config → .plugins}/core/mark-active/spec.md +2 -0
  49. package/spec-cli/templates/spec/project/{.config → .plugins}/core/session-fail/fail.sh +1 -1
  50. package/spec-cli/templates/spec/project/{.config → .plugins}/core/spec-first/spec-first.sh +1 -1
  51. package/spec-cli/templates/spec/project/{.config → .plugins}/core/spec-of-file/spec-of-file.sh +2 -2
  52. package/spec-cli/templates/spec/project/.plugins/core/spec.md +21 -0
  53. package/spec-cli/templates/spec/project/{.config → .plugins}/core/stop-gate/stop-gate.sh +21 -21
  54. package/spec-cli/templates/spec/project/{.config → .plugins}/distill/spec.md +2 -2
  55. package/spec-cli/templates/spec/project/{.config → .plugins}/extract/spec.md +5 -5
  56. package/spec-cli/templates/spec/project/{.config → .plugins/prompts}/forge-link/spec.md +1 -1
  57. package/spec-cli/templates/spec/project/{.config → .plugins/prompts}/reproduce-before-fix/spec.md +3 -3
  58. package/spec-cli/templates/spec/project/.plugins/prompts/spec.md +20 -0
  59. package/spec-cli/templates/spec/project/{.config → .plugins}/regroup/spec.md +2 -2
  60. package/spec-cli/templates/spec/project/.plugins/spec.md +18 -0
  61. package/spec-cli/templates/spec/project/.plugins/supervisor/spec.md +8 -0
  62. package/spec-cli/templates/spec/project/{.config → .plugins}/tidy/spec.md +1 -1
  63. package/spec-cli/templates/spec/project/spec.md +1 -1
  64. package/spec-dashboard/dist/assets/{Dashboard-P0B9ukSG.js → Dashboard-CTcH2eW9.js} +9 -9
  65. package/spec-dashboard/dist/assets/EvalsPage-CJNKwHLN.js +2 -0
  66. package/spec-dashboard/dist/assets/{FoldToggle-BuQ0lokE.js → FoldToggle-CVFbBpyW.js} +1 -1
  67. package/spec-dashboard/dist/assets/{IssuesPage-H-D8aHEl.js → IssuesPage-kULjonqj.js} +1 -1
  68. package/spec-dashboard/dist/assets/{MobileApp-oZXIeCPb.js → MobileApp-B0ZJju8K.js} +1 -1
  69. package/spec-dashboard/dist/assets/{SessionInterface-Blr_MEdU.js → SessionInterface-BRKJqU2U.js} +3 -3
  70. package/spec-dashboard/dist/assets/{SessionWindow-LcCzBMU7.js → SessionWindow-CDhEL7wO.js} +7 -7
  71. package/spec-dashboard/dist/assets/{Settings-_yOye-In.js → Settings-BL6FV_8S.js} +1 -1
  72. package/spec-dashboard/dist/assets/{index-uGs9v_9o.css → index-DmQsNYKK.css} +1 -1
  73. package/spec-dashboard/dist/assets/{index-BhIslAau.js → index-DulGPk6A.js} +8 -8
  74. package/spec-dashboard/dist/index.html +2 -2
  75. package/{spec-yatsu → spec-eval}/src/cache.ts +8 -5
  76. package/{spec-yatsu → spec-eval}/src/cli.ts +212 -96
  77. package/{spec-yatsu → spec-eval}/src/evaltab.ts +35 -27
  78. package/{spec-yatsu → spec-eval}/src/filing.ts +7 -5
  79. package/{spec-yatsu → spec-eval}/src/freshness.ts +44 -22
  80. package/spec-eval/src/humanok.ts +43 -0
  81. package/{spec-yatsu → spec-eval}/src/scenariofresh.ts +22 -17
  82. package/{spec-yatsu/src/yatsu.ts → spec-eval/src/scenarios.ts} +41 -26
  83. package/{spec-yatsu/src/proof.ts → spec-eval/src/sessioneval.ts} +59 -59
  84. package/{spec-yatsu → spec-eval}/src/sidecar.ts +42 -10
  85. package/{spec-yatsu → spec-eval}/src/timeline.ts +1 -1
  86. package/spec-forge/src/__fixtures__/github-forge.json +9 -9
  87. package/spec-forge/src/cli.ts +14 -13
  88. package/spec-forge/src/{needs-yatsu-eval.ts → needs-eval.ts} +6 -6
  89. package/spec-cli/src/boardStream.ts +0 -179
  90. package/spec-cli/templates/presets/careful/.config/clarify-before-code/spec.md +0 -11
  91. package/spec-cli/templates/spec/project/.config/core/spec.md +0 -17
  92. package/spec-cli/templates/spec/project/.config/spec.md +0 -15
  93. package/spec-cli/templates/spec/project/.config/supervisor/spec.md +0 -8
  94. package/spec-dashboard/dist/assets/EvalsPage-BrvAGyc4.js +0 -2
  95. /package/spec-cli/templates/spec/project/{.config → .plugins}/core/idle/spec.md +0 -0
  96. /package/spec-cli/templates/spec/project/{.config → .plugins}/core/session-fail/spec.md +0 -0
  97. /package/spec-cli/templates/spec/project/{.config → .plugins}/core/spec-first/spec.md +0 -0
  98. /package/spec-cli/templates/spec/project/{.config → .plugins}/core/spec-of-file/spec.md +0 -0
  99. /package/spec-cli/templates/spec/project/{.config → .plugins}/core/stop-gate/spec.md +0 -0
  100. /package/spec-cli/templates/spec/project/{.config → .plugins}/distill/digest.mjs +0 -0
  101. /package/spec-cli/templates/spec/project/{.config → .plugins/prompts}/memory-hygiene/spec.md +0 -0
@@ -0,0 +1,398 @@
1
+ // GENERATED by scripts/gen-migrate-table.mjs — do not hand-edit. See [[migrate]].
2
+ // For each plugin asset the shipped templates still carry: every git blob sha its OLD-WORLD (.config-era)
3
+ // content ever had on main. `spex doctor --migrate` hashes an adopter's file; a hit on oldShas means the
4
+ // file is a stock historical template → safe to replace wholesale with the shipped template. Anything
5
+ // else is flagged for review, never rewritten.
6
+ export type MigrateAsset = { rel: string; template: string; oldShas: string[] }
7
+ export const TEMPLATE_ASSETS: MigrateAsset[] = [
8
+ {
9
+ "rel": "core/idle/idle.sh",
10
+ "template": "templates/spec/project/.plugins/core/idle/idle.sh",
11
+ "oldShas": [
12
+ "21abdf5593bf2f73823cff9afe079ce79a8f3d2b",
13
+ "2de24b434d53e281e60dc1a57b62536df2f8e528",
14
+ "69653eb23b7b9791c14ab263d77d5989102095cb",
15
+ "c4c13a4dbc6543eb39e766de11be89cd247a251d"
16
+ ]
17
+ },
18
+ {
19
+ "rel": "core/idle/spec.md",
20
+ "template": "templates/spec/project/.plugins/core/idle/spec.md",
21
+ "oldShas": [
22
+ "1283e0c3be0db754fdf88b6e939f727bbb990a03",
23
+ "52f84eb9c7d60c6058a3e9e3f0b410a272ec3bf2",
24
+ "eb31ed98313cf0ede3f863f8f8da1e1c70d3cc6e"
25
+ ]
26
+ },
27
+ {
28
+ "rel": "core/mark-active/mark-active.sh",
29
+ "template": "templates/spec/project/.plugins/core/mark-active/mark-active.sh",
30
+ "oldShas": [
31
+ "0e4836f0dc0bf9f7878631040bc0848f665e7655",
32
+ "61cc56baea4ba77e2bd0861f436c7860f68e580f",
33
+ "c3276b87ff15d47886e92ed0e6710ce60c25cfef"
34
+ ]
35
+ },
36
+ {
37
+ "rel": "core/mark-active/spec.md",
38
+ "template": "templates/spec/project/.plugins/core/mark-active/spec.md",
39
+ "oldShas": [
40
+ "55a76108cfa749dc022b9566c77a69acbde96892",
41
+ "6469e1d31f41e49774e148416aca1b69bf105a5c"
42
+ ]
43
+ },
44
+ {
45
+ "rel": "core/session-fail/fail.sh",
46
+ "template": "templates/spec/project/.plugins/core/session-fail/fail.sh",
47
+ "oldShas": [
48
+ "54b6b4a10265063ae7e1306f4aaeba7a5f878181",
49
+ "61da557a1a370edda0c13702abd587fa3406cf29",
50
+ "7c9d7e7243038cc0ab904c821cf3adbc719e23fb",
51
+ "f7ce6d9063557d27c253f62defced643bd86529b"
52
+ ]
53
+ },
54
+ {
55
+ "rel": "core/session-fail/spec.md",
56
+ "template": "templates/spec/project/.plugins/core/session-fail/spec.md",
57
+ "oldShas": [
58
+ "0877dbe2f94ed8fcf5ded09b48e9705e9427ffad",
59
+ "41fbbaf512d6074a89720f2d2081059ece3c0ef1",
60
+ "ff25265b87144b16f4101f302206800bd6505d72"
61
+ ]
62
+ },
63
+ {
64
+ "rel": "core/spec-first/spec-first.sh",
65
+ "template": "templates/spec/project/.plugins/core/spec-first/spec-first.sh",
66
+ "oldShas": [
67
+ "98f0448bf625ed57bfbb108183b7f5dc9ff227d4",
68
+ "a9776998b7c7b2b196a34569f9c231c9fd4bdc6a",
69
+ "b346120241f8933684ef6d4708cc3b94b8ff9f15",
70
+ "c55e3e0b6d1c84aed988d073bd07faf9b190ef83",
71
+ "c93a29b487d998f3c039c3e71bdb9ae52acd3d4b",
72
+ "ee13a95cd412c5b6518ed1e486c1642867068bc4"
73
+ ]
74
+ },
75
+ {
76
+ "rel": "core/spec-first/spec.md",
77
+ "template": "templates/spec/project/.plugins/core/spec-first/spec.md",
78
+ "oldShas": [
79
+ "3b4deed2d004bbc30443b2faa7cf94d2e9892c77",
80
+ "44b6c83ce4091fc4903a917cfb8f275477323404"
81
+ ]
82
+ },
83
+ {
84
+ "rel": "core/spec-of-file/spec-of-file.sh",
85
+ "template": "templates/spec/project/.plugins/core/spec-of-file/spec-of-file.sh",
86
+ "oldShas": [
87
+ "29684a87e418e0a0af331ed2e1ac04463726eb4d",
88
+ "6afc41d97fef1feb18bb46e9e32ca787197bc6b5",
89
+ "7b466977a3564e2642fa70ed17cd4250f27f8127",
90
+ "7d6650063592ea1825c3abfd765f075dbe953e16",
91
+ "b58f65e59c5dc050e642689082a666a74efea51c",
92
+ "bc22dc7593214e52309a6747d4a9a3d8755b6adc",
93
+ "d8cbc4f7a7e3090219e7a6cbdc0b9462557cb18e",
94
+ "f70627ea80f9afb1312de97154b8b2457a34ab46"
95
+ ]
96
+ },
97
+ {
98
+ "rel": "core/spec-of-file/spec.md",
99
+ "template": "templates/spec/project/.plugins/core/spec-of-file/spec.md",
100
+ "oldShas": [
101
+ "5fbf9f0ecc3c8ec7d76f9e3d4a06c3aad5e7c92b",
102
+ "657428043cc46fe5a94382681b9e00f52a740a5a",
103
+ "76c035dfb8add59282018a582e1827a9fae68672"
104
+ ]
105
+ },
106
+ {
107
+ "rel": "core/spec.md",
108
+ "template": "templates/spec/project/.plugins/core/spec.md",
109
+ "oldShas": [
110
+ "0c04edb308902a768a290586e2af8be779fef2e9",
111
+ "1e422538d16ae7995480542e65606d7ffafe1cbc",
112
+ "21f618f2d0739d6d9d7cb5c9fcafa1d4e952b98f",
113
+ "27d18a5cf05c76c5526829e655401bd67e81df04",
114
+ "2bd4ec88fc9fc314e9a564754ffcc4ab0f24b72d",
115
+ "443bf1445175fe5c5ae987296e80a2bab8dd99b0",
116
+ "773167e6ccf73bbe7dad2e787c10089710a5ce5d",
117
+ "7a5c8b1c66dc5a4718ef9c76f65ea793aa7dcbf7",
118
+ "8a90a6bd9b0046ef7224baad9c7311585639d779",
119
+ "935a491939b8d5d4351f38392c3fda0699b3b996",
120
+ "c312de5047c7c4f34864e7073890ed677440f9a5",
121
+ "e576625e783dba3846ca147193e36c6f4b3f45e9",
122
+ "e5ba73eae889f4943bb3cd8a99e07323492de654",
123
+ "f7737174c9c046faaf5968ed0ef3e033732f4d64",
124
+ "f799e80bd590757b2523a53eda2d28336272a0bb"
125
+ ]
126
+ },
127
+ {
128
+ "rel": "core/stop-gate/spec.md",
129
+ "template": "templates/spec/project/.plugins/core/stop-gate/spec.md",
130
+ "oldShas": [
131
+ "16eb95ec994dd2fa4eb3e2a8bd3c2387145876fc",
132
+ "5507a7c09160b4eee24526273ffdfb5e12ecc179",
133
+ "9c98d048863d5a7da650ad42735948e875ab20b5",
134
+ "b8237ed34fc04a38629bb940c75bc07f48b18e52",
135
+ "e1042c6dc55e502fbb0bcecb583c56bcf75e2909",
136
+ "e3822eca5d899d13225f4af6e0442c87f6a66630",
137
+ "eff5e2e88e7f907952701bb233eb8c9b18fb1874"
138
+ ]
139
+ },
140
+ {
141
+ "rel": "core/stop-gate/stop-gate.sh",
142
+ "template": "templates/spec/project/.plugins/core/stop-gate/stop-gate.sh",
143
+ "oldShas": [
144
+ "1596389b23b9813955316f617b61f188319eb1e4",
145
+ "372fe4c89780cfcfbc7aca045822661233271fe1",
146
+ "4fb4b69e8e6cc79ad2d30f1d7da51e99563a81c1",
147
+ "57b65e4d0c26e79edf9bba20ee838aa1cb068390",
148
+ "5dbd53b426a650a353c97db2026c02ff9fa26e57",
149
+ "74b2a417f58c1d592a260e718aa253b06a5f46ca",
150
+ "7f7cf30c3beae6e1e3f487fa5fd4286ff87879fd",
151
+ "8b7816a6fb5581249bb2157dbebe392f27453583",
152
+ "b1ff677ca787a73638df25b23f3eaa1aa259712b",
153
+ "eb4dc1ea4bbb7e15e4da5b4c51d2f7ddc49142e3"
154
+ ]
155
+ },
156
+ {
157
+ "rel": "distill/digest.mjs",
158
+ "template": "templates/spec/project/.plugins/distill/digest.mjs",
159
+ "oldShas": [
160
+ "b596d196d35688130157698ca90950d412bf527f",
161
+ "faff3509b004e8529d5c7f3abd29512fb389ceb9"
162
+ ]
163
+ },
164
+ {
165
+ "rel": "distill/spec.md",
166
+ "template": "templates/spec/project/.plugins/distill/spec.md",
167
+ "oldShas": [
168
+ "3e3fd25db1d465f72b636e6af8bcd873c0ceb3c2",
169
+ "4a0b547ad63e15aa80ed7f826581ad90ca02d0f4",
170
+ "7b6cfc2a6e1e75bf96e545ff253d529b0c4f1cd7"
171
+ ]
172
+ },
173
+ {
174
+ "rel": "extract/spec.md",
175
+ "template": "templates/spec/project/.plugins/extract/spec.md",
176
+ "oldShas": [
177
+ "064efd8321925bd0cff7ee725771b500a7baf6e7",
178
+ "45c2b0fe12224ebc124b5f5fecafd1e8d82de93e",
179
+ "4a156b77557def4e0b9cf52a3f304e62bdc5b047",
180
+ "50dd5d5d8c9f4c4496c250852b061300e2d5af21",
181
+ "6bcdd3fb78e73dad63b0f8edd9c9de0172ab9a73",
182
+ "6fde1164bf71f18f83ce56645b5735e192aad569",
183
+ "74ef28d8d9402a88d961968b1f06f4c2b331881e",
184
+ "c7d248832bc61de440dc49152f6db9df4da7bedf",
185
+ "d260436c3327b6a963ccb38f2ca58b37b6c73058",
186
+ "d2ced748666713353e4bee4cbc2d68bc2b2c9028",
187
+ "d655265260b16d77510e9fc9ef497aa757ab6fd4"
188
+ ]
189
+ },
190
+ {
191
+ "rel": "forge-link/spec.md",
192
+ "template": "templates/spec/project/.plugins/prompts/forge-link/spec.md",
193
+ "oldShas": [
194
+ "2472c085e6f72364eea004ba1d1b1f8d6b4e13ac",
195
+ "c86439c5a3fe6cb3ece2c40186da0f476d1c52d4"
196
+ ]
197
+ },
198
+ {
199
+ "rel": "memory-hygiene/spec.md",
200
+ "template": "templates/spec/project/.plugins/prompts/memory-hygiene/spec.md",
201
+ "oldShas": [
202
+ "2b5313e770c7d2e857817adcf7bb72aecaeca45f"
203
+ ]
204
+ },
205
+ {
206
+ "rel": "prompts/spec.md",
207
+ "template": "templates/spec/project/.plugins/prompts/spec.md",
208
+ "oldShas": []
209
+ },
210
+ {
211
+ "rel": "regroup/spec.md",
212
+ "template": "templates/spec/project/.plugins/regroup/spec.md",
213
+ "oldShas": [
214
+ "37f632450faba3e9c5290468b52535e766faf45e",
215
+ "aa3097a1b7ff51c4a8a0bfab82ac06a585081caa",
216
+ "b4e8d4339447eaaf61e9b3511822ba04711687a2"
217
+ ]
218
+ },
219
+ {
220
+ "rel": "reproduce-before-fix/spec.md",
221
+ "template": "templates/spec/project/.plugins/prompts/reproduce-before-fix/spec.md",
222
+ "oldShas": [
223
+ "28eef30893a83b634900e43dfe729043c8f60ea8",
224
+ "2d056b7344cbc0c4eb0dbeb0ba69ccee0e8b47db",
225
+ "83705fa143980f0b01ccafdd033c7777fd98f886",
226
+ "cb5495db2cc4ba34251ddd47b1b56a18186b8bab",
227
+ "fc3c060af70b01b2073163880a42d002e285ddc5"
228
+ ]
229
+ },
230
+ {
231
+ "rel": "spec.md",
232
+ "template": "templates/spec/project/.plugins/spec.md",
233
+ "oldShas": [
234
+ "602a96c9c68d1884fd2c59796b0fd3acc167339c",
235
+ "6421338ed214faba621b37f0ceb0b7cb45d4982d",
236
+ "6e47647fed183564e67da4d6fa825a567252d266",
237
+ "6fe57805ab5367eb164ace1ddb942686a3e4c190",
238
+ "7af216894d2b2b27b8894bea3428bcf773cfd254",
239
+ "9f26906c7fcd7746b063a8c015a14502215ad548",
240
+ "a27ab437b3634219d89ef91e95cbb7fb7fd9b569",
241
+ "c9a789462fb0710c7e081d3eb155981679ec52af",
242
+ "cc65afacb6ffc3d7f09893b29b5f9d3567659c3e",
243
+ "e6f2659001b9a28796c7c4f059c4a68598f883f0",
244
+ "eecc63a06403ef770bc4317d9f419b7a87a93a30",
245
+ "fc35275b30cdcadf57e8117318619066a31acc97"
246
+ ]
247
+ },
248
+ {
249
+ "rel": "supervisor/spec.md",
250
+ "template": "templates/spec/project/.plugins/supervisor/spec.md",
251
+ "oldShas": [
252
+ "036d5602a038e2565cd968e4a8a443ce80026025",
253
+ "05963c00bc1031ba0d4f91ea68d60b1731f475f2",
254
+ "0b73cd94b7c383d8bc0c0b7732f0ac0fb6f043ec",
255
+ "138401178dc2a6af43e2fe3c8764492e22ae18a8",
256
+ "19235140c66dcd4596df6934b58b676d6cd5e4dc",
257
+ "446e630937320c5a113a5b13a1744b097cb1cbec",
258
+ "52a9244e01d97ab7492d5f6763f6cb05290204ee",
259
+ "5630799b96b0aa121c3f903ea2363ed15e4f0522",
260
+ "7d8b335dae833b19435c0ae161472b2096f395e0",
261
+ "8ac7ed6a22276356f8c9e67148d1b3b42a907923",
262
+ "ac703be505c05866697db125629a818b71789452",
263
+ "c36152b38e61ac963381ae340fc0b3249459eec1",
264
+ "cd26d2d8682755101b893f95767726edbe17020f",
265
+ "decb8704259e091e53bd86dcde0c8f0a585a32cd",
266
+ "fc24e7e073286c4e4456e8ac1a57ece5096a848f",
267
+ "fe7b7be5eb4015701a62666e8943fa1165d813cf"
268
+ ]
269
+ },
270
+ {
271
+ "rel": "tidy/spec.md",
272
+ "template": "templates/spec/project/.plugins/tidy/spec.md",
273
+ "oldShas": [
274
+ "096fc1dd48a1692aeb87614a93bcce2473f2050a",
275
+ "16ccbf044e74765a5c9cc212fba38356950a7e69",
276
+ "25e20082d9f5ccb3b307b707511aaa5daa2d9aea",
277
+ "5bf288a06976646610ffab474b73f80b3910dc14",
278
+ "69338dc687e086a79767caedc2d76c38c6fc8ed5",
279
+ "b982b1781628c8692692d808713e99e4041737ab",
280
+ "d0e7144d60ab5dfce5475fdd3973a2c4a38240a3",
281
+ "e26a030b817e739ffaa92eb1002b4fb57cae2c15"
282
+ ]
283
+ }
284
+ ]
285
+ // old-world template assets the shipped package no longer carries (recognized → reported, not replaced):
286
+ export const RETIRED_ASSETS: Record<string, string[]> = {
287
+ "clarify-before-code/spec.md": [
288
+ "a1b9c7e189df9b75a27005d381b43682d717ee6f"
289
+ ],
290
+ "core/harness-session-id/harness-session-id.sh": [
291
+ "32b3b963ba6c2c659f0543e82a2a34128c4860bf",
292
+ "626d7f3c56d6430c5dafb7713880a606b4ee8b03"
293
+ ],
294
+ "core/harness-session-id/spec.md": [
295
+ "196aefe5cc0d0529b70909fc0739795c969d7f97",
296
+ "9377704426e14274fafb9a17584d21f6de4b24c3",
297
+ "c05f182fc92fcd224f4c7953dc118e59665971aa",
298
+ "c617fc05780f921c55280b68d9f55e60110f74eb"
299
+ ],
300
+ "core/stop-gate/yatsu.evals.ndjson": [
301
+ "268c06c27f3b2dc71da8c0aca4d0507a227829f9",
302
+ "e681fe71b8519577c19bb4f13bc0f310fb92dc31"
303
+ ],
304
+ "core/stop-gate/yatsu.md": [
305
+ "f83f6b2406eb359beb1181bf0145558241806116"
306
+ ],
307
+ "e2e-review/spec.md": [
308
+ "4aaad498f958f64f0146d386a71d48d0f25f6cf5",
309
+ "f24d227243dccc3f1136a110d24be32e527123f5",
310
+ "f4a98ba8a15a809855bafa3a0073078c00e63755"
311
+ ],
312
+ "e2e-review/split-recordings.mjs": [
313
+ "560502edf6534944789065dce5ad137a5c70a83d",
314
+ "ab210ac57cd89b239175f1380ef833d1db36bd71"
315
+ ],
316
+ "health/spec.md": [
317
+ "73f077df5b1a159733ad04eb080f1f8e99c7312f",
318
+ "79a23352c10f29ed8df0cc70752f6af531f2329c",
319
+ "866953002c6da44026fb920ee5e1057a3b988498"
320
+ ],
321
+ "ritual/spec.md": [
322
+ "3fe416cf6207742a40894eeae32e3e52ddc03062",
323
+ "5decceeed6a0da3b1eb1c6ab62fc2411a702af64",
324
+ "6ec1d39979c4769c27abafc456a677baf510cd89"
325
+ ],
326
+ "sanity-check/spec.md": [
327
+ "02d2356e2501f3c07252832485f0b4a7f925ed83"
328
+ ],
329
+ "scenario/spec.md": [
330
+ "753711df483af9361fea50359cf2d4ba65f7ccdb",
331
+ "76dcc35b3f836125c89abfb9631982fed846a811",
332
+ "78cbf9a3101a2a5f435bfbaaa9afc74e04912ccb"
333
+ ],
334
+ "search-first/spec.md": [
335
+ "285fcfbb300a4cb58270d4c35a485b39fe30f9c9"
336
+ ],
337
+ "slash/health/spec.md": [
338
+ "718af0b53796943fe7406caad537a00480e1d6dd"
339
+ ],
340
+ "slash/tidy/spec.md": [
341
+ "bd7a43c097234678224b3a2082def5a245ee169d"
342
+ ],
343
+ "spec-scout/spec.md": [
344
+ "25421b7d025231b1401db7823b74d4022ac8967e",
345
+ "bba79ba76ac8ec3b60ef6e1f7b0ace051c39b7a0"
346
+ ],
347
+ "system/core/spec.md": [
348
+ "e5a9ff542750630f88e6a76fd1038da17d0909dd"
349
+ ],
350
+ "system/ritual/spec.md": [
351
+ "96582cef3b299ac251dee9e56b4343315058aafa"
352
+ ],
353
+ "system/voice-before-ask/setup.sh": [
354
+ "83b36886afa446ed25bbce2ceece195398f52057"
355
+ ],
356
+ "system/voice-before-ask/spec.md": [
357
+ "a075f3b392f66f355382483bf421dec30af15555"
358
+ ],
359
+ "taste/campaign-framework.md": [
360
+ "552807ea784d8dba18aa8308cfb1c8016515b727",
361
+ "cf57d39f8a9537b00e9d4595659be77bd625b0d5"
362
+ ],
363
+ "taste/campaign-issues.md": [
364
+ "f12e257f8c4f3128d33f83f86614f3c276cd88eb"
365
+ ],
366
+ "taste/campaign-simplifications.md": [
367
+ "4ec551ccaf3c9f25a4ffac4edc92b907ddca739c"
368
+ ],
369
+ "taste/spec.md": [
370
+ "10b3b4e8538406168de9b7f92ca9790aadb855b3",
371
+ "9cd4ac0aac1492fb7a9dde1e51bc3884e4ae5a2c",
372
+ "a17da863f8c4d5771d3eeb554b2e989c47e7cef1",
373
+ "e268f9c5d5321e5d0b371d4e2e9a23a56fa639c9"
374
+ ],
375
+ "taste/ten-challenges.html": [
376
+ "94a6aaa3ec39471277ba9701439f2291005a5f06"
377
+ ],
378
+ "voice-before-ask/setup.sh": [
379
+ "83b36886afa446ed25bbce2ceece195398f52057"
380
+ ],
381
+ "voice-before-ask/spec.md": [
382
+ "03300cf5f1c8472a739921000c51b5c0f26dcc64",
383
+ "0b12287e94728b320cc89a41ff7d822ba17af6b2",
384
+ "0bf33cc9a6dc8d39d4721a333d510b3700218720"
385
+ ]
386
+ }
387
+ // every historical blob of spexcode's own `config` node spec.md (the plugin-system spec, pre-rename) —
388
+ // gates the config→plugin-system node rename on adopter trees:
389
+ export const CONFIG_NODE_SHAS: string[] = [
390
+ "347eeeec0324304a5fabfba7c28b815a41dd0962",
391
+ "3e4f7bc85511702cfe5bf49f162944eebace3c2e",
392
+ "5bfbcddfb91acb1fb0160e3d9234783922c85166",
393
+ "8cabe11fe87e536b14e99e4f869b850bd4eb236b",
394
+ "a55b18611fd12a42c8fccd4f4d0bf34c7db83ccb",
395
+ "c632732d182465ec03c1a2cff1e1b9a2a9faaee2",
396
+ "ccada063410660cff034b015fd1bb3e4bf5eac67",
397
+ "ee45ca053e0f29bf5ab236d11518a87ec961db3e"
398
+ ]