@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.
- package/.agents/skills/dsi-ports/SKILL.md +61 -0
- package/.agents/skills/dsi-restart/SKILL.md +85 -0
- package/bin/dsi.mjs +148 -39
- package/bin/lib/dev-mode.mjs +138 -0
- package/bin/lib/plugin-chain.mjs +47 -0
- package/build/client/_app/immutable/assets/{0.BNydQv_U.css → 0.KhAZv9mf.css} +1 -1
- package/build/client/_app/immutable/assets/2.yPxdQ-n0.css +1 -0
- package/build/client/_app/immutable/chunks/{Dz22rCMX.js → BXGojodM.js} +2 -2
- package/build/client/_app/immutable/chunks/C0ZiNuOj.js +1 -0
- package/build/client/_app/immutable/chunks/{Cq1i4fPn.js → DOkUpqkd.js} +1 -1
- package/build/client/_app/immutable/chunks/b58grRSF.js +1 -0
- package/build/client/_app/immutable/entry/{app.BzO5CDQp.js → app.CfbFUHxw.js} +2 -2
- package/build/client/_app/immutable/entry/start.4M41VX7w.js +1 -0
- package/build/client/_app/immutable/nodes/{1.DUMUcf6V.js → 1.C2BfYC2f.js} +1 -1
- package/build/client/_app/immutable/nodes/{2.DibXuWjr.js → 2.UdTbIvwR.js} +219 -219
- package/build/client/_app/version.json +1 -1
- package/build/handler.js +4 -4
- package/build/index.js +4 -4
- package/build/server/chunks/chunks/{dsh-connection.js-DRtqPR_j.js → dsh-connection.js-DvncrWM4.js} +5 -2
- package/build/server/chunks/chunks/{git-probe.js-Daf6r7Z9.js → git-probe.js-S9w9gGXE.js} +2 -2
- package/build/server/chunks/chunks/{internal2.js-CFvE_2qT.js → internal2.js-DMu68nYR.js} +2 -2
- package/build/server/chunks/chunks/restart-chain.js-D-VwGWE2.js +112 -0
- package/build/server/chunks/chunks/{state.js-BFJMxIOB.js → state.js-CBD6RE0B.js} +2 -2
- package/build/server/chunks/chunks/{watcher.js-CoR53lwR.js → watcher.js-BfZOp5td.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-BKlF4XGH.js → _server.ts.js-D9vpMh8K.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-BpEhlidV.js → _server.ts.js-HPJEmfbv.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-Dmh7f-hU.js → _server.ts.js-BaAmRXrU.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-BEci0ZAx.js → _server.ts.js-D-Ftq5ei.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-OXFzXBSp.js → _server.ts.js-C0_j53OW.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-x44GKy4R.js → _server.ts.js-CxMvUVdS.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-Da5ZqeJ7.js → _server.ts.js-CfjRtKMp.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-BACv9hW-.js → _server.ts.js-D7uC5b_j.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/changes/{_server.ts.js-BtiUS3iD.js → _server.ts.js-TeoUfrIl.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-BOOyd1LI.js → _server.ts.js-uqUb-EdM.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-D0GwQbdF.js → _server.ts.js-C_DF0fAc.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-Bd0JYMlf.js → _server.ts.js-BfkqDQXU.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-DqAV7OOv.js → _server.ts.js-vCfxCACS.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-Cz4P-68E.js → _server.ts.js-DJlpW4hl.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-C4fXXBIM.js → _server.ts.js-Cqn5ZMGh.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-BiqNZiiN.js → _server.ts.js-ChB_0ZdM.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-Bdx9V4oY.js → _server.ts.js-BVHypcWF.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-CuBqoV3c.js → _server.ts.js-BwDVfVrR.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-CXPFI_Pn.js → _server.ts.js-DRmd83Ea.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-CRcaw4Yo.js → _server.ts.js-hc61Nb64.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-dYrtVHDP.js → _server.ts.js-xkp4IT7y.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js-BtlfuMjf.js → _server.ts.js-BvPKBiTg.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-D12kAP9B.js → _server.ts.js-BSsF01K6.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-C9JHp1WU.js → _server.ts.js-DNLxFs1R.js} +2 -2
- package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-bLF4Fbgn.js → _server.ts.js-5jaRPaKn.js} +2 -2
- 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
- package/build/server/chunks/entries/endpoints/api/floor/mode/_server.ts.js-CzBvebv2.js +25 -0
- package/build/server/chunks/entries/endpoints/api/floor/restart/_server.ts.js-D5wnUph-.js +30 -0
- package/build/server/chunks/entries/endpoints/api/plugins/apply/{_server.ts.js-BNEUWbaf.js → _server.ts.js-CCs56XtH.js} +5 -56
- package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-CqyKA9g2.js → _server.ts.js-C0x68iMD.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-yu695YoE.js → _server.ts.js-DzdGKZdV.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-BhDAvM6y.js → _server.ts.js-BC1jb3zy.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-BRUgPrJ2.js → _server.ts.js-BE9XJyhN.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-C7VJ2G4_.js → _server.ts.js-CWlGtOu8.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-BH5BRA_d.js → _server.ts.js-CgcggNrH.js} +3 -3
- package/build/server/chunks/entries/pages/{_error.svelte.js-Cz-l6MbQ.js → _error.svelte.js-CKrYUsNh.js} +3 -3
- package/build/server/chunks/entries/pages/{_page.server.ts.js-CityLNBO.js → _page.server.ts.js-CbzURHkB.js} +2 -2
- package/build/server/chunks/entries/pages/{_page.svelte.js-J7dfR5ON.js → _page.svelte.js-Bub68nnw.js} +135 -21
- package/build/server/chunks/{handler-Ctb3OEZ3.js → handler-29vKRsIm.js} +3 -3
- package/build/server/chunks/{index.js-DZ5R_e-K.js → index.js-BpxR9RqE.js} +2 -2
- package/build/server/chunks/{manifest.js-D3cyG_zP.js → manifest.js-BUA2pFJz.js} +52 -38
- package/build/server/chunks/nodes/{0.js-CedNgbP9.js → 0.js-zSkx80Fq.js} +3 -3
- package/build/server/chunks/nodes/1.js-BFDsDe_G.js +9 -0
- package/build/server/chunks/nodes/{2.js-B5xHvNNG.js → 2.js-B3UD9xCC.js} +6 -6
- package/package.json +1 -1
- package/template/.dsi/prompts.sqlite +0 -0
- package/template/.dsi/prompts.sqlite-shm +0 -0
- package/template/.dsi/prompts.sqlite-wal +0 -0
- package/.agents/skills/dsi-thin/SKILL.md +0 -140
- package/.agents/skills/dsi-thin/references/ADR-0019-snapshot.md +0 -363
- package/.agents/skills/dsi-thin/references/authority-adr.md +0 -28
- package/.agents/skills/dsi-thin/references/input-contract.md +0 -42
- package/.agents/skills/dsi-thin/references/proven-gates.md +0 -61
- package/.agents/skills/dsi-thin/references/two-lane-contract.md +0 -53
- package/build/client/_app/immutable/assets/2.tyWDc_pW.css +0 -1
- package/build/client/_app/immutable/chunks/DlCR4rv7.js +0 -1
- package/build/client/_app/immutable/chunks/syBMXJiJ.js +0 -1
- package/build/client/_app/immutable/entry/start.DPtsd8of.js +0 -1
- package/build/server/chunks/nodes/1.js-BJtXg-yj.js +0 -9
- /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.
|
|
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-
|
|
16
|
-
__memo(() => import('./nodes/1.js-
|
|
17
|
-
__memo(() => import('./nodes/2.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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
8
|
-
const stylesheets = ["_app/immutable/assets/0.
|
|
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-
|
|
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-
|
|
2
|
-
import '../chunks/dsh-connection.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-
|
|
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.
|
|
24
|
-
const stylesheets = ["_app/immutable/assets/2.
|
|
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-
|
|
28
|
+
//# sourceMappingURL=2.js-B3UD9xCC.js.map
|
package/package.json
CHANGED
|
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.
|