@iceinvein/agent-skills 0.8.2 → 0.8.4

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.8.2",
3
+ "version": "0.8.4",
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 each dispatched agent cost where the transcript recorded it. Claude Code only; stands down where the superpowers pipeline governs the repo.",
285
285
  "type": "prompt",
286
- "version": "0.5.0"
286
+ "version": "0.7.0"
287
287
  },
288
288
  {
289
289
  "name": "temporal-coupling-detector",
@@ -90,15 +90,45 @@ Design to `docs/specs/YYYY-MM-DD-<topic>.md`, plan to
90
90
  `docs/plans/YYYY-MM-DD-<topic>.md`, unless the repo has a convention or
91
91
  your partner states a preference. Get the design signed off before code.
92
92
 
93
+ **Read `references/deep-channel.md` before you write the plan.** It carries the
94
+ plan format, the pre-flight questions, the run record, the dispatch rules and
95
+ the review tiers, and none of those are derivable from what is on this page.
96
+ Take the plan file's first character as the trigger, not this sentence's
97
+ position: design sign-off can be days and a context window away from here, by
98
+ which point this paragraph is a thousand messages back and reads as something
99
+ already handled. A plan written without that file comes out as prose with a
100
+ sequencing note, which reads fine to its author and cannot be dispatched,
101
+ reviewed or resumed.
102
+
103
+ The skeleton it fills in, so that a plan written without it is at least still a
104
+ plan:
105
+
106
+ ```
107
+ # Plan: <topic>
108
+ ## Ground Rules
109
+ - <exact value>
110
+ ### Task N: <name>
111
+ **Contract:** Needs: <sig> | Offers: <sig>
112
+ **Touches:** <path> (new) | <path> (edit) | <path> (test)
113
+ **Flips:** <what changes, from what, or omit>
114
+ **Review:** <reason, or omit>
115
+ - [ ] <action> -> <proof>
116
+ ```
117
+
118
+ Read that as a graph rather than a list. `Needs` and `Offers` are dependency
119
+ edges and `Touches` says what cannot overlap, so which tasks may run at once is
120
+ derivable rather than guessed. Fan out wherever that graph allows; serial is the
121
+ fallback for where it doesn't, not the default.
122
+
93
123
  The second stop is the plan's, whoever executes it. Dispatched agents each see
94
124
  only their own task, so nobody reads it whole; executing it yourself is the
95
125
  weaker case rather than the exempt one, because then nobody reads it but its
96
126
  author.
97
127
 
98
128
  Order the plan so the tasks that change nothing come first, and mark the one
99
- task that turns the new behaviour on. Then a late re-baseline, re-blessed
100
- snapshots, regenerated fixtures, attributes to that one point instead of to
101
- the branch at large.
129
+ task that turns the new behaviour on with `Flips`. Then a late re-baseline,
130
+ re-blessed snapshots, regenerated fixtures, attributes to that one point
131
+ instead of to the branch at large.
102
132
 
103
133
  Pre-flight rides in that same stop: which flagged tasks get a reviewer, and
104
134
  whether the work runs in a worktree. Ask them as choices with the counts in
@@ -109,17 +139,15 @@ this question the place to ask; genuine unavailability is the tool not being
109
139
  there at all, which `references/deep-channel.md` handles separately. Review that
110
140
  turns out to be missing is only actionable while the plan can still change.
111
141
 
112
- Read the plan as a graph rather than a list. `Needs` and `Offers` are
113
- dependency edges and `Touches` says what cannot overlap, so which tasks may
114
- run at once is derivable rather than guessed. Fan out wherever that graph
115
- allows; serial is the fallback for where it doesn't, not the default.
116
-
117
- Then read `references/deep-channel.md` for the plan format, that stop, the run
118
- record, the dispatch rules, and when a task actually needs a reviewer. Three that
119
- catch people out: concurrent implementers need a worktree each and the flip
120
- runs alone, review is tiered rather than automatic, and a `deep` run that
121
- cannot dispatch has to replace the review tier with something, not quietly
122
- ship without one.
142
+ Both answers go into the run record before Task 1's first edit, each with the
143
+ reason it went that way. Those rows are what discharge pre-flight, not the
144
+ approval: one reply arrives for two obligations, so a "yes" with no rows behind
145
+ it signed off the plan and nothing else.
146
+
147
+ Three from that file that catch people out: concurrent implementers need a
148
+ worktree each and the flip runs alone, review is tiered rather than automatic,
149
+ and a `deep` run that cannot dispatch has to replace the review tier with
150
+ something, not quietly ship without one.
123
151
 
124
152
  ## Conflicts
125
153
 
@@ -64,9 +64,11 @@ A `deep` run outlives its own context, so what it learns has to sit on disk
64
64
  rather than in the session. Open one file for the run before pre-flight and
65
65
  write it as you go. It holds what a stranger resuming tomorrow would need and
66
66
  you would otherwise be recalling: the base each task was dispatched from, each
67
- task with its status and its commits, the review decisions pre-flight settled
68
- and the reason each one was settled that way, and any finding belonging to a
69
- task other than the one that surfaced it.
67
+ task with its status and its commits, both answers pre-flight settled, review
68
+ and workspace alike, with the reason each one went that way, and any finding
69
+ belonging to a task other than the one that surfaced it. Those pre-flight rows
70
+ come first and open the file, because they are also what says the stop happened
71
+ at all.
70
72
 
71
73
  Where it goes follows the repo if the repo has a convention, and
72
74
  `docs/plans/YYYY-MM-DD-<topic>-record.md` if it does not. It belongs to you
@@ -122,9 +124,29 @@ repo, a lint target that resolves through a symlink, a build that needs its own
122
124
  install, belongs in the option text where it can affect the answer, not in a
123
125
  footnote after they have chosen.
124
126
 
127
+ That question settles where the implementers run, not whether a task may be
128
+ dispatched at all, and the shared-tree and current-branch options have to say
129
+ so: under either, a single task still goes to its own agent where the reading
130
+ would otherwise land here, announced when it happens. Put it in the option text
131
+ rather than leaving it to be inferred. Unsaid, it is not in what your partner
132
+ agreed to, and a session that dispatches only when asked then has to stop
133
+ mid-run to ask for the one dispatch that would have paid. Do not name the tasks
134
+ here: which one turns out read-heavy is not knowable yet, and a list written now
135
+ is the declared schedule the dispatch rules reject.
136
+
125
137
  If one of the two has only one live answer, say which and ask the other. A stop
126
138
  down to a single question is still a stop.
127
139
 
140
+ **Write the answers into the run record before Task 1's first edit.** Both of
141
+ them, each with the reason it went that way. This is what discharges pre-flight,
142
+ rather than the approval you got, and the distinction is the whole point: a stop
143
+ that carries the plan and pre-flight together has one reply for two obligations,
144
+ so a bare "yes" satisfies the plan and leaves no trace either way of the
145
+ questions. Rows in a file leave that trace. If Task 1 is about to open and the
146
+ record has nothing in it, you did not ask, however clearly you remember
147
+ intending to, and the questions are still cheap here and unaskable an hour from
148
+ now.
149
+
128
150
  A session that forbids subagents does not skip this; it changes what the
129
151
  review options are. Skipping it is how "review outstanding" first appears in
130
152
  the closing summary, at the one moment your partner can no longer do anything
@@ -151,6 +173,14 @@ blocking finding. A derived one just recomputes.
151
173
  - **Fan out wherever the graph allows.** Work that does not write is always
152
174
  safe and always parallel: investigations, searches and reviewers, one agent
153
175
  per question, all in one message so they run at once.
176
+ - **A single task can still be dispatched from a shared tree.** What that
177
+ answer bought was serial implementers, and one agent at a time satisfies it,
178
+ so the escalation stays open per task instead of being foreclosed at
179
+ pre-flight. Take it where the reading dwarfs the diff: the task's own text
180
+ calls for a survey before the edit, its gates are the noisy ones, or this
181
+ session has already been summarised once and what is left is scarce. Say it
182
+ out loud and put the row in the run record with its reason, because otherwise
183
+ the record says controller-run and the transcript says otherwise.
154
184
  - **Concurrent implementers need a worktree each.** Disjoint `Touches` is
155
185
  necessary and no longer sufficient: agents commit their own tasks, so two
156
186
  in one tree contend on the git index and on `HEAD` even when their files
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sluice",
3
- "version": "0.5.0",
3
+ "version": "0.7.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 each dispatched agent cost where the transcript recorded it. Claude Code only; stands down where the superpowers pipeline governs the repo.",
5
5
  "author": "iceinvein",
6
6
  "type": "prompt",