You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
hunt_cycle — TaHiTI H1/H2/H3 hunt phases with designed trigger
hunting_maturity_model — Bianco HMM 0–4 with self-declared target level
These are inspectable, forkable, citable data. They define the contract a mature-SOC implementation should satisfy. They are not yet referenced from dart_agent or dart_corr — the runtime path remains v2's sequence + next_call_decisions + contradiction_triggers + stop_conditions. QA round 5 (commit pending) corrected README, CHANGELOG, wiki, and the v3 yaml header to honestly frame this as 'data scaffold; runtime activation deferred', tracked here.
Why deferred
Activating any of the four scaffolds at runtime would shift the baseline measured by scripts/measure_accuracy.py. The hackathon submission ships with a stable, reproducible baseline. Doing all four runtime activations together with a single re-baseline after 2026-06-15 is cleaner than doing them piecemeal mid-window and risking a misread regression or artificial improvement.
Acceptance criteria (post-SANS)
1. ADS lint pass
dart_agent/__init__.py reads ads_template.required_sections from the loaded playbook
Each finding emitted by the agent is checked against the 9 required ADS sections
Lint mode permissive / warn / strict controls whether missing sections produce a warning or a hard failure
Default lint mode upgraded from warn to strict after one re-baseline
New test in tests/test_qa_pass_regressions.py asserting ADS lint runs on every finding
2. MaGMa CMMI scoring per run
Agent assigns a CMMI level (1–5) to each completed run based on:
- Has the run produced findings? (L2 Managed)
- Are findings ADS-templated? (L3 Defined)
- Are FP/TP rates measured? (L4 Quantitatively Managed)
- Is TI feedback actively consumed? (L5 Optimizing)
CMMI level recorded in progress.jsonl
CMMI distribution surfaced in scripts/measure_accuracy.py output
On plateau, agent transitions to H1 Initiate → H2 Hunt → H3 Finalize
H1/H2/H3 transitions logged to audit chain
New stop condition hunt_mode_active AND H3_finalize_complete → emit_with_hunt_findings honored
New test asserting hunt-mode entry on plateau scenario
4. HMM per-run self-classification
Agent classifies each run to HMM 0–4 based on:
- Data sources used (HMM1 if IOC-only, HMM2 if procedure-driven, etc.)
- Hypothesis source (HMM3 if analyst-formed, HMM4 if automated)
HMM level recorded in progress.jsonl
HMM distribution surfaced in scripts/measure_accuracy.py output
5. Re-baseline
Run scripts/measure_accuracy.py against the existing test corpora and examples/sample-evidence/
Update baseline numbers in Phase-1.md release-history table
Update tests/test_qa_pass_regressions.py with the new baseline assertions
6. Documentation honesty re-pass
README, CHANGELOG, wiki dart-playbook.md, wiki Roadmap.md, v3 yaml header — all 'post-SANS' / 'scaffolded as data' framing flipped to current-state language describing runtime behavior
Background
The
senior-analyst-v3.yamlplaybook (default since v0.5) ships four mature-SOC framework blocks as YAML data scaffolds:ads_template— Palantir ADS 9-section detection contractmagma_ucf— FI-ISAC NL three-tier UCF + CMMI 5-level maturityhunt_cycle— TaHiTI H1/H2/H3 hunt phases with designed triggerhunting_maturity_model— Bianco HMM 0–4 with self-declared target levelThese are inspectable, forkable, citable data. They define the contract a mature-SOC implementation should satisfy. They are not yet referenced from
dart_agentordart_corr— the runtime path remains v2'ssequence+next_call_decisions+contradiction_triggers+stop_conditions. QA round 5 (commit pending) corrected README, CHANGELOG, wiki, and the v3 yaml header to honestly frame this as 'data scaffold; runtime activation deferred', tracked here.Why deferred
Activating any of the four scaffolds at runtime would shift the baseline measured by
scripts/measure_accuracy.py. The hackathon submission ships with a stable, reproducible baseline. Doing all four runtime activations together with a single re-baseline after 2026-06-15 is cleaner than doing them piecemeal mid-window and risking a misread regression or artificial improvement.Acceptance criteria (post-SANS)
1. ADS lint pass
dart_agent/__init__.pyreadsads_template.required_sectionsfrom the loaded playbookpermissive/warn/strictcontrols whether missing sections produce a warning or a hard failurewarntostrictafter one re-baselinetests/test_qa_pass_regressions.pyasserting ADS lint runs on every finding2. MaGMa CMMI scoring per run
- Has the run produced findings? (L2 Managed)
- Are findings ADS-templated? (L3 Defined)
- Are FP/TP rates measured? (L4 Quantitatively Managed)
- Is TI feedback actively consumed? (L5 Optimizing)
progress.jsonlscripts/measure_accuracy.pyoutput3. TaHiTI hunt-mode entry on plateau
confidence < 0.6 AND iterations >= 8)hunt_mode_active AND H3_finalize_complete → emit_with_hunt_findingshonored4. HMM per-run self-classification
- Data sources used (HMM1 if IOC-only, HMM2 if procedure-driven, etc.)
- Hypothesis source (HMM3 if analyst-formed, HMM4 if automated)
progress.jsonlscripts/measure_accuracy.pyoutput5. Re-baseline
scripts/measure_accuracy.pyagainst the existing test corpora andexamples/sample-evidence/Phase-1.mdrelease-history tabletests/test_qa_pass_regressions.pywith the new baseline assertions6. Documentation honesty re-pass
See also
dart_playbook/senior-analyst-v3.yaml— the data scaffoldsdart_agent/src/dart_agent/__init__.py— where the runtime activation will live[Playbook v3]entry — current 'honest framing' language to be replaced