From plan-interview
Writes lifecycle status into a plan file's frontmatter. Inspects the codebase and git history to set accurate dates and completion state. Use when the user asks to check or update a plan's status.
How this skill is triggered — by the user, by Claude, or both
Slash command
/plan-interview:plan-status [plan-file-path] - omit to auto-detect from IDE or settings[plan-file-path] - omit to auto-detect from IDE or settingsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Determine whether a plan has been implemented by inspecting the codebase, then
Determine whether a plan has been implemented by inspecting the codebase, then write the lifecycle status and dates into the plan file's YAML frontmatter.
Follow these steps exactly.
Does not stress-test, validate, or critique plan content — use plan-interview for that.
Before doing anything else, use TodoWrite to create todos for each step:
Mark each todo status: "completed" as you finish that step.
Use the first match from this priority order:
.md file is
currently open in the IDE. If it looks like a plan (contains headings like
## Implementation, ## Plan, ## Steps, ## Context, or ## Summary),
use it..claude/settings.json. If a
"plansDirectory" key exists, glob *.md files from that path and use the
most recently modified file.~/.claude/settings.json. Same logic as above.~/.claude/plans/*.md, sort by modification
time, use the most recently modified file.If no file is found via any method, tell the user and stop.
Announce the resolved file: "Checking plan status: path/to/plan.md"
Use Bash to run git commands. Do not use stat — it is not cross-platform.
Created date (first in order that succeeds):
git log --follow --diff-filter=A --format="%cd" --date=short -- <file> | tail -1
If the command returns empty (file not tracked by git), use today's date as the created date.
Modified date:
git log -1 --format="%cd" --date=short -- <file>
If the modified date equals the created date, treat modified as absent (omit
it from frontmatter).
Read the plan file and parse its YAML frontmatter if present.
status field already exists, surface the current value to the user and
ask via AskUserQuestion: "This plan already has status [value]. Would
you like to re-analyze the codebase or keep the current status?"
status field exists, continue from Step 4.Type: Type is classified in Step 5 only, and only when status resolves
to completed. Do not infer or write type during this step.
Extract inline backtick tokens only from the plan body. Do not scan fenced
code block content (anything between ``` delimiters). Look for tokens that
appear to be:
/ or end in a known extension (.ts, .tsx, .md,
.json, .py, .js, .css, .scss)Examples of tokens to extract: `plugins/plan-interview/SKILL.md`,
`plan-status`, `FooComponent`, `commands/plan-status.md`
If no inline backtick tokens are found in the plan body, skip codebase
analysis entirely. Instead, ask the user via AskUserQuestion:
"No extractable implementation signals found in this plan (no backtick-quoted file paths or names). Please set the status manually."
Offer options (default: todo): todo, in-progress, completed, draft. Use the
user-selected value as the status and proceed to Step 6.
For each extracted token, check both:
Glob to test whether it matches an existing file path in the projectGrep to test whether it appears as an identifier in the codebase (for
named identifiers)Score the results:
todoin-progresscompletedcompleted)Infer content type from the plan's filename, H1 heading, and first 200 words of body text. Apply the first matching rule:
| Signal | Inferred type |
|---|---|
Filename starts with fix-, bugfix-, or H1/body contains "bug", "fix", "patch", "regression" | fix |
Filename starts with refactor-, restructure-, simplify-, or H1/body contains "refactor", "restructure", "simplify" | refactor |
Filename starts with document-, add-docs-, update-readme-, or H1/body contains "documentation", "readme", "guide", "changelog" | docs |
Filename starts with bump-, rename-, update-version-, cleanup-, or H1/body contains "chore", "housekeeping", "version bump", "rename" | chore |
Default (no strong signal or filename starts with add-, create-, implement-, build-) | feature |
If the file already has a valid content type (feature, fix, refactor,
docs, chore), keep it.
Output a summary table in the chat:
| Field | Value |
|----------|-------------------------------|
| File | docs/plans/my-feature.md |
| Status | in-progress |
| Type | feature |
| Created | 2026-01-15 |
| Modified | 2026-03-26 |
| Evidence | 3/5 tokens found in codebase |
List found tokens (with file or grep match) and missing tokens separately.
Then ask via AskUserQuestion:
"Should I update this plan file's YAML frontmatter with status
[value]?"
Do NOT write to the file unless the user confirms.
Only on user confirmation.
If the file has no existing YAML frontmatter, insert a new block at the very top of the file:
---
status: in-progress
type: feature
created: 2026-01-15
modified: 2026-03-26
---
If the file already has YAML frontmatter, update or add only the status,
type, created, and modified fields. Preserve all other existing fields
exactly as they are. Never rename or remove existing fields.
Rules:
modified if it equals createdEdit tool for all file writes"Frontmatter updated in path/to/plan.md"npx claudepluginhub shawn-sandy/agentics-kit --plugin plan-interviewProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.