From plan-interview
Use when the user asks to check, update, or determine the status of a plan file, when entering or exiting plan mode, when creating or updating plans, or when working with plan files in any capacity — not for stress-testing, validating, or critiquing plan content.
npx claudepluginhub shawn-sandy/agentics --plugin plan-interviewThis skill is limited to using the following tools:
Determine whether a plan has been implemented by inspecting the codebase, then
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.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
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.
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="%Y-%m-%d" -- <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="%Y-%m-%d" -- <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 inference: After resolving the status decision, determine the plan type:
If a type field already exists in frontmatter, preserve it and skip inference.
If no type exists, infer it by scanning the plan filename (without extension),
H1 heading, and first 200 words of the body for keywords (in that order, first
match wins):
| Keywords (case-insensitive) | Type |
|---|---|
fix, bug, patch, defect | bug-fix |
refactor, restructure, reorganize, cleanup, clean up | refactor |
architecture, migrate, migration, infrastructure, system design | architecture |
docs, documentation, readme, changelog, guide | docs |
chore, maintenance, upgrade, tooling, dependency, dependencies | chore |
| All other cases | feature |
If multiple type keywords are detected at the same scan level (ambiguous),
use AskUserQuestion to confirm:
"I inferred this plan's type as
[type]— does that look right?" Options:feature,bug-fix,refactor,architecture,chore,docs
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, artifact. 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)Compute days since the modified date (proxy for completion date):
If modified date = created date (no modification recorded), use the created date.
If ≥ 30 days have passed, ask the user via AskUserQuestion:
"This plan appears to have been completed 30+ days ago. Would you like to mark it as
artifact(preserved as valuable project documentation) rather thancompleted?"
If user confirms → status = artifact
If user declines → status stays completed
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"