Resources
1Install
npx skillscat add mistakeknot/clavain/lane Install via the SkillsCat registry.
SKILL.md
Lane — Thematic Work Lane Management
Group beads by theme (interop, kernel, ux, etc.) for lane-scoped sprint sequencing, starvation-weighted scheduling, and progress tracking.
Subcommands
Parse $ARGUMENTS:
- Empty or
status→ Step 1: Dashboard discover→ Step 2: Auto-Discovercreate <name> --type=standing|arc→ Step 3: Create Laneadd <lane> <bead-ids...>→ Step 4: Add Beadsunpause <lane>→ Step 5: Unpause Lane
Step 1: Show Lane Dashboard (default)
IC=$(command -v ic 2>/dev/null || echo "")
[[ -z "$IC" ]] && echo "ic not found — intercore kernel required" && exit 1
ic lane list --json && ic lane velocity --jsonDisplay:
Lane Type Open Done Vel/wk Starv
-------------------------------------------------
interop standing 10 4 2.1 3.2
kernel standing 6 8 3.5 1.7
e7-bigend arc 12 3 1.0 4.8If no lanes: suggest /clavain:lane discover.
Step 2: Auto-Discover Lane Candidates
Query beads:
bd list --status=open --jsonandbd list --status=in_progress --jsonAnalyze grouping signals:
- Module tags in titles:
[interflux],interop:,kernel:, etc. - Beads with
lane:*labels (already assigned) - Dependency clusters via
bd show <id>blocks/blockedBy - Thematic sections in
docs/roadmap.mdif it exists
- Module tags in titles:
Propose 2-4 candidate lanes via AskUserQuestion (name, type, member count, bead IDs; include "Custom lane name" option)
Create confirmed lanes:
ic lane create --name=<name> --type=<type> --description="<desc>" for bead_id in <member_ids>; do bd label add "$bead_id" "lane:<name>"; done ic lane sync <lane_id> --bead-ids=<comma-separated-ids>
Step 3: Create Lane
ic lane create --name=<name> --type=<type> --description="<description>"Display created lane ID and confirm.
Step 4: Add Beads to Lane
for bead_id in <bead_ids>; do bd label add "$bead_id" "lane:<lane_name>"; done
ic lane sync <lane_name> --bead-ids=<all-member-ids>Show updated status: ic lane status <lane_name> --json
Step 5: Unpause Lane (rsj.1.5)
When a lane was paused due to strategic contradiction:
lane_json=$(ic lane status <lane_name> --json 2>/dev/null) || lane_json=""
paused=$(echo "$lane_json" | jq -r '.metadata.paused // empty') || paused=""If paused == "true":
- Show pause reason:
jq -r '.metadata.pause_reason' - Show pausing bead:
jq -r '.metadata.pause_bead' - Clear pause state:
current_meta=$(echo "$lane_json" | jq '.metadata') updated_meta=$(echo "$current_meta" | jq 'del(.paused, .pause_reason, .pause_bead, .pause_ts)') ic lane update <lane_name> --metadata="$updated_meta" - Confirm: "Lane
<name>unpaused. Dispatch will resume for beads in this lane."
If not paused: "Lane <name> is not paused."