---
phase: 01-installer-and-setup-architecture-simplification
plan: 04
type: execute
wave: 4
depends_on:
  - 01
  - 02
  - 03
files_modified:
  - README.md
  - tests/test_release_readiness.py
  - tests/test_server_tools.py
  - ../shared-client-python/tests/test_registration_configs.py
  - ../auth_gateway_for_mcp/tests/installer-endpoints.test.mjs
  - ../auth_gateway_for_mcp/tests/installers-renderer.test.mjs
  - .planning/config.json
autonomous: true
requirements:
  - VER-01
  - VER-02
  - VER-03
must_haves:
  truths:
    - "Verification proves the canonical runtime command is runnable and that auth, cookies, registration, and installer behavior are checked as distinct required conditions."
    - "README and release-readiness guidance describe the same uv/setup/register contract that the code implements."
    - "The planning config no longer emits avoidable unknown-key warnings during GSD workflows."
  artifacts:
    - path: "README.md"
      provides: "User-facing install/setup/runtime documentation aligned to the new architecture"
    - path: "tests/test_release_readiness.py"
      provides: "Top-level regression coverage for the new install/setup contract"
    - path: ".planning/config.json"
      provides: "Warning-free GSD project config for continued planning/execution"
  key_links:
    - from: "README.md"
      to: "src/reddit_mcp/cli.py"
      via: "documented command contract"
      pattern: "uv tool install|reddit-mcp setup|reddit-mcp serve"
    - from: "tests/test_release_readiness.py"
      to: "../shared-client-python/tests/test_registration_configs.py"
      via: "canonical runtime and registration expectations"
      pattern: "serve|register|verify"
---

<objective>
Close the phase with contract-level verification, aligned documentation, and cleaned-up planning config so the architecture change is enforceable instead of aspirational.

Purpose: Earlier plans change behavior, but this plan makes the new contract durable by updating docs, tightening verification coverage, and removing planning noise that would otherwise keep generating warnings in GSD.
Output: Updated README/install docs, strengthened runtime/setup/register verification coverage across repos, and cleaned planning config keys.
</objective>

<execution_context>
@/Users/yimingwang/.codex/get-shit-done/workflows/execute-plan.md
@/Users/yimingwang/.codex/get-shit-done/templates/summary.md
</execution_context>

<context>
@.planning/PROJECT.md
@.planning/REQUIREMENTS.md
@.planning/phases/01-installer-and-setup-architecture-simplification/01-CONTEXT.md
@README.md
@tests/test_release_readiness.py
@tests/test_server_tools.py
@../shared-client-python/tests/test_registration_configs.py
@../auth_gateway_for_mcp/tests/installer-endpoints.test.mjs
@../auth_gateway_for_mcp/tests/installers-renderer.test.mjs
@.planning/config.json
</context>

<tasks>

<task type="auto">
  <name>Task 1: Align user-facing docs and top-level verification with the canonical install/setup contract</name>
  <read_first>.planning/phases/01-installer-and-setup-architecture-simplification/01-CONTEXT.md, README.md, src/reddit_mcp/cli.py, tests/test_release_readiness.py, tests/test_server_tools.py</read_first>
  <files>README.md, tests/test_release_readiness.py, tests/test_server_tools.py</files>
  <action>Rewrite `README.md` so install, setup, runtime, and troubleshooting all reflect the uv-first contract: `uv tool install 5mghost-rover`, `reddit-mcp setup`, and `reddit-mcp serve`. Remove retired launcher/bootstrap/uvx examples from the supported path. Expand top-level python tests so verification explicitly checks runtime command usability, distinct auth/cookie/setup guidance, and the hard-failure semantics expected from setup/register/verify. Keep the tests machine-checkable and focused on the new contract rather than implementation internals.</action>
  <verify>
    <automated>py -3 -m pytest tests/test_release_readiness.py tests/test_server_tools.py -q</automated>
  </verify>
  <acceptance_criteria>
    - `README.md` contains the exact strings `uv tool install 5mghost-rover`, `reddit-mcp setup`, and `reddit-mcp serve`.
    - `README.md` does not describe `launcher.py` or `uvx --from 5mghost-rover reddit-mcp serve` as the primary supported path.
    - `tests/test_release_readiness.py` and/or `tests/test_server_tools.py` contain assertions that separately cover auth-required, cookies-required, and registration/runtime expectations.
    - `py -3 -m pytest tests/test_release_readiness.py tests/test_server_tools.py -q` exits 0.
  </acceptance_criteria>
  <done>Docs and Python-side regression tests both enforce the same setup/runtime contract users and AIs will follow.</done>
