Porting a Subsystem from Upstream
Porting a Subsystem from Upstream
The contribution path. Use this when you want to port a piece of Hermes into Gormes.
1. Pick your target
Open Subsystem Inventory. Every row is a Hermes subsystem with a target Gormes sub-phase. Pick one that:
- Carries a ⏳ planned status (not already shipped)
- Has no hard dependency on a later phase (check the “Target phase” column)
- You have context on (voice/vision are big lifts; a platform adapter is a reasonable first PR)
2. Write a spec
gormes/docs/superpowers/specs/YYYY-MM-DD-<subsystem>-design.md. Use the brainstorming skill if you want guided design; otherwise mirror the shape of an existing spec. Get maintainer approval before writing the plan.
3. Write a plan
gormes/docs/superpowers/plans/YYYY-MM-DD-<subsystem>.md. Break into tasks small enough for subagent-driven execution (5–10 tasks, 2–5 minute steps). See existing plans under gormes/docs/superpowers/plans/ for examples.
4. Implement
Bite-sized commits. Tests first (TDD). Mirror the existing Go package layout under gormes/internal/.
5. Open a PR
Target main. Title convention: feat(gormes/<subsystem>): port <capability> from upstream. Reference the spec + plan in the description.
6. Update the inventory
Flip your row in Subsystem Inventory from ⏳ planned to ✅ shipped, with a link to the shipped spec.