# 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.

1. **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`
2. **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

## 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-coder` dispatch 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:

1. **Feature implementation** — new endpoints, UI panels, CLI flags, integrations. I name files, exact changes, and per-task acceptance checks.
2. **Refactors** — extract module/class, rename, restructure a directory tree, decouple a dependency, move code across a package boundary.
3. **Bug fixes with multi-file surface** — when the cause spans 2+ files, I plan the diagnostic + fix + regression test as ordered steps.
4. **Migrations** — framework upgrades (e.g. React 18→19, Node 18→20), database schema migrations, codemod rollouts, lockfile/dep upgrades with breaking changes.
5. **Test strategy and scaffolding** — which test files to add, which existing tests to update, fixtures, mocks, and what command to run for verification.
6. **API design and contract changes** — request/response shape changes, version bumps, deprecation policy, and the diff plan across producer + consumers.
7. **Build / CI / DevEx changes** — pipeline edits, new GitHub Actions, monorepo scripts, pre-commit hooks, dev-container / Nix changes.
8. **Documentation and migration notes** — when paired with code changes, I can plan the README/changelog/runbook updates that must ship alongside.
9. **Cross-cutting concerns as plans, not edits** — auth/authorization model, error-handling strategy, logging/observability rollout, feature-flag introduction.
10. **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
1. 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.
2. 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.md` exists at the required path, accurately describes my planning scope grounded in the `ollama-planner.md` role 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.*
