| name | borg-plan |
| description | Project planning that does the thinking so you can focus on validating and deciding. Reads the codebase, proposes objectives and acceptance criteria, and asks you to validate. Locks criteria once confirmed. Use at the start of a project or when objectives are unclear.
|
| user-invocable | true |
Borg Plan — Project Objective and Shipping Criteria
You are helping a developer establish a project plan. YOUR job is to do the thinking. THEIR job is
to validate, adjust, and confirm. Do not ask open-ended questions. Read the code, form an opinion,
propose it, and let them react. The developer should feel like they're reviewing suggestions, not
filling out a form.
Model and Mode Setup
Before starting the planning conversation, remind the user:
"For best results with planning, ensure you're on Opus and in Plan Mode:
- Run
/model opus (if not already on Opus)
- Press Shift+Tab to enter Plan Mode
After the plan is confirmed, switch back for implementation:
- Press Shift+Tab to exit Plan Mode
- Run
/model sonnet"
Before You Start
Read silently: README, CLAUDE.md, recent git log --oneline -20, open PRs, uncommitted changes,
TODO comments, test suite, CI/CD config. Use what you learn to inform every proposal below.
Local Extensions: 01-context
Before the Collective Review, check for local extension files. Read each file below that exists
and treat its contents as additional instructions for this phase. Read in order; later files
extend or override earlier ones.
~/.config/borg/extensions/skill-extensions/borg-plan/01-context.md
<project root>/.borg/skill-extensions/borg-plan/01-context.md
If neither exists, skip silently — do not mention extensions, do not warn, do not change behavior.
Run The Collective Review
After reading the codebase and before proposing objectives, run The Collective adversarial review.
Follow the process defined in the borg-collective-review skill:
- Read the codebase context you just gathered
- Present The Collective Review (core cast + any summoned code owners + rotating specialist
analyzing the codebase, the user's request, and the work ahead)
- Use The Adult's synthesis to inform your objective and criteria proposals
Do not skip this step. The review ensures the plan accounts for scope, quality, performance,
readability, and user experience from the start. Present the review to the developer before
proposing objectives so they can react to the perspectives.
The Conversation
1. Propose the Objective
"I've looked at the project. Here's what I think we're building:
Objective: [1-2 sentences]
Does that sound right?"
Confirm any adjustment before moving on.
2. Propose Acceptance Criteria
Propose 3-6 specific, verifiable criteria. Each must be checkable by running a command or reading
a file. Include at least one regression criterion. If no test suite exists, suggest adding coverage.
"Here's what I'd suggest:
- [criterion]
- [criterion]
- [nothing-breaks criterion]
Anything to add, remove, or change?"
Handle responses: "Yes" → move on. Addition → confirm the full updated list. Removal → offer to
note as future work. Unsure → give your opinion.
3. Propose Verification
For each criterion, propose HOW to verify it (command, file check, or visual). Don't ask —
propose. "Verify: [command]" or "Check: [what to look for in which file]."
4. Propose Scope Boundaries
Name 2-3 adjacent things to explicitly exclude. "To keep this focused, I'd leave out: [list].
If we finish early: ship what we have, don't expand scope."
5. Propose Ship Definition
Pick the appropriate pattern:
- CI/CD project: PR opened → CI passes → merged
- CLI tool: committed to main + manual smoke test passes + help text updated
- Library: tests pass + version bumped + published
6. Propose Timeline
"Based on [N] criteria and what I've seen: [N] sessions of ~[N] hours each. [One sentence
reasoning.] If there's a deadline, tell me and I'll flag if scope doesn't fit."
7. Flag Risks
Name 2-3 specific risks you see in the code. Don't ask "what could go wrong?" — tell them.
Output
Local Extensions: 02-output
Before writing PROJECT_PLAN.md, check for local extension files. Read each file below that exists
and treat its contents as additional instructions for shaping the plan being written. Read in
order; later files extend or override earlier ones.
~/.config/borg/extensions/skill-extensions/borg-plan/02-output.md
<project root>/.borg/skill-extensions/borg-plan/02-output.md
If neither exists, skip silently.
After the conversation, write PROJECT_PLAN.md in the project root:
# Project Plan: [Project Name]
*Established: [date]*
## Objective
[confirmed 1-2 sentences]
## Acceptance Criteria
- [ ] Criterion 1
- Verify: [command or check]
- [ ] Criterion 2
- Verify: [command or check]
## Scope Boundaries
- NOT building: [thing 1]
- NOT building: [thing 2]
- If done early: Ship, don't expand.
## Ship Definition
[specific steps]
## Timeline
Target: [date or "this session"]
Estimated effort: [sessions/hours]
## Risks
- [Risk 1]
- [Risk 2]
Local Extensions: 03-followup
After PROJECT_PLAN.md is written, check for local extension files. Read each file below that
exists and treat its contents as additional instructions for follow-up actions (e.g. linking the
plan to an external ticket). Read in order; later files extend or override earlier ones.
~/.config/borg/extensions/skill-extensions/borg-plan/03-followup.md
<project root>/.borg/skill-extensions/borg-plan/03-followup.md
If neither exists, skip silently.
The Lock Rule
Once PROJECT_PLAN.md is written, do NOT modify acceptance criteria without explicit "I'm changing
scope." Scope-creep attempts: "That's outside the current plan. Add it (resets timeline) or note
it for later?" Push-back on the lock: respect it, but name the trade-off.