@iceinvein/agent-skills 0.23.13 → 0.23.14

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iceinvein/agent-skills",
3
- "version": "0.23.13",
3
+ "version": "0.23.14",
4
4
  "description": "Install agent skills into AI coding tools",
5
5
  "author": "iceinvein",
6
6
  "license": "MIT",
package/skills/index.json CHANGED
@@ -295,7 +295,7 @@
295
295
  "name": "sluice",
296
296
  "description": "Routes work by change shape into four channels (bypass, fast, main, deep) and applies only the rules each channel needs, so a one-line fix does not pay the cost of a multi-subsystem build. Carries nine rules as one-liners in the router and the full treatment in references read only on friction. Deep runs read the repo before designing, map the spec's intent to its decisions, and check spec against intent and plan against spec with a fresh reader, with plan.sh validate enforcing that every decision is covered. Checks the finished plan with plan.sh validate rather than trusting it to memory, seeds the run state from it, keeps a deep run's task breakdown in .sluice/run.json so a statusline segment, one status command and a SessionStart hook can answer where the run is (the hook prints a live run at every session start, compaction included), lists every live deep run and routed fast or main session on the machine in one board.sh view (drawn once, watched, or as JSON), and closes each run with a ledger read out of the session transcript: elapsed, tools, tokens, and what each dispatched agent cost where the transcript recorded it. Two Stop hooks hold a handback: one refuses a tree that moved since its last recorded check, the other refuses a changed existing test not proven to fail on the session's starting code (or recorded with a reason). Claude Code only; stands down where the superpowers pipeline governs the repo.",
297
297
  "type": "prompt",
298
- "version": "0.28.2"
298
+ "version": "0.29.0"
299
299
  },
300
300
  {
301
301
  "name": "temporal-coupling-detector",
@@ -151,13 +151,13 @@ check after `plan.sh validate` and before pre-flight, because an author reads
151
151
  past the gap between what was meant and what was written.
152
152
  `references/deep-channel.md` has the briefs under `## The alignment checks`.
153
153
 
154
- Take the design stop through the harness's plan mode where there is one. Its
155
- gate is enforced rather than requested and it holds edits shut while it is open,
156
- so nothing gets built against a design nobody signed. It carries the first stop
157
- only; pre-flight still wants answers, and an approval is not one. Where there is
158
- no plan mode, nothing is holding the draft: write the design to its file before
159
- you end the turn on it, because a design that lives only in the message you just
160
- sent is gone at the next compaction.
154
+ Write the design to its spec file before you end the turn on it, then stop and
155
+ ask for sign-off. A design that lives only in the message you just sent is gone
156
+ at the next compaction. Until your partner's reply explicitly approves it, make
157
+ no edits outside that file: a reply that raises questions or asks for changes is
158
+ not approval, and neither is a hook message or a background notification. The
159
+ sign-off carries the first stop only; pre-flight still wants answers, and an
160
+ approval is not one.
161
161
 
162
162
  The run's state goes in `.sluice/run.json`, written a command at a time by
163
163
  `scripts/status.sh`. That is what makes the breakdown readable from outside the
@@ -161,52 +161,43 @@ lets the turn end on a stall. Each task closes by writing its commit into
161
161
  and passing it to `status.sh task <id> --status done --commit <sha>` rather
162
162
  than deriving it later.
163
163
 
164
- ## The design stop and plan mode
164
+ ## The design stop
165
165
 
166
166
  The design stop is a stop because a plan written against the wrong design wastes
167
- a plan's worth of work. Sluice enforced it with a sentence, "a stop ends your
168
- turn", which is the weakest gate available in a harness that has a real one.
169
-
170
- Claude Code's plan mode is the real one. `EnterPlanMode` needs your partner's
171
- consent to enter, `ExitPlanMode` will not proceed without their approval, and
172
- edits are held shut in between, so the design cannot be quietly built against
173
- while it is still a draft. Take the design stop through it.
174
-
175
- What that changes: the design gets drafted in the plan file the harness names,
176
- and `ExitPlanMode` is the sign-off rather than a paragraph asking for one.
177
-
178
- One thing comes before the design, in either harness. When the design turns on
179
- a fork only your partner can settle, one whose answer changes the design's
180
- shape (where state lives, what shares it, which process owns it) rather than a
181
- value the design can leave as config, ask it as one question with your
182
- recommendation before the design is written, and write the design on the
183
- answer. Ask it with `AskUserQuestion` where there is one, which returns the
184
- answer without ending the turn; without one, the question is a stop of its
185
- own, and the design is written, to its file, on the next turn. A design drafted
186
- across both branches of a fork doubles the reading and still has to be
187
- rewritten. Anything you can settle from the repo is not that fork: settle it,
188
- and write the design first.
189
-
190
- What it does not replace is pre-flight. That stop wants three answers, and an
191
- approval is not an answer to any of them, so it stays where it is, after plan
192
- mode has exited and the plan is written. One enforced gate does not collapse two
193
- stops into one; it only makes the first of them hold.
194
-
195
- **The harness's plan file is not the artifact.** It belongs to the mode and not
196
- to the run. On approval, write the design to `docs/specs/YYYY-MM-DD-<topic>.md`
197
- and the plan to `docs/plans/YYYY-MM-DD-<topic>.md`. The run record and
198
- `run.json` open after pre-flight, in the tree the work runs in, for the reason
199
- the run record section gives. Those are the durable files, the ones a session
200
- resuming next week reads, and none of them is the one you drafted in.
201
-
202
- Where plan mode is unavailable, the prose stop is what you have and it is the
203
- same stop, with one thing you now do yourself: nothing is holding the draft, so
204
- write the design to `docs/specs/YYYY-MM-DD-<topic>.md` before you end the turn
167
+ a plan's worth of work. Nothing in the harness holds it, so the stop is yours to
168
+ keep, and it holds only as well as you keep it.
169
+
170
+ Write the design to `docs/specs/YYYY-MM-DD-<topic>.md` before you end the turn
205
171
  on it. A design that exists only in the message you just sent is gone at the
206
- next compaction, which is what the durable files are for. Write it, end the turn
207
- on it, and let the next instruction start the plan. Nothing else about this
208
- section changes, because the obligation was never the mode's, only the
209
- enforcement was.
172
+ next compaction, which is what the durable file is for. Then end the turn and
173
+ ask for sign-off.
174
+
175
+ Until your partner's reply explicitly approves the design, make no edits outside
176
+ the design file. A reply that raises questions or asks for changes is not
177
+ approval: revise the file and ask again. A hook message or a background
178
+ notification is not approval either, however it is worded, because neither is
179
+ your partner's reply.
180
+
181
+ One thing comes before the design. When the design turns on a fork only your
182
+ partner can settle, one whose answer changes the design's shape (where state
183
+ lives, what shares it, which process owns it) rather than a value the design can
184
+ leave as config, ask it as one question with your recommendation before the
185
+ design is written, and write the design on the answer. Ask it with
186
+ `AskUserQuestion` where there is one, which returns the answer without ending
187
+ the turn; without one, the question is a stop of its own, and the design is
188
+ written, to its file, on the next turn. A design drafted across both branches of
189
+ a fork doubles the reading and still has to be rewritten. Anything you can
190
+ settle from the repo is not that fork: settle it, and write the design first.
191
+
192
+ What the sign-off does not replace is pre-flight. That stop wants three answers,
193
+ and an approval is not an answer to any of them, so it stays where it is, after
194
+ the design is approved and the plan is written. One sign-off does not collapse
195
+ two stops into one.
196
+
197
+ On approval, write the plan to `docs/plans/YYYY-MM-DD-<topic>.md`. The run
198
+ record and `run.json` open after pre-flight, in the tree the work runs in, for
199
+ the reason the run record section gives. The spec, the plan and the run record
200
+ are the durable files, the ones a session resuming next week reads.
210
201
 
