Task: Run the audit on the four drift-free components

Table of Contents

This page documents a task in the Component architecture audit: first run on the drift-free components story. It captures the goal, current status, acceptance, and any notes or results.

1. Goal

Run the 15-item component architecture audit on ores.refdata, ores.dq, ores.iam, and ores.compute, one at a time. Produce the checklist document with its tooling. Record the gaps and the complexity measure per component. Fix every mechanical gap.

2. Status

Field Value
State DONE
Parent story Component architecture audit: first run on the drift-free components
Now Nothing.
Waiting on Nothing.
Next Review and merge the branch.
Last touched 2026-09-07

3. Acceptance

  • The checklist document component_architecture_audit.org exists with 15 items, the canonical lizard invocation, and the triage rules.
  • The four components each ran the full checklist.
  • Mechanical gaps are fixed on the branch, with validate_docs.py green on all 44 components.
  • The ores.compute audit record, with the complexity numbers, sits in its component overview.

4. Plan

Audit order: refdata first, then dq, iam, compute. Per component: survey the tree and the documentation against the checklist, record the gaps, fix the mechanical ones, measure complexity with lizard, and report. The checklist doc and its tooling were built before the first run. The record of what each audit found is in the branch's commits and in * Result below.

5. Notes

6. Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario, run through the QA Validation Runner panel) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

7. PRs

PR Title
#2025 [doc,ores.refdata,ores.iam,ores.compute] Component architecture audit, records, and compute lifecycle doc

8. Review

# Comment summary File Decision Notes
1 Client diagram targets unreachable: the parts never add the modeling subdirectory projects/ores.compute/client/CMakeLists.txt, projects/ores.refdata/client/CMakeLists.txt Accepted Fixed in 9091f3d7b0. Configure + both generate_ores.<part>.client_diagram targets verified.

9. Result

All four audits completed on 2026-09-06 and 2026-09-07.

  • ores.refdata. Fixed: the client part gained a full overview, a diagram, the modeling glue, and its System Model registry row; the stale docs exception is gone. Recorded: cache classes in the client part declare ores::refdata::service::cache; the 763-line generate_fictional_currencies hotspot. Measure: 68875 NLOC at an average CCN of 1.8, one warning.
  • ores.dq. Clean. No mechanical gaps. Measure: 22272 NLOC over 1142 functions at CCN 1.8. Four warnings, all record-only, led by resolve_publication_order at CCN 18 and the FSM row-to-state mappers in fsm_service.cpp at CCN 19 to 21.
  • ores.iam. Fixed: the group overview omitted the client part and claimed three sub-components; the table and the count now include it. Recorded: no tests for make_service_token_provider; six lizard warnings, worst provision_acme at CCN 30 over 339 lines, then auth_handler::login at CCN 25. Measure: 15225 NLOC over 676 functions at CCN 2.2.
  • ores.compute. Fixed: the client part had no modeling dir, no overview, no diagram, and no registry row; all are in place now, and stale summaries across the System Model and the part overviews are aligned. Recorded: no client package-publisher tests; process_assignment at CCN 17. Measure: 9607 NLOC over 466 functions at CCN 2.0, one warning. The audit record sits in the component overview.

Method notes: lizard is pinned in the ores.compass venv; no compass command was added. validate_docs.py is now composite-aware with a NAME_COLLISION check, and the exceptions file records ores.analytics.quant and the diagram-less parts. The marketdata client-part registration gap is out of scope and recorded in the audit story.

Status at close: All four audits are done and committed on the branch.

Emacs 29.3 (Org mode 9.6.15)