@deepseek-insight/dsi 0.6.15 → 0.6.16

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 (84) hide show
  1. package/.agents/skills/dsi-ports/SKILL.md +61 -0
  2. package/.agents/skills/dsi-restart/SKILL.md +85 -0
  3. package/bin/dsi.mjs +148 -39
  4. package/bin/lib/dev-mode.mjs +138 -0
  5. package/bin/lib/plugin-chain.mjs +47 -0
  6. package/build/client/_app/immutable/assets/{0.BNydQv_U.css → 0.KhAZv9mf.css} +1 -1
  7. package/build/client/_app/immutable/assets/2.yPxdQ-n0.css +1 -0
  8. package/build/client/_app/immutable/chunks/{Dz22rCMX.js → BXGojodM.js} +2 -2
  9. package/build/client/_app/immutable/chunks/C0ZiNuOj.js +1 -0
  10. package/build/client/_app/immutable/chunks/{Cq1i4fPn.js → DOkUpqkd.js} +1 -1
  11. package/build/client/_app/immutable/chunks/b58grRSF.js +1 -0
  12. package/build/client/_app/immutable/entry/{app.BzO5CDQp.js → app.CfbFUHxw.js} +2 -2
  13. package/build/client/_app/immutable/entry/start.4M41VX7w.js +1 -0
  14. package/build/client/_app/immutable/nodes/{1.DUMUcf6V.js → 1.C2BfYC2f.js} +1 -1
  15. package/build/client/_app/immutable/nodes/{2.DibXuWjr.js → 2.UdTbIvwR.js} +219 -219
  16. package/build/client/_app/version.json +1 -1
  17. package/build/handler.js +4 -4
  18. package/build/index.js +4 -4
  19. package/build/server/chunks/chunks/{dsh-connection.js-DRtqPR_j.js → dsh-connection.js-DvncrWM4.js} +5 -2
  20. package/build/server/chunks/chunks/{git-probe.js-Daf6r7Z9.js → git-probe.js-S9w9gGXE.js} +2 -2
  21. package/build/server/chunks/chunks/{internal2.js-CFvE_2qT.js → internal2.js-DMu68nYR.js} +2 -2
  22. package/build/server/chunks/chunks/restart-chain.js-D-VwGWE2.js +112 -0
  23. package/build/server/chunks/chunks/{state.js-BFJMxIOB.js → state.js-CBD6RE0B.js} +2 -2
  24. package/build/server/chunks/chunks/{watcher.js-CoR53lwR.js → watcher.js-BfZOp5td.js} +2 -2
  25. package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-BKlF4XGH.js → _server.ts.js-D9vpMh8K.js} +3 -3
  26. package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-BpEhlidV.js → _server.ts.js-HPJEmfbv.js} +3 -3
  27. package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-Dmh7f-hU.js → _server.ts.js-BaAmRXrU.js} +2 -2
  28. package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-BEci0ZAx.js → _server.ts.js-D-Ftq5ei.js} +2 -2
  29. package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-OXFzXBSp.js → _server.ts.js-C0_j53OW.js} +2 -2
  30. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-x44GKy4R.js → _server.ts.js-CxMvUVdS.js} +2 -2
  31. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-Da5ZqeJ7.js → _server.ts.js-CfjRtKMp.js} +2 -2
  32. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-BACv9hW-.js → _server.ts.js-D7uC5b_j.js} +2 -2
  33. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/changes/{_server.ts.js-BtiUS3iD.js → _server.ts.js-TeoUfrIl.js} +2 -2
  34. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-BOOyd1LI.js → _server.ts.js-uqUb-EdM.js} +2 -2
  35. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-D0GwQbdF.js → _server.ts.js-C_DF0fAc.js} +2 -2
  36. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-Bd0JYMlf.js → _server.ts.js-BfkqDQXU.js} +2 -2
  37. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-DqAV7OOv.js → _server.ts.js-vCfxCACS.js} +2 -2
  38. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-Cz4P-68E.js → _server.ts.js-DJlpW4hl.js} +2 -2
  39. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-C4fXXBIM.js → _server.ts.js-Cqn5ZMGh.js} +2 -2
  40. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-BiqNZiiN.js → _server.ts.js-ChB_0ZdM.js} +2 -2
  41. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-Bdx9V4oY.js → _server.ts.js-BVHypcWF.js} +2 -2
  42. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-CuBqoV3c.js → _server.ts.js-BwDVfVrR.js} +2 -2
  43. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-CXPFI_Pn.js → _server.ts.js-DRmd83Ea.js} +2 -2
  44. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-CRcaw4Yo.js → _server.ts.js-hc61Nb64.js} +2 -2
  45. package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-dYrtVHDP.js → _server.ts.js-xkp4IT7y.js} +2 -2
  46. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-BtlfuMjf.js → _server.ts.js-BvPKBiTg.js} +2 -2
  47. package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-D12kAP9B.js → _server.ts.js-BSsF01K6.js} +2 -2
  48. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-C9JHp1WU.js → _server.ts.js-DNLxFs1R.js} +2 -2
  49. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-bLF4Fbgn.js → _server.ts.js-5jaRPaKn.js} +2 -2
  50. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-BSw_zD-0.js → _server.ts.js-A-hvBqyy.js} +2 -2
  51. package/build/server/chunks/entries/endpoints/api/floor/mode/_server.ts.js-CzBvebv2.js +25 -0
  52. package/build/server/chunks/entries/endpoints/api/floor/restart/_server.ts.js-D5wnUph-.js +30 -0
  53. package/build/server/chunks/entries/endpoints/api/plugins/apply/{_server.ts.js-BNEUWbaf.js → _server.ts.js-CCs56XtH.js} +5 -56
  54. package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-CqyKA9g2.js → _server.ts.js-C0x68iMD.js} +3 -3
  55. package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-yu695YoE.js → _server.ts.js-DzdGKZdV.js} +3 -3
  56. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-BhDAvM6y.js → _server.ts.js-BC1jb3zy.js} +3 -3
  57. package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-BRUgPrJ2.js → _server.ts.js-BE9XJyhN.js} +3 -3
  58. package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-C7VJ2G4_.js → _server.ts.js-CWlGtOu8.js} +3 -3
  59. package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-BH5BRA_d.js → _server.ts.js-CgcggNrH.js} +3 -3
  60. package/build/server/chunks/entries/pages/{_error.svelte.js-Cz-l6MbQ.js → _error.svelte.js-CKrYUsNh.js} +3 -3
  61. package/build/server/chunks/entries/pages/{_page.server.ts.js-CityLNBO.js → _page.server.ts.js-CbzURHkB.js} +2 -2
  62. package/build/server/chunks/entries/pages/{_page.svelte.js-J7dfR5ON.js → _page.svelte.js-Bub68nnw.js} +135 -21
  63. package/build/server/chunks/{handler-Ctb3OEZ3.js → handler-29vKRsIm.js} +3 -3
  64. package/build/server/chunks/{index.js-DZ5R_e-K.js → index.js-BpxR9RqE.js} +2 -2
  65. package/build/server/chunks/{manifest.js-D3cyG_zP.js → manifest.js-BUA2pFJz.js} +52 -38
  66. package/build/server/chunks/nodes/{0.js-CedNgbP9.js → 0.js-zSkx80Fq.js} +3 -3
  67. package/build/server/chunks/nodes/1.js-BFDsDe_G.js +9 -0
  68. package/build/server/chunks/nodes/{2.js-B5xHvNNG.js → 2.js-B3UD9xCC.js} +6 -6
  69. package/package.json +1 -1
  70. package/template/.dsi/prompts.sqlite +0 -0
  71. package/template/.dsi/prompts.sqlite-shm +0 -0
  72. package/template/.dsi/prompts.sqlite-wal +0 -0
  73. package/.agents/skills/dsi-thin/SKILL.md +0 -140
  74. package/.agents/skills/dsi-thin/references/ADR-0019-snapshot.md +0 -363
  75. package/.agents/skills/dsi-thin/references/authority-adr.md +0 -28
  76. package/.agents/skills/dsi-thin/references/input-contract.md +0 -42
  77. package/.agents/skills/dsi-thin/references/proven-gates.md +0 -61
  78. package/.agents/skills/dsi-thin/references/two-lane-contract.md +0 -53
  79. package/build/client/_app/immutable/assets/2.tyWDc_pW.css +0 -1
  80. package/build/client/_app/immutable/chunks/DlCR4rv7.js +0 -1
  81. package/build/client/_app/immutable/chunks/syBMXJiJ.js +0 -1
  82. package/build/client/_app/immutable/entry/start.DPtsd8of.js +0 -1
  83. package/build/server/chunks/nodes/1.js-BJtXg-yj.js +0 -9
  84. /package/build/client/_app/immutable/nodes/{0.DJ0pyst0.js → 0.Jl8y_yU6.js} +0 -0
