Commit History
29 days ago
-
[NOTICKET] anomaly: name the anomalous rows + a flag-rate quality verdict (D-3)
analyze_anomaly's records carried only the scored numeric columns plus a score, so "which units look unusual?" could never name a unit; and it was the only ML tool with no quality block, so an 86%-flagged run reached the assembler as silence. - Add optional label_columns: identifier columns carried into each record (identifiers first), never fed to the model. Planner guidance to pass the id column follows on Rifqi's side (decided shape (a), tool-side). - Add the reserved quality block: metric anomaly_rate, weak only ABOVE a 0.5 ceiling. A20's flag-rate finding was re-measured, not re-assumed -- clean noise flags 0.14-0.22 (mean 0.17, p95 0.22), a genuine 30%-outlier frame 0.30, the demo's degenerate run 0.86 -- so 0.5 clears the noise floor and a real finding yet still catches "most rows flagged"; the note states the rate plainly either way. Logic in _flag_rate_quality() so both branches are unit-testable (the fit can't be pushed past 0.5 via contamination). PR-0 from…ae50194 -
[NOTICKET] docs: PR-0/PR-1 spec for Sofhia, and the feedback-edge before/after
Rifqi Hafizuddin +1: Claude Opus 5docs/plans/PR0_PR1_TOOL_FIXES.md — six tool fixes, split into PR-0 (two that block QA) and PR-1 (four that block nothing). Both stay on pr/22: the scope is one directory. Every claim was RE-VERIFIED against the code today rather than taken from the review, which was read-only and says so. That changed two of them: - D-6 (pareto non-additive aggs) is already DOCUMENTED at pareto.py:24 — a deliberate trade, not an oversight. The spec says so, and narrows the ask to the two real gaps: the output still calls it "share" with no caveat, and negatives are unguarded. - D-5 was dropped from Sofhia's scope entirely. The docstring states the empty-set semantics are intended and correct; the actual gap is narrower (absent column vs empty result) and lives in task_runner, which is not her lane. D-12 also moved out — it is in planner/examples.py, Rifqi's file. Flagged for her to DECIDE before starting: D-3's fix may need the planner to pass an identifier column, which would c…9c0fba7
-
/feat knowledge management (#20)
- [NOTICKET] docs: knowledge pipeline test integration — context, audited task checklist, DEV_PLAN §0.8 (8e69dc6c638509f4dd7b6775d520fb4aa4efbd3e) - [NOTICKET] docs: knowledge pipeline — reframe kex as prototype, not port target (7cce5ffc9ab88791ac139dbef8e88e124a3d049e) - [NOTICKET] feat(eval): knowledge-extraction gold set, scorer + frozen prototype baseline (60cf4a885ef31a8aa64916f5a70ac5a0e8062c5f) - [NOTICKET] chore: add missing planner and readiness eval results (bd6659b3bf523597e4482b04ab1fcff5e1284d25) - [NOTICKET] feat(knowledge_extraction): free stages — models, seam adapter, filters, cluster, ranking (024c30abd1189119d33508eded334fe5a3ed5011) - [NOTICKET] fix(knowledge_extraction): move runner into the package; fix two ranking defects (72605ff6876a7936ab685d417c766ce820f6214b) - [NOTICKET] feat(knowledge_extraction): span filter — E1 recall 0.8537, matches the frozen baseline (3a016343398753cf730d50548c0e92ff47c6716c) - [NOTICKET] feat(knowledge_extraction): paid extraction …b68816f