</task>

<task type="auto">
  <name>Task 2: Cross-check installer and registration coverage, then clean planning config noise</name>
  <read_first>.planning/phases/01-installer-and-setup-architecture-simplification/01-CONTEXT.md, ../shared-client-python/tests/test_registration_configs.py, ../auth_gateway_for_mcp/tests/installer-endpoints.test.mjs, ../auth_gateway_for_mcp/tests/installers-renderer.test.mjs, .planning/config.json</read_first>
  <files>../shared-client-python/tests/test_registration_configs.py, ../auth_gateway_for_mcp/tests/installer-endpoints.test.mjs, ../auth_gateway_for_mcp/tests/installers-renderer.test.mjs, .planning/config.json</files>
  <action>Fill any remaining test gaps so registration tests and installer tests together prove VER-01 through VER-03: canonical runtime command, distinct required conditions, and no false-success completion. After the contract coverage is in place, remove or rewrite unsupported keys in `.planning/config.json` so future GSD commands stop printing `unknown config key(s)` warnings for `gates` and `safety`.</action>
  <verify>
    <automated>py -3 -m pytest tests/test_release_readiness.py tests/test_server_tools.py -q</automated>
    <automated>py -3 -m pytest ../shared-client-python/tests/test_registration_configs.py -q</automated>
    <automated>node --test ../auth_gateway_for_mcp/tests/installers-renderer.test.mjs ../auth_gateway_for_mcp/tests/installer-endpoints.test.mjs</automated>
    <automated>node $HOME/.codex/get-shit-done/bin/gsd-tools.cjs init phase-op 1</automated>
  </verify>
  <acceptance_criteria>
    - The combined registration and installer tests include explicit assertions for canonical runtime command serialization and no false-success installer behavior.
    - `.planning/config.json` no longer contains top-level keys `gates` or `safety`.
    - `node $HOME/.codex/get-shit-done/bin/gsd-tools.cjs init phase-op 1` does not print `unknown config key(s)` warnings.
    - `py -3 -m pytest ../shared-client-python/tests/test_registration_configs.py -q` exits 0.
    - `node --test ../auth_gateway_for_mcp/tests/installers-renderer.test.mjs ../auth_gateway_for_mcp/tests/installer-endpoints.test.mjs` exits 0.
  </acceptance_criteria>
  <done>The new architecture is backed by durable cross-repo tests, and GSD can continue without avoidable config-warning noise.</done>
</task>

</tasks>

<threat_model>
## Trust Boundaries

| Boundary | Description |
|----------|-------------|
| documentation -> user/AI operators | Docs that diverge from code will recreate bad installs even if code is fixed |
| planning config -> GSD workflows | Invalid config keys create noise and can hide real planning issues |

## STRIDE Threat Register

| Threat ID | Category | Component | Disposition | Mitigation Plan |
|-----------|----------|-----------|-------------|-----------------|
| T-01-10 | I | README / top-level docs | mitigate | Keep docs anchored to the exact canonical commands and remove retired paths |
| T-01-11 | D | verification coverage | mitigate | Add explicit cross-repo assertions for runtime, registration, and false-success behavior |
| T-01-12 | D | `.planning/config.json` warnings | mitigate | Remove unsupported keys so future workflow warnings signal real issues rather than known noise |
</threat_model>

<verification>
Run the Python tests, shared-client registration tests, installer Node tests, and `gsd-tools init phase-op 1` to confirm both product verification and planning config are clean.
</verification>

<success_criteria>
The phase ends with aligned docs, cross-repo verification coverage, and warning-free planning config, so execution can proceed without re-opening architecture ambiguities.
</success_criteria>

<output>
After completion, create `.planning/phases/01-installer-and-setup-architecture-simplification/01-installer-and-setup-architecture-simplification-04-SUMMARY.md`
</output>
