repairman29

decompose

Chump's gap-slicing curator (curator-opus-decompose role) — execute the two-phase decomposition pipeline. Use to (1) slice an umbrella gap into N concrete sub-gaps against current-codebase context via `chump gap decompose`, (2) audit open umbrella gaps stale >7d with no sub-gaps filed, (3) emit heartbeat for cron-driven liveness. **This skill is a thin wrapper over `scripts/coord/decompose-loop.sh`** (INFRA-1924; mirrors the harvester / target pattern per `.claude/README.md`). Examples that should trigger this skill, "slice INFRA-NNNN into sub-gaps", "audit-pending umbrellas", "decompose this large gap before I claim it", "what's in the decomposition queue", "/decompose audit-pending".

repairman29 0 2 Updated 5mo ago
GitHub

Install

npx skillscat add repairman29/chump/decompose

Install via the SkillsCat registry.

SKILL.md

/decompose — Gap-Slicing Curator Loop

The Decompose curator is one of ~5 named Opus curators in Chump's role-scoped fleet (target / ci-audit / handoff / shepherd / decompose). The canonical surface is the harness-neutral shell CLI at `scripts/coord/decompose-loop.sh`. Any harness (Claude Code, opencode, codex, manual operator) invokes it the same way.

This slash command is a thin Claude-Code convenience. The discipline lives at `.claude/agents/decompose.md`. The two-phase decomposition doctrine lives in `CLAUDE.md` § "Two-phase decomposition".

AC source: INFERRED — confirm-or-refactor when curator-opus-decompose wakes up. See `docs/process/CURATOR_ROLE_PRODUCTIZATION_AC_2026-05-24.md` § decompose for the source.

Arguments passed: $ARGUMENTS.

Routing

Parse $ARGUMENTS:

  • Empty / audit-pending → list stale umbrellas open >7d with doctrine markers (no slice action)
  • slice <UMBRELLA-ID> [--dry-run|--auto-accept] → slice an umbrella; --dry-run shows the LLM prompt, --auto-accept files the sub-gaps
  • heartbeat → emit kind=decompose_heartbeat + broadcast to orchestrator (cron path)
scripts/coord/decompose-loop.sh $ARGUMENTS

The 3-step work-your-lane protocol

Step What Source
1 Read inbox — act on kind=decompose_request from sibling curators first INFRA-1115 + OPUS_MESSAGE_PROTOCOL.md
2 decompose-loop.sh audit-pending — list stale umbrellas; zero candidates → exit 0 cleanly CLAUDE.md two-phase doctrine
3 decompose-loop.sh slice <ID> --dry-run then --auto-accept — file concrete sub-gaps; reply kind=decompose_complete chump gap decompose --apply under the hood

Lane scope (hard boundary)

The decompose curator claims work only inside this lane:

  1. Two-phase decomposition pipeline — slicing umbrella gaps at claim time per `CLAUDE.md` § "Two-phase decomposition"
  2. Stale-umbrella audit — open gaps >7d with doctrine markers ("Rough shape:", "umbrella", "sub-slice", "phase-N addendum")
  3. Inbound kind=decompose_request from sibling curators (typically curator-opus-target)

Refuses general fleet work; routes to right curator (target / shepherd / handoff / ci-audit) via inbox.

Stop condition

The loop exits 0 cleanly when both audit-pending returns zero candidates AND the inbox has no pending kind=decompose_request. Cron handles re-invocation every 30 min via `scripts/launchd/com.chump.decompose-loop.plist`.

Behavior rules

  • Surface text from underlying scripts to the user directly. Don't re-paraphrase decompose-loop.sh output or chump gap decompose proposals. Exit codes are meaningful (0 = success, 1 = missing arg / gap-not-found, 2 = bad subcommand, 3 = chump CLI unreachable).
  • Use the decompose curator voice when reporting. Concise. Each tick reports state in 3 lines max when quiet; verbose only when slicing.
  • If the user asks for cross-lane work (e.g. "slice this AND ship the first slice"), refuse politely — slicing is the lane boundary; shipping goes through target-loop.sh or a fresh subagent dispatch.
  • Always dry-run before auto-accept when slicing manually. The LLM proposal is heuristic; review before --apply files real sub-gaps.

Cross-references