Commit History
28 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
29 days ago
-
[NOTICKET] feat(tools): analyze_ab_test — rename analyze_comparison + Welch t-test (A11)
Renames analyze_comparison/comparison.py -> analyze_ab_test/ab_test.py. Keeps the two-group aggregate gap; adds a Welch two-sample t-test (t, p-value, significant at alpha) on the raw values and a bar chart of the two group means with 95% error bars, via the reserved 'charts' key. Registered DEFERRED via spec_from_model. Old name removed — 5 cross-ref DESCRIPTIONs + contracts.py comment repointed. DEV_PLAN §0.9 A11 -> done. Heads-up (Rifqi): analyze_comparison renamed to analyze_ab_test. Local tool tests under tests/unit/tools (gitignored) referencing it break on pull — rename to analyze_ab_test. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>901b03f -
[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
-
/fix help and tools analyze (#14)
- [KM-711] Retire /report slash command; report is Generate-button only (f7f7b172da0dc16adac0a7555f6d34a704cc2050) - fix(analyze_trend): handle value_column == date_column (count events per period) (55e3327f7b2e21a954b317e143f46bcea8b5ada7) - [KM-711] Docs: drop /report from list_skills catalog examples (0772863b296e2ed3e2d559df05e98540764e58b0) - fix(planner): reject inlined table-ref as analyze_* data (Pattern A) (776fae3c7c6e3d3a07c22bef10898f6b1c33c701) - fix(analyze_aggregate): reject non-string group_by (CASE/binning) keys (b40fa76e2fa68572dad0d8532e07076207095d6b) - fix(planner): reply-language for infeasible_reason + answer-only-asked rule (4d89d7d93938e41892979cd20e5ccf0c97441dac) Co-authored-by: Sofhia Az-Zahra <sofhiaazzhr@users.noreply.huggingface.co>17e31c6
-
fix/ check (#12)
- [NOTICKET] check: scope to analysis catalog + list database tables (db2a10f61e1f6ff9579deaaeafed8fdf0cdf5bb7) - feat(planner/help): graceful degradation for gated analytics capabilities (efc0af7c05308acb564bffdd7d8ab8abd2dd2e81) - Scope structured_flow + report to analysis catalog; drop dead data_sources binding (c333ec84a96b171484af7a87bdf07fd1fb0e9c69) - update md file (c5e2e1b1adcba46b56eaf6bbb85d9b8bb0a0d277) - [NOTICKET] check: read documents from analysis-scope catalog (6977394de88d7944dd2504beeed3e00eafe7857a) Co-authored-by: Sofhia Az-Zahra <sofhiaazzhr@users.noreply.huggingface.co>b9dfc76
-
feat/Knowledge & Data Tools (#3)
- [KM-641] refactor(tools): trim analytics registry to 4 active tools (66e2e4df66f1abf7eaa7e442d9900d428696ece4) - [NOTICKET] docs: add checkpoint plan for 2026-06-17 sync (8c1bb63ebdee02f9db0da9fc2b2269823b0a7688) - [KM-642] refactor(tools): rename data-access tools to data/knowledge naming (c38c0c29d3e6b245f67d03f2c35e451900e1abdb) - [KM-643] feat(tools): merge data sources into data_check + add knowledge_check (4bd5f1efdc560a64092cc8df672a7990fa949b59) - [NOTICKET] docs: record KM-642/643 in checkpoint plan + PROGRESS (4c57588b90fe0cac8d0d4d22cfe5701fc9eb52dd) - [NOTICKET] fix(chat): scope response cache by user_id + drop TTL to 1h (R5) (b701e95d300c7d2480a3608b2d4da6dfe102b19a) - [NOTICKET] feat(slow-path): persist AnalysisRecord via PostgresAnalysisStore (09f845188226dd01633cf74525caa569e4a7d37a) - [NOTICKET] Adopt verb-first skill naming (2d6406def7ed45edd1226e96645ba2a5cdbfa3d0) - [NOTICKET] docs: sync checkpoint plan — verb-first tool names + report-as-API (3b399f84d73b0d98bd99…0721bb4
-
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