@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
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.
|
|
298
|
+
"version": "0.29.0"
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"name": "temporal-coupling-detector",
|
package/skills/sluice/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
|
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.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
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
|
|
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
|
|
294
|
-
|
|
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
|
|
314
|
-
|
|
315
|
-
|
|
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?
|
package/skills/sluice/skill.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sluice",
|
|
3
|
-
"version": "0.
|
|
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",
|