@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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iceinvein/agent-skills",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Install agent skills into AI coding tools",
5
5
  "author": "iceinvein",
6
6
  "license": "MIT",
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.3.0"
286
+ "version": "0.4.0"
287
287
  },
288
288
  {
289
289
  "name": "temporal-coupling-detector",
@@ -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 `TaskCreate` per task, marked in progress then complete. That state
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
- `TaskCreate` now carries all of the state that outlives compaction and matters
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 task's `TaskCreate` entry when you dispatch, before 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 on the earlier task's `TaskCreate` entry, and send it to that task's
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sluice",
3
- "version": "0.3.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",