.cursor/skills/phased-planning/SKILL.md
Decompose tasks into phased plans with one behavior per phase. Use when planning new features, breaking down large tasks, when a task has been in progress for over 10 minutes, or when the planning timer hook fires. Triggers on: plan, decompose, phases, break down, task too large, stuck.
npx skillsauth add terryyin/tty-assert phased-planningInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
git stash or a draft branch).ongoing/<short-name>.md or docs/<short-name>.md.Use ongoing/<short-name>.md or docs/<short-name>.md — informal, temporary. Update as work proceeds; remove or archive when done.
For sub-decomposition of a single phase: ongoing/<plan-name>-<phase-number>-sub-phases.md (or under docs/).
Default: Split by user-visible outcomes (for a library: API behavior, diagnostics, compatibility), not by “build the abstraction first.”
Order from common / general toward more specific preconditions.
Solutions: Early phases implement a narrow, concrete slice. Later phases generalize only after you see real repetition — not a large generic framework up front.
Regression: If behavior already exists but has no automated test, prefer a dedicated phase: add a regression test and make it pass.
Extending tests: If similar behavior already has tests, extend them; avoid duplicate test code. Keep at most one intentionally failing test while driving a change.
Big refactor: If making the test pass needs a large structural change, plan that structure as its own phase before (or as the first slice of) the feature.
Consumer / integration: When a change is mainly for downstream runners (Cypress, etc.), note which consumer repo must be validated; this repo’s gate remains pnpm test and pnpm lint.
Still too big: Split by one small part of the outcome per phase (one aspect of the postcondition).
When to use: One “phase” still spans several beats. Prefer sub-phases that alternate failing test and minimal fix, instead of front-loading internals.
Pattern:
Document intent and structure in the plan. Update when you learn something that changes remaining work. Remove text that no longer helps the current snapshot.
Include:
development
Prepares an npm release for tty-assert: edits CHANGELOG.md and package.json, verifies lint/test/build, commits, tags vX.Y.Z, and pushes branch plus tag to trigger GitHub Actions Release. Use when the user asks to release, publish to npm, ship a version, cut a tag, or bump the package version for tty-assert.
testing
Fix bugs with a test-first workflow. Use when the user reports a bug, asks to fix a defect, or describes unexpected behavior. Triggers on: bug, fix, defect, broken, regression, not working, unexpected behavior.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------