@iceinvein/agent-skills 0.23.0 → 0.23.2
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/README.md +16 -0
- package/package.json +1 -1
- package/skills/bug-hunter/SKILL.md +3 -1
- package/skills/bug-hunter/skill.json +1 -1
- package/skills/improve-my-codebase/skill.json +4 -1
- package/skills/index.json +8 -8
- package/skills/magpie/README.md +9 -1
- package/skills/magpie/SKILL.md +2 -1
- package/skills/magpie/bin/magpie +17 -0
- package/skills/magpie/install.sh +21 -3
- package/skills/magpie/skill.json +2 -2
- package/skills/migrate/README.md +6 -0
- package/skills/migrate/SKILL.md +2 -1
- package/skills/migrate/skill.json +1 -1
- package/skills/scope-estimate/README.md +15 -8
- package/skills/scope-estimate/SKILL.md +13 -12
- package/skills/scope-estimate/skill.json +16 -5
- package/skills/sluice/SKILL.md +3 -1
- package/skills/sluice/references/deep-channel.md +4 -2
- package/skills/sluice/scripts/status.sh +7 -1
- package/skills/sluice/skill.json +2 -2
package/README.md
CHANGED
|
@@ -22,6 +22,22 @@ bunx @iceinvein/agent-skills install # no args: opens pi
|
|
|
22
22
|
|
|
23
23
|
Auto-detects Claude Code, Cursor, Codex, or Gemini CLI. Use `--tool claude` to target one, `-g` to install globally.
|
|
24
24
|
|
|
25
|
+
### Claude Code plugin
|
|
26
|
+
|
|
27
|
+
Each skill is also a plugin in the `iceinvein-skills` marketplace:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
/plugin marketplace add iceinvein/agent-skills
|
|
31
|
+
/plugin install <skill>@iceinvein-skills
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
- Plugin skills are namespaced: invoke them as `/<skill>:<skill>` (e.g. `/sluice:sluice`).
|
|
35
|
+
- Third-party marketplaces do not auto-update by default. Update from `/plugin`.
|
|
36
|
+
- Activation modes do not apply: sluice's hooks always run while the plugin is enabled, and terse is never auto-activated.
|
|
37
|
+
- Do not install sluice through both routes, or its hooks run twice. Its statusline segment is bunx-only.
|
|
38
|
+
- magpie, migrate and scope-estimate need Bun on PATH.
|
|
39
|
+
- improve-my-codebase's plugin carries every audit, so under the plugin route its audits do not need installing separately.
|
|
40
|
+
|
|
25
41
|
## Skills
|
|
26
42
|
|
|
27
43
|
### Migration
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bug-hunter
|
|
3
3
|
description: Use when asked to hunt for bugs or edge cases in a change or area, to say what QA will find before QA does, or to prove a change correct. Runs QA-style scenarios as failing reproductions in the repo's own test runner and reports only bugs it can prove, plus the questions intent leaves open.
|
|
4
|
+
argument-hint: "[<commit>|<base>..<head>|<path>...]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Bug hunter
|
|
@@ -12,7 +13,8 @@ a failing reproduction, checked against what the change was meant to do.
|
|
|
12
13
|
## Method
|
|
13
14
|
|
|
14
15
|
1. **Name the target** in one line: a diff (a commit, a range, the working
|
|
15
|
-
changes) or a set of paths
|
|
16
|
+
changes) or a set of paths, taken from the arguments when given and the
|
|
17
|
+
working changes otherwise. Every later step is scoped to it.
|
|
16
18
|
2. **Collect intent** into `intent.md`: numbered claims (`I1`, `I2`, ...),
|
|
17
19
|
each one checkable statement with its source. Sources are the request or
|
|
18
20
|
ticket, commit messages, specs and designs, docs, `CLAUDE.md`/`AGENTS.md`,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bug-hunter",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Hunts logic and correctness bugs in a change or area and proves each one with a failing reproduction checked against stated intent. One agent collects intent from the request, specs, docs and unchanged code, runs QA-style scenarios from a catalog as repros in the repo's own test runner inside a scratch copy, and re-runs each failure clean before reporting it. Counts a contradicted claim, or a result wrong under every reading, as a bug; keeps ambiguities for questions with more than one acceptable answer; reports latent defects without filing them. No repro, no finding. Writes report.md and findings.json (bugs, ambiguities, covered) to .bug-hunter/<date>-<slug>/ and never modifies the caller's tree. Language-agnostic; ships no per-language scripts.",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "improve-my-codebase",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Orchestrator skill that runs every applicable audit skill in parallel and produces a prioritized, convergence-ranked improvement report",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|
|
7
|
+
"plugin": {
|
|
8
|
+
"bundleSiblings": true
|
|
9
|
+
},
|
|
7
10
|
"tools": [
|
|
8
11
|
"claude",
|
|
9
12
|
"cursor",
|
package/skills/index.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "bug-hunter",
|
|
14
14
|
"description": "Hunts logic and correctness bugs in a change or area and proves each one with a failing reproduction checked against stated intent. One agent collects intent from the request, specs, docs and unchanged code, runs QA-style scenarios from a catalog as repros in the repo's own test runner inside a scratch copy, and re-runs each failure clean before reporting it. Counts a contradicted claim, or a result wrong under every reading, as a bug; keeps ambiguities for questions with more than one acceptable answer; reports latent defects without filing them. No repro, no finding. Writes report.md and findings.json (bugs, ambiguities, covered) to .bug-hunter/<date>-<slug>/ and never modifies the caller's tree. Language-agnostic; ships no per-language scripts.",
|
|
15
15
|
"type": "prompt",
|
|
16
|
-
"version": "0.4.
|
|
16
|
+
"version": "0.4.2"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"name": "codebase-architecture",
|
|
@@ -211,7 +211,7 @@
|
|
|
211
211
|
"name": "improve-my-codebase",
|
|
212
212
|
"description": "Orchestrator skill that runs every applicable audit skill in parallel and produces a prioritized, convergence-ranked improvement report",
|
|
213
213
|
"type": "prompt",
|
|
214
|
-
"version": "1.1.
|
|
214
|
+
"version": "1.1.1"
|
|
215
215
|
},
|
|
216
216
|
{
|
|
217
217
|
"name": "integration-pattern-auditor",
|
|
@@ -225,15 +225,15 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"name": "magpie",
|
|
228
|
-
"description": "Interactive PR review pipeline. Runs five parallel specialist subagents (security, bugs, performance, code-smells, architecture) plus a once-per-PR checks pass that finds tests and controls able to pass without proving their purpose, drops findings whose quoted evidence is not in the code, dedupes, runs critic subagents that re-check each finding against the worktree and set its risk label, peer-reviews via codex exec (falling back to a Claude second opinion when codex is unavailable), and serves an interactive HTML report for selecting or dismissing findings to post via gh, recording the outcome per finding as labels. Bundles a Bun CLI
|
|
228
|
+
"description": "Interactive PR review pipeline. Runs five parallel specialist subagents (security, bugs, performance, code-smells, architecture) plus a once-per-PR checks pass that finds tests and controls able to pass without proving their purpose, drops findings whose quoted evidence is not in the code, dedupes, runs critic subagents that re-check each finding against the worktree and set its risk label, peer-reviews via codex exec (falling back to a Claude second opinion when codex is unavailable), and serves an interactive HTML report for selecting or dismissing findings to post via gh, recording the outcome per finding as labels. Bundles a Bun CLI put on PATH by the skill's postinstall step under a bunx install, or by the plugin's bin/ under a Claude Code plugin install. Use when the user asks to review a GitHub pull request. Local mode (setup --local) runs the same pipeline on the current branch's diff from its merge base, uncommitted and untracked work included, against the caller's live tree, with no server or posting, and hands the ranked findings back in the terminal for an implementing or orchestrating agent to address. Splits oversized diffs into budgeted shards and rebuilds the diff from the local clone when gh pr diff refuses it.",
|
|
229
229
|
"type": "prompt",
|
|
230
|
-
"version": "0.14.
|
|
230
|
+
"version": "0.14.5"
|
|
231
231
|
},
|
|
232
232
|
{
|
|
233
233
|
"name": "migrate",
|
|
234
234
|
"description": "Source-agnostic legacy migration mapping. Walks a legacy codebase through probe, enumerate, seam, extract, parity, queue, adjudicate and handoff, building an auditable requirements ledger with mandatory citations and a `migrate check` gate in place of self-reported completeness. Use when the user asks to migrate, re-specify, replatform, or map a legacy system onto a new stack, to hand mapped requirements to a delivery team, or to resume, check, report, or forecast a mapping run already under way.",
|
|
235
235
|
"type": "prompt",
|
|
236
|
-
"version": "0.4.
|
|
236
|
+
"version": "0.4.3"
|
|
237
237
|
},
|
|
238
238
|
{
|
|
239
239
|
"name": "module-secret-auditor",
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
"name": "scope-estimate",
|
|
270
270
|
"description": "Scopes and estimates a rebuild or respec of an existing system for a proposal: read-only discovery agents write cited inventories, a capability register gives every capability a status and a proposed disposition, area agents turn it into sized functional requirements, and a bundled Bun scheduler groups them into slices and contracts-first work packages and schedules them across engineers x worktrees at fast, planning and floor rates. The scheduler refuses a plan that misses or double-counts a requirement or has a dependency cycle, so every figure in the docs comes from one reproducible run. Also covers current and target architecture pages, proposal review, and a two-week calibration before committing to a date. Lighter than migrate: no store and no phase gates.",
|
|
271
271
|
"type": "prompt",
|
|
272
|
-
"version": "0.1.
|
|
272
|
+
"version": "0.1.3"
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
275
|
"name": "seam-finder",
|
|
@@ -293,9 +293,9 @@
|
|
|
293
293
|
},
|
|
294
294
|
{
|
|
295
295
|
"name": "sluice",
|
|
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. 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), 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.",
|
|
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. 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), 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.25.
|
|
298
|
+
"version": "0.25.2"
|
|
299
299
|
},
|
|
300
300
|
{
|
|
301
301
|
"name": "temporal-coupling-detector",
|
package/skills/magpie/README.md
CHANGED
|
@@ -19,7 +19,15 @@ Given a GitHub PR number, dispatches five specialist subagents in parallel (secu
|
|
|
19
19
|
bunx @iceinvein/agent-skills install magpie -g
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
As a Claude Code plugin, after `/plugin marketplace add iceinvein/agent-skills`:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/plugin install magpie@iceinvein-skills
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This skill ships in two parts: the prompt (SKILL.md) and a companion Bun CLI (bin + scripts). The agent-skills installer writes both into `~/.claude/skills/magpie/` and then runs the bundled `install.sh` as a postinstall step, which symlinks `bin/magpie` onto your PATH (preferring `/usr/local/bin`, falling back to `~/.local/bin`). Set `MAGPIE_BIN_DIR` to link into that directory instead; it is created if missing, and install.sh fails rather than falling back when it cannot link there. Removing the skill with `agent-skills remove magpie -g` runs `uninstall.sh` first to undo the PATH symlink.
|
|
29
|
+
|
|
30
|
+
Under a Claude Code plugin install, the plugin's `bin/` puts `magpie` on your PATH, and `bin/magpie` installs its runtime dependencies on first run (Bun required). `install.sh` and `MAGPIE_BIN_DIR` apply only to the bunx install.
|
|
23
31
|
|
|
24
32
|
If you cloned this repo and want to run from source, you can also invoke `./install.sh` directly: it does the PATH-link step against the local source tree.
|
|
25
33
|
|
package/skills/magpie/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: magpie
|
|
3
3
|
description: Use when the user asks to review a GitHub pull request (a PR number, PR URL, or "review this PR"), or to self-review the current branch diff before a PR exists, typically requested by an implementing or orchestrating agent, with findings handed back in the terminal. Interactive PR review pipeline; five parallel specialist subagents, dedupe, critic, codex/Claude peer review, and an interactive HTML report for posting selected findings via gh. Follow the stage walkthrough in this skill; the description is not the procedure.
|
|
4
|
+
argument-hint: "[<pr#>|<pr-url>|local] [--base <ref>] [--intent-file <path>]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Magpie
|
|
@@ -15,7 +16,7 @@ Stop reading and follow these steps in order. Do not skip stages. Use the exact
|
|
|
15
16
|
|
|
16
17
|
### 0. Identify the PR
|
|
17
18
|
|
|
18
|
-
A request with no PR that asks to review the current branch, the working tree, or work in progress is local mode: follow "Local mode" below in place of this step and stages 1 and 2, then run stages 3 to 7 as written, taking `TARGET` from Local mode.
|
|
19
|
+
A request with no PR that asks to review the current branch, the working tree, or work in progress, or arguments starting `local` (any `--base` or `--intent-file` after it go to setup), is local mode: follow "Local mode" below in place of this step and stages 1 and 2, then run stages 3 to 7 as written, taking `TARGET` from Local mode.
|
|
19
20
|
|
|
20
21
|
Parse the user's request for a PR number, URL, or "this PR" (current branch). If ambiguous, ask one clarifying terminal question. Capture the PR number into `$PR_NUMBER` and the repo path into `$REPO` (default: the current working directory).
|
|
21
22
|
|
package/skills/magpie/bin/magpie
CHANGED
|
@@ -12,4 +12,21 @@ while [ -L "$SCRIPT" ]; do
|
|
|
12
12
|
fi
|
|
13
13
|
done
|
|
14
14
|
DIR="$(cd -P "$(dirname "$SCRIPT")" && pwd)"
|
|
15
|
+
ROOT="$(dirname "$DIR")"
|
|
16
|
+
|
|
17
|
+
# A plugin install puts bin/ on PATH without running install.sh, so the
|
|
18
|
+
# first run has to fetch runtime dependencies itself. Progress goes to stderr
|
|
19
|
+
# because callers parse magpie's stdout. The gate is a marker written after
|
|
20
|
+
# success, not node_modules itself, because a failed or killed install leaves
|
|
21
|
+
# node_modules behind and the next run would skip straight to a crash.
|
|
22
|
+
MARKER="$ROOT/node_modules/.magpie-deps-installed"
|
|
23
|
+
if [ -f "$ROOT/package.json" ] && [ ! -f "$MARKER" ]; then
|
|
24
|
+
echo "Installing magpie runtime dependencies..." >&2
|
|
25
|
+
(cd "$ROOT" && bun install --production --silent) >&2 || {
|
|
26
|
+
echo "magpie: bun install failed in $ROOT" >&2
|
|
27
|
+
exit 1
|
|
28
|
+
}
|
|
29
|
+
touch "$MARKER"
|
|
30
|
+
fi
|
|
31
|
+
|
|
15
32
|
exec bun "$DIR/magpie.ts" "$@"
|
package/skills/magpie/install.sh
CHANGED
|
@@ -18,14 +18,18 @@ chmod +x "$BIN_SOURCE" || true
|
|
|
18
18
|
|
|
19
19
|
# Magpie has runtime dependencies (shiki, etc.) declared in package.json.
|
|
20
20
|
# node_modules is not shipped via npm, so we populate it here. Use bun if
|
|
21
|
-
# available; fall back to a clear error otherwise.
|
|
22
|
-
|
|
21
|
+
# available; fall back to a clear error otherwise. The gate and marker match
|
|
22
|
+
# bin/magpie's first-run install, so the wrapper does not install again, and a
|
|
23
|
+
# failed install here leaves no marker and is retried on the next run.
|
|
24
|
+
MARKER="$SOURCE_DIR/node_modules/.magpie-deps-installed"
|
|
25
|
+
if [ -f "$SOURCE_DIR/package.json" ] && [ ! -f "$MARKER" ]; then
|
|
23
26
|
if command -v bun >/dev/null 2>&1; then
|
|
24
27
|
echo "Installing magpie runtime dependencies..."
|
|
25
28
|
(cd "$SOURCE_DIR" && bun install --production --silent) || {
|
|
26
29
|
echo "magpie postinstall: bun install failed in $SOURCE_DIR" >&2
|
|
27
30
|
exit 1
|
|
28
31
|
}
|
|
32
|
+
touch "$MARKER"
|
|
29
33
|
else
|
|
30
34
|
echo "magpie postinstall: bun not found on PATH; install Bun (https://bun.sh) and rerun this script." >&2
|
|
31
35
|
exit 1
|
|
@@ -56,7 +60,21 @@ install_link() {
|
|
|
56
60
|
echo "Installing magpie CLI on PATH:"
|
|
57
61
|
|
|
58
62
|
CLI_INSTALL_DIR=""
|
|
59
|
-
|
|
63
|
+
# An explicit MAGPIE_BIN_DIR is the only place the caller wants the link, so a
|
|
64
|
+
# failure there is an error rather than a cue to try the default locations.
|
|
65
|
+
if [ -n "${MAGPIE_BIN_DIR:-}" ]; then
|
|
66
|
+
# The recorded path is read by uninstall.sh from any cwd, so it must be absolute.
|
|
67
|
+
case "$MAGPIE_BIN_DIR" in
|
|
68
|
+
/*) ;;
|
|
69
|
+
*) MAGPIE_BIN_DIR="$PWD/$MAGPIE_BIN_DIR" ;;
|
|
70
|
+
esac
|
|
71
|
+
if install_link "$MAGPIE_BIN_DIR"; then
|
|
72
|
+
CLI_INSTALL_DIR="$MAGPIE_BIN_DIR"
|
|
73
|
+
else
|
|
74
|
+
echo "magpie postinstall: could not link magpie into MAGPIE_BIN_DIR ($MAGPIE_BIN_DIR)" >&2
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
elif install_link "/usr/local/bin"; then
|
|
60
78
|
CLI_INSTALL_DIR="/usr/local/bin"
|
|
61
79
|
elif install_link "$HOME/.local/bin"; then
|
|
62
80
|
CLI_INSTALL_DIR="$HOME/.local/bin"
|
package/skills/magpie/skill.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "magpie",
|
|
3
|
-
"version": "0.14.
|
|
4
|
-
"description": "Interactive PR review pipeline. Runs five parallel specialist subagents (security, bugs, performance, code-smells, architecture) plus a once-per-PR checks pass that finds tests and controls able to pass without proving their purpose, drops findings whose quoted evidence is not in the code, dedupes, runs critic subagents that re-check each finding against the worktree and set its risk label, peer-reviews via codex exec (falling back to a Claude second opinion when codex is unavailable), and serves an interactive HTML report for selecting or dismissing findings to post via gh, recording the outcome per finding as labels. Bundles a Bun CLI
|
|
3
|
+
"version": "0.14.5",
|
|
4
|
+
"description": "Interactive PR review pipeline. Runs five parallel specialist subagents (security, bugs, performance, code-smells, architecture) plus a once-per-PR checks pass that finds tests and controls able to pass without proving their purpose, drops findings whose quoted evidence is not in the code, dedupes, runs critic subagents that re-check each finding against the worktree and set its risk label, peer-reviews via codex exec (falling back to a Claude second opinion when codex is unavailable), and serves an interactive HTML report for selecting or dismissing findings to post via gh, recording the outcome per finding as labels. Bundles a Bun CLI put on PATH by the skill's postinstall step under a bunx install, or by the plugin's bin/ under a Claude Code plugin install. Use when the user asks to review a GitHub pull request. Local mode (setup --local) runs the same pipeline on the current branch's diff from its merge base, uncommitted and untracked work included, against the caller's live tree, with no server or posting, and hands the ranked findings back in the terminal for an implementing or orchestrating agent to address. Splits oversized diffs into budgeted shards and rebuilds the diff from the local clone when gh pr diff refuses it.",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|
|
7
7
|
"tools": [
|
package/skills/migrate/README.md
CHANGED
|
@@ -185,6 +185,12 @@ writing.
|
|
|
185
185
|
bunx @iceinvein/agent-skills install migrate -g
|
|
186
186
|
```
|
|
187
187
|
|
|
188
|
+
As a Claude Code plugin, after `/plugin marketplace add iceinvein/agent-skills`:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
/plugin install migrate@iceinvein-skills
|
|
192
|
+
```
|
|
193
|
+
|
|
188
194
|
This skill ships in two parts: the prompt (`SKILL.md`) and a companion Bun
|
|
189
195
|
CLI (`bin` + `scripts`). The agent-skills installer writes both into
|
|
190
196
|
`~/.claude/skills/migrate/` and then runs the bundled `install.sh` as a
|
package/skills/migrate/SKILL.md
CHANGED
|
@@ -7,7 +7,8 @@ description: Source-agnostic legacy migration mapping. Walks a legacy codebase t
|
|
|
7
7
|
|
|
8
8
|
## Prerequisites
|
|
9
9
|
|
|
10
|
-
- `migrate` on `PATH`, put there by this skill's `install.sh
|
|
10
|
+
- `migrate` on `PATH`, put there by this skill's `install.sh` under a bunx
|
|
11
|
+
install, or by the plugin's `bin/` under a Claude Code plugin install.
|
|
11
12
|
- A read-only checkout of the legacy source. `migrate check`'s `citations` and
|
|
12
13
|
`source` gates read it; nothing here writes to it, and every writer in the CLI
|
|
13
14
|
refuses a path that resolves inside it.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "migrate",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Source-agnostic legacy migration mapping. Walks a legacy codebase through probe, enumerate, seam, extract, parity, queue, adjudicate and handoff, building an auditable requirements ledger with mandatory citations and a `migrate check` gate in place of self-reported completeness. Use when the user asks to migrate, re-specify, replatform, or map a legacy system onto a new stack, to hand mapped requirements to a delivery team, or to resume, check, report, or forecast a mapping run already under way.",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|
|
@@ -37,7 +37,7 @@ It updates the requirements, re-runs the scheduler and every page that quotes
|
|
|
37
37
|
a figure.
|
|
38
38
|
|
|
39
39
|
**Scheduler on its own:**
|
|
40
|
-
`bun
|
|
40
|
+
`bun <skill-dir>/scripts/schedule.ts build-plan/requirements build-plan/plan.json --json build-plan/schedule.json`
|
|
41
41
|
(`--help` lists the `plan.json` fields).
|
|
42
42
|
|
|
43
43
|
**Say when presenting:** status is from reading code, not running it; rates
|
|
@@ -52,6 +52,12 @@ bunx @iceinvein/agent-skills install scope-estimate # this project
|
|
|
52
52
|
bunx @iceinvein/agent-skills install scope-estimate -g # every project
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
As a Claude Code plugin, after `/plugin marketplace add iceinvein/agent-skills`:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
/plugin install scope-estimate@iceinvein-skills
|
|
59
|
+
```
|
|
60
|
+
|
|
55
61
|
Needs [Bun](https://bun.sh) for the scheduler. Claude Code only.
|
|
56
62
|
|
|
57
63
|
## Starting a run
|
|
@@ -118,15 +124,16 @@ stays a local file until you say otherwise.
|
|
|
118
124
|
## The scheduler
|
|
119
125
|
|
|
120
126
|
```
|
|
121
|
-
bun
|
|
127
|
+
bun <skill-dir>/scripts/schedule.ts <requirements-dir> <plan.json> [--json <out.json>]
|
|
122
128
|
```
|
|
123
129
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
+
`<skill-dir>` is the skill's install directory (e.g.
|
|
131
|
+
`.claude/skills/scope-estimate` for a bunx project install). It prints
|
|
132
|
+
totals, gated totals, per-slice requirements and planning days, the
|
|
133
|
+
engineers x worktrees matrix at planning rates, the headline fast, planning
|
|
134
|
+
and floor weeks, the longest dependency chain, packages sized by assumption
|
|
135
|
+
and dependencies that resolved to nothing. `--json` adds the full report,
|
|
136
|
+
including the lane order for every team combination.
|
|
130
137
|
|
|
131
138
|
It refuses a plan that misses or double-counts a requirement, reuses a
|
|
132
139
|
package id, names an unknown package or undeclared layer, has a dependency
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: scope-estimate
|
|
3
|
-
description: Use when asked to scope, size or estimate a rebuild or respec of an existing system for a proposal or engagement, to map what a codebase does into a capability register, to turn capabilities into functional requirements and build slices, or to work out how long an agent-driven team (engineers x worktrees) takes to build it. Lighter than migrate: no store, no CLI gates, presentable docs plus a scheduler script so the numbers add up.
|
|
3
|
+
description: "Use when asked to scope, size or estimate a rebuild or respec of an existing system for a proposal or engagement, to map what a codebase does into a capability register, to turn capabilities into functional requirements and build slices, or to work out how long an agent-driven team (engineers x worktrees) takes to build it. Lighter than migrate: no store, no CLI gates, presentable docs plus a scheduler script so the numbers add up."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Scope and estimate
|
|
@@ -131,19 +131,20 @@ Complete `build-plan/plan.json` (slices, foundation packages, any split or
|
|
|
131
131
|
ordered product packages) and run:
|
|
132
132
|
|
|
133
133
|
```
|
|
134
|
-
bun
|
|
134
|
+
bun <skill-dir>/scripts/schedule.ts build-plan/requirements build-plan/plan.json --json build-plan/schedule.json
|
|
135
135
|
```
|
|
136
136
|
|
|
137
|
-
(
|
|
138
|
-
plan that does not account for every requirement exactly once,
|
|
139
|
-
package id, names an unknown package or undeclared layer, lets
|
|
140
|
-
wait on gated work, or has a dependency cycle (naming the
|
|
141
|
-
each edge). It prints totals, gated totals, per-slice
|
|
142
|
-
days, the engineers x worktrees matrix at planning rates,
|
|
143
|
-
fast/planning/floor range, the critical chain, assumed sizes and
|
|
144
|
-
dependencies. Fix the plan, not the output. **Every number in the
|
|
145
|
-
from this output.** Re-run it after any requirement, rate or team
|
|
146
|
-
update every page that quotes a figure. Reference:
|
|
137
|
+
(`<skill-dir>` is this skill's base directory, stated when the skill loads.) It
|
|
138
|
+
refuses a plan that does not account for every requirement exactly once,
|
|
139
|
+
reuses a package id, names an unknown package or undeclared layer, lets
|
|
140
|
+
scheduled work wait on gated work, or has a dependency cycle (naming the
|
|
141
|
+
requirement behind each edge). It prints totals, gated totals, per-slice
|
|
142
|
+
counts and planning days, the engineers x worktrees matrix at planning rates,
|
|
143
|
+
the headline fast/planning/floor range, the critical chain, assumed sizes and
|
|
144
|
+
unresolved dependencies. Fix the plan, not the output. **Every number in the
|
|
145
|
+
docs comes from this output.** Re-run it after any requirement, rate or team
|
|
146
|
+
change and update every page that quotes a figure. Reference:
|
|
147
|
+
`references/schedule.md`.
|
|
147
148
|
|
|
148
149
|
### 5. Architecture and proposal checks
|
|
149
150
|
|
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scope-estimate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Scopes and estimates a rebuild or respec of an existing system for a proposal: read-only discovery agents write cited inventories, a capability register gives every capability a status and a proposed disposition, area agents turn it into sized functional requirements, and a bundled Bun scheduler groups them into slices and contracts-first work packages and schedules them across engineers x worktrees at fast, planning and floor rates. The scheduler refuses a plan that misses or double-counts a requirement or has a dependency cycle, so every figure in the docs comes from one reproducible run. Also covers current and target architecture pages, proposal review, and a two-week calibration before committing to a date. Lighter than migrate: no store and no phase gates.",
|
|
5
5
|
"author": "iceinvein",
|
|
6
6
|
"type": "prompt",
|
|
7
|
-
"tools": [
|
|
8
|
-
|
|
7
|
+
"tools": [
|
|
8
|
+
"claude"
|
|
9
|
+
],
|
|
10
|
+
"files": {
|
|
11
|
+
"prompt": "SKILL.md"
|
|
12
|
+
},
|
|
9
13
|
"bundle": {
|
|
10
|
-
"include": [
|
|
11
|
-
|
|
14
|
+
"include": [
|
|
15
|
+
"README.md",
|
|
16
|
+
"references",
|
|
17
|
+
"scripts",
|
|
18
|
+
"templates"
|
|
19
|
+
],
|
|
20
|
+
"exclude": [
|
|
21
|
+
"scripts/__tests__/"
|
|
22
|
+
]
|
|
12
23
|
},
|
|
13
24
|
"install": {
|
|
14
25
|
"claude": {
|
package/skills/sluice/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sluice
|
|
3
3
|
description: Use at the start of any request that changes code. Routes the work into one of four channels (bypass, fast, main, deep) by change shape, and applies only the rules that channel needs. Also use when asked to work faster or with less process.
|
|
4
|
+
argument-hint: "[fast|main|deep] [<what to change>]"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Sluice
|
|
@@ -119,7 +120,8 @@ Escalate out loud. A `fast` task that turns out to need a new interface becomes
|
|
|
119
120
|
`main`, and you say so with another `status.sh route` call in that message.
|
|
120
121
|
Finishing quietly in the wrong channel is the failure this prevents; the same
|
|
121
122
|
goes for dropping to a shallower one. Explicit instruction wins: "just do it"
|
|
122
|
-
collapses to `fast
|
|
123
|
+
collapses to `fast`, and a channel named when invoking (`/sluice main`) is that
|
|
124
|
+
channel.
|
|
123
125
|
|
|
124
126
|
## Deep channel
|
|
125
127
|
|
|
@@ -431,7 +431,8 @@ reads the run state rather than the plan: it sees what has actually landed.
|
|
|
431
431
|
task with no `Effort` line goes out on this session's model and effort, and a
|
|
432
432
|
downshift that was neither marked nor ratified is a saving your partner never
|
|
433
433
|
agreed to. A task ratified at `Effort: low` goes out with
|
|
434
|
-
`subagent_type: sluice-implementer-low
|
|
434
|
+
`subagent_type: sluice-implementer-low` (`sluice:sluice-implementer-low`
|
|
435
|
+
under a Claude Code plugin install), the agent sluice installs with
|
|
435
436
|
`effort: low` and `model: inherit`: the Agent tool takes a model and no
|
|
436
437
|
effort, so an agent definition is the one place a dispatch's effort can be
|
|
437
438
|
set. Reviewers are the
|
|
@@ -533,7 +534,8 @@ something stronger would be promising what is already in use. What a tier buys
|
|
|
533
534
|
is a dispatch. The one effort rule that holds across all of them is that a
|
|
534
535
|
review never runs below the effort that built the task, so tiers 1 and 2 over
|
|
535
536
|
an `Effort: low` task go out at this session's effort rather than on
|
|
536
|
-
`sluice-implementer-low
|
|
537
|
+
`sluice-implementer-low` (`sluice:sluice-implementer-low` under a Claude Code
|
|
538
|
+
plugin install).
|
|
537
539
|
|
|
538
540
|
**Where the repo carries review tiering of its own, this table governs.** It is
|
|
539
541
|
the more specific of the two: wired into `Flips`, the `Effort` marks and the
|
|
@@ -155,8 +155,14 @@ main_tree() { # <dir>
|
|
|
155
155
|
ORIG_DIR="$DIR"
|
|
156
156
|
if [ "$SUB" != "init" ] && [ ! -f "$DIR/.sluice/run.json" ] \
|
|
157
157
|
&& [ "$(git -C "$DIR" rev-parse --is-inside-work-tree 2>/dev/null)" = "true" ]; then
|
|
158
|
+
# The tree's own run lives at its top, not at whatever subdirectory the
|
|
159
|
+
# session is sitting in. Testing only $DIR sent a session in a worktree's
|
|
160
|
+
# package straight past that worktree's run to the main tree's.
|
|
161
|
+
OWN_TREE="$(git -C "$DIR" rev-parse --show-toplevel 2>/dev/null)"
|
|
158
162
|
MAIN_TREE="$(main_tree "$DIR")"
|
|
159
|
-
if [ -n "${
|
|
163
|
+
if [ -n "${OWN_TREE:-}" ] && [ -f "$OWN_TREE/.sluice/run.json" ]; then
|
|
164
|
+
DIR="$OWN_TREE"
|
|
165
|
+
elif [ -n "${MAIN_TREE:-}" ] && [ -d "$MAIN_TREE" ]; then
|
|
160
166
|
DIR="$MAIN_TREE"
|
|
161
167
|
|
|
162
168
|
# Then forward, where the main tree's run has moved on into a worktree.
|
package/skills/sluice/skill.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sluice",
|
|
3
|
-
"version": "0.25.
|
|
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. 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), 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.",
|
|
3
|
+
"version": "0.25.2",
|
|
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. 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), 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",
|
|
7
7
|
"tools": [
|