@iceinvein/agent-skills 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
package/skills/index.json
CHANGED
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
"name": "sluice",
|
|
284
284
|
"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 seven rules as one-liners in the router and the full treatment in references read only on friction, and closes each run with a ledger read out of the session transcript: elapsed, tools, tokens, and what every dispatched agent cost. Claude Code only; conflicts with the superpowers plugin.",
|
|
285
285
|
"type": "prompt",
|
|
286
|
-
"version": "0.
|
|
286
|
+
"version": "0.4.0"
|
|
287
287
|
},
|
|
288
288
|
{
|
|
289
289
|
"name": "temporal-coupling-detector",
|
package/skills/sluice/SKILL.md
CHANGED
|
@@ -109,8 +109,8 @@ dependency edges and `Touches` says what cannot overlap, so which tasks may
|
|
|
109
109
|
run at once is derivable rather than guessed. Fan out wherever that graph
|
|
110
110
|
allows; serial is the fallback for where it doesn't, not the default.
|
|
111
111
|
|
|
112
|
-
Then read `references/deep-channel.md` for the plan format, that stop,
|
|
113
|
-
the dispatch rules, and when a task actually needs a reviewer. Three that
|
|
112
|
+
Then read `references/deep-channel.md` for the plan format, that stop, the run
|
|
113
|
+
record, the dispatch rules, and when a task actually needs a reviewer. Three that
|
|
114
114
|
catch people out: concurrent implementers need a worktree each and the flip
|
|
115
115
|
runs alone, review is tiered rather than automatic, and a `deep` run that
|
|
116
116
|
cannot dispatch has to replace the review tier with something, not quietly
|
|
@@ -107,6 +107,21 @@ review options are. Skipping it is how "review outstanding" first appears in
|
|
|
107
107
|
the closing summary, at the one moment your partner can no longer do anything
|
|
108
108
|
about it.
|
|
109
109
|
|
|
110
|
+
## The run record
|
|
111
|
+
|
|
112
|
+
A `deep` run outlives its own context, so what it learns has to sit on disk
|
|
113
|
+
rather than in the session. Keep one file for the run and write it as you go.
|
|
114
|
+
It holds what a stranger resuming tomorrow would need and you would otherwise
|
|
115
|
+
be recalling: the base each task was dispatched from, each task with its status
|
|
116
|
+
and its commits, the review decisions pre-flight settled and the reason each
|
|
117
|
+
one was settled that way, and any finding belonging to a task other than the
|
|
118
|
+
one that surfaced it.
|
|
119
|
+
|
|
120
|
+
Where it goes follows the repo if the repo has a convention, and
|
|
121
|
+
`docs/plans/YYYY-MM-DD-<topic>-record.md` if it does not. Assembling it at
|
|
122
|
+
handback defeats it: a record written from memory is memory, which is the one
|
|
123
|
+
thing the file exists to replace.
|
|
124
|
+
|
|
110
125
|
## Dispatch rules
|
|
111
126
|
|
|
112
127
|
Read the plan as a graph before you read it as a list. `Needs` and `Offers`
|
|
@@ -121,8 +136,8 @@ Derive the sets at dispatch rather than writing wave numbers into the plan. A
|
|
|
121
136
|
declared schedule is wrong the moment one task lands late or comes back with a
|
|
122
137
|
blocking finding. A derived one just recomputes.
|
|
123
138
|
|
|
124
|
-
- One
|
|
125
|
-
outlives compaction; your memory doesn't.
|
|
139
|
+
- One line per task in the run record, marked in progress then complete as it
|
|
140
|
+
moves. That state outlives compaction; your memory doesn't.
|
|
126
141
|
- Each task goes to a fresh agent with that task's text and nothing else.
|
|
127
142
|
What this session accumulated is yours to hold, not theirs.
|
|
128
143
|
- **Fan out wherever the graph allows.** Work that does not write is always
|
|
@@ -171,8 +186,8 @@ not the summary at the end where it reads as an excuse.
|
|
|
171
186
|
Three things change. The plan stops being a brief for strangers and becomes
|
|
172
187
|
your own worklist, which makes its handback the only outside read it will ever
|
|
173
188
|
get rather than a formality on the way to dispatch. Task isolation is gone, so
|
|
174
|
-
|
|
175
|
-
more, not less. And fresh context is unavailable, which was the entire thing
|
|
189
|
+
the run record now carries all of the state that outlives compaction and
|
|
190
|
+
matters more, not less. And fresh context is unavailable, which was the entire thing
|
|
176
191
|
review was buying.
|
|
177
192
|
|
|
178
193
|
One thing does not change: the work still owes a review. Reading your own diff
|
|
@@ -225,8 +240,8 @@ a reviewer writes nothing, so it collides with nothing. The final review is
|
|
|
225
240
|
the only one that waits, because it is the only one that needs everything to
|
|
226
241
|
have landed.
|
|
227
242
|
|
|
228
|
-
Record the base in the
|
|
229
|
-
agent's first commit lands. Recovering it afterwards is archaeology, and the
|
|
243
|
+
Record the base against that task in the run record when you dispatch, before
|
|
244
|
+
the agent's first commit lands. Recovering it afterwards is archaeology, and the
|
|
230
245
|
answer you will guess at is `HEAD~1`, which `references/review.md` already
|
|
231
246
|
names as the standing mistake.
|
|
232
247
|
|
|
@@ -260,8 +275,8 @@ Contracts mean tasks are built blind, so a reviewer reading Task 6 will
|
|
|
260
275
|
sometimes be right about Task 2. That finding fits neither destination: Task
|
|
261
276
|
6's agent cannot act on it, and it does not quietly become yours to fix.
|
|
262
277
|
|
|
263
|
-
Record it
|
|
264
|
-
agent as well if that agent is still live. If it invalidates an `Offers` that
|
|
278
|
+
Record it against the earlier task in the run record, and send it to that
|
|
279
|
+
task's agent as well if that agent is still live. If it invalidates an `Offers` that
|
|
265
280
|
later tasks have already built against, it has stopped being a finding and
|
|
266
281
|
become a plan change, which is your partner's call rather than something to
|
|
267
282
|
absorb into the next task's brief.
|
|
@@ -95,9 +95,13 @@ SUMMARY="$(jq -s --argjson costs "$COSTS" '
|
|
|
95
95
|
.message.content[]? | select(.type == "tool_use" and .name == "Skill")
|
|
96
96
|
| select((.input.skill // "") == "sluice")
|
|
97
97
|
] | length > 0);
|
|
98
|
+
# A call carrying --transcript is reading another run rather than closing
|
|
99
|
+
# this one. Without that exception, a session working on the ledger
|
|
100
|
+
# clips its own run at the last session it tested against.
|
|
98
101
|
def is_stats_call: (.type == "assistant") and ([
|
|
99
102
|
.message.content[]? | select(.type == "tool_use" and .name == "Bash")
|
|
100
103
|
| select((.input.command // "") | test("run-stats\\.sh"))
|
|
104
|
+
| select((.input.command // "") | test("--transcript") | not)
|
|
101
105
|
] | length > 0);
|
|
102
106
|
# Waiting is any turn the partner had to take: a prompt, or an answer to a
|
|
103
107
|
# question you put to them. Leaving the latter out understates the wait on
|
package/skills/sluice/skill.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sluice",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.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 seven rules as one-liners in the router and the full treatment in references read only on friction, and closes each run with a ledger read out of the session transcript: elapsed, tools, tokens, and what every dispatched agent cost. Claude Code only; conflicts with the superpowers plugin.",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|