Findings Directory Conventions¶
Format conventions for ~/garmin-warehouse/findings/. See
systems/findings.md for the
high-level overview of what findings are.
Top-level files¶
| File | Purpose | Edited by |
|---|---|---|
README.md |
Index of all findings, organized by topic cluster | Casey, manually |
_active.md |
Current workstream state (in flight, recently shipped, open questions) | Casey + agents (training-data-coach reads on session start, may append) |
_todo.md |
Casey's per-week checklist, surfaced in UI at /active |
Casey only |
_followups_summary.md |
Auto-generated PubMed cited-by summary over warehouse's primary sources | ~/data-ingestion/scripts/build_followups_summary.py |
_archive/YYYY-MM.md |
Closed workstreams trimmed from _active.md |
Casey, when _active.md exceeds ~600 lines |
_active.md format¶
Living document. Header is the date stamp + tonight's wins block; below that is structured by workstream (W0, W1, W2, ...) with status tags.
# Active Workstreams
_Updated: YYYY-MM-DD — <one-line context for what's hot right now>.
**Tonight's wins (YYYY-MM-DD)**: ✅ <thing>. ✅ <thing>. ✅ <thing>._
The training-data-coach subagent reads this file on every session
start to know what's currently in flight. Update it when starting,
finishing, or pausing a workstream.
## In flight
### W0 — <workstream name>
<paragraph or two: what + why + status + next step>
### W1 — ...
## Recently shipped
- YYYY-MM-DD: <thing> — <one-line>
## Open questions
- <question>
- <question>
Trim convention (per feedback memory):
when _active.md grows past ~600 lines, move closed workstreams to
_archive/YYYY-MM.md (per-month files). The "Recently shipped"
section is the natural source for archive entries.
_todo.md format¶
Per-week checklist Casey actually does. Surfaced in the warehouse UI
at /active. NOT for agent state — that's _active.md.
# TODO — Casey's checklist
_The single source of truth for what Casey actually needs to *do*. Agent
workstream tracking lives in `_active.md`._
## Phase 0 — week N action items (Mon YYYY-MM-DD → Sun YYYY-MM-DD)
### Training (calendar already pushed to intervals.icu)
- [ ] **Mon X/X** — Easy 6.0mi (Z2, HR 137-152, ~7:45-8:30/mi)
- [ ] **Tue X/X 6pm** — Strength Day A — `otq_accelerators.md §3`
...
### One-time setup tasks (do before/during wk N)
- [ ] Order X. Source: `<finding>.md §X`.
- [ ] Schedule Y test.
...
### Nutrition + recovery
- [ ] X
...
## Phase 0 weekly carryforward
What changes each week as Phase 0 progresses. Reset/update Sunday
night before next week's items get carried forward.
Mark [x] when done. Items NOT done at week-end either roll forward
or get explicitly dropped (with a one-line "why dropped" note).
Per-finding .md format¶
# <Finding Title> <!-- H1 = title in kb, graph, summary -->
<!-- topics: iron, ferritin, fatigue --> <!-- chips for /topic/<name> -->
<!-- Status: stable | exploratory | superseded by <other.md> -->
<!-- Last reviewed: YYYY-MM-DD -->
## TL;DR
<3-5 bullet recommendations Casey actually follows>
## Context
<why this matters for OTQ-2028, what triggered the investigation>
## What the corpus says
<synthesis of relevant claims, with PMID citations>
- [PMID 12345678](https://pubmed.ncbi.nlm.nih.gov/12345678/) — <claim>
- [SWAP ep-167 b047](path/to/digest) — <host stance>
- See also [other_finding](other_finding.md)
## What my data says
<personal n=1 patterns from the warehouse, with query.py refs>
## Protocol
<concrete actions: what + how often + how to monitor>
## Honest caveats
<what would break this conclusion, what hasn't been tested on me,
what's contested in the corpus>
## Open questions
- ...
## Changelog
- YYYY-MM-DD: shipped v1
- YYYY-MM-DD: added strides protocol after re-reading SWAP ep-201
The "Honest caveats" section is mandatory — every finding has one. This is what separates a finding from a half-baked recommendation.
Naming convention¶
- Lowercase + underscores:
bloodwork_baseline.md, notBloodwork-Baseline.md - Topic-first:
iron_protocol.md, notprotocol_for_iron.md - No dates in filenames: dates go in front matter / changelog
Filename = stem = findings.id in the kb DuckDB = morning summary's
recent_findings[].id. Renaming a finding requires updating watches.yaml
and any cross-references.
Cross-references¶
- To another finding:
[bloodwork_baseline](bloodwork_baseline.md)→kb/load.pypicks up viaxreftable withdst_kind='finding' - To a study:
[PMID 12345678](https://pubmed.ncbi.nlm.nih.gov/12345678/)→kb/load.pypicks up viaxreftable withdst_kind='study', also feeds_followups_summary.mdbuilder
What NOT to put in findings/¶
- Daily journaling (use the morning summary corrections flow, see ADR 003)
- Code or scripts (those go in
analyses/) - Configuration (those go in
kb/watches.yamletc.) - Raw research notes (those live in
~/Documents/Remote Knowledge/or as importedRemote Knowledgefinding entries) - Auto-generated content other than
_followups_summary.md
Related¶
systems/findings.mdreference/kb-schema.mdagents/coach.md— owns this layer