← HamsterCONTENT HISTORY

Update to Hamster

Snapshot Nov 3, 2026 · 00:14 UTC · version 3.5.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Hamster and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Analyze an existing Hamster brief and plan before building. Read its tasks, map dependencies, and group work into parallel waves, with optional CEO or Eng review. Use when the user wants to assess an existing brief and plan before building.",
  "included_files": [
    {
      "relative_path": "references/brief-selection.md",
      "size_in_bytes": 8970
    },
    {
      "relative_path": "scripts/ensure-ready.ps1",
      "size_in_bytes": 929
    },
    {
      "relative_path": "scripts/ensure-ready.sh",
      "size_in_bytes": 666
    }
  ],
  "name": "plan-hamster",
  "skill_md_contents": "---\nname: plan-hamster\ndescription: Analyze an existing Hamster brief and plan before building. Read its tasks, map dependencies, and group work into parallel waves, with optional CEO or Eng review. Use when the user wants to assess an existing brief and plan before building.\n---\n\n# Plan Brief\n\nRead-only analysis of a Hamster Studio brief. Builds the dependency tree and wave schedule from the pre-generated plan in `.hamster/` — no code changes, no git operations, no status updates, and no task creation or elaboration. Optionally deep-dives with CEO Review (founder mode) or Eng Review (architecture mode).\n\n**Argument**: \"$ARGUMENTS\"\n\n---\n\n## Readiness\n\nBefore assuming a Hamster CLI, run this skill's bundled gate. Set `SKILL_DIR` to the absolute path of the directory holding the SKILL.md you just read — the shell's working directory is the user's project, not this skill — and keep the whole command on one line with its statements `;`-separated, because some clients flatten a fenced block before running it. The `else` branch is the same gate inline, for clients that expose no readable path to the installed package.\n\nUnix:\n\n```bash\nSKILL_DIR=\"<absolute path of the directory containing this SKILL.md>\"; if [ -f \"$SKILL_DIR/scripts/ensure-ready.sh\" ]; then bash \"$SKILL_DIR/scripts/ensure-ready.sh\"; else export PATH=\"$HOME/.hamster/bin:$PATH\"; if command -v hamster >/dev/null 2>&1 && { status_err=\"$(hamster --no-tui status 2>&1)\"; printf '%s' \"$status_err\" | grep -q \"Logged in\" || { printf '%s\\n' \"$status_err\" >&2; false; }; } && sync_err=\"$(hamster sync 2>&1)\"; then echo READY; else [ -n \"${sync_err:-}\" ] && printf '%s\\n' \"$sync_err\" >&2; echo SETUP_NEEDED; exit 1; fi; fi\n```\n\nWindows:\n\n```powershell\n$SkillDir = \"<absolute path of the directory containing this SKILL.md>\"; if (Test-Path \"$SkillDir\\scripts\\ensure-ready.ps1\") { pwsh \"$SkillDir\\scripts\\ensure-ready.ps1\" } else { $env:PATH = \"$env:USERPROFILE\\.hamster\\bin;\" + $env:PATH; if (Get-Command hamster -ErrorAction SilentlyContinue) { $status = & hamster --no-tui status 2>&1 | Out-String; if ($LASTEXITCODE -eq 0 -and $status -cmatch \"Logged in\") { $syncOut = & hamster sync 2>&1; if ($LASTEXITCODE -eq 0) { \"READY\" } else { [Console]::Error.WriteLine(($syncOut | Out-String).TrimEnd()); \"SETUP_NEEDED\"; exit 1 } } else { [Console]::Error.WriteLine($status.TrimEnd()); \"SETUP_NEEDED\"; exit 1 } } else { \"SETUP_NEEDED\"; exit 1 } }\n```\n\nIf it prints `SETUP_NEEDED` in Codex on macOS and `hamster` is already on `PATH`, re-run only this readiness command with elevated permission. The default workspace sandbox cannot read Keychain credentials, and an extra directory grant does not change that. If the elevated check prints `READY`, continue. Only if it still prints `SETUP_NEEDED`, run this plugin's `setup` skill, then re-run the check. Do not continue until it prints `READY`.\n\n## Select and Schedule\n\nRead [brief-selection](references/brief-selection.md) and run **Account Resolution** first. On `ACCOUNT_UNRESOLVED`, follow its team-selection/re-sync guidance and stop. The resolved slug is the filesystem `$account`: shell-quote it into every block you run from that reference, and never use it as `HAMSTER_ACCOUNT_ID`.\n\nThen follow **Brief Selection** and **Scheduling** in [brief-selection](references/brief-selection.md) exactly as written (argument parsing, brief picker, inline frontmatter parse, wave grouping) — but stop after producing the schedule; do not confirm execution.\n\nAdditionally read the brief body (`brief.md`) and skim the parent task bodies to inform the analysis below.\n\n## Present the Analysis\n\n- **Brief summary**: slug, status, task counts (done/remaining)\n- **Dependency tree**: parents with their subtasks, statuses marked\n- **Parallel waves**: with conflict reasons inline\n  ```\n  Wave 1 (parallel): HAM-100, HAM-300\n  Wave 2:            HAM-200 (conflicts with HAM-100: both mention auth)\n  ```\n- **Risk flags**: high = auth/permissions/migrations/payments; medium = new endpoints/shared libraries; low = UI/docs/tests\n- **PR strategy**: single PR (< 8 tasks, cohesive) vs. multiple (large/spanning domains)\n\n---\n\n## Mode Picker\n\nAsk the user with 3 options:\n\n1. **CEO Review (Founder Mode)** — rethink from first principles; deep 10-section review\n2. **Eng Review (Architecture Mode)** — lock in architecture; 4 sections with diagrams and test plan\n3. **Quick Analysis** — done; skip to Offer Transition\n\n---\n\n## CEO Review Mode\n\n**Prime Directives**: zero silent failures; data flows mapped through 4 shadow paths (happy/nil/empty/error); observability is first-class scope; everything deferred gets written down.\n\n**Step 0 — Scope Challenge** (ask the user): **SCOPE EXPANSION** (what's the 10-star version?), **HOLD SCOPE** (bulletproof execution; surface every risk), or **SCOPE REDUCTION** (strip to minimum value; defer the rest).\n\nWork through 10 sections, asking the user for any critical finding that needs a decision:\n\n1. **Architecture** — component dependency graph; data flow through the 4 paths; state machines for stateful transitions; integration points\n2. **Error & Rescue Map** — table: method → exception → handler → what user sees; flag unhandled+untested+user-visible gaps; cascading failure risks\n3. **Security & Threat Model** — auth boundaries, privilege escalation, input validation coverage, secret handling, trust boundaries\n4. **Data Flow Edge Cases** — race conditions, stale data, cascading failures, TOCTOU\n5. **Code Quality** — DRY across tasks, naming consistency, complexity hotspots\n6. **Test Review** — test diagram for new UX/data/codepaths; untested critical paths; missing negative-path tests\n7. **Performance** — N+1 risks, memory pressure, caching, latency budget\n8. **Observability** — logs/metrics/traces needed; alerts; runbooks\n9. **Deployment & Rollout** — migrations, feature flags, rollback plan, smoke tests\n10. **Long-Term Trajectory** — tech debt introduced, path dependency, reversibility\n\n**Output**: summary table (section → Clear / Issues Found / Needs Decision), unresolved decisions with tradeoffs, deferred items with reasoning. If EXPANSION was chosen: a **Delight Opportunities** section.\n\n---\n\n## Eng Review Mode\n\n**Step 0 — Scope Challenge** (ask the user): **BIG CHANGE** (interactive, one section at a time, max 8 issues per section) or **SMALL CHANGE** (compressed single pass, one top issue per section).\n\n4 sections:\n\n1. **Architecture Lock-in** — ASCII data flow diagram, state management approach, API contracts, integration points, and a \"what already exists\" inventory of reusable patterns/services/types\n2. **Code Quality** — DRY across planned changes, naming consistency, complexity hotspots, type safety gaps\n3. **Test Strategy** — mandatory vs. nice-to-have tests, integration boundaries (mock vs. real); write a **Test Plan Artifact** to `.hamster/plans/{brief-slug}-test-plan.md`\n4. **Performance** — N+1 detection, data fetching patterns, caching needs, latency analysis\n\n**Issue resolution**: ask the user one question at a time; lead with the recommendation (\"Do B. Here's why:\"), 2-3 lettered options mapped to simplicity/correctness/performance tradeoffs.\n\n**Output**: ASCII diagrams per major flow, test plan artifact, completion summary table, and an explicit **NOT-in-scope** section.\n\n---\n\n## Offer Transition\n\nAsk the user: \"Ship this brief?\" — \"Yes, ship now\" → run `/hamster:ship {slug}`; \"No, just planning\" → end.\n\n---\n\n## Error Recovery\n\n| Error | Recovery |\n|-------|----------|\n| `.hamster/` missing | Stop — run this plugin's `setup` skill, then retry |\n| Account unresolved | Stop; follow Account Resolution's team-selection/re-sync guidance |\n| Brief not found | Show partial matches, suggest closest |\n| Malformed argument | Show usage examples, ask user to re-enter |\n"
}

SHA-256 of public snapshot: ce17912e0c2bb5d76fbcbd96b8c4ae04565e6e5cc57b7f1d962abf235d041a28