Planlet Plan
Create or revise one focused planlet while keeping planning separate from implementation.
Start the workflow
- Discover the repository root without traversing above its boundary.
- Use one available
planlet executable throughout the workflow. Confirm each needed operation with planlet help <command>; do not infer support from this skill. Pass --root "<repository-root>" to every operational command. Treat angle-bracket runtime values as separate argv values; when invoking through a shell, apply shell-specific escaping instead of interpolating raw text.
- Use
planlet --root "<repository-root>" list to inspect active logical slugs and planlet --root "<repository-root>" list --completed to inspect completed logical slugs. For a revision, resolve exactly one active slug, run planlet --root "<repository-root>" validate <slug>, and read both files completely with planlet --root "<repository-root>" --full show <slug> --part plan and planlet --root "<repository-root>" --full show <slug> --part tasks.
- Read applicable repository instructions when present.
- The
planlet CLI is required. If no executable is available, install it
(npm install -g @vipentti/planlet) or invoke it through npx @vipentti/planlet. If it still
cannot run, stop and report that, naming the missing executable. Do not reimplement CLI
operations by editing planlet files.
Develop the proposal
Inspect the repository before recommending an approach.
Look up repository facts instead of asking.
- For a vague or incomplete request, surface material open decisions that affect outcome, boundaries, constraints, acceptance, verification, or task sizing.
- Ask in small related batches (prefer about 2–4 related decisions; one-at-a-time only when answers depend on each other) with a recommended answer for each decision.
- Settle those decisions enough for a fresh-session handoff before narrowing into a concrete proposal.
- If the request is already precise, proceed without ceremonial questions.
Define the outcome, scope, exclusions, approach, acceptance criteria,
verification, and meaningful risks. Compare options only when the choice
matters. Keep plan.md static: verification records strategy, never results
of a past or future run.
Treat plan.md as the authoritative change-specific design and acceptance
contract for this planlet, subject to applicable repository instructions and
higher-level design documents. State each material requirement once in the
most appropriate section instead of repeating it across Scope, Approach,
Acceptance Criteria, Verification, and tasks.
Propose a descriptive slug matching ^[a-z0-9]+(?:-[a-z0-9]+)*$ and verify that its logical slug is unused among active and completed planlets.
Turn the proposal into plan.md and a compact execution index in
tasks.md. An implementer is expected to read both files before starting:
plan.md owns design decisions, boundaries, invariants, acceptance criteria,
and broad verification strategy; tasks.md orders the delivered outcomes
needed to realize that plan.
Keep each task small enough that a typical agent can implement and verify
one outcome without guessing its ownership. Do not duplicate detailed plan
requirements in tasks. Prefer one concise task sentence; include likely
components or task-specific verification only when they materially reduce
ambiguity. If a task needs a long explanation or many independent
requirements, move shared detail into plan.md or split the task.
Read planning guidance and use the
templates in plan-template.md and
tasks-template.md.
Before presenting the proposal, run a compression pass over the draft
tasks.md against plan.md to remove recoverable detail; see
planning guidance for the full
procedure.
Present the proposed plan and tasks in conversation. Outside the proposed
file content, keep commentary brief: call out only material assumptions,
exclusions, unresolved decisions, or tradeoffs that need review. Do not
restate the plan in a second narrative summary. Obtain explicit confirmation
before writing either file. If confirmation is declined or absent, leave the repository unchanged.
Persist or revise
For a new confirmed planlet:
- Run
planlet --root "<repository-root>" create <slug> --title "<title>". Treat non-zero exit as no authorization to write around a slug, path, or collision failure.
- Confirm CLI created only H1 stubs. When the harness exposes a dedicated file-reading capability, read each created file with it rather than through a shell command, because such a harness can reject a write to a file it has not read and may not count a shell read. Then replace those two stubs with approved
plan.md and tasks.md content, because create writes H1 stubs only and no CLI command accepts plan or task body content. Never use create for revision or overwrite an existing planlet.
- Run
planlet --root "<repository-root>" validate <slug>, then re-read both files with planlet --root "<repository-root>" --full show <slug> --part plan and planlet --root "<repository-root>" --full show <slug> --part tasks; inspect exact persisted content.
For a confirmed revision, edit both existing files directly because CLI has no semantic revision operation. When the harness exposes a dedicated file-reading capability, read each file with it before editing, because such a harness can reject an edit to a file it has not read and may not count a shell read. Preserve IDs for unchanged tasks, assign new IDs above highest numeric suffix, and never silently remove completed work. Then run targeted validate and full show inspection as above.
Do not modify product code, create extra planning documents by default, or begin implementation unless the user separately requests it.
Finish
Report selected logical slug, paths written or revised, proposal status, exact CLI validation result, warnings, and unresolved decisions.
1---2name: planlet-plan3description: Explore, propose, create, or revise one repository-local Planlet without implementing product changes. Use when a user wants to investigate and persist a focused plan, refine an existing planlet, or prepare a reviewable implementation handoff.4license: MIT5---67# Planlet Plan89Create or revise one focused planlet while keeping planning separate from implementation.1011## Start the workflow12131. Discover the repository root without traversing above its boundary.142. Use one available `planlet` executable throughout the workflow. Confirm each needed operation with `planlet help <command>`; do not infer support from this skill. Pass `--root "<repository-root>"` to every operational command. Treat angle-bracket runtime values as separate argv values; when invoking through a shell, apply shell-specific escaping instead of interpolating raw text.153. Use `planlet --root "<repository-root>" list` to inspect active logical slugs and `planlet --root "<repository-root>" list --completed` to inspect completed logical slugs. For a revision, resolve exactly one active slug, run `planlet --root "<repository-root>" validate <slug>`, and read both files completely with `planlet --root "<repository-root>" --full show <slug> --part plan` and `planlet --root "<repository-root>" --full show <slug> --part tasks`.164. Read applicable repository instructions when present.175. The `planlet` CLI is required. If no executable is available, install it18 (`npm install -g @vipentti/planlet`) or invoke it through `npx @vipentti/planlet`. If it still19 cannot run, stop and report that, naming the missing executable. Do not reimplement CLI20 operations by editing planlet files.2122## Develop the proposal23241. Inspect the repository before recommending an approach.252. Look up repository facts instead of asking.26 - For a vague or incomplete request, surface material open decisions that affect outcome, boundaries, constraints, acceptance, verification, or task sizing.27 - Ask in small related batches (prefer about 2–4 related decisions; one-at-a-time only when answers depend on each other) with a recommended answer for each decision.28 - Settle those decisions enough for a fresh-session handoff before narrowing into a concrete proposal.29 - If the request is already precise, proceed without ceremonial questions.303. Define the outcome, scope, exclusions, approach, acceptance criteria,31 verification, and meaningful risks. Compare options only when the choice32 matters. Keep `plan.md` static: verification records strategy, never results33 of a past or future run.3435 Treat `plan.md` as the authoritative change-specific design and acceptance36 contract for this planlet, subject to applicable repository instructions and37 higher-level design documents. State each material requirement once in the38 most appropriate section instead of repeating it across Scope, Approach,39 Acceptance Criteria, Verification, and tasks.40414. Propose a descriptive slug matching `^[a-z0-9]+(?:-[a-z0-9]+)*$` and verify that its logical slug is unused among active and completed planlets.425. Turn the proposal into `plan.md` and a compact execution index in43 `tasks.md`. An implementer is expected to read both files before starting:44 `plan.md` owns design decisions, boundaries, invariants, acceptance criteria,45 and broad verification strategy; `tasks.md` orders the delivered outcomes46 needed to realize that plan.4748 Keep each task small enough that a typical agent can implement and verify49 one outcome without guessing its ownership. Do not duplicate detailed plan50 requirements in tasks. Prefer one concise task sentence; include likely51 components or task-specific verification only when they materially reduce52 ambiguity. If a task needs a long explanation or many independent53 requirements, move shared detail into `plan.md` or split the task.5455 Read [planning guidance](references/planning-guidance.md) and use the56 templates in [plan-template.md](assets/plan-template.md) and57 [tasks-template.md](assets/tasks-template.md).58596. Before presenting the proposal, run a compression pass over the draft60 `tasks.md` against `plan.md` to remove recoverable detail; see61 [planning guidance](references/planning-guidance.md) for the full62 procedure.63647. Present the proposed plan and tasks in conversation. Outside the proposed65 file content, keep commentary brief: call out only material assumptions,66 exclusions, unresolved decisions, or tradeoffs that need review. Do not67 restate the plan in a second narrative summary. Obtain explicit confirmation68 before writing either file. If confirmation is declined or absent, leave the repository unchanged.6970## Persist or revise7172For a new confirmed planlet:73741. Run `planlet --root "<repository-root>" create <slug> --title "<title>"`. Treat non-zero exit as no authorization to write around a slug, path, or collision failure.752. Confirm CLI created only H1 stubs. When the harness exposes a dedicated file-reading capability, read each created file with it rather than through a shell command, because such a harness can reject a write to a file it has not read and may not count a shell read. Then replace those two stubs with approved `plan.md` and `tasks.md` content, because `create` writes H1 stubs only and no CLI command accepts plan or task body content. Never use `create` for revision or overwrite an existing planlet.763. Run `planlet --root "<repository-root>" validate <slug>`, then re-read both files with `planlet --root "<repository-root>" --full show <slug> --part plan` and `planlet --root "<repository-root>" --full show <slug> --part tasks`; inspect exact persisted content.7778For a confirmed revision, edit both existing files directly because CLI has no semantic revision operation. When the harness exposes a dedicated file-reading capability, read each file with it before editing, because such a harness can reject an edit to a file it has not read and may not count a shell read. Preserve IDs for unchanged tasks, assign new IDs above highest numeric suffix, and never silently remove completed work. Then run targeted `validate` and full `show` inspection as above.7980Do not modify product code, create extra planning documents by default, or begin implementation unless the user separately requests it.8182## Finish8384Report selected logical slug, paths written or revised, proposal status, exact CLI validation result, warnings, and unresolved decisions.