Commit History
Yesterday
-
[NOTICKET] refactor(prompts): one home per rule — planner.md 7.1k -> 3.9k tokens
Rifqi Hafizuddin +1: Claude Opus 5.5Prompt audit 2026-10-28 (docs/plans/REPORT_AND_PROMPT_PLAN.md, P1-P8, H3): - load_prompt strips <!-- --> comments at load (router -169, help -718, planner -58). - planner: document context after the cacheable prefix (catalog/tools/examples). - examples A-M no longer open with check_data (plans with it 6/6 -> 0/6); example T rephrased away from "bedanya" (collided with "apa yang membedakan"), Y covers both. - analyze_aggregate description = median per group only; no "by region" phrasings. - planner.md consolidated: feasibility in one section, validator-backed rules one line, no client-specific strings, a closing checklist. Planner call ~22.3k -> ~18.8k. - validator check 8i: also analyze_ab_test, and period-only filters no longer exempt a raw pull of a table over row_budget (the rule the prose could not hold). - eval: 6 new "can't answer" cases + an A/B guard (dataset 75). - assembler: neutral example id, dated incident note removed. Eval: A+B 6/6 (_132959); D 22/24 (_133546) the…71c6f2b -
[NOTICKET] fix(report): English structure, content in the user's language
Rifqi Hafizuddin +1: Claude Opus 5.5Rifqi, 2026-10-28: section titles, subtitles, labels, chart titles and the thesis title are always English; the summary, answers, reasons, limitations, next analyses and footer follow the user's language (detected from the objective/questions). The summary input now states "# Title language: English" (the prompt rule alone lost to the reply-language line). Local fixture check for report_summary.md on the frozen SDJ session (tests/agents/report/test_report_fixture.py): free checks + one live call, 13/13. Local: 1107 passed, 8 skipped (1 live check skipped by default). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>99ed8a1 -
[NOTICKET] feat(report): question-anchored report with scope, checks and an analysis ledger
Rifqi Hafizuddin +1: Claude Opus 5.5Report Phase 1 of docs/plans/REPORT_AND_PROMPT_PLAN.md (R1-R9, R16, R17). The report was the chat transcript; it is now organised by the business questions. - anchored.py: per-record scope cards, flags (dropped filter, target leakage, small sample), one evidence table per answer (no id lookups or raw model inputs), status that code may only lower (with a reason), charts inside each answer plus a default chart from the evidence table, number check against stored results, scope box, limitations, other findings/visuals, Appendix A ledger, fixed footer. - scope.py: read-only sqlglot parse of each stored query. - numbers.py: the faithfulness eval's number matcher, shared (eval scores identical). - report_summary.md: sees scope + flags; writes a thesis title, the metric per answer and next analyses. - Always English (Rifqi, 2026-10-28). - data_access: retrieve_data meta carries filter values (PII-masked) for scope lines. - schemas additive; contract note in archieved/API_CONTRACT_…564c827 -
[NOTICKET] docs(plans): report reframe and prompt cleanup plan
Rifqi Hafizuddin +1: Claude Opus 5.5Question-anchored report with a scope section and an appendix ledger (Phase 1 is generator-only), and the prompt P0/P1 items from the 2026-10-28 reviews. Open decisions in section 6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>1acca72 -
[NOTICKET] fix(planner): match the question's time grain; reject non-task placeholders
Rifqi Hafizuddin +1: Claude Opus 5.5- planner.md: months read the month-grain table; the weekly table only for week questions; never month numbers on a `week` column (SDJ test: "Januari-Juni" became `week BETWEEN 1 AND 6`). - planner validator: any `${...}` that is not a task reference is rejected before it reaches the database as a literal string. - refusals: a run-failure answer no longer quotes raw driver/SQL error text. - eval: weekly twin of the lagging view in the EMA fixture + 4 time_grain cases (dataset 68). Subset 2026-10-28_095515: 6/6, 147,213 tokens. - Dry-run log #31-#32. Local: 1059 passed, 7 skipped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>ac68af5
2 days ago
-
/fix help and active tools (#24)
- [NOTICKET] fix(help): suggest the analytical tools that are now active (b1ef6f048c8dd469a7f3d2214fae3bbfe7da4e46) - [NOTICKET] eval(help): capability cases for the v7 tool sync (87bb688ca6d8b1de28e3f911bf8502ab504012d3) - [NOTICKET] fix(chat): load the latest history, not the first ten messages (b3a1a3557a8946a0d493084be741105e0293f45e) - [NOTICKET] docs: sync REPO_STATUS, DEV_PLAN and contract with the code (19587bc335e857a2d3c992b9d2fd16e0b7e37159) - [NOTICKET] docs: close DEV_PLAN #32 — live Neon matches Go 0007 (17b54e212416e06fe32e3942ebf951856b03792e) - [NOTICKET] fix(report): no user-scope catalog fallback in the data-source appendix (35a6aedb48870a8c6007b845c7a5ff1d0f57c324) - [KM-717] feat(planner): read the catalog data dictionary into the planner's catalog summary (2d70efebcdfecd9f1fce6cfa43c5e304bf6edbe4) - [KM-717] eval(planner): data-dictionary cases, and live Neon knowledge tables verified (97b27d162f937dfe302e17c432a7e76e3cdfb937) - Merge remote-tracking branch 'origi…00ca133
-
/fix planner and unstructured pipeline (#23)
- feat(documents): v2 unstructured ingestion, image-token, scoped retrieval (b848f739c23c9ea152c5bcc5ea4b9d8b4ca64afa) - feat(prompts): mixed document+data path, figure markers (39019d57e159b510fda1f5bd813d051e1ba7c05c) - eval(chat_sim): doc + mixed suites with bound documents (b6e060b328c8dbbdb19f3da466fe97f62dab09aa) - [NOTICKET] docs: unstructured v2 plan, contract, status sync (6702119c2705ef9a99a4a0ba0adaab9ac7a28c54) - fix(check): list data and documents when both are asked (2b7c3bd79fe73b693634e583be46c812b6c74d3c) - [NOTICKET] docs: mixed suite result, check + router fixes, U8 done (0e1ad6e143e30ec20960d3a2c5ae22190aa512ff) - feat(router): a figure IN a document vs a chart FROM data (770b98855d640c727a402b0db1252638364c20d7) - fix(chatbot): reply in the turn's language, not the documents' (b6150d58b991fb5d98b0bb2278956c938d80d4c0) - fix(query,planner): stable capped rows, plan-time handoff check, trimmed records (ea9848db5ec39e32067a2c3dbc9453f1a94736d2) - eval: scoped/DB/docum…7124acf
-
/feat ds tools (#22)
- feat(tools): analytical-tools foundation — spec_builder + ml executor (ee1a76a466c6ea6dc52f337d0fd9534ca0271a86) - feat(tools): shared chart kit + auto-chart builders (535f17340950e070556441140276c47d074606e2) - feat(tools,spine): wire tool auto-charts to chart persistence (522e582bab372b645577789cbbd59d5105a66632) - build(deps): add statsmodels + explicit scikit-learn pin (4d76bd0e57f5f7b1bbb0b77e49970063d1898a1b) - [NOTICKET] docs: analytical-tools foundation — conventions, DEV_PLAN 0.9, status sync (a7f0bca51ed8ff08784cca3fd4179dce56ef7622) - [NOTICKET] eval(planner): skip cases whose tool is withheld, don't fail them (845284b4a3b32df142565de23386dee739d0f733) - [NOTICKET] feat(tools): analyze_forecast (ETS) — first ML tool, DEFERRED (dae102f68fc36cf755e7d53df10affb4ec7edaa6) - [NOTICKET] planner: rebalance few-shot exemplars EN/ID, demo the reply-language rule (fb30aec99586daf12a4799087ae538e5e862451c) - [NOTICKET] feat(tools): analyze_anomaly (Isolation Forest) — second ML tool,…e201ae4
-
/fix parsing and term extract (#21)
- [NOTICKET] fix: retire the fuzzy clustering pass; add E1c post-cluster recall (2cc21c92688d662c5cfdfeeb6784bb85b98575ca) - [NOTICKET] feat: parsing schema 0.4.0 — asset pointers for figures and tables (e662ac089b741c90e19b9f51f4933fb97a1225bc) - [NOTICKET] docs: sync REPO_STATUS / DEV_PLAN / contracts for pipeline v2 (c3c184d83bec4a4d42e9ad3f7265560802817e5b) - [NOTICKET] docs: close K15 with the paid v1-vs-v2 comparison (62782fed9292f67d7b376783920a07197d6776e9) - [NOTICKET] fix: test the caption hypothesis; ship the signal at weight 0.0 (36a166e1844d186d6cfb8fff9ea070f3dc69b220) - [NOTICKET] fix: cap key-parameter pre-emption in the review queue (Step 2) (4e3a6aefef7024db3ea4b7946fd7771a6c269601) - [NOTICKET] feat: assert on invariants, report a band, classify the genre (Steps 0 + 5) (f1d64b113db0289601806635a9b154201a6127fc) - [NOTICKET] fix: gate spend in cluster units and surface the estimate (Step 6) (cdb5fe82cc5f2893ccbb5e28282e8dc46a27e061) - [NOTICKET] fix: retire escalation…f07443e
-
/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