5.1 KiB
Documentation Audit Design
Date: 2026-06-03
Goal: Audit all prose documentation in the repository for accuracy and completeness against the current code/contracts, then apply fixes — producing both an evidence-backed findings report and corrected docs.
Decisions
- Deliverable: Findings report and applied fixes (reviewable commit).
- Scope: All prose docs — top-level (
gateway.md,glauth.md,StyleGuide.md,REVIEW-PROCESS.md),docs/**, the 6 style guides, and all 10 client README + design docs (~55 files). - Verification depth: Deep, claim-by-claim, against this repo's code and
contracts only (not the external
mxaccess/lmxopcua/grreference projects). - Approach: A + C dedup — per-subsystem verifier fan-out (A), with findings additionally keyed by code area so renamed terms / moved paths are fixed consistently everywhere at once (C).
Architecture
Two-phase pipeline:
- Phase 1 — Verify (fan-out). ~13 verifier subagents, one per subsystem cluster. Each reads its docs and the relevant source/contracts and returns a structured findings list.
- Phase 2 — Fix. Aggregate findings → dedup by code area into a global substitutions table → apply mechanical substitutions repo-wide, then per-cluster judgment fixes. Every fix cites the finding that justifies it.
No code changes; prose only. Source of truth is the repo's own code/contracts.
Cluster map (Phase 1 fan-out)
| # | Cluster | Docs | Verified against |
|---|---|---|---|
| 1 | Architecture | gateway.md, DesignDecisions.md, GatewayProcessDesign.md |
top-level src layout, two-process model |
| 2 | Worker | Worker{Bootstrap,Conversion,FrameProtocol,ProcessLauncher,Sta}.md, MxAccessWorkerInstanceDesign.md |
…MxGateway.Worker |
| 3 | Sessions/runtime | Sessions.md |
Server sessions/workers |
| 4 | Auth (high drift) | Authentication.md, Authorization.md, glauth.md |
Security/Authentication, ZB.MOM.WW.Auth migration |
| 5 | Dashboard (high drift) | DashboardInterfaceDesign.md, GatewayDashboardDesign.md |
dashboard + ZB.MOM.WW.Theme migration |
| 6 | Config | GatewayConfiguration.md, Diagnostics.md, Metrics.md |
GatewayOptions(Validator), appsettings |
| 7 | Contracts/gRPC | Contracts.md, Grpc.md, ClientProtoGeneration.md |
.proto + generated |
| 8 | Galaxy repo | GalaxyRepository.md |
GR SQL browse RPCs |
| 9 | Alarms | AlarmClientDiscovery.md |
alarm worker/server code |
| 10 | Testing | GatewayTesting.md, ClientBehaviorFixtures.md, ParityFixtureMatrix.md, CrossLanguageSmokeMatrix.md, ToolchainLinks.md |
test projects, harness, fixtures |
| 11 | Clients ×5 | each clients/<lang>/README.md + <Lang>ClientDesign.md, ClientLibrariesDesign.md, ClientPackaging.md |
each client's source |
| 12 | Style guides (normative) | StyleGuide.md, REVIEW-PROCESS.md, docs/style-guides/* |
spot-check vs observed conventions; flag-only |
| 13 | Design-history/plans | ImplementationPlan*.md, docs/plans/* |
point-in-time records — verify internal consistency + that no living doc cites them as current truth; do not rewrite to match code |
Findings schema
Each verifier returns, per claim:
doc_file,doc_linesclaim— the concrete assertion (verbatim or tight paraphrase)claim_type—path|config-key|rpc/proto|port|term|behavior-rule|command|cross-ref|versionverdict—accurate|stale|wrong|unverifiable|gap(missing doc for an existing feature)code_evidence—file:lineproving the verdictcode_area— dedup tag (e.g.auth.roles,dashboard.theme)severity—high(misleads integrator/operator) |medium|lowproposed_fix— replacement text, or "flag only"
Dedup layer (the C ingredient)
Aggregate all findings; group by code_area + normalized claim. Renamed terms
and moved paths collapse into one global substitutions table (old → new)
applied once repo-wide. Doc-specific judgment fixes stay per-doc.
Report
MxAccessGateway-doc-audit.md (matching the existing *-docs-*.md report
convention): summary counts by verdict/severity/cluster, the global
substitutions table, then per-doc findings with evidence and proposed fixes.
Fix pass & verification
- Apply global substitutions first (mechanical, repo-wide).
- Apply per-cluster judgment fixes — each citing a finding ID, honoring
StyleGuide.md(PascalCase filenames, present tense, explain why not what, no marketing language). - Re-verify changed claims (lighter spot pass) to confirm resolution and no new drift.
- Sanity-check any fenced shell/build commands in docs against current invocations.
Out of scope (YAGNI)
- Rewriting design-history docs to match current code (they are records).
- XML doc-comments (handled in a prior pass; the
*-docs-*.mdanalyzer is clean). - External
mxaccess/lmxopcua/grreference projects.
Branch note
Current branch is docs/xml-doc-comments (a separate PR in flight). The audit
fixes are best kept on their own branch (docs/prose-audit off main) so the
two reviews stay independent.