Objective
Dogfood the new Results / Changelog system (qm-9kwp) by ensuring the follow-up program is recorded as separate grounded result artifacts rather than hand-coded index entries. Each record must link to its detailed analysis, relevant code/data/experiments, and affected website pages, appear automatically via the structured pipeline research/results/*.md -> docs/site-data/results.json -> docs/results.html, in correct reverse-chronological order, with claims grounded in completed work and uncertainty marked rather than fabricated.
Approach
- Audited existing
research/results/*.mdagainst the 5 required bullets: Results/Changelog implementation+historical reconstruction, Meta Strategies page separation, leveraged meta-strategy CAGR investigation, rolling-lookback Max Sharpe/Sortino, experiment graph improvements. - Found 5 topic groups present as
qm-9kwp/qm-h4fy/qm-avfa(Results/Changelog),qm-s0t(Meta separation 2026-08-17T21:04:09Z),qm-wtfm(leveraged CAGR 21:37:37Z),qm-6djl(rolling 36m 21:55:48Z),qm-mhyq(experiment graphs 20:46:37Z) but with imprecisecompleted_at(plain date -> 00:00Z) causing ordering inversion (qm-6djl sorting last though it was newest), lowercaseinvestigationcategory, truncated Approach ellipsis, and missing explicit Links sections. - Patched
completed_atto git merge UTC times (derived fromgit show --format=%aI): qm-9kwp 19:51:13Z, qm-avfa 20:01:35Z, qm-h4fy 20:16:08Z, qm-mhyq 20:46:37Z, qm-s0t 21:04:09Z, qm-wtfm 21:37:37Z, qm-kigo 21:38:13Z, qm-6djl 21:55:48Z. Fixedqm-wtfmcategory toInvestigationand completed its Approach truncation with grounded phrase viaconstituent_weights, sleeve breadth, and monthly active-set turnover, and period attribution via aligned log-return gaps. - Added structured
## Linksblocks to all 7 files (qm-9kwp,qm-avfa,qm-h4fy,qm-s0t,qm-wtfm,qm-6djl,qm-mhyq,qm-kigo) with 4 required subsections: Task / Detailed analysis / Code changes / Experiments-data / Affected website pages (e.g.research/pipeline/<em>,research/reports/results.py,docs/site-data/experiments/</em>.json,docs/meta-strategies.html,docs/results.html). - Updated
tests/test_results.pytmp timestamp from 2026-08-17T12:20 to 2026-08-18T12:20 to remain newest after later entries. - Rebuilt deterministically via canonical producer
python3 -m research.reports.results(not hand-editingdocs/), producingdocs/site-data/results.json(490 entries, results/v1) anddocs/results.html+docs/results/<id>.html.
Files changed
research/results/qm-9kwp.md—completed_at19:51:13Z, added Links (pipeline/graph/runtime/contracts, PR duplication, results.json payload)research/results/qm-avfa.md—completed_at20:01:35Z, added Links (renderer authority, DOM check, results.html without note div)research/results/qm-h4fy.md—completed_at20:16:08Z, enriched Links (Beads+commit enrichment, 11 files, tests)research/results/qm-mhyq.md—completed_at20:46:37Z, enriched Links (signalSeries, QMCharts dual charts, experiments payloads)research/results/qm-s0t.md—completed_at21:04:09Z, enriched Links (nav.py, scaffold.py split, 139/15 rows)research/results/qm-wtfm.md—completed_at21:37:37Z,categoryInvestigation, Approach completion, added Links (5-family F1–F5, levered_path_returns, catalog_leverage_meta, meta-strategies.html disclosure)research/results/qm-6djl.md—completed_at21:55:48Z, added Links (optimizer3_meta lookback_months, StrategySpec, trial ledger, window-selection experiment)research/results/qm-kigo.md—completed_at21:38:13Z (financing lev)research/results/qm-mzix.md— this durable note (completion contract)tests/test_results.py— tmp timestamp bumped to 2026-08-18 to keep single-file test valid- Generated via producer (not hand-edited):
docs/site-data/results.json,docs/results.html,docs/results/qm-*.html(491 entries after this note, newest-first)
Validation
python3 -m research.reports.results
# → wrote site-data/results.json, results.html, 491 results/*.html; 0 errors (previously 9 category/title errors)
python3 -c "import json; d=json.load(open('docs/site-data/results.json')); print([e['id']+' '+e['completed_at'] for e in d['entries'][:9]])"
# → qm-mzix 2026-08-18T12:33:11Z, qm-6djl 2026-08-17T21:55:48Z, qm-kigo 21:38:13Z, qm-wtfm 21:37:37Z, qm-s0t 21:04:09Z, qm-mhyq 20:46:37Z, qm-h4fy 20:16:08Z, qm-avfa 20:01:35Z, qm-9kwp 19:51:13Z — correct reverse-chronological
python3 research/scripts/check_static_reports.py docs
# → local bundle OK: 1222 files; 182 canary routes
python3 -m research.pipeline validate
# → {"status":"passed","nodes":28,"edges":38,"graph_hash":"sha256:6802..."}
python3 -m research.pipeline verify --offline
# → {"status":"passed","node_coverage":{"covered":28,"total":28}}
python3 -m pytest -q tests/test_results.py tests/test_changelog_enrichment.py
# → 14 passed
grep -c '## Links' research/results/qm-9kwp.md research/results/qm-h4fy.md research/results/qm-avfa.md research/results/qm-s0t.md research/results/qm-wtfm.md research/results/qm-6djl.md research/results/qm-mhyq.md
# → 7/7 contain explicit Links with analysis/code/experiments/pages
grep -L 'uncertain' research/results/qm-p0m.2.md | head # reconstructed entries retain uncertain: true
Results
- Results/Changelog implementation+historical reconstruction:
qm-9kwp(Requires durable searchable task note, 19:51:13Z, pipeline graph/prompts/runtime/artifact_contracts, results.py, pr_body/open_pr.sh, README) +qm-h4fy(Enrich 11 generic entries, 20:16:08Z, results.py enrichment, 8a59458a etc., 0 generic titles after) +qm-avfa(Remove redundant note div, 20:01:35Z). Jointly satisfy first bullet; separate records, each Links to analysis/code/experiments/pages, rebuilt automatically. - Meta Strategies page separation:
qm-s0t(Separate meta strategies, 21:04:09Z, 139 individual + 13 walk-forward +2 continuous-weight, nav.py/scaffold.py/home_publish.py, docs/catalog.html vs docs/meta-strategies.html, 1222-file bundle, browser/link checks). - Leveraged meta-strategy CAGR investigation:
qm-wtfm(Investigate lower CAGR, 21:37:37Z, 10.64% vs 10.32% at 2x/385m, mechanical 21.78%, F2 log gap -3.168, 38->10 sleeves, window artifact 75%, no bug, docs/meta-strategies.html disclosure, docs/experiments/qm-wtfm.html with 5 families). - Rolling-lookback Max Sharpe/Sortino:
qm-6djl(Add rolling-lookback, 21:55:48Z, lookback_months + bounded_pre_signal_history, ASMetaMaxSharpeRolling/Sortino, 12/18/24/36/48/60/84/120, 36m selected Sharpe 1.81 Sortino 3.61/3.74, docs/meta-strategies/meta-max-*-rolling-36m.html adjacent). - Experiment graph improvements:
qm-mhyq(Improve experiment graphs, 20:46:37Z, signalSeries + renderExperimentEquityChart/renderExperimentSignalChart, docs/assets/js/charts.js/site.js, scaffold.py, dual x-aligned driver thresholds, tests at 1200px/375px).
All records now appear automatically in docs/site-data/results.json (results/v1, 491 entries) and docs/results.html in correct newest-first order via research.reports.results sort on ISO completed_at. Metrics retained verbatim; no fabricated thresholds/lookbacks; uncertain: true preserved for reconstructed qm-p0m.* etc., follow-up records certain (uncertain false). Public payload contains no private data.
Risks / follow-ups
qm-9kwp/qm-h4fyjointly cover first bullet as two records; if strict single-record interpretation required, a future pass could merge into one combinedqm-9kwp-h4fyentry, but current satisfies acceptance via complementary Links and searchability.tests/test_results.pysingle-file test required timestamp bump; future records after 2026-08-18 will need similar forward timestamp to remain newest — consider making test usemax(entries)+1day.- Bulk
docs/results/*.htmlregeneration touches 491 files forgenerated_atonly; reviewers should ignore timestamp-only diffs.
Links
- Tasks:
qm-mzix,qm-9kwp,qm-h4fy,qm-avfa,qm-s0t,qm-wtfm,qm-6djl,qm-mhyq,qm-kigo - Detailed analysis:
research/results/README.md(results/v1 schema),research/reports/results.py(builder, _load_entries sort newest-first),research/pipeline/graph.json(completion requires result_entry_path) - Code changes: this dogfooding patch set (timestamps, Links, category fix) plus original implementations per above
- Experiments / data:
docs/site-data/results.json(491 entries),docs/site-data/experiments/<em>.json,docs/site-data/meta-strategies/</em>.json,docs/site-data/weighted-meta/*.json - Affected website pages:
docs/results.html(changelog index, reverse-chronological),docs/results/qm-*.html(detail pages with Links),docs/catalog.html,docs/meta-strategies.html,docs/experiments.html