Create `.context/plans/*.md` files with standard YAML frontmatter, phases/tasks/waves decomposition, and post-creation validation. Infers section conventions from existing plans in `.context/plans/` to match the local style. Integrates with plan-review for a create → review → iterate loop. Triggers: 'create a plan', 'new plan', 'draft a plan', 'plan scaffold', 'write a plan'. Do NOT use for plans outside `.context/plans/`, ephemeral notes, or the main project SKILL.md.
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Create .context/plans/ files that pass structural validation and match
local conventions. The workflow ensures every plan has valid frontmatter,
clear phases and tasks, and can be immediately reviewed by the
plan-review skill.
context-file skill available if frontmatter repair is neededplan-review skill available for post-creation validation (optional)plan-reviewAsk the user about the plan. Collect at minimum:
Scan existing plans to understand what sections this repo uses:
grep -r '^## ' .context/plans/*.md | sed 's/.*## //' | sort | uniq -c | sort -rnFrom the frequency table, identify:
Also check the naming convention: timestamped (topic-YYYY-MM-DD.md) or
topic-only (short-description.md). Follow whatever the majority of plans use.
Construct the plan file following the structure in assets/templates/plan-scaffold.yaml. The template is validated against assets/schemas/plan-scaffold.schema.json.
The plan always includes:
title, type: PLAN, status: DRAFT, date (today),
effort (S/M/L/TBD), value (HIGH/MEDIUM/LOW), themes (ordered
list from the theme vocabulary, primary-first)## Goal section -- one paragraph describing the desired end state## Phases section -- numbered phases with tasks and wave annotations## Open Questions section -- unresolved items for the reviewerAdditional sections based on what the user provided and what the local
conventions suggest (from step 2): ## Scope, ## Risks, ## Verification.
Run the frontmatter validation script (see the context-index skill's
scripts/validate-context-frontmatter.sh):
validate-context-frontmatter.sh .context/plans/<plan-file>.mdIf validation fails, fix the frontmatter and re-run. Do not proceed until validation passes -- a plan with invalid frontmatter is invisible to the index.
Offer to run the plan-review skill on the newly created plan:
"I created the plan at
.context/plans/<file>. Would you like me to run theplan-reviewskill on it now to catch any issues?"
If the user accepts, load the plan-review skill and follow its workflow.
This completes the create → review → iterate loop.
Confirm the file was created with its path and a summary:
Created: .context/plans/<file>.md
Title: <title>
Status: draft
Phases: <N> phases, <M> tasks total
Next: Run plan-review on it, or mark status: READY once reviewed and approved
(status becomes ACTIVE on its own once a worktree/branch for it exists)After creating the plan, run these checks:
Frontmatter validation -- run validate-context-frontmatter.sh on the
file. If it fails, fix the frontmatter before presenting the result.
validate-context-frontmatter.sh <file>Structure check -- verify the plan has at minimum ## Goal and
## Phases sections. If the local convention requires others (from step 2),
add those too.
Phase completeness -- verify each phase has 2-5 concrete tasks and an exit criterion. Phases with more than 8 tasks should be split.
Wave annotation -- verify tasks that can run in parallel are marked (e.g., "Wave A: frontend, Wave B: backend -- can run concurrently").
Effort declared -- frontmatter has effort set to S/M/L/TBD.
If TBD, confirm the corresponding Open Question actually explains what's
blocking the estimate.
Value graded -- frontmatter has value set to HIGH/MEDIUM/LOW,
graded against the value rubric (see
Grading Effort, Value, and Themes)
rather than guessed.
Themes tagged -- frontmatter has a non-empty themes list, ordered
primary-first, with every member drawn from the controlled theme vocabulary
(same reference) -- no invented themes.
status: DRAFT. Promote to READY only after the
plan is reviewed and approved -- AVOID skipping straight to READY UNLESS the
work is genuinely trivial enough to skip review entirely (see When NOT to Use).
ACTIVE is not a manual promotion at all -- it's entered automatically once a
worktree/branch referencing the plan exists (see planning-flow.md)..context/index.yaml and to every agent that reads it.effort and grading value is RECOMMENDED to happen against the
rubric in Grading Effort, Value, and Themes,
not from gut feel -- a guessed grade misleads the reader more than a stated
TBD with an Open Question.NEVER -- Create a plan without YAML frontmatter
SYMPTOM: The file renders fine in markdown but never appears in the context index. Future agents never discover the plan.
CONSEQUENCE: Effort goes into a plan no one reads. The plan is orphaned until someone manually finds it and adds frontmatter.
WHY: The context index and pre-commit hooks both require frontmatter. A plan without it is invisible machinery.
BAD: Starting the file with # Plan: My Title directly.
GOOD: Always open with ---\ntitle: "Plan: My Title"\ntype: PLAN\nstatus: DRAFT\ndate: YYYY-MM-DD\n---.
NEVER -- Skip the convention inference step
SYMPTOM: The created plan uses a structure that doesn't match any other plan
in the repo -- no ## Open Questions, no ## Scope. It feels out of place.
CONSEQUENCE: Agents that parse plans expecting ## Steps instead of
## Phases may skip sections. The plan is technically valid but practically
misaligned.
WHY: The local convention reflects what agents in this repo expect. A plan that doesn't follow it is harder to review, harder to index, and harder to discover.
BAD: Hardcoding "Goal → Steps → Open Questions" without scanning first.
GOOD: Running grep -r '^## ' .context/plans/*.md and using the actual
frequencies.
NEVER -- Create a phase with more than 8 tasks
SYMPTOM: "Phase 1: Everything" with 15 tasks and no sub-structure. The phase cannot be shipped independently -- it's the whole plan.
CONSEQUENCE: No meaningful checkpoint exists. If the plan runs out of time, there's no partial delivery. The cost of splitting later is higher than splitting now.
WHY: A phase should be small enough to review, implement, and ship in a sprint (1-2 weeks). 8+ tasks means the phase is underspecified.
BAD: A flat list of 15 tasks with no phase grouping. GOOD: 3 phases, each with 3-5 tasks and an exit criterion.
NEVER -- Omit or guess the effort field
SYMPTOM: The plan has no effort in frontmatter, or has one picked
arbitrarily to satisfy validation rather than reflecting an actual estimate.
CONSEQUENCE: A reader scanning .context/index.yaml for quick wins vs.
big lifts can't distinguish them without opening every plan file. A fake
number is worse than a missing one -- it looks authoritative but isn't.
WHY: effort exists so plans are triageable at a glance, the same way
status lets a reader triage by lifecycle stage. validate-context-frontmatter.sh
requires it for any type: PLAN with status: DRAFT, READY, or ACTIVE.
BAD: Setting effort: S on a plan nobody has actually sized, just to pass
validation.
GOOD: effort: TBD with an Open Question stating exactly what decision
blocks sizing (see migrate-off-tessl-eval-2026-06-29.md for a real example).
| Topic | Reference | When to Use |
|---|---|---|
| Common plan sections, their purpose, and file-naming conventions | Plan Structure Reference | Step 2, inferring which sections to include and how to name the file |
| Effort/value/themes rubric, allowed values, worked example | Grading Effort, Value, and Themes | Step 1, whenever effort, value, or themes need grading rather than guessing |
| Repairing frontmatter on an existing file | context-file skill | When a plan's frontmatter is invalid and needs fixing, not creating from scratch |
| Post-creation multi-perspective audit | plan-review skill | Step 5, after a plan is drafted and ready for review |
| Regenerating the index after creation | context-index skill | After a plan is created or its frontmatter changes, to keep .context/index.yaml in sync |
pantheon-org/tekhne
c8416e9
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.