6.5 KiB
Implementation Plan
Goal
Answer the meta-question "what can you plan?" by documenting the concrete scope of this ollama-planner subagent — what kinds of tasks I can produce an ordered, file-level implementation plan for, and where my scope ends. No code changes are produced; this document is the deliverable.
Tasks
This is a meta-question, not a code change request. The "plan" here is the capability description itself. I do not dispatch follow-up coding tasks; the parent may use this to decide whether to delegate a real planning job to me.
- Task 1 — Read context (already done)
- File:
/home/liph/dotfiles/pi/.pi/agent/agents/ollama-planner.md - Changes: read my own role definition to ground the answer in my actual system prompt
- Acceptance: confirmed I am a read-only planner paired with
ollama-coder
- File:
- Task 2 — Write capability summary to the required artifact path
- File:
/home/liph/dotfiles/pi/.pi/agent/agents/.pi-subagents/artifacts/outputs/4059014e/plan.md - Changes: produce this document
- Acceptance: file written, addresses the question concretely
- File:
Files to Modify
- None. This run is read-only and produces a single artifact.
New Files
agents/.pi-subagents/artifacts/outputs/4059014e/plan.md— this capability summary (the deliverable)
Dependencies
- None. No follow-up
ollama-coderdispatch is appropriate for a meta-question.
Risks
- Risk: user expected a code plan for some unstated real task. Mitigation: the "Open Questions" section asks the parent to confirm whether they want a real plan for a concrete task.
- Risk: scope is misstated. Mitigation: I derived the scope from the role prompt and the available toolset, not from general assistant claims.
What I can plan (in-scope)
Concrete software-engineering deliverables where I can produce a file-level, ordered plan that ollama-coder can execute without re-deriving intent:
- Feature implementation — new endpoints, UI panels, CLI flags, integrations. I name files, exact changes, and per-task acceptance checks.
- Refactors — extract module/class, rename, restructure a directory tree, decouple a dependency, move code across a package boundary.
- Bug fixes with multi-file surface — when the cause spans 2+ files, I plan the diagnostic + fix + regression test as ordered steps.
- Migrations — framework upgrades (e.g. React 18→19, Node 18→20), database schema migrations, codemod rollouts, lockfile/dep upgrades with breaking changes.
- Test strategy and scaffolding — which test files to add, which existing tests to update, fixtures, mocks, and what command to run for verification.
- API design and contract changes — request/response shape changes, version bumps, deprecation policy, and the diff plan across producer + consumers.
- Build / CI / DevEx changes — pipeline edits, new GitHub Actions, monorepo scripts, pre-commit hooks, dev-container / Nix changes.
- Documentation and migration notes — when paired with code changes, I can plan the README/changelog/runbook updates that must ship alongside.
- Cross-cutting concerns as plans, not edits — auth/authorization model, error-handling strategy, logging/observability rollout, feature-flag introduction.
- Greenfield project bootstrap — directory layout, package manifests, minimal entry points, for a stated stack.
For every plan I produce:
- One ordered task list with file path, exact change, and a one-line acceptance check per task.
- A "Files to Modify" / "New Files" inventory.
- A "Dependencies" section so ordering is unambiguous.
- A "Risks" section with mitigations.
- A "Validation Contract" naming the commands/tests the coder must run and the evidence to return.
Out-of-scope (I will refuse or escalate, not invent)
- Non-software deliverables — business strategy, legal text, marketing copy, life decisions. If asked, I'll say so and ask the parent to re-route.
- Destructive operations without explicit confirmation —
git push --force, deleting branches, wiping data, dropping tables. I'll surface these as risks and ask before planning execution. - Tasks requiring capabilities I don't have — I cannot run code, install packages, hit the network, or open PRs. I can plan those actions; I cannot perform them.
- Ambiguous requirements — instead of guessing, I write an "Open Questions" section and stop, so the parent can ask the user.
How to brief me for best results
To get a tight, executable plan, give me any subset of:
- Goal: one-sentence outcome.
- Code pointers: file paths, line ranges, relevant symbols, or a tree of the affected area.
- Constraints: framework version, must-keep APIs, performance budget, backwards-compat requirements.
- Definition of done: tests that must pass, commands the coder should run, or a user-visible behavior that must hold.
- Screenshots / diagrams: I can read images and reference what I see, so a mockup or architecture sketch is useful UI input.
If you give me only a goal, I'll explore the codebase, list the files I would need to read, and either produce a plan with explicit "Open Questions" or ask the parent for the missing context.
Format of what I produce
Single plan.md (or a path you specify) with these sections, in this order:
# Implementation Plan → ## Goal → ## Tasks (numbered, file-scoped) → ## Files to Modify → ## New Files → ## Dependencies → ## Risks → ## Open Questions → ## Validation Contract.
The Validation Contract is the part the coder must satisfy before reporting done; it lists the commands, tests, and the evidence (changed files, command output, screenshots) they should return.
Open Questions
- Did you want a real plan for a specific task, or were you probing what I cover? If the former, please state the goal + the codebase or repo so I can explore and plan.
- Is there a stack/language/framework you want me to bias toward? (I am language-agnostic; explicit constraints produce tighter plans.)
Validation Contract
- Behavior that must hold: this
plan.mdexists at the required path, accurately describes my planning scope grounded in theollama-planner.mdrole prompt, and ends with a structured acceptance report. - Tests / commands the coder would run: not applicable — no code is produced in this run.
- Evidence the coder should return: the path of this file and a one-line confirmation that the content addresses the question.
No code was changed. No follow-up ollama-coder task was dispatched. This artifact is the deliverable.