Commit History
29 days ago
-
[NOTICKET] fix(tools): accept `avg` wherever `mean` works (A23 Bug 2)
Rifqi Hafizuddin +1: Claude Opus 5The planner and the tools disagreed about what "average" is called, and the planner lost. It fills in a QueryIR and a tool call from ONE prompt: QueryIR AggFn count, count_distinct, sum, avg, min, max tools SUPPORTED_AGGS sum, mean, count, min, max, median (+ nunique) planner.md teaches `avg` three times because the IR requires it -- line 331 even says "utilization, scores -> avg", which is exactly the PA case. So the planner wrote agg="avg" into analyze_forecast and the tool raised UnsupportedAggregationError. The dry-run lost its forecast turn that way. The planner was not wrong; it obeyed its own prompt. Blast radius was five tools, not one. analyze_trend, analyze_forecast, analyze_ab_test, analyze_pareto and analyze_segmentation all take an `agg` and all five rejected `avg` -- only forecast happened to be exercised. analyze_aggregate failed differently and more quietly: validator check 8c rejected the plan, burning a retry before execution. Aliasing rath…0f0af11
30 days ago
-
[NOTICKET] feat(tools): analyze_segmentation — activate/rename analyze_segment + chart (A13)
Activates + renames analyze_segment -> analyze_segmentation (file segmentation.py unchanged). Keeps edges/quantile binning; adds a per-segment bar chart (count, or the aggregate when value_column given) via the reserved 'charts' key. Registered DEFERRED via spec_from_model. DEV_PLAN §0.9 A13 -> done. Heads-up (Rifqi): analyze_segment renamed to analyze_segmentation. Local tool tests under tests/unit/tools (gitignored) referencing it break on pull — rename to analyze_segmentation. Also a stale '# analyze_segment' comment remains in src/agents/planner/validator.py:152 (your lane) — repoint when convenient. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>8e0301e -
[NOTICKET] feat(tools): analyze_pareto — rename analyze_contribution, Pareto 80/20 (A12)
Renames analyze_contribution/decomposition.py -> analyze_pareto/pareto.py. Keeps the share + cumulative compute; reframes to Pareto 80/20: adds categories_for_80pct and ships the pareto_chart (bars + cumulative-% line) via the reserved 'charts' key. Registered DEFERRED via spec_from_model. Old name fully removed — no eval/agent refs; 3 cross-ref DESCRIPTIONs (aggregation/comparison/segmentation) repointed. DEV_PLAN §0.9 A12 -> done. Heads-up (Rifqi): analyze_contribution is gone. Local tool tests under tests/unit/tools (gitignored) that reference it will break on pull — rename those refs to analyze_pareto. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>cb6a92e
-
feat/Planner Agent (#2)
- [KM-567][AI] Planner agent: contracts, schemas, inputs, registry (be96601ad46c00e8e789768dd6e89c2db827bde4) - [KM-567][AI] Planner agent: prompt + few-shot examples (83ba6b1743370145454d9315224eeb7b2d12ac18) - [KM-567][AI] Planner agent: validator + service (72306d0ce92c76d60117a20c701c7f8185bcfeef) - [KM-567] docs: record Phase 3 Planner agent in PROGRESS.md (ba2fa8892392028c8d13646c09d1155bbf34e703) - [KM-567][AI] Planner agent: fix PII leak + placeholder/retry robustness (6b3637dda097f16cd98d4b9ad6094fdaed6d1346) - [KM-624] Implement Compute Functions Tools (78c598c22d2f2a14229a83c3f43fa98c5d520ae7) - [KM-624][AI] Planner: realign stub registry + examples to composite analyze_* tools (93a24dabf48d8121e981cc470c835cb10badb62a) - [KM-624] docs: record tool taxonomy + ownership revision in PROGRESS (f3461142542f6216aff23b30a1321dfb4654afdc) - [KM-626][AI] Slow-path agent: seam contracts + TaskRunner (ac310de551d0888ccfef31e981e22d88f54c6a38) - [KM-626][AI] Slow-path agent: Assembler…81e5fe7