docs: reconcile PRDs with current architecture (post-reorg)#122
Merged
Conversation
Correct confirmed factual drift in the product-requirements docs against the current repo (services/<id> reorg, single-network, ops-api split, digest pins). Forward-looking roadmap/open-question content left intact. Docs only — rendered out/docker-compose.yml unaffected (sha identical), ruff + pytest unchanged. HIGH - milestones: removed false "model-gateway host-published on 127.0.0.1:11435" test step; replaced with an in-network docker exec check + Caddy /llm bearer route. Cluster: registry.json -> registry-custom.yaml (the file the gateway merges) - index, architecture (principle 6, diagram, MCP-gateway component, G2, gaps), rollback #3, security outputSchema, risks allow_clients, milestones M3. Kept the dashboard diagram box's registry.json (dormant optional app.py path). Cluster: two-network -> single ordo-net - index, architecture (Compose-Hardening table L225 now consistent with L142 + gaps row), milestones M4 summary/section + M6 acceptance, security threat row, rag-pipeline Qdrant dependency. Cluster: ops-controller -> ops-api (lifecycle + audit + docker.sock bearer) - architecture components/G3/data-flows, index capability rows, rollback #2, security threat row/correlation flow/stack-secrets note. Added an explicit ops-controller (auth-free scheduler) entry to the architecture components list. Cluster: localhost:11435 from host (model-gateway has no host port) - model-gateway client-compat row, rollback #8, quality-bar break-glass #4, milestones HIGH. Minors - quality-bar test count 57 (34+23) -> 62 (37+25); per-area breakdown re-derived. - .env.example -> ordo.example.yaml + out/secrets.env.example; UPGRADE.md ref repointed to CHANGELOG/operator guide. - risks open-webui v0.8.4 -> running v0.10.1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reconciles the 16 PRDs under
docs/product requirements docs/with the current repo (post services/ reorg, single-network consolidation, ops-api split, digest pins). Verified each drift against the live repo (out/docker-compose.yml,ordo/,services/ops-api/main.py,services/edge/, test tree) before editing. Forward-looking roadmap/open-question content left intact.Docs only — rendered
out/docker-compose.ymlsha unchanged (654cead5…),ruffclean,pytest tests/unchanged (559 passed, 4 skipped). Operator WIP (catalog/models.yaml,services/comfyui/plugin.yaml) untouched.HIGH — false host-port instruction
ports:; only Caddy publishes host ports). Removed thecurl http://127.0.0.1:11435/...step; replaced with an in-networkdocker compose exec dashboard curl http://model-gateway:11435/...check + the external Caddy:443/llmbearer route.Cluster:
registry.json→registry-custom.yamlThe file the gateway wrapper actually merges (confirmed in
ordo/render.py,data/mcp/). Fixed: index, architecture (principle 6, ASCII diagram MCP-gateway box, MCP-gateway component, G2 evidence, gaps row), rollback #3, securityoutputSchema, risksallow_clients, milestones M3. Kept the dashboard diagram box'sregistry.json— that genuinely is the dormant optionalapp.pymetadata path (absent, falls back toMCP_CATALOG).Cluster: two-network → single
ordo-netConfirmed single top-level
ordo-netin compose. Fixed: index L40, architecture Compose-Hardening table (was self-contradicting L142) + gaps row, milestones M4 summary/section + M6 acceptance criterion, security threat row, andcomponent-rag-pipelineQdrant dependency (a stale "backend network" the audit missed).Cluster: ops-controller → ops-api
Container lifecycle (start/stop/restart/logs/pull), audit log, and the bearer-gated docker.sock belong to ops-api (
services/ops-api/main.py), not theordo servescheduler. Fixed: architecture components/G3/data-flows, index capability rows, rollback #2, security threat row + correlation flow + stack-secrets note. Added an explicit ops-controller (auth-free scheduler) component entry so the prose matches the already-correct diagram.Cluster:
localhost:11435from hostNo host port on model-gateway. Fixed: model-gateway client-compat row, rollback #8, quality-bar break-glass #4 (+ the HIGH).
Minors
57 (34+23)→62 (37+25)(recounted; per-area breakdown re-derived — orchestration was overstated at 5, real 4; new files categorized; substrate +build_contexts/+cli_render_guard)..env.example→ordo.example.yaml+out/secrets.env.example;UPGRADE.md(nonexistent) repointed toCHANGELOG.md/operator guide.open-webui:v0.8.4→ runningv0.10.1.Deliberately left alone
reliability-and-contracts.md,component-future.md, and genuinely future roadmap milestones / open questions.component-mcp-gateway(authoritative, CLEAN) and itsservers.txtdefault (gitignored operator runtime state).EMBED_MODELshort-name nit (LOW, not in scope).🤖 Generated with Claude Code