arsen
|
4075b6082d
|
docs: enforce ≤200-line cap on README/CLAUDE/CHECKLIST and 3 ADRs
User-stated rule: README.md and CLAUDE.md must not exceed 200 lines;
all detail goes into docs/ with a link. ADRs also targeted at ≤200.
Before:
README.md 542 lines
CLAUDE.md 407 lines
CHECKLIST 235 lines
ADR-116 224
ADR-117 245
ADR-120 209
After:
README.md 198 ✓
CLAUDE.md 149 ✓
CHECKLIST 199 ✓
ADR-116 191 ✓
ADR-117 199 ✓
ADR-120 200 ✓
ADR-115/118/119 already under (161 / 193 / 161)
New supporting docs (extracted content):
docs/use-cases.md — full deployment-tier catalogue + 60 ADR-041 edge modules
+ ADR-024 self-learning section, all moved from README
docs/architecture.md — pipeline diagram + module breakdown from README
docs/dev-handbook.md — crate map, RuvSense modules, build/firmware/release
/publish, witness verification — all moved from CLAUDE.md
docs/claude-swarm.md — V3 CLI commands, agent types, memory commands —
moved from CLAUDE.md
Trims (compress prose without losing facts):
ADR-116 — D7 honesty section + Verified Acceptance + Open Items
ADR-117 — Context narrative folded to bullets + Out of Scope condensed
ADR-120 — Out of Scope condensed
CHECKLIST — adaptive classifier entries compacted + Deferred grouped
CLAUDE.md now adds the ≤200-line rule explicitly to Behavioral Rules
+ Project Architecture + Pre-Merge Checklist so future sessions can't
forget it. README.md was a 67% reduction; CLAUDE.md 63%.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-18 11:04:15 +07:00 |
arsen
|
da4c123df9
|
feat(adr-120): windowed temporal classifier (W-MLP) — 53.53% → 90.40%
Adds WindowedMlpModel: 440 → 64 ReLU → n_classes, stacks last 20
frames × 22 features as input. Captures temporal patterns that
frame-level classifiers physically cannot see (walking cadence,
sit-stand cycles, gesture rhythm).
AppStateInner gets feature_window: VecDeque<[f64; 22]> (cap 20)
auto-pushed at the 3 tick sites before adaptive_override. The
classify_window API flattens the buffer (oldest first) + current
frame's features → 440-d input → softmax over classes. Cold-start
(<20 frames) falls back to frame-level MLP.
AdaptiveModel now carries all three classifiers side-by-side:
LogReg (ADR-118), MLP (ADR-119), W-MLP (this). classify_window
picks W-MLP first; legacy classify() picks MLP > LogReg.
Result on the same 6-node, 7-class, 151,329-frame dataset:
LogReg: 49.58%
MLP: 53.53%
W-MLP: 90.40% (+36.87 pts over MLP, +50.0 pts over original
2-node 15-feature LogReg baseline)
Per-class W-MLP accuracy:
absent 100% (was 41%)
present_still 100% (was 99%, saturated)
transition 86% (was 36%) — sit/stand cadence captured
waving 90% (was 38%) — gesture cadence captured
present_moving 82% (was 33%) — walking step cadence captured
active 74% (was 30%) — jumping bursts captured
Loss broke through frame-level plateau (1.15 → 0.25). Caveat:
90.4% is training-set accuracy; ~28k weights on ~30k windowed
samples means some overfitting likely. Held-out test set
recommended as follow-up.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-18 01:02:38 +07:00 |