Skip to content

mcpx docs: finish the generated reference — per-command and global-flag pages, /v1 and MCP-tools pages, protocol tables (remainder of #1846) #4909

Closed

Description

@dezren39

Summary

Finish the generated reference. #1846 closed as COMPLETED on 2026-10-30 with only slice 1 landed; slices 2–4 are absent from current main, so the reference family is still half hand-written and the acceptance of #1843 / #1846 is not met.

Verified at origin/main = 9a1fe429c8b4b6ece5fcdf1587dfdf022c63ffe6 (2026-11-03). Paths relative to pkgs/mcpx/.

What is already generated (do not redo)

Surface Source Guard
Settings table (docs/configuration.md) Schema.Markdown in internal/settings/file.go (~:300-360) using internal/refdoc regions internal/settings/docs_test.go byte-golden
Script environment (docs/environment.md) same pattern internal/settings/scriptenv_test.go
Parity /v1 table (docs/parity.md) ParityDoc in internal/cli/parity.go TestParityDocumentIsCurrent
Markdown helpers internal/refdoc/md.go (Table, Code, Region) — #1846 step 1 internal/refdoc/md_test.go

Prerequisite bug candidate 1 is also closed: Commands() is now handCommands() + opCommands() and TestEveryDispatchedCommandIsDeclared guards the dispatch map. Man-page date determinism (SOURCE_DATE_EPOCH) also landed (manual.go:680-708).

What remains (slices 2–4 of #1846)

  1. Command and global-flag pages. No ManualMarkdown / internal/cli/manual_md.go exists, and mcpx man has no --format markdown [-o DIR]. Needs: cli/index.md grouped by Group, cli/<command>.md per command, cli/global-flags.md from a GlobalFlags() table (or a presence-tested list), and the SUMMARY.md fragment. Hand-declared per-command flags still need the describe-mode capture from mcpx docs: markdown emitters in the binary and a drift check for every generated page #1846 step 3 (parseFlags fs.VisitAll) or declaration as data.
  2. /v1 page and raw specs. No markdown renderer over api.Ops() (internal/api/openapi.go has OpenAPI only). Publish the static api.OpenAPI(version) and the mcpx openapi serve-surface document next to the page; never fetch GET /v1/openapi.json from a running daemon (it carries the builder's configured tools, daemon/ops.go:498-535).
  3. MCP tools page. One page from mcpserver.New(nil, "mcpx", version).WithExtras(mcpserver.OpTools(nil)).Tools() — name, description, annotations, top-level input parameters, proxied tools linking to their /v1 op.
  4. Protocol tables. docs/protocol.md still has no generated regions: §1 features × revisions from FeatureMatrix() and §2.2 declared capabilities per Supported version, with the push-condition footnote (Phase 2: delegated Manage cannot add members #171; the committed §2.2 is already wrong). §2.1 methods stay hand-written with a presence test.
  5. One golden check for every committed region. internal/refdoc has no regions_test.go; each surface currently has its own ad-hoc test. Consolidate into one -update golden covering configuration.md, parity.md and protocol.md.
  6. Nix wiring. package.nix still writes only the roff man page (:239-242): add mcpx man --format markdown -o $out/share/doc/mcpx/reference and the two OpenAPI files in postInstall, and add ./internal/refdoc/ + ./internal/api/ to checkPhase (confirm they spawn no runtimes or sockets).

Acceptance

Ordering and blockers

No hard blockers. Suggested order: describe-mode flag capture → per-command/global-flag pages → /v1 + MCP tools → protocol tables → consolidated golden + Nix wiring. #1883 (source incompleteness) proceeds in parallel and only affects the accuracy of individual rows. #1903 is the tracker; #1843 is the decision record (Approach C) that this implements.

Links

#1843 (decision) · #1846 (closed after slice 1) · #1883 (prerequisite sources) · #1903 (tracker) · #117 / #118 / #120 / #146 / #147 (book, derivation, agent twin, prose).

Acceptance criteria

Activity

  1. added
    kind/docsDocumentation improvement or addition
    source/queue-workerFiled or worked by the queue/worker pilot
    priority/normalOrdinary priority (the default)
    app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)
    effort/lLarge: multi-day or open-ended; expect staged check-ins
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Nov 3, 2026
  2. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Intake review

    Remainder of #1846 (closed 2026-10-30 with only slice 1 landed), verified against origin/main 9a1fe42 in the body — the already-generated surfaces are enumerated so nobody redoes them. Still live: slices 2–4 absent from main per the filer's check today. Labels were already complete (kind/docs, priority/normal, effort/l, app/mcpx); this pass adds acceptance criteria + meta/enriched. Risks: generated docs without a currency guard drift immediately — the guard tests are part of the acceptance, not a follow-up. Suggested approach: extend the existing internal/refdoc pattern (the helpers landed in slice 1) rather than a new generator.

    🤖 Agent note · filed

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: repo-fleet-monitor run 2026-11-03 08:12 CST
    • Found via: monitor reconciliation
    • Task: Intake enrichment (§5) for this issue — acceptance criteria appended, labels normalized, this review posted.
    • Expectation: done = the acceptance criteria in the issue body; routing to a worker happens through the queue/feeder as usual.
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 3, 2026
  4. developing-today commented on Nov 3, 2026

    @developing-today
    Contributor

    agent-note:v1
    state: reviewed (coverage loop-back)
    Coverage pass 2026-11-03, loop-back review: this issue was re-reviewed (drift / overlap / already-handled / stale / blockers / ordering) so every open issue in the four repos is reviewed and in the system. Verdict: still live; in the system as task 8546 (triage, queued, priority 40) in repo-health-code-pilot. Labels audited and synced. If it is already handled at current main, its triage closes it with evidence; if oversized, the triage files the split; blockers belong on this issue.
    Found via: coverage loop-back 2026-11-03

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  6. 20 remaining items

  7. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    queue/claimedQueue worker lifecycle state
    and removed
    queue/claimedQueue worker lifecycle state
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 3, 2026
  8. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/mcpxPackage/app: mcpx (pkgs/ or apps/ in this repo)effort/lLarge: multi-day or open-ended; expect staged check-inskind/docsDocumentation improvement or additionmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/queue-workerFiled or worked by the queue/worker pilottask/fixhas a fix task queued

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions