fea/references/phases/phase4-planning.md

2.7 KiB

Phase 4

Step 1 — Deep codebase analysis

Use the Agent tool with model: "haiku" and subagent_type: "Explore" with thoroughness "very thorough" to:

  • Map every file that will be created or modified
  • Identify dependency order between changes
  • Find existing test patterns
  • Note migration requirements

Step 2 — Create plan

Use the Agent tool with model: "opus" and subagent_type: "general-purpose" to design the implementation plan based on:

  • The feature description from the <!-- status:ready --> comment
  • Full Q&A history from all session comments
  • Codebase exploration results
  • The project's existing patterns (DDD layers, aggregate repos, hand-written SQL, Watermill messaging, etc.)

The plan must produce content for three wiki page types (see templates/ for format):

Feature page content

  • Problem summary
  • Design decisions
  • Task dependency graph (ASCII)
  • Tasks table with IDs and titles

Sub-task pages content (one per task: T01, T02, ...)

  • Description of what the task accomplishes
  • Files created/modified
  • Dependencies and parallel tasks
  • Detailed changes with code sketches

Step 3 — Publish wiki pages

Wiki page naming:

  • Feature page: feature-<issue_number>-<slug> where <slug> is kebab-case issue title (max 40 chars)
  • Sub-task pages: feature-<issue_number>-<slug>-t<NN> (e.g. feature-12-user-auth-t01)

For each page, use mcp__gitea__create_wiki_page with:

  • owner, repo
  • title: the page name
  • content_base64: page content base64-encoded
  • message: descriptive commit message

To base64-encode, use Bash: echo -n '<content>' | base64 -w0

If a page already exists (tool errors), use mcp__gitea__update_wiki_page instead with pageName set to the page name.

Step 4 — Update README wiki page

Check if a README wiki page exists via mcp__gitea__get_wiki_page (pageName: "README").

  • If it does not exist, create it using the templates/readme.md format with the current feature as the first row.
  • If it exists, decode its content, append a new row for this feature to the table, and update it.

Feature table row format:

| <issue_number> | [<title>](<issue_url>) | Planning | [Wiki](<feature_wiki_url>) |

Step 5 — Post plan link as comment

Construct the wiki URL: https://<GITEA_HOST>/<owner>/<repo>/wiki/<page-name> (GITEA_HOST is git.marlerino-apps.io)

Post a comment on the issue:

<!-- mpns-feature-bot -->
# Implementation Plan

Published to wiki: [<feature-page-name>](<feature-wiki-url>)

## Tasks
- [ ] T01: [<task title>](<t01-wiki-url>)
- [ ] T02: [<task title>](<t02-wiki-url>)
...

Tell the user: "Implementation plan published to wiki. Link posted on the issue."