@@ -10,11 +10,11 @@ return {
10
10
  assets: new Set(["favicon.svg"]),
11
11
  mimeTypes: {".svg":"image/svg+xml"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.DPtsd8of.js",app:"_app/immutable/entry/app.BzO5CDQp.js",imports:["_app/immutable/entry/start.DPtsd8of.js","_app/immutable/chunks/Dz22rCMX.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/entry/app.BzO5CDQp.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.4M41VX7w.js",app:"_app/immutable/entry/app.CfbFUHxw.js",imports:["_app/immutable/entry/start.4M41VX7w.js","_app/immutable/chunks/BXGojodM.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/entry/app.CfbFUHxw.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./nodes/0.js-CedNgbP9.js')),
16
- __memo(() => import('./nodes/1.js-BJtXg-yj.js')),
17
- __memo(() => import('./nodes/2.js-B5xHvNNG.js'))
15
+ __memo(() => import('./nodes/0.js-zSkx80Fq.js')),
16
+ __memo(() => import('./nodes/1.js-BFDsDe_G.js')),
17
+ __memo(() => import('./nodes/2.js-B3UD9xCC.js'))
18
18
  ],
19
19
  remotes: {
20
20
 
@@ -32,14 +32,14 @@ return {
32
32
  pattern: /^\/api\/a2a\/?$/,
33
33
  params: [],
34
34
  page: null,
35
- endpoint: __memo(() => import('./entries/endpoints/api/a2a/_server.ts.js-BKlF4XGH.js'))
35
+ endpoint: __memo(() => import('./entries/endpoints/api/a2a/_server.ts.js-D9vpMh8K.js'))
36
36
  },
37
37
  {
38
38
  id: "/api/a2a/register",
39
39
  pattern: /^\/api\/a2a\/register\/?$/,
40
40
  params: [],
41
41
  page: null,
42
- endpoint: __memo(() => import('./entries/endpoints/api/a2a/register/_server.ts.js-BpEhlidV.js'))
42
+ endpoint: __memo(() => import('./entries/endpoints/api/a2a/register/_server.ts.js-HPJEmfbv.js'))
43
43
  },
44
44
  {
45
45
  id: "/api/a2a/[id]",
@@ -60,98 +60,98 @@ return {
60
60
  pattern: /^\/api\/dsh\/directory\/?$/,
61
61
  params: [],
62
62
  page: null,
63
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/directory/_server.ts.js-Dmh7f-hU.js'))
63
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/directory/_server.ts.js-BaAmRXrU.js'))
64
64
  },
65
65
  {
66
66
  id: "/api/dsh/pick-directory",
67
67
  pattern: /^\/api\/dsh\/pick-directory\/?$/,
68
68
  params: [],
69
69
  page: null,
70
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/pick-directory/_server.ts.js-BEci0ZAx.js'))
70
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/pick-directory/_server.ts.js-D-Ftq5ei.js'))
71
71
  },
72
72
  {
73
73
  id: "/api/dsh/presets",
74
74
  pattern: /^\/api\/dsh\/presets\/?$/,
75
75
  params: [],
76
76
  page: null,
77
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/presets/_server.ts.js-OXFzXBSp.js'))
77
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/presets/_server.ts.js-C0_j53OW.js'))
78
78
  },
79
79
  {
80
80
  id: "/api/dsh/sessions",
81
81
  pattern: /^\/api\/dsh\/sessions\/?$/,
82
82
  params: [],
83
83
  page: null,
84
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/sessions/_server.ts.js-dYrtVHDP.js'))
84
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/sessions/_server.ts.js-xkp4IT7y.js'))
85
85
  },
86
86
  {
87
87
  id: "/api/dsh/session/[sessionId]/attachment",
88
88
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/attachment\/?$/,
89
89
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
90
90
  page: null,
91
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/attachment/_server.ts.js-x44GKy4R.js'))
91
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/attachment/_server.ts.js-CxMvUVdS.js'))
92
92
  },
93
93
  {
94
94
  id: "/api/dsh/session/[sessionId]/cancel",
95
95
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/cancel\/?$/,
96
96
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
97
97
  page: null,
98
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/cancel/_server.ts.js-Da5ZqeJ7.js'))
98
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/cancel/_server.ts.js-CfjRtKMp.js'))
99
99
  },
100
100
  {
101
101
  id: "/api/dsh/session/[sessionId]/catalog",
102
102
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/catalog\/?$/,
103
103
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
104
104
  page: null,
105
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/catalog/_server.ts.js-BACv9hW-.js'))
105
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/catalog/_server.ts.js-D7uC5b_j.js'))
106
106
  },
107
107
  {
108
108
  id: "/api/dsh/session/[sessionId]/changes",
109
109
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/changes\/?$/,
110
110
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
111
111
  page: null,
112
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/changes/_server.ts.js-BtiUS3iD.js'))
112
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/changes/_server.ts.js-TeoUfrIl.js'))
113
113
  },
114
114
  {
115
115
  id: "/api/dsh/session/[sessionId]/command",
116
116
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/command\/?$/,
117
117
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
118
118
  page: null,
119
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/command/_server.ts.js-BOOyd1LI.js'))
119
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/command/_server.ts.js-uqUb-EdM.js'))
120
120
  },
121
121
  {
122
122
  id: "/api/dsh/session/[sessionId]/events",
123
123
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/events\/?$/,
124
124
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
125
125
  page: null,
126
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/events/_server.ts.js-D0GwQbdF.js'))
126
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/events/_server.ts.js-C_DF0fAc.js'))
127
127
  },
128
128
  {
129
129
  id: "/api/dsh/session/[sessionId]/fork",
130
130
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/fork\/?$/,
131
131
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
132
132
  page: null,
133
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/fork/_server.ts.js-Bd0JYMlf.js'))
133
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/fork/_server.ts.js-BfkqDQXU.js'))
134
134
  },
135
135
  {
136
136
  id: "/api/dsh/session/[sessionId]/goal",
137
137
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/goal\/?$/,
138
138
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
139
139
  page: null,
140
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/goal/_server.ts.js-DqAV7OOv.js'))
140
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/goal/_server.ts.js-vCfxCACS.js'))
141
141
  },
142
142
  {
143
143
  id: "/api/dsh/session/[sessionId]/history",
144
144
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/history\/?$/,
145
145
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
146
146
  page: null,
147
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/history/_server.ts.js-Cz4P-68E.js'))
147
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/history/_server.ts.js-DJlpW4hl.js'))
148
148
  },
149
149
  {
150
150
  id: "/api/dsh/session/[sessionId]/models",
151
151
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/models\/?$/,
152
152
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
153
153
  page: null,
154
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/models/_server.ts.js-C4fXXBIM.js'))
154
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/models/_server.ts.js-Cqn5ZMGh.js'))
155
155
  },
156
156
  {
157
157
  id: "/api/dsh/session/[sessionId]/path",
@@ -165,35 +165,35 @@ return {
165
165
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/permission\/?$/,
166
166
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
167
167
  page: null,
168
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/permission/_server.ts.js-BiqNZiiN.js'))
168
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/permission/_server.ts.js-ChB_0ZdM.js'))
169
169
  },
170
170
  {
171
171
  id: "/api/dsh/session/[sessionId]/prompt",
172
172
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/prompt\/?$/,
173
173
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
174
174
  page: null,
175
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/prompt/_server.ts.js-Bdx9V4oY.js'))
175
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/prompt/_server.ts.js-BVHypcWF.js'))
176
176
  },
177
177
  {
178
178
  id: "/api/dsh/session/[sessionId]/rename",
179
179
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/rename\/?$/,
180
180
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
181
181
  page: null,
182
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/rename/_server.ts.js-CuBqoV3c.js'))
182
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/rename/_server.ts.js-BwDVfVrR.js'))
183
183
  },
184
184
  {
185
185
  id: "/api/dsh/session/[sessionId]/respond",
186
186
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/respond\/?$/,
187
187
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
188
188
  page: null,
189
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/respond/_server.ts.js-CXPFI_Pn.js'))
189
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/respond/_server.ts.js-DRmd83Ea.js'))
190
190
  },
191
191
  {
192
192
  id: "/api/dsh/session/[sessionId]/select-model",
193
193
  pattern: /^\/api\/dsh\/session\/([^/]+?)\/select-model\/?$/,
194
194
  params: [{"name":"sessionId","optional":false,"rest":false,"chained":false}],
195
195
  page: null,
196
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/select-model/_server.ts.js-CRcaw4Yo.js'))
196
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/session/_sessionId_/select-model/_server.ts.js-hc61Nb64.js'))
197
197
  },
198
198
  {
199
199
  id: "/api/dsh/workspace-file-bytes",
@@ -207,42 +207,56 @@ return {
207
207
  pattern: /^\/api\/dsh\/workspace-file\/?$/,
208
208
  params: [],
209
209
  page: null,
210
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspace-file/_server.ts.js-BtlfuMjf.js'))
210
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspace-file/_server.ts.js-BvPKBiTg.js'))
211
211
  },
212
212
  {
213
213
  id: "/api/dsh/workspace-tree",
214
214
  pattern: /^\/api\/dsh\/workspace-tree\/?$/,
215
215
  params: [],
216
216
  page: null,
217
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspace-tree/_server.ts.js-D12kAP9B.js'))
217
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspace-tree/_server.ts.js-BSsF01K6.js'))
218
218
  },
219
219
  {
220
220
  id: "/api/dsh/workspaces",
221
221
  pattern: /^\/api\/dsh\/workspaces\/?$/,
222
222
  params: [],
223
223
  page: null,
224
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspaces/_server.ts.js-C9JHp1WU.js'))
224
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspaces/_server.ts.js-DNLxFs1R.js'))
225
225
  },
226
226
  {
227
227
  id: "/api/dsh/workspaces/[workspaceId]/delete",
228
228
  pattern: /^\/api\/dsh\/workspaces\/([^/]+?)\/delete\/?$/,
229
229
  params: [{"name":"workspaceId","optional":false,"rest":false,"chained":false}],
230
230
  page: null,
231
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/_server.ts.js-bLF4Fbgn.js'))
231
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/_server.ts.js-5jaRPaKn.js'))
232
232
  },
233
233
  {
234
234
  id: "/api/dsh/workspaces/[workspaceId]/rename",
235
235
  pattern: /^\/api\/dsh\/workspaces\/([^/]+?)\/rename\/?$/,
236
236
  params: [{"name":"workspaceId","optional":false,"rest":false,"chained":false}],
237
237
  page: null,
238
- endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/_server.ts.js-BSw_zD-0.js'))
238
+ endpoint: __memo(() => import('./entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/_server.ts.js-A-hvBqyy.js'))
239
+ },
240
+ {
241
+ id: "/api/floor/mode",
242
+ pattern: /^\/api\/floor\/mode\/?$/,
243
+ params: [],
244
+ page: null,
245
+ endpoint: __memo(() => import('./entries/endpoints/api/floor/mode/_server.ts.js-CzBvebv2.js'))
246
+ },
247
+ {
248
+ id: "/api/floor/restart",
249
+ pattern: /^\/api\/floor\/restart\/?$/,
250
+ params: [],
251
+ page: null,
252
+ endpoint: __memo(() => import('./entries/endpoints/api/floor/restart/_server.ts.js-D5wnUph-.js'))
239
253
  },
240
254
  {
241
255
  id: "/api/plugins/apply",
242
256
  pattern: /^\/api\/plugins\/apply\/?$/,
243
257
  params: [],
244
258
  page: null,
245
- endpoint: __memo(() => import('./entries/endpoints/api/plugins/apply/_server.ts.js-BNEUWbaf.js'))
259
+ endpoint: __memo(() => import('./entries/endpoints/api/plugins/apply/_server.ts.js-CCs56XtH.js'))
246
260
  },
247
261
  {
248
262
  id: "/api/plugins/reload",
@@ -396,42 +410,42 @@ return {
396
410
  pattern: /^\/api\/workspace\/file-write\/?$/,
397
411
  params: [],
398
412
  page: null,
399
- endpoint: __memo(() => import('./entries/endpoints/api/workspace/file-write/_server.ts.js-CqyKA9g2.js'))
413
+ endpoint: __memo(() => import('./entries/endpoints/api/workspace/file-write/_server.ts.js-C0x68iMD.js'))
400
414
  },
401
415
  {
402
416
  id: "/api/workspace/git-events",
403
417
  pattern: /^\/api\/workspace\/git-events\/?$/,
404
418
  params: [],
405
419
  page: null,
406
- endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-events/_server.ts.js-yu695YoE.js'))
420
+ endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-events/_server.ts.js-DzdGKZdV.js'))
407
421
  },
408
422
  {
409
423
  id: "/api/workspace/git-file-head",
410
424
  pattern: /^\/api\/workspace\/git-file-head\/?$/,
411
425
  params: [],
412
426
  page: null,
413
- endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-file-head/_server.ts.js-BhDAvM6y.js'))
427
+ endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-file-head/_server.ts.js-BC1jb3zy.js'))
414
428
  },
415
429
  {
416
430
  id: "/api/workspace/git-map",
417
431
  pattern: /^\/api\/workspace\/git-map\/?$/,
418
432
  params: [],
419
433
  page: null,
420
- endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-map/_server.ts.js-BRUgPrJ2.js'))
434
+ endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-map/_server.ts.js-BE9XJyhN.js'))
421
435
  },
422
436
  {
423
437
  id: "/api/workspace/git-status",
424
438
  pattern: /^\/api\/workspace\/git-status\/?$/,
425
439
  params: [],
426
440
  page: null,
427
- endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-status/_server.ts.js-C7VJ2G4_.js'))
441
+ endpoint: __memo(() => import('./entries/endpoints/api/workspace/git-status/_server.ts.js-CWlGtOu8.js'))
428
442
  },
429
443
  {
430
444
  id: "/api/workspace/write-gate",
431
445
  pattern: /^\/api\/workspace\/write-gate\/?$/,
432
446
  params: [],
433
447
  page: null,
434
- endpoint: __memo(() => import('./entries/endpoints/api/workspace/write-gate/_server.ts.js-BH5BRA_d.js'))
448
+ endpoint: __memo(() => import('./entries/endpoints/api/workspace/write-gate/_server.ts.js-CgcggNrH.js'))
435
449
  }
436
450
  ],
437
451
  prerendered_routes: new Set([]),
@@ -445,4 +459,4 @@ return {
445
459
  })();
446
460
 
447
461
  export { manifest as m };
448
- //# sourceMappingURL=manifest.js-D3cyG_zP.js.map
462
+ //# sourceMappingURL=manifest.js-BUA2pFJz.js.map
@@ -4,9 +4,9 @@ const index = 0;
4
4
  let component_cache;
5
5
  const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js-DRfiLzlz.js')).default;
6
6
  const universal_id = "src/routes/+layout.ts";
7
- const imports = ["_app/immutable/nodes/0.DJ0pyst0.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D6mTYwDH.js","_app/immutable/chunks/DlfWhx6l.js"];
8
- const stylesheets = ["_app/immutable/assets/0.BNydQv_U.css"];
7
+ const imports = ["_app/immutable/nodes/0.Jl8y_yU6.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/D6mTYwDH.js","_app/immutable/chunks/DlfWhx6l.js"];
8
+ const stylesheets = ["_app/immutable/assets/0.KhAZv9mf.css"];
9
9
  const fonts = [];
10
10
 
11
11
  export { component, fonts, imports, index, stylesheets, universal_id };
12
- //# sourceMappingURL=0.js-CedNgbP9.js.map
12
+ //# sourceMappingURL=0.js-zSkx80Fq.js.map
@@ -0,0 +1,9 @@
1
+ const index = 1;
2
+ let component_cache;
3
+ const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js-CKrYUsNh.js')).default;
4
+ const imports = ["_app/immutable/nodes/1.C2BfYC2f.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DOkUpqkd.js","_app/immutable/chunks/BXGojodM.js","_app/immutable/chunks/DlfWhx6l.js"];
5
+ const stylesheets = [];
6
+ const fonts = [];
7
+
8
+ export { component, fonts, imports, index, stylesheets };
9
+ //# sourceMappingURL=1.js-BFDsDe_G.js.map
@@ -1,5 +1,5 @@
1
- export { _ as server } from '../entries/pages/_page.server.ts.js-CityLNBO.js';
2
- import '../chunks/dsh-connection.js-DRtqPR_j.js';
1
+ export { _ as server } from '../entries/pages/_page.server.ts.js-CbzURHkB.js';
2
+ import '../chunks/dsh-connection.js-DvncrWM4.js';
3
3
  import '../chunks/config.js-B0w1-uCA.js';
4
4
  import '../chunks/insight-config.js-CA-iT3lB.js';
5
5
  import '../chunks/settings-document.js-BRTO59Al.js';
@@ -18,11 +18,11 @@ import '../chunks/uneval.js-BJ9Qq2SF.js';
18
18
 
19
19
  const index = 2;
20
20
  let component_cache;
21
- const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-J7dfR5ON.js')).default;
21
+ const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js-Bub68nnw.js')).default;
22
22
  const server_id = "src/routes/+page.server.ts";
23
- const imports = ["_app/immutable/nodes/2.DibXuWjr.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/Dz22rCMX.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DlfWhx6l.js","_app/immutable/chunks/D6mTYwDH.js","_app/immutable/chunks/Cq1i4fPn.js"];
24
- const stylesheets = ["_app/immutable/assets/2.tyWDc_pW.css"];
23
+ const imports = ["_app/immutable/nodes/2.UdTbIvwR.js","_app/immutable/chunks/DmLHHlla.js","_app/immutable/chunks/BXGojodM.js","_app/immutable/chunks/HclGiUj8.js","_app/immutable/chunks/xihTtKlq.js","_app/immutable/chunks/DlfWhx6l.js","_app/immutable/chunks/D6mTYwDH.js","_app/immutable/chunks/DOkUpqkd.js"];
24
+ const stylesheets = ["_app/immutable/assets/2.yPxdQ-n0.css"];
25
25
  const fonts = [];
26
26
 
27
27
  export { component, fonts, imports, index, server_id, stylesheets };
28
- //# sourceMappingURL=2.js-B5xHvNNG.js.map
28
+ //# sourceMappingURL=2.js-B3UD9xCC.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deepseek-insight/dsi",
3
- "version": "0.6.15",
3
+ "version": "0.6.16",
4
4
  "description": "See your multiple agents run on the floor (agent, sub-agent, etc), each conversation on the floor are updated instantly.",
5
5
  "keywords": [
6
6
  "Deepseek",
Binary file
Binary file
Binary file
@@ -1,140 +0,0 @@
1
- ---
2
- name: "dsi-thin"
3
- description: "Meta skill: take the dsi-sloc over-threshold report as input and batch-refactor multiple files to the ADR-0019 thin-shell standard — one branch, one batch ADR, a rolling pool of TWO parallel sub-agents (next file starts the moment one finishes), dsi-spec + dsi-task per file, gates and registry amendments enforced. Reserved keyword: /dsi-thin."
4
- ---
5
-
6
- # DSI Thin — Batch Refactor from the SLOC Report
7
-
8
- One trigger → batch thin-shell refactor. The `dsi-sloc` report is the input contract; the ADR-0019 standard is the authority; each file runs through dsi-spec → dsi-task as a sequential-commit wave unit, executed by a **rolling pool of two sub-agents**.
9
-
10
- ## When to Use
11
-
12
- - User runs `/dsi-thin` or says "thin out the fat files" / "refactor the sloc report list"
13
- - A freshly-landed thin-shell standard (e.g. ADR-0019) needs applying to the remaining over-threshold files
14
-
15
- ### Prerequisites ⛔
16
-
17
- - An **authority ADR** must exist that defines the thin-shell standard. If absent, STOP — draft it first via `dsi-adr`; this skill applies a standard, it does not invent one.
18
- - **Resolving the authority ADR — see `references/authority-adr.md`** for the full rules. Summary:
19
- 1. **Live first**: discover the newest thin-shell ADR in `dev/architectural-decission/` (grep for the standard's name, e.g. "Floor Registry" / "thin shell"). Pick the ADR that **DEFINES the standard**, not merely applies it: if a candidate's TL;DR says it applies/extends another ADR's method (e.g. ADR-0020 applies ADR-0019's move-whole method at component scale), climb to the one it cites. The defining ADR's path goes into the batch ADR citation; applying ADRs (e.g. ADR-0020) are cited as WORKED EXAMPLES, not authority.
20
- 2. **Snapshot fallback**: `references/ADR-0019-snapshot.md` is a dated copy of the standard at skill-freeze time — use it when the repo has no match (fresh clone, wrong repo, mirror-only context), and LABEL the run as snapshot-based.
21
- 3. **Drift check**: when both exist and the live ADR is newer than the snapshot, note "live ADR differs from snapshot" and follow the LIVE one; refresh the snapshot as part of batch close.
22
- - A fresh `dsi-sloc` report under `dev/sloc/` (run it if the latest is stale — files refactored since the report dropped below threshold and must not be re-picked).
23
-
24
- ---
25
-
26
- ## Step 0.5: Date Resolution ⛔ MANDATORY
27
-
28
- Resolve today's date via `date +%Y-%m-%d`. Store as `TODAY`. Never infer from context.
29
-
30
- ## Step 1: Curate the Input List
31
-
32
- 1. Read the latest `dev/sloc/{date} - SLOC Report - *.md` over-threshold table.
33
- 2. **Re-verify each candidate live** — re-run the per-file SLOC count (`references/input-contract.md`); the report may be stale.
34
- 3. Present the ranked list to the user with, per file: raw code, its touchpoints (which shared registries/servers it hits), and a suggested **lane assignment** (see Step 3).
35
- 4. User picks, skips, and reorders. The confirmed list is the batch contract. Do NOT proceed without it.
36
-
37
- ## Step 2: Branch + Batch ADR
38
-
39
- 1. ⛔ **One branch per batch**: `refactor/thin-batch-{TODAY}`, created and activated BEFORE any artifact and BEFORE the first commit — no wave commit, spec commit, or ADR commit may land on any other branch. If the branch already exists (earlier run today), RESUME it: inspect its log and worktrees first, never create a same-day duplicate or commit to main while it exists.
40
- 2. **One batch ADR** via `dsi-adr` — but the depth rule applies to what is actually DECIDED here:
41
- - Cite the authority ADR (ADR-0019) as the standard being applied; do NOT re-argue it.
42
- - Decide only batch-specific questions: the confirmed file list, per-file exclusions and why, which frozen registries amend, the two-lane concurrency contract, and accepted give-ups.
43
- - Numbered decisions (D1…Dn), each naming its rejected alternative; diagram showing the two-lane pool and the merge gate.
44
-
45
- ## Step 3: The Two-Lane Rolling Pool ⛔ THE CORE MECHANIC
46
-
47
- Run the batch through **two lanes, each a sub-agent, always two in flight**. The moment one lane's file fully completes (waves committed, gates green), immediately dispatch the next queued file into that lane. Never zero in-flight, never three.
48
-
49
- ⛔ **All DEVELOPMENT is sub-agent work** (operator rule, batch R3 2026-10-10): every wave, extraction, and code commit is executed by a lane sub-agent — the orchestrator NEVER writes `src/` code. The orchestrator's job is verification and gates only: doc-gate checks, independent disk re-runs of reported gate outputs (commit hash, suite count, SLOC — a worker claim is never accepted as evidence), one-lane-at-a-time merge-backs, and adjudications. Serial milestones keep a lane sub-agent too (pool contracts to one in-flight, not zero-with-orchestrator-coding). If a sub-agent stalls (no commit across two orchestrator polls), re-dispatch a FRESH sub-agent with incremental commit phases (commit after each doc/wave so progress is observable) before ever considering takeover.
50
-
51
- ### Concurrency safety — see `references/two-lane-contract.md` for the full contract
52
-
53
- - **Lane isolation by git worktree**: each lane gets its own worktree (`.worktrees/lane-a`, `.worktrees/lane-b`) branched from the batch branch, so two agents never share one working tree, one dev-server port, or one suite baseline. `.worktrees/` MUST be in `.gitignore` before the first worktree is created (untracked lane dirs would pollute every main-tree `git status`/`add`).
54
- - **Touchpoint disjointness**: when building the queue, pair files so the two in-flight files never mutate the same shared module (e.g. never floor-registry AND panel-registry together). If every pairing collides, fall back to strictly sequential for the colliding files — say so in the batch ADR.
55
- - **Merge gate**: lane worktree commits merge back to the batch branch ONE LANE AT A TIME; the other lane keeps working undisturbed. After each merge, the merging lane re-bases its next file on the updated batch branch.
56
- - **Suite baseline per lane**: each lane records the suite count from ITS starting commit; its gates compare against that. The merge gate re-runs the full suite on the batch branch after every merge.
57
-
58
- ### Per-file unit (what each lane sub-agent does — the Composer session's proven chain)
59
-
60
- 0. **Read the worked example first**: ADR-0020 + its spec folder + the wave completion notes (`dev/specs/2026-10/2026-10-10 - Composer Thin Shell/`) are the reference execution — and **check `references/proven-gates.md`** before writing any controller: paid-for lessons (`$effect.root` + `destroy()`, census assertion, live-getter props, focus fidelity) that fail quietly when skipped.
61
- 1. `dsi-spec` for the file — visible checklist in progress; PRD + Tasks + Karpathy context + Tasks.json under `dev/specs/{YYYY-MM}/{TODAY} - {File} Thin Shell/`
62
- 2. `dsi-task` for that file's waves — visible checklist in progress; behavior-neutral gates per wave: suites pass UNCHANGED (count + names), `svelte-autofixer` zero issues, `scripts/dep-graph.mjs --check` frozen crossings, **census assertion** (grep the shell for the moved declarations: zero hits)
63
- 3. Commit per wave: `refactor(ADR-00XX Wn): {what moved whole} — suites pass unchanged (N), +M unit tests`
64
- 4. If the file's floor registry must amend (the 500-line registry): stage the amendment in the lane, applied at merge time
65
-
66
- ### Stop-the-line rule
67
-
68
- A file whose suites cannot stay green unchanged, or that reveals the standard doesn't fit it, falls OUT of the batch: record it in the batch ADR as a named rejected/excluded item with the reason, and continue the pool with the next file. One bad file never blocks the batch.
69
-
70
- ## Step 4: Goal + Todo Discipline (every batch)
71
-
72
- - ONE batch goal at dispatch: objective = "Thin-shell refactor batch: {file list} per {authority ADR} on {branch}".
73
- - Todos per file-wave: `file → W1`, `file → W2`, ..., plus one per merge-back and one for the final registry sweep.
74
- - Update the todo the moment each unit completes; ALWAYS show the full todo list at every phase transition and after every lane completion. Never let the todo go stale between lane events.
75
- - ⛔ **Visible-checklist pattern** (see `docs/visible-checklist-pattern.md` — declare → execute → announce, same-turn): the pipeline checklist is output at the START, then **checked in progress** — at every phase transition, doc gate, and lane merge, re-output it with `[✅]/[🔄]/[❌]` and announce EACH item's result immediately after verifying it, with the disk evidence inline (commit hash, suite count, SLOC number, dep-graph line). Two layers per the pattern: the visible checklist (social) + objective disk verification (`git log`, vitest counts, verify-sloc2, dep-graph) — a worker's report is NEVER the evidence; the orchestrator re-runs the check and announces the result. A claim without a matching disk check stays `[🔄]`.
76
-
77
- ## Step 5: Close the Batch
78
-
79
- 1. All files merged, pool drained.
80
- 2. Registry sweep: every refactored file that dropped below threshold is removed from the floor registry; `dep-graph --check` green.
81
- 3. Re-run `dsi-sloc` — the "after" report. The delta (before → after raw SLOC per file) is appended to the batch ADR as its evidence section.
82
- 4. Batch ADR → Implemented ONLY when every picked file is done or explicitly excluded with reason.
83
- 5. Show the final visible checklist: ALL `[✅]` / `[❌]` with reasons. Commit and push on user command (or per batch contract).
84
-
85
- ---
86
-
87
- ## Pipeline Checklist — MANDATORY
88
-
89
- This is the ONLY checklist output to the user. Declared at the start. Verified at the end.
90
-
91
- ```
92
- 📋 dsi-thin: batch on {branch} — {n} files, two-lane pool
93
-
94
- [ ] 0.5 ⛔ Resolve today's date via `date +%Y-%m-%d` (store as TODAY)
95
-
96
- Step 1: Curate Input
97
- [ ] 1.1 Latest dsi-sloc report read; candidates re-verified live
98
- [ ] 1.2 Touchpoints identified per file; lane pairing plan built
99
- [ ] 1.3 User confirmed the batch list
100
-
101
- Step 2: Branch + Batch ADR
102
- [ ] 2.1 Branch refactor/thin-batch-{TODAY} created AND activated
103
- [ ] 2.2 Batch ADR drafted via dsi-adr (cites authority ADR, decides batch specifics only)
104
- [ ] 2.3 Two-lane worktrees created from the batch branch
105
-
106
- Step 3: Rolling Pool (per file, until queue empty)
107
- [ ] 3.1 dsi-spec per file (visible checklist shown)
108
- [ ] 3.2 dsi-task per file (visible checklist shown, behavior-neutral gates per wave)
109
- [ ] 3.3 Lane merge-back one at a time, full suite green on batch branch after each
110
- [ ] 3.4 Next file dispatched into the freed lane immediately (never 0 in-flight)
111
- [ ] 3.5 Todos updated and SHOWN after every lane event
112
-
113
- Step 4: Close
114
- [ ] 4.1 Registry amendments applied; dep-graph --check green
115
- [ ] 4.2 dsi-sloc re-run; before→after delta recorded in batch ADR
116
- [ ] 4.3 Batch ADR marked Implemented (or exclusions recorded with reasons)
117
- [ ] 4.4 Final checklist shown, all ✅/❌
118
-
119
- ⛔ Behavioral Commitments:
120
- [ ] I will NOT make any commit before the batch branch exists and is activated
121
- [ ] I will NOT run three sub-agents or let the pool drop to zero while queue remains
122
- [ ] I will NOT let two in-flight files share a working tree or a shared-module mutation
123
- [ ] I will NOT merge both lanes simultaneously — one lane at a time, suite-gated
124
- [ ] I will NOT re-argue the authority ADR in the batch ADR
125
- [ ] I will NOT let one failing file block the batch — it gets excluded with a reason
126
- [ ] I will NOT go silent between lane events — todo + checklist always visible
127
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
128
- ```
129
-
130
- ### Check-Off Rules
131
-
132
- - Re-output the checklist at each phase transition and after every lane merge with `[✅]` / `[🔄]` / `[ ]`
133
- - At completion, output the final checklist: ALL `[✅]`, any `[❌]` for failures
134
- - Do NOT deliver without showing the final checklist
135
-
136
- ---
137
-
138
- ## Attention-Degradation Protection
139
-
140
- This skill stays SHORT. The input-contract mechanics live in `references/input-contract.md`; the full two-lane concurrency contract (worktrees, pairing, merge gate, failure recovery) lives in `references/two-lane-contract.md`; paid-for extraction lessons live in `references/proven-gates.md`. This file only orchestrates.