--- name: pivot description: Detects a mid-build scope change and re-runs scope-knife against the new direction without losing prior progress. Use when the user says pivot, change direction, or after a flat demo; do not invoke pre-build. when_to_use: | Trigger when the user says "pivot", "change direction", "the demo idea is wrong", or after a demo that landed flat with judges. Do not invoke pre-build; switch to scope-knife directly for greenfield ideas. version: 1.0 category: scoping tags: ['mid-build-redirect', 'cut-rewrite', 'preserves-keep'] dependencies: ['scope-knife', 'decision-log'] side_effects: [] triggers: ['pivot', 'change direction', 'rebuild', 'mid-build redirect', 'start over'] --- # pivot A pivot is the most expensive thing a hackathon team can do. Done wrong, it costs the team 4 hours and a working demo. Done right, it saves them from shipping something nobody wants. This skill does the minimum work needed to redirect the team without losing prior state. ## Input contract Required: - `new_direction`: one-sentence description of where the team is going now Optional: - `.hackathon/state/plan.json` (if it exists, the pivot preserves KEEP features) - `.hackathon/state/verify.json` (last failure signatures — useful for the new plan) - `.hackathon/state/review.json` (judge feedback that triggered the pivot) - `.hackathon/state/demo.json` (current pitch — often the source of the pivot) - `time_remaining_minutes`: integer >= 0 (default: from plan.json if present) ## Execution ### 1. Read every state file If `.hackathon/state/` exists, read all 5 files. For each, summarize in one line: - plan.json: how many KEEP features, what demo_path - verify.json: pass / fail / skipped counts, last failure signature - review.json: overall score, fix_now count - demo.json: duration, one_liner - ship.json: packaging status ### 2. Compute preserve / drop / rewrite For every feature in the previous plan.json: | Previous status | Default action | | ------------------------- | ----------------------- | | KEEP + still relevant | preserve | | KEEP + no longer relevant | cut, add to "lost" list | | CUT or DEFER | cut (no change) | Hard rule: at least 1 feature must survive unchanged, otherwise the pivot is actually a rewrite and the user should re-run scope-knife from scratch. ### 3. Emit a pivot report Write `.hackathon/artifacts/pivot-report.md` with: - the one-line summary of every prior state file - the preserve/cut/rewrite table - the proposed new demo_goal (one sentence) - a recommended next-step: `hackathon run scope-knife` with the new brief ## Output contract Files written: - `.hackathon/artifacts/pivot-report.md` (human-readable) Like `idea-clarify`, this skill does NOT write to `.hackathon/state/*.json`. It prepares the team to re-run `scope-knife` with a fresh plan. ## Acceptance criteria - [ ] Reads all 5 state files (or notes which are missing). - [ ] Computes preserve / cut / rewrite per previous feature. - [ ] At least 1 KEEP feature survives (otherwise refuse: "this is a rewrite, not a pivot"). - [ ] `pivot-report.md` exists and is <= 1 page. ## Failure modes | Mode | Behavior | | ---------------------------- | -------------------------------------------------- | | No plan.json | Refuse: "nothing to pivot from; run scope-knife" | | New direction is identical | Refuse: "no change; this isn't a pivot" | | All KEEP features irrelevant | Refuse: "this is a rewrite; run scope-knife fresh" | | Time < 30 min | Refuse: "no time to pivot safely" | ## Trigger phrases (for agent intent matching) - "pivot" - "change direction" - "the demo idea is wrong now" - "judges hated it" - "we are building the wrong thing" - "start over but keep X"