From playbook
Import Claude plan documents from ~/.claude/plans/ into playbook in bulk. Lists available plans with descriptions, lets you pick and choose, and imports selected plans with proper frontmatter and status tracking.
How this skill is triggered — by the user, by Claude, or both
Slash command
/playbook:import-pbThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<purpose>
<load-config>
<action>Resolve the user's home directory.</action>
<command language="bash" output="home" tool="Bash">echo $HOME</command>
<constraint>Never pass `~` to the Read tool.</constraint>
<read path="<home>/.things/config.json" output="config" />
<if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.<exit /></if>
<read path="<home>/.things/playbook/preferences.json" output="preferences" />
<if condition="preferences-missing">Tell the user: "Run `/setup-pb` first." Then stop.<exit /></if>
</load-config>
Discover Available Plans
<action>List all `.md` files in `<home>/.claude/plans/`.</action>
<if condition="directory-missing-or-empty">
<action>Tell the user: "No plan files found in `~/.claude/plans/`. Plans are created when you use Claude Code's plan mode (the `/plan` command or when Claude enters plan mode during a task)." Then stop.</action>
</if>
<action>For each plan file, read the content and extract a meaningful description:</action>
1. Look for the first `#` heading -- use it as the display title
2. If no heading, derive a title from the filename (replace hyphens with spaces, drop the `.md`)
3. Read the first paragraph or summary section for a 1-2 sentence description
4. Note the file modification date (`stat -f %Sm -t %Y-%m-%d <file>` on macOS)
5. Estimate scope: count top-level sections or checklist items to give a sense of plan size
<action>Also check which plans have already been imported into `<home>/.things/playbook/plans/` by comparing `source_plan` fields in existing plan frontmatter.</action>
Display Plans for Selection
<output>
Plans in ~/.claude/plans/:
1. <display title> <mod date>
<1-2 sentence description>
<N sections/items> | <already imported or new>
2. <display title> <mod date>
<1-2 sentence description>
<N sections/items> | new
...
</output>
<constraint>Mark already-imported plans clearly so the user can make an informed choice. Don't hide them -- they may want to re-import an updated version.</constraint>
<ask-user-question>
<question>Which plans would you like to import? Enter numbers (e.g., "1,3"), a range (e.g., "1-5"), or "all". Plans already imported will be updated with the latest version.</question>
</ask-user-question>
Handle Dry Run
<if condition="--dry-run">
<action>For each selected plan, show what WOULD happen:</action>
<output>
Dry run -- no files will be written:
1. <filename> → playbook/plans/<generated-slug>.md
Title: "<inferred title>"
Tags: [<inferred tags>]
Status: active
<new import or update of existing>
</output>
<action>Stop here.</action>
</if>
Import Selected Plans
<action>For each selected plan, use the same import flow as `/capture-plan-pb`:</action>
1. Read full content
2. Generate frontmatter:
- `title`: from first H1 heading or derived from content
- `date`: today's date
- `description`: 1-2 sentence summary of the plan's scope
- `doc_type`: `"plan"`
- `status`: `"active"`
- `source_plan`: original filename
- `tags`: auto-generated from technologies, scope keywords
- `references`: `[]` (empty -- can be added later via `/update-pb`)
- `slug`: slugified title
- `version`: determined from existing versions
3. Generate slug from title
4. Check for existing plan directory `<home>/.things/playbook/plans/<slug>/` -- if found, determine next version number (max existing + 1). If not, create the directory and use v1.
5. Write to `<home>/.things/playbook/plans/<slug>/v<N>.md`
6. Handle source: copy or move based on `preferences.plan_import_behavior`
Handle Git Workflow
<git-workflow>
<action>Pull latest before committing.</action>
<command language="bash" tool="Bash">git -C <home>/.things pull --rebase 2>/dev/null || true</command>
<action>Read git workflow from `config.json` (`git.workflow`).</action>
<if condition="workflow-auto">Automatically `git add`, `git commit -m "import: <N> plans into playbook"`, and `git push`.</if>
<if condition="workflow-ask">
<ask-user-question>
<question>Commit and push the imported plans?</question>
<option>Yes -- commit and push</option>
<option>Commit only</option>
<option>No -- I'll handle git myself</option>
</ask-user-question>
</if>
<if condition="workflow-manual">Tell the user the plans have been saved.</if>
</git-workflow>
Confirm
<completion-message>
Imported <N> plans into playbook:
<for each imported plan:>
- **<title>** → `playbook/plans/<slug>/v<N>.md` (tags: <tags>)
Next steps:
- `/review-against-pb <plan>` -- Review branch work against a plan
- `/progress-pb` -- See progress dashboard for all plans
</completion-message>
npx claudepluginhub brennacodes/brenna-plugs --plugin playbookImports Claude Code plan files from ~/.claude/plans/*.md into project's specs/ directory using slugified H1 headings as filenames. Supports interactive selection, --today, --since, --all filters, conflict checks.
Imports external plans or PRDs into Plan-Build-Run format. Validates context, detects conflicts with existing architecture, generates PLAN.md.
Executes an iteratively refined user plan from a `.claude/` plan file system, handling session tracking, prerequisite checks, and critique context.