Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
b5c302b
docs: spec for NH Q' store contract, hourly-native reading, ddrs import
taddyb Jul 2, 2026
55ca424
docs: implementation plan for NH Q' import + hourly-native reading
taddyb Jul 2, 2026
b62a4a6
test: icechunk Qr fixture stores (daily/hourly/bad-units)
taddyb Jul 2, 2026
5ef807b
docs: fixture-script review fixes (overwritten/ note, zarr dep, READM…
taddyb Jul 2, 2026
068acab
feat(data): parse_cf_units sniffs daily vs hourly CF time axes
taddyb Jul 2, 2026
a1d1e2d
refactor(data): parse_cf review minors — Frequency import, missing-un…
taddyb Jul 2, 2026
fa03a3e
feat(data): hourly-native Q' reading in StreamflowStore
taddyb Jul 2, 2026
704c0f8
fix(data): chunk hourly daily-reads, extract+test hourly axis validation
taddyb Jul 2, 2026
970e0a5
feat(data): expose Q' resolution; reject disagg head on hourly-native…
taddyb Jul 2, 2026
d3688e5
refactor(data): consistent Frequency import in store/mod.rs
taddyb Jul 2, 2026
d288ef7
docs: DDR Q' store contract (producer/consumer interface)
taddyb Jul 2, 2026
5167f51
feat(cli): ddrs import — validate Q' store contract + register source…
taddyb Jul 2, 2026
1d5a4ed
fix(cli): import review polish — force-path test, cheap-fail name che…
taddyb Jul 2, 2026
54a0a48
feat(cli): wire ddrs import subcommand
taddyb Jul 2, 2026
d93c7ba
config: daily-lstm + hourly-lstm data-source groups (via ddrs import)
taddyb Jul 2, 2026
fe56e77
fix(cli): propagate workflow failure as non-zero exit from ddrs run
taddyb Jul 2, 2026
46d4e84
docs: ddrs import + hourly-native Q' reading in CLAUDE.md
taddyb Jul 2, 2026
4351fc7
docs(config): correct aorc_precip comment in hourly-lstm group
taddyb Jul 2, 2026
cade9e4
feat(skills): add 16-skill reference library for ddrs project handoff
taddyb Jul 6, 2026
9dc978d
docs(skills): update 4 skills for leakance NO-GO + new master capabil…
taddyb Jul 7, 2026
d0e90e1
docs: update README + CLAUDE.md for NH import + leakance NO-GO; add s…
taddyb Jul 7, 2026
e1459ca
docs(skills): rename ddrs-overview skill to ddrs-dev
taddyb Jul 7, 2026
abe75c3
docs(specs): LSTM-source selective-equifinality experiment design (CP…
taddyb Jul 7, 2026
1dc2b5b
docs(specs): realized-geometry reference = arm-own summed Q' (primary…
taddyb Jul 7, 2026
124981a
docs(plans): implementation plan for LSTM-source equifinality CPU arms
taddyb Jul 7, 2026
8c37061
feat(cli): --backend {cuda,cpu} on ddrs run
taddyb Jul 7, 2026
e9eb0bd
review: constraint comments + drop redundant device clones (Task 1 qu…
taddyb Jul 7, 2026
bdd7305
feat(probe): --params flag lifts arbitrary KAN-head outputs for gradi…
taddyb Jul 7, 2026
d028914
review: drop dead sorted_rows(); document identical-COMID assert in p…
taddyb Jul 7, 2026
fd5e5b5
review: wire x_storage through lifted-or-fallback; fix stale probe docs
taddyb Jul 7, 2026
33bf765
feat(config): three tracked equifinality arms (daily-lstm flat/disagg…
taddyb Jul 7, 2026
97fa1fd
feat(scripts): sequential detached driver for equifinality CPU arms (…
taddyb Jul 7, 2026
7f4a9d9
feat(analysis): cross-arm selective-equifinality convergence analysis…
taddyb Jul 7, 2026
f3ccc79
review: fix BFS sweep cap, cache-reload structure, H4 verdict rule, m…
taddyb Jul 7, 2026
b261e1d
review: nan-safe stats, named cache keys, vectorized hourly aggregati…
taddyb Jul 7, 2026
072e41d
fix(analysis): chunk hourly Q' aggregation over time (OOM at 132k-rea…
taddyb Jul 7, 2026
60cda7b
docs(findings): LSTM-arm selective-equifinality verdicts — H1-H3 REFU…
taddyb Jul 7, 2026
59b67c6
review: H4/H3 aggregation-rule disclosure, dHBV2 baseline context, me…
taddyb Jul 7, 2026
7dc58c2
feat(analysis): audit rework — dual-metric H1/H2, timing-based H2, co…
taddyb Jul 7, 2026
9810c32
docs(findings)+fix(analysis): audit amendment §8 — interpretation dow…
taddyb Jul 7, 2026
5aaf237
adding unstaged files
taddyb Jul 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
428 changes: 428 additions & 0 deletions .claude/skills/ddrs-architecture-contract/SKILL.md

Large diffs are not rendered by default.

439 changes: 439 additions & 0 deletions .claude/skills/ddrs-build-and-env/SKILL.md

Large diffs are not rendered by default.

413 changes: 413 additions & 0 deletions .claude/skills/ddrs-change-control/SKILL.md

Large diffs are not rendered by default.

403 changes: 403 additions & 0 deletions .claude/skills/ddrs-config-and-flags/SKILL.md

Large diffs are not rendered by default.

543 changes: 543 additions & 0 deletions .claude/skills/ddrs-debugging-playbook/SKILL.md

Large diffs are not rendered by default.

54 changes: 54 additions & 0 deletions .claude/skills/ddrs-dev/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: ddrs-dev
description: Use at the start of any ddrs task to route to the right sub-skill. Load this first when the task type is unclear, when onboarding to the project, or when multiple skill areas may apply.
---

# ddrs skill index

**Project:** Differentiable Muskingum-Cunge routing solver — BURN 0.21 Rust port of DDR (Python/PyTorch). Gradient-exact. Trains a KAN head to emit per-reach hydraulic parameters.

**Live research goal (as of 2026-07-06):** Selective-equifinality paper — train on 4 NH inflow sources (daily-lstm, hourly-lstm, dHBV2.0-lumped, dHBV2.0-UH), compare convergence of geometry (identifiable) vs Manning's n (equifinal). Paper draft: `/home/tbindas/projects/ddr_equifinality/paper.tex`.

---

## Route to the right skill

| I need to… | Use skill |
|---|---|
| Understand what changes are safe to merge | `ddrs-change-control` |
| Debug a failed / wrong-result run | `ddrs-debugging-playbook` |
| Check whether a problem was already solved | `ddrs-failure-archaeology` |
| Understand a load-bearing design decision | `ddrs-architecture-contract` |
| Understand hydrology concepts (NSE/KGE, routing, equifinality) | `ddrs-hydrology-reference` |
| Add, change, or audit a YAML config key | `ddrs-config-and-flags` |
| Set up or rebuild the dev environment | `ddrs-build-and-env` |
| Install the CLI, run a train/eval job, resume a checkpoint | `ddrs-run-and-operate` |
| Measure a result, interpret zeta/gradient/metric diagnostics | `ddrs-diagnostics-and-tooling` |
| Decide whether a change is safe / what tests to run | `ddrs-validation-and-qa` |
| Write a findings doc, spec, plan, or paper section | `ddrs-docs-and-writing` |
| Make an external claim about novelty or results | `ddrs-external-positioning` |
| Plan or execute the selective-equifinality experiment | `ddrs-identifiability-campaign` |
| Verify gradient correctness / design a controlled ablation | `ddrs-proof-and-analysis-toolkit` |
| Identify the next high-value research direction | `ddrs-research-frontier` |
| Design an experiment / enforce evidence standards | `ddrs-research-methodology` |

---

## Critical facts every agent must know

- **Stale binary trap:** `cargo build` does NOT update `~/.cargo/bin/ddrs`. After any `src/` change: `cargo install --path .`
- **V1 gate:** `cargo run --release --example compare_ddr_sandbox` must print `ABSOLUTE MATCH` (max abs < 1e-3 m³/s) after any change to `src/routing/`, `src/geometry.rs`, or `src/sparse.rs`.
- **CUDA graphs mask NaN:** validate new forward paths with `use_cuda_graphs: false` before enabling graphs.
- **Leakance is CLOSED (NO-GO, 2026-07-06):** do not re-open without reading `docs/2026-07-06-leakance-nogo-scientific-summary.md`.
- **Best CONUS result (2026-06-23):** NSE 0.715 / KGE 0.711 (precip-driven disagg + L1, 2,365 gauges). KGE does NOT beat the summed-Q' baseline (0.7172) in any config as of 2026-07-06.

---

## Provenance and maintenance

Re-verify routing after any new master merge:
```bash
git log --oneline origin/master..HEAD # commits ahead
cargo run --release --example compare_ddr_sandbox # V1 gate
```
Update this index when a new skill is added to `.claude/skills/`.
Loading
Loading