# hu13 build plan (hub)

Source: DRAFT.md (root). This page is the swarm execution order.
Each row maps to a f0rge issue with its own Success rubric.
Process per item: research -> plan -> implement -> test -> iterate till verified.

## Research findings (locked)

- Markdown: `pulldown-cmark = "0.13.4"` pinned. Frontmatter: tiny `---` split
  + `serde_yaml` pinned for f0rge YAML (spike R1 must confirm on real fixtures).
- Real `.forge/` layout is dir-per-entity: `issues/<uuid>/issue.md`
  (+`comments/<uuid>.md`), `prs/<uuid>/pr.md` (+`patch.diff`, `comments/`,
  `reviews/`). Renderer MUST read this shape, not flat files.
- Deps budget: pulldown-cmark + serde + serde_json + serde_yaml (+ chrono?
  prefer `time`/hand-rolled RFC3339). No tokio/hyper: std `TcpListener`,
  thread-per-conn or single-queue, only 2 POST routes.
- `git bundle` available (git 2.55.0). Clone chain:
  `--clone-url` flag > `git remote get-url origin` > bundle/tarball always.
- Rust 1.98.0, cargo + docker available. Single binary, one crate to start.

## Sequence

- m1-code-tab: R1 spike, scaffold+CI+style, git reader, code tab.
- m2-commits-wiki-feed: commit diffs, wiki, feed.atom (50).
- m3-forge-api: f0rge readers, releases+artifacts (no cap), api JSON, agents page.
- m4-mailbox: inbox forms+POSTs+storage+ack+license, then hardening.
- m5-docker-v1: Dockerfile build-on-start, dogfood, polish, license re-read, v1 gate.

## Swarm dispatch notes

- One issue = one branch = one PR. Issues are ordered; prefix number is order.
- Subagents: Owl/Owlette for well-specified render issues, Platinum for
  inbox daemon + hardening. Supervisor reviews every PR, CI must pass.
- Never touch `.forge/` entity files by hand except via `f0rge` CLI.
- Dogfood continuously: `hu13 build` this repo from m1 on.
