All notable changes to the data-analysis-skill project are documented here.
Version numbers align with the requirements document (requirements/data-analysis-skill-需求文档-v0.4.md).
- Stock market template
stock.md(#11, design approved 2026-06-10) — individual stock OHLCV + valuation - Finance / quant template
finance.md(#2, second batch) — portfolio / strategy backtest / credit data - Catering / F&B template — pending user demand confirmation
- Government / public sector template — pending user demand confirmation
- Method modules (
references/) enhancement — time-series decomposition, anomaly detection, NLP sentiment (§2.4 roadmap)
- Interactive data exploration phase before report generation (drill-down charts)
- Export formats beyond HTML (Markdown, PDF via headless browser)
- Multi-language report support beyond auto-detection (§10)
- Community-contributed industry templates via PR
- Multi-source data intake: unified sub-flow for Excel multi-sheet / multiple files / JSON multi-key inputs — enumerate all sources, surface to user, confirm relation strategy before analysis
- Anti-silent-loss red line promoted to core layer (SKILL.md Statistical Discipline #5): never silently read only the first sheet / the named file / collapse JSON keys — extends the template's "no silent truncation" rule to the input layer
- New method module
references/data-sources.md(read patterns + relation matrix + report organization), registered in On-Demand Loading table - JSON/TSV basic coverage: eliminated "paper support" — test-data now includes JSON and TSV files; evals T11/T12 verify single-table read paths
- 5 new eval scenarios T8–T12 (Excel multi-sheet / multi-CSV relational / JSON multi-key / JSON single-table / TSV single-table); generate_test_data.py extended with 5 generator functions (seed 42 reproducible)
- Minimal contract impact:
report_datafields unchanged — fusion mode carried bydata_overview.narrative+appendix.processing_notes, per-source mode bysections; template JS and validate_template.py 25 assertions untouched (all green)
- Table dual-mode: static publish table ≤20 rows, auto Grid.js interactive table >20 rows with pagination / search / numeric sort (Grid.js 6.2.0 dual-source CDN lock, bootcdn primary + unpkg fallback)
- Relaxed table data discipline: detail rows now allowed, single-table cap 500 rows, TOP-N truncation with processing_notes
validate_template.pyadded 13 new assertions (dual-source version lock, threshold constant, numeric parse sort, Chinese locale, print CSS)- Node unit tests: 21 cases (static table byte-identical ×3, parseNum ×13, numCompare ×5)
- Playwright runtime tests: 13 items (dual-mode, ascending/descending numeric sort, search filter, print media)
- Education template
education.mddelivered (#6, first-batch item) — training institution panorama: student operations + teaching effectiveness + enrollment acquisition - SKILL.md industry mapping table registered
education.md
- Report narrative areas now use
@tailwindcss/typographyplugin for block-level rendering (headings, lists, bold viamdBlock()) - Tailwind Play CDN URL locked to
3.4.16?plugins=typography@0.5.16(versioned plugin param prevents 302 drift) references/visualization.mdadded "Narrative Typography (Phase 5)" disciplinevalidate_template.pyadded 4 assertions (plugin URL lock, no-version param negative defense, mdBlock wiring)
- Repositioned as cross-AI-coder-tool Agent Skill (not Claude Code exclusive) — README, docs, §1 wording neutralized
- Added MIT open-source license (LICENSE, © 2026 cabbage2000-lab) with README badge and footer
- Renamed skill
data-analysis→data-analysis-skill— aligned GitHub repo, project directory, and skill identity - Updated SKILL.md
name, evals.jsonskill_name, sync-to-user.sh paths, report template signature, README, CLAUDE.md
- Construction template
construction.mddelivered (#13, off-list supplement) — construction enterprise panorama: project output/progress + contract/receivables - Lightweight delivery: no eval/test data (pattern follows v0.6 self-media / v0.8 fund / v0.10 real-estate precedent)
- SKILL.md industry mapping table registered
- Real estate template
real-estate.mddelivered (#12, off-list supplement) — property sales panorama: sales absorption + market dynamics - Lightweight delivery: no eval/test data
- SKILL.md industry mapping table registered
- Codex CLI adaptation: SKILL.md platform-agnostic clauses (TodoWrite → update_plan, AskUserQuestion → text numbered-choice fallback)
- Graceful degradation path for non-interactive mode (
codex exec/claude -p) — standard EDA + general template fallback sync-to-user.shextended with Codex target~/.codex/skills/data-analysis-skill- Smoke-tested on Codex CLI 0.139.0 (both exec and interactive paths)
- Fund template
fund.mddelivered (#10, off-list supplement) — fund product panorama: performance + scale/redemption - Lightweight delivery: no eval/test data
- SKILL.md industry mapping table registered
- Corporate finance / FP&A template
corporate-finance.mddelivered (#9, off-list supplement) — enterprise P&L, expenses, budget, cash flow - New eval scenario T7 "Finance template application" with test data
finance_pnl.csv(24 months × 4 business units × 5 accounts) - T7 with_skill run-1: 6/6 PASS
- Industry template #8 repositioned: "Content / Media" → "Self-media / Content Creator
self-media.md" — individual creators, bloggers, MCN operators self-media.mdearly-delivered (moved up from second batch)- SKILL.md industry mapping table registered
- SKILL.md frontmatter defined — CSO discipline (description = trigger-only, no workflow summary)
- Phase execution and gate rules formalized (§3.0) — Stage 1 mandatory gate, Stages 2–5 pass-through
- Visualization rules extracted to
references/visualization.md— core layer slimmed - Skill test scenarios T1–T6 defined (§13, TDD discipline)
- Skill shape confirmed: single skill, in-phase execution, industry/method modules loaded on demand
- Dependency delivery reversed: inlined → CDN external links (confirmed always-online usage)
- Tailwind switched to Play CDN (runtime compilation, any utility class usable)
- CDN version locking and source selection requirements added (§4.2) — ECharts 5.4.3, Tailwind 3.4.16
- Acceptance criteria updated: "offline open" → "online open + fixed CDN versions"
- Target runtime confirmed as Claude Code (local)
- Report language strategy: auto-detect from user input or data language
- Industry templates: batch delivery confirmed — first batch general + retail + saas
- Report tech stack finalized: single-file HTML + Tailwind + ECharts + Python data injection
- ECharts replaced Plotly as default chart library
- React explicitly excluded (Out of Scope)
- Asset layer
assets/report_template.htmladded — analysis/presentation decoupled - Single-file and offline-first mandatory requirement (later reversed in v0.4)
- Visualization spec (§4) rewritten — tech分工, no pyecharts, ECharts extension chart types
- Degradation: "report data too large" handling — aggregate/sample before injection
- Five-phase analysis workflow designed (understand → explore → deep-dive → visualize → generate)
- Industry template strategy: three-tier (general → high-frequency → degradation)
- Template content spec: four components per industry (KPI dictionary, analysis themes, narrative language, section weighting)
- Report structure: six-section format (summary → data overview → deep analysis → visualizations → conclusions → appendix)
- Project inception — initial requirements document
- Core positioning: cross-industry data analysis skill transforming raw data into visual narrative reports
- Single-file HTML interactive report as deliverable