← ClaudeAtlas

goalforge-redecomposelisted

goalforge-internal — use entry commands; do not auto-trigger Reconcile a proposed re-decomposition against a partially-executed feature's verified WPs. Calls goalforge-reconcile-diff.sh to produce a 5-bucket diff, then routes: same → untouched (no-op), changed+new → status: spec and onto the harden frontier via goalforge-transition.sh, dropped-verified → supersede in place (ledger row, never delete), ambiguous (slug changed, goal matches a verified WP) → judgment/human — never auto-rename or auto-supersede. Logs goal mutations via goalforge-goal-changelog.sh. Idempotent: re-run on unchanged decomposition is a byte-identical no-op. TRIGGER: /goalforge-redecompose <feature-dir> --learning '<text>' or when goalforge-run loops back on a learning event.
Truncuso/cogwright · ★ 0 · AI & Automation · score 75
Install: claude install-skill Truncuso/cogwright
# SDD Redecompose Given a learning and a (possibly partially-executed) feature, re-runs WP decomposition and reconciles the result against the feature's existing WPs — some of which may already be verified. This is the keystone agile loop-back: a new learning may invalidate some WPs, and the skill determines exactly which ones change, routes them back to harden, and preserves everything that is already verified. ## Preconditions - A feature directory exists under `plans/` with `wp-*/overview.md` files. - A proposed re-decomposition is available as a JSON array `[{"slug":"...","goal_outcome":"..."}, ...]`. - The caller supplies an explicit **trigger param** (`--learning "<text>"` or `trigger_reason`) identifying what learning prompted the re-decomposition. This param is intentionally open — not hard-wired to human-only invocation — so a downstream automated edge (e.g., a pipeline detecting a newly-verified upstream WP) can invoke goalforge-redecompose as well. Always capture the trigger_reason for the ledger. ## Inputs | Param | Description | |-------|-------------| | `<feature-dir>` | Absolute or plans-root-relative path to the feature directory | | `<proposed-json>` | Path to JSON file: `[{"slug":"...","goal_outcome":"..."}, ...]` | | `--learning "<text>"` | The trigger reason / learning that prompted re-decomposition | ## Step 1 — Call the pure diff Run the deterministic reconcile-diff and capture its output as typed data: ```bash bash "${CLAUDE_PLUGIN_ROOT}