|
| 1 | +# Agent W11 — Sprint-3 log |
| 2 | + |
| 3 | +**Role:** Worker Agent W11 of Sprint-3 (12 + meta CCA2A). |
| 4 | +**Branch:** `claude/tier-1-implementation-specs` of `AdaWorldAPI/lance-graph`. |
| 5 | +**Tier:** Sprint-3 validation track. |
| 6 | +**Deliverable anchor:** end-to-end OGIT-G smoke test design (covers |
| 7 | +Patterns A + B + C + E + F end-to-end). |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## Deliverable |
| 12 | + |
| 13 | +`.claude/specs/ogit-g-smoke-test.md` — design spec for the integration |
| 14 | +test that proves the Tier-1 + Tier-2 architecture works as a single |
| 15 | +loop. Engineer picks this up *after* PR-A-1, PR-B-1, PR-C-1, PR-E-1, |
| 16 | +PR-F-1 are all merged. |
| 17 | + |
| 18 | +## Status |
| 19 | + |
| 20 | +**DONE — spec drafted and pushed to branch via pygithub.** |
| 21 | + |
| 22 | +## Decisions logged |
| 23 | + |
| 24 | +1. **Healthcare picked as the smoke vertical, not Anatomy.** Healthcare |
| 25 | + has one consumer + one inheritance edge (Healthcare -> DOLCE), which |
| 26 | + keeps the surface area small. FMA + DICOM (the Anatomy demo) is |
| 27 | + richer but pulls in PR-D-1 + PR-ANATOMY-*; those have their own |
| 28 | + integration tests. Smoke stays tight. |
| 29 | +2. **One primary test + four sub-tests, not one mega-test.** Primary |
| 30 | + covers happy-path five-pattern fan-out; sub-tests isolate failure |
| 31 | + modes (inert G error, cross-G isolation, actor panic + restart, |
| 32 | + compile-time duplicate-G error). Each sub-test <50 LOC so failure |
| 33 | + diagnosis is fast. |
| 34 | +3. **`trybuild` for the duplicate-G ui-test.** Compile-time errors need |
| 35 | + a snapshot harness, not a runtime assertion. Sibling `.stderr` |
| 36 | + snapshot proves Pattern E's compile-time guarantee. |
| 37 | +4. **`LanceAuditSink` in test mode with an in-memory drain.** Don't write |
| 38 | + to real Lance datasets in the smoke — a separate integration test on |
| 39 | + the lance-graph crate covers on-disk semantics. Smoke focuses on |
| 40 | + "did the emit shape pop out correctly" not "did the bytes land in |
| 41 | + parquet." |
| 42 | +5. **Tests gated behind `#[cfg(feature = "ogit-g-smoke")]`.** Keeps the |
| 43 | + optional `medcare-rs` compile-in dependency off the default build |
| 44 | + matrix. CI's integration job enables the feature. |
| 45 | +6. **Failure-mode table at the top of the spec.** One smoke test, five |
| 46 | + pattern letters — the table tells engineers which pattern broke |
| 47 | + when the assertion fires. Diagnostic value > test count. |
| 48 | +7. **Soak budget: 100x in CI gate, 1000x nightly.** "Not flaky" is a |
| 49 | + binary claim with a number behind it. Anything failing 1/1000 in |
| 50 | + nightly is a P1 bug, not test flakiness — recorded in the open |
| 51 | + questions. |
| 52 | + |
| 53 | +## Dependency call-out |
| 54 | + |
| 55 | +W11 is the *last* node in the Sprint-3 PR topological sort (per W10's |
| 56 | +graph). It depends on EVERY Tier-1 + Tier-2 spec landing first: |
| 57 | + |
| 58 | +- PR-A-1 (W2): needed for the `g: u32` field on `AuditRecord`. |
| 59 | +- PR-B-1 (W3): needed for `OntologyRegistry::resolve(g)`. |
| 60 | +- PR-C-1 (W4): needed for `GenericBridge::should_emit(g, action)`. |
| 61 | +- PR-E-1 (W5): needed for `OGIT::*` constants from the build script. |
| 62 | +- PR-F-1 (W6): needed for `CallcenterSupervisor` + `SupervisorMsg`. |
| 63 | + |
| 64 | +Plus a transient on `medcare-rs` having `compile-in-medcare` — W8's |
| 65 | +consumer-template spec covers that as a worked example. |
| 66 | + |
| 67 | +## Cross-worker handover |
| 68 | + |
| 69 | +- **W1 (master plan):** references this smoke as the Week-4 validation |
| 70 | + deliverable. Smoke runtime <5 s is the gate. |
| 71 | +- **W2, W3, W4, W5, W6 (Tier-1 + Tier-2 specs):** every type / trait |
| 72 | + referenced in the test sketch must exist in the sister specs. If any |
| 73 | + shape drifts, the smoke compile-fails and the regression is caught |
| 74 | + before merge. |
| 75 | +- **W8 (consumer template):** the smoke is the validation harness for |
| 76 | + W8's "<30 LOC per new consumer" claim — once W8's hubspo-rs dry-run |
| 77 | + lands, run this smoke against hubspo too as the proof. |
| 78 | +- **W9 (PR-D-1 FMA hydrator):** open question 3 in the spec defers |
| 79 | + inert-G choice to whether PR-D-1 has landed. Either inert G works; |
| 80 | + FMA is preferred when available. |
| 81 | +- **W10 (PR graph):** smoke is the last topological node; W10's graph |
| 82 | + shows the fan-in. |
| 83 | + |
| 84 | +## Files written this session |
| 85 | + |
| 86 | +- `.claude/specs/ogit-g-smoke-test.md` (spec, ~11.5 KB) |
| 87 | +- `.claude/board/sprint-log-3/agents/agent-W11.md` (this log) |
| 88 | + |
| 89 | +## Next handover |
| 90 | + |
| 91 | +Engineer pickup, but **only after Tier-2 lands**. Until PR-F-1 is |
| 92 | +merged, the smoke can't compile (no `CallcenterSupervisor` symbol). |
| 93 | +Open questions 1-5 have recommendations; engineer should confirm |
| 94 | +choices 1 (test runtime) + 2 (audit sink storage) with the PR-F-1 / |
| 95 | +PR-C-1 authors before coding starts. |
0 commit comments