markshust/hcf/plan-create
Claude Code and agent skill by markshust/hcf
- community
Checking that the SKILL.md file is still in the repository.
Create structured implementation plans for autonomous TDD development. Use for new features, multi-file changes, or anything requiring multiple steps or tests. Triggers on aspirational openers ("let's build", "let's start building", "I want to make", "I want an app that", "help me build"), capability lists ("users should be able to X, Y, Z"), vague-noun patterns ("a system for", "a way to", "an app that", "functionality for"), and explicit build verbs ("build", "create", "add a feature", "help…
Install
npx vskill@latest install markshust/hcf/plan-createSKILL.md
Plan Create
Transform feature requests into structured plans with task breakdowns, dependencies, and TDD requirements for parallel autonomous execution.
Project Architecture
<architecture> @.claude/architecture.md </architecture>
Execution Flow
Phase 0: Pre-plan hook
Run this once, at the very start, before Phase 1 discovery.
Run the `pre-plan` hook.
Run the discovery script — never enumerate agent files by hand:
{skill-base-dir} is the `Base directory for this skill` value stated when this skill loaded. ${CLAUDE_PLUGIN_ROOT} is not available in a skill's Bash calls.
- Exit 0, empty stdout → empty hook. This is the default. Return immediately: print nothing, spawn nothing, say nothing about the hook at all, and proceed to Phase 1. Do not narrate that the script returned no agents — that is the narration
HOOKS.mdforbids. - Exit 0, output → print the output verbatim as the resolved agent order, then spawn each listed agent in order per its
mode. - Any non-zero exit → stop. Surface the script's stderr verbatim and do not continue planning. Exit 3 means an agent file declares an invalid
phaseormode; exit 4 means enrollment drifted. Neither is an empty hook. If the script is missing or not executable, that is also a hard stop — there is no fallback, and you must not reconstruct the routine by hand.
Capture the enrollment fingerprint now, for Phase 6's drift check:
Hold that value. A fingerprint is only ever produced by running the script — never reconstruct, abbreviate, or recall one from memory. If it is not to hand at Phase 6, re-run the command and say so. A hallucinated digest makes every later check fail with bogus drift and bricks the plan.
IMPORTANT — no plan name exists yet. The pre-plan hook fires before Phase 1 discovery. The plan name and plan directory are not created until Phase 3, so there is no plan name to pass. Each pre-plan agent receives only:
- The raw feature request (the user's verbatim ask).
- The project's architecture context:
Do not attempt to pass a plan name or plan directory to a pre-plan agent — neither exists yet. The pre-plan hook is thin by design (policy gate / house-context injection).
Phase 1: Discovery & Assumption Brainstorm
Approach this phase like a solution architect meeting with a client to flush out scope and requirements. Your job is not to ask everything — it's to think hard about the shape of the solution before asking grounded questions. Find the integration points, then enumerate the design axes the user probably hasn't thought about.
Quick scope check first. If the ask already specifies data model, scope boundaries, and integration points (e.g., "Add an email_verified_at column to users and a SendVerificationEmail job"), do a brief existence-check (do the named files/models exist?) and skip ahead to Phase 2 — the brainstorm below is for under-specified asks.
1. Codebase discovery
Read files specifically related to the ask. Architecture context is already loaded via the <architecture> block at the top of this skill — do not re-read .claude/architecture.md. Instead:
- Glob for domain-related files (e.g., for "track books", look for
book*,*Book*, library/reading-list files) - Read existing models, controllers, or components that overlap with the ask
- Note existing patterns the new feature must conform to or extend
- Identify what's already built vs. greenfield
2. Permutation & assumption brainstorm
For each noun and verb in the ask, enumerate plausible interpretations. Then enumerate the hidden axes — design decisions the user almost certainly hasn't specified but the implementer needs to know. Surface the non-obvious ones a senior engineer would catch and a junior would miss.
Focus on permutations that meaningfully change scope, data model, or architecture. Avoid minutiae (button colors, naming bikesheds, trivial config defaults).
Example for "track books I'm reading":
- Book schema: title only? +author/ISBN/cover/genre/pages/publication date?
- List structure: one global list, or multiple states ("want to read", "reading", "finished")?
- "Finished" semantics: boolean state, dated event, or reversible?
- Hidden axes the ask didn't mention: auth/multi-user, persistence layer, edit/delete operations, search/filter/sort, ratings/notes, web vs mobile UI, external lookups (ISBN APIs).
3. Diff against codebase
Produce a short "what I found vs. what you asked" comparison. Examples:
- "You have a
Usermodel with auth — books would extend it for per-user lists" - "No models exist yet — this is greenfield"
- "Your existing controllers follow a
ResourceControllerpattern; book routes would conform"
Issue Detection: If the user references a GitHub issue (e.g., "#18", "issue 18", a GitHub issue URL), capture it for the ## Related Issues field in _plan.md. Use Closes #N for issues that will be fully resolved by this plan, or Relates to #N for partial/tangential references. If no issue is mentioned, set the field to "none".
Phase 2: Grounded Clarification
Surface findings to the user, then ask categorized questions. The goal is to flush out enough to write a confident plan — like a solution architect leaving a client meeting with the spec they need.
Format your response so users can skim past findings if they want — the Questions section must be self-sufficient.
Present in this order:
What I Found- {codebase findings: existing models, patterns, integration points, greenfield vs. extension}Key Permutations to Resolve{1-3 sentences naming the design axes that meaningfully shape scope/data model/architecture, derived from the brainstorm}QuestionsMust answer (these shape scope, data model, or architecture):1. {scope-shaping question}2. {data-model question}3. {integration question}Will default if you don't specify (defaults stated):- {dimension}: {proposed default}- {dimension}: {proposed default}
Question quality guidance:
- No hard cap on count — some plans need many questions, some need few. Ask as many as warranted.
- Stay focused on scope, data model, integration, and architecture. Skip minutiae (UI colors, exact field names, naming bikesheds, trivial config).
- Each "must answer" should be a decision that, if assumed wrong, would force a rewrite. Each "will default" should be safe to assume with a stated default the user can override.
- If the Phase 1 quick scope check determined the ask was already concrete, skip to Phase 3 with no questions asked.
Phase 3: Define the Plan
Once you understand the requirements, create the plan overview:
Create feature branch:
If the branch already exists (resuming a plan), check it out instead:
Resolve the plans directory, once, and reuse $PLANS_DIR for every path below. It is .claude/plans unless the project overrides it in .claude/hcf.json (see Plans Directory in the README). The script answers with an absolute path resolved from the project root, so the result does not depend on the working directory:
Never substitute a hand-written `jq` line or a literal `.claude/plans`. A non-zero exit means the project root or the configured value is unusable; surface the script's stderr verbatim and stop rather than falling back to the default — writing plans somewhere the project did not ask for is the failure this indirection exists to prevent.
Create plan directory:
Use a kebab-case name derived from the feature (e.g., user-authentication, payment-processing). Quote every path built from $PLANS_DIR — a configured directory may contain spaces.
Record the enrollment fingerprint so plan-orchestrate can detect that hook enrollment changed between planning and execution. Write it by redirecting a fresh invocation — do not re-type the value captured at Phase 0:
The file holds exactly that one line and nothing else — no heading, no comment, no explanation. Writing it as a redirect rather than transcribing a remembered value is deliberate: Phases 1–2 are a long interactive stretch, and a value carried across them is exactly what gets lost and then invented.
Create `_plan.md`:
Phase 4: Break Down into Tasks
Create numbered task files. Follow these principles:
Task Sizing:
- Each task should be completable in 1 TDD cycle (15-30 min of focused work)
- A task typically has 3-7 requirements
- If a task has >7 requirements, split it
- If a task has <3 requirements, consider combining with related task
Dependency Rules:
- Tasks with no dependencies can run in parallel
- Explicitly declare ALL dependencies (not just immediate ones)
- Avoid circular dependencies
- Maximize parallelism by minimizing unnecessary dependencies
Required Tasks:
- If the plan creates a new package, the final task must create a
README.mdfollowing the project's Package README Standards (seecode-standards.md). This task depends on all other tasks so the README accurately reflects what was built.
Task File Format (`{NNN}-{task-name}.md`):
Phase 5: Validate Dependencies
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/plan-create/SKILL.md
Popularity
- Repository stars
- 75
- Repository forks
- 14
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/markshust/hcf/plan-create)