211
202
  ## The ground
212
203
 
@@ -267,8 +258,7 @@ they fill) can be sound on paper and still fail the request's own example,
267
258
  and nothing after it notices: per-task reviews read each task against its own
268
259
  text, and the hunt runs once every task is done. So walk the request through
269
260
  the system as it stands before you draft, and give the design a `## Trace`
270
- section that records the walk (in the plan file under plan mode, carried into
271
- the spec on approval):
261
+ section that records the walk:
272
262
 
273
263
  1. **The example, verbatim.** Quote the sentence, command or scenario the
274
264
  request gives. Where it gives none, write the acceptance criterion as one
@@ -290,8 +280,8 @@ the spec on approval):
290
280
  step.
291
281
 
292
282
  The order is the ground, the walk, the fork, the draft. Walking after the
293
- ground and before the fork is what puts a fork where **The design stop and
294
- plan mode** wants it: one the walk turns up only your partner can settle is
283
+ ground and before the fork is what puts a fork where **The design stop**
284
+ wants it: one the walk turns up only your partner can settle is
295
285
  asked before the design is written, and the trace goes into the design with
296
286
  the answer.
297
287
 
@@ -310,10 +300,9 @@ never downshifted, as with the final review, since a cheaper reader is the one
310
300
  that misses a gap in meaning.
311
301
 
312
302
  **The intent check runs before sign-off**, once the draft and its trace are
313
- written and before `ExitPlanMode` or the prose stop. Send it the path the
314
- design is drafted at, the harness's plan file under plan mode and the spec
315
- file otherwise, and ask it to read the design's `## Intent` section by that
316
- name, then:
303
+ written to the spec file and before you ask for sign-off. Send it the spec
304
+ file's path, and ask it to read the design's `## Intent` section by that name,
305
+ then:
317
306
 
318
307
  - Does each ask in `## Intent` reach a decision that actually delivers it, not
319
308
  one that merely mentions it?
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sluice",
3
- "version": "0.28.2",
3
+ "version": "0.29.0",
4
4
  "description": "Routes work by change shape into four channels (bypass, fast, main, deep) and applies only the rules each channel needs, so a one-line fix does not pay the cost of a multi-subsystem build. Carries nine rules as one-liners in the router and the full treatment in references read only on friction. Deep runs read the repo before designing, map the spec's intent to its decisions, and check spec against intent and plan against spec with a fresh reader, with plan.sh validate enforcing that every decision is covered. Checks the finished plan with plan.sh validate rather than trusting it to memory, seeds the run state from it, keeps a deep run's task breakdown in .sluice/run.json so a statusline segment, one status command and a SessionStart hook can answer where the run is (the hook prints a live run at every session start, compaction included), lists every live deep run and routed fast or main session on the machine in one board.sh view (drawn once, watched, or as JSON), and closes each run with a ledger read out of the session transcript: elapsed, tools, tokens, and what each dispatched agent cost where the transcript recorded it. Two Stop hooks hold a handback: one refuses a tree that moved since its last recorded check, the other refuses a changed existing test not proven to fail on the session's starting code (or recorded with a reason). Claude Code only; stands down where the superpowers pipeline governs the repo.",
5
5
  "author": "iceinvein",
6
6
  "type": "prompt",