goalforge-redecomposelisted
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}