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