Predictable research rhythm so contributors can plan around it and the corpus doesn't drift between bursts and droughts.
| Frequency | Focus | Responsible | Output |
|---|---|---|---|
| Monthly | New incidents (any Tactic) — keep recency tight | Maintainers + community | New examples/ files for the prior month's significant incidents |
| Quarterly | Named focus area — close one specific gap deeply | Maintainers (call for community contribution) | Cohort wave of 8-15 worked examples + TAXONOMY-GAPS proposals |
| Annual | Schema review, per-item maturity sweep, deprecation | Maintainers | Schema version bump + maturity promotions / demotions in CHANGELOG |
The quarterly focus is announced one month in advance with a tracking GitHub issue listing candidate cases. Contributors can claim items via that issue. Past or planned focus quarters:
- 2026 Q2 — hardware-wallet / cold-storage / seed-phrase exfiltration cohort. LastPass 2022 cascade, tampered-device cohort, hardware-wallet-specific T11.x, T6 trust-substrate-shift.
- 2026 Q3 — TBD. Likely T12 (NFT) deepening or T6 (Defense Evasion) expansion based on year-end coverage map.
- 2026 Q4 — TBD. Annual cleanup + structural sweep.
The selection rule: pick the Tactic with the highest number of P0/P1 violations from tools/check_targets.py --strict plus the highest number of TAXONOMY-GAPS candidates without anchors.
A simpler rhythm. Every month the maintainer (or community) sweeps:
- Check known incidents — read
tools/build_stats.py --terseto see corpus totals and the Recent year-month panel. - Identify recent gaps — incidents from the prior month that have public forensic write-ups but aren't in OAK yet.
- Pre-flight duplicate check — for each candidate, run
tools/check_known.py "<description>"before research. - Write examples — submit PRs with the standard template.
- Run validators —
tools/check_citations.py+tools/check_linkage.py+tools/check_backlinks.py(strict in CI). Auto-fixable. - Update TAXONOMY-GAPS if a new sub-Technique class emerges from the cohort.
Once a year:
- Schema review — does the JSON / STIX export shape need a minor or major bump? Documented in
VERSIONING.md. - Maturity promotion / demotion — every Technique, Mitigation, Software, Group with
**Maturity:**field reviewed:draftcandidates with ≥ 1 anchor case → promote toemerging.emergingitems with ≥ 3 anchor cases AND multi-vendor agreement → promote tostable.stableitems whose definition has shifted → demote toemergingwith a CHANGELOG note.
- Deprecation sweep — items proposed for deprecation get a one-minor-cycle window per
VERSIONING.md. - Source diversity audit —
tools/source_diversity.pyto confirm no provider monopoly is growing. Surface under-used providers and seed them into the next quarter's research focus.
Without a cadence, an open framework drifts. Maintainer attention is bursty; community contribution is sparse without a published expectation. A predictable rhythm:
- Lets contributors plan ("Q3 is NFT — I'll prep an example over August").
- Keeps the corpus matching the threat surface ("monthly sweep caught the 2026-04 RaveDAO incident within three weeks of disclosure").
- Surfaces drift early ("annual audit shows top-3 providers now carry 65% of citations — we need to diversify in Q1").
- Gives users of OAK a predictable signal of how fresh the data is on a given page.
tools/build_backlog.py— prioritized contributor backlog regenerated from corpus statetools/check_targets.py— per-Tactic floor enforcementtools/check_known.py— pre-flight duplicate checktools/source_diversity.py— citation-publisher distribution auditCOVERAGE-TARGETS.md— per-Tactic minimumsVERSIONING.md— schema / content / per-item maturity modelCONTRIBUTING.md— submission flow + local checks