Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计通过

analytic-workbench分析工作台

Agent Skill

analytic-workbench 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

210

周安装

9

GitHub Stars

公开资料未说明

下载量

73
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:analytic-workbench(分析工作台)
来源仓库:https://github.com/kundeng/analytic-workbench-skill
仓库路径:skills/analytic-workbench
安装命令:
npx skills add https://github.com/kundeng/analytic-workbench-skill --skill analytic-workbench
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/kundeng/analytic-workbench-skill --skill analytic-workbench

简介

分离配置、计算与展示三层职责,实现人机协同驱动的数据分析工作台架构。

  • 适用于需要重复执行复杂分析流程且希望保留中间结果供人工审核的环境。
  • 推荐使用 Hydra 管理配置,Python 脚本执行计算,Jupyter 呈现可视化输出。
  • 强调单次专注原则,每层只做一件事,便于调试与扩展而不影响整体稳定性。
  • analytic-workbench 属于前端设计类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Analytic Workbench

Human-directed, AI-operated analysis. The AI drives execution, self-reviews outputs, and presents artifacts for human approval. The human guides direction, edits interpretations, and decides what to try next.


Recommended Architecture: Config → Computation → Display

The workbench separates three concerns. Each layer has a single job.

Config layer   →  Computation layer  →  Display layer
  what to run       how to run it        what the human sees

Recommended tools (not required — the methodology matters more than the specific tools):

  • Config: Hydra (config composition, CLI overrides, sweeps). Alternatives: plain YAML, argparse, or any config system that produces a dict.
  • Computation: Hamilton (DAG of typed functions, selective execution). Alternatives: plain Python modules following Hamilton conventions, or any framework that keeps logic in small testable functions.
  • Display: marimo (reactive notebooks, app mode). Alternatives: Jupyter, Streamlit, or any surface that separates display from business logic.

The principle is layered separation: config never touches DataFrames, computation never renders UI, display never contains business logic. The specific tools are recommendations that work well together, but the skill works with substitutes that respect the same boundaries.

At Tier 1, the config layer may just be widget values or function arguments. The separation of computation from display still applies.


Project Setup

Dependencies

Every project starts with a base install. Do this at scaffold time, not later.

pip install "sf-hamilton[visualization]" marimo hydra-core omegaconf \
    polars duckdb pandas matplotlib --break-system-packages

Optional extras added when needed:

# Tier 2+ sweeps and tracking
pip install "sf-hamilton[ui,sdk]" --break-system-packages

# Tier 3 persistence
pip install "dvc[s3]" --break-system-packages

# Heavy analytics
pip install stumpy statsmodels scikit-learn --break-system-packages

Generate requirements.txt at scaffold time:

pip freeze > requirements.txt

Library decision rules

LibraryUse whenAvoid when
polarsFast transforms, lazy evaluation, large-ish dataHamilton ecosystem friction (some adapters expect pandas)
duckdbSQL-oriented analytics, joins across CSVs/parquets, >1GB dataSimple column transforms better expressed as polars/pandas
pandasHamilton node I/O (default), small-medium data, rich ecosystemPerformance-critical transforms on large data

Prefer polars for transforms, pandas at Hamilton DAG boundaries (inputs/outputs), duckdb for ad hoc SQL queries over files.

Directory Structure

Enforce this from Tier 1. No migration needed when moving up tiers.

project/
  src/                       # All Python source — Hamilton modules
    __init__.py
    baseline.py              # Hamilton DAG: time series construction
    features.py              # Hamilton DAG: feature engineering
    ...
  notebooks/                 # marimo notebooks — UI only
    explore.py               # Interactive exploration (calls Hamilton driver)
    report.py                # Read-only report app (loads from runs/)
  scripts/                   # Entry points — Hydra runners, comparison builders
    run.py                   # Hydra entry point → Hamilton driver
    build_comparison.py      # Aggregate metrics across runs
  tools/                     # Data access CLI tools (any tier)
    fetch_data.py            # --output PATH --format csv|json
  conf/                      # Tier 2+: Hydra config files
    config.yaml
    source/
    experiment/
  rawdata/                   # Immutable source data (gitignored)
  runs/                      # Per-run artifacts (gitignored)
    <run-id>/
      config.yaml
      metrics.json
      figures/
      data/
  review/                    # Tier 3+: manifest, review, approval files
  requirements.txt           # Base dependencies
  .gitignore

Key differences from ad hoc layouts:

  • src/ — all computation code lives here from day one. Not modules/, not inline in notebooks.
  • rawdata/ — immutable, gitignored, separate from computed outputs.
  • runs/ — flat per-run folders, not nested under outputs/. Each run is self-contained.
  • No data/processed/ — intermediate artifacts live inside runs/<run-id>/data/.
  • No outputs/figures/ — figures live inside runs/<run-id>/figures/.

Pick Your Tier

Not every project needs the same ceremony. Pick the tier that matches the project's current complexity — you can move up later without rewriting because the directory structure and Hamilton conventions are the same at every tier.

TierWhenConfigComputationDisplay
1: NotebookSmall, exploratoryWidget values or function argsModules in src/ following Hamilton conventionsReactive notebook (marimo preferred)
2: WorkbenchRepeatable experiments, comparisonHydra configs + sweeps (or equivalent)Hamilton Driver (or Hamilton-convention modules)marimo app + comparison tables
3: ReproducibleExpensive data, many runs, MLHydra + DVC params (or equivalent)Hamilton + DVC cached stagesNotebook/app for review
4: OrchestratedProduction, team, CI/CDOrchestrator config + Hydradagster assets, prefect flows, or HamiltonOrchestrator UI + notebook

Start at Tier 1 only for truly lightweight work. Most comparison-driven analyses should begin at Tier 2. Signs you need the next tier:

  • 1→2: You want to compare parameters systematically. You need Hydra configs and per-run folders.
  • 2→3: Re-fetching source data wastes time. You want DVC cached stages.
  • 3→4: Multiple people need scheduling, retries, lineage, or CI/CD.
Tool references (read only when needed for your tier): - references/hamilton-conventions.md — All tiers: Driver, Builder, function modifiers, DAG patterns - references/marimo-patterns.md — All tiers: frontend patterns, app mode, UI-only philosophy - references/hydra-config.md — Tier 2+: config composition, sweeps, experiment configs - references/artifact-strategy.md — Tier 2+: per-run folders, comparison tables, freshness rules - references/review-workflow.md — Tier 3+: state machine, human approval flow - references/core-contracts.md — Tier 3+: manifest.json, review.json, approval.json schemas - references/dvc-guide.md — Tier 3: dvc.yaml, dvc repro, dvc exp, remotes, caching - references/code-templates.md — All tiers: complete working examples

Tier 1: Disciplined Exploration

Even at Tier 1, prefer to keep computation code in src/ as small, typed functions. The notebook is primarily a display and interaction surface.

What "Hamilton convention" means at Tier 1

Write Python modules as collections of small, typed functions where:

  • function name = the name of the thing it produces
  • parameter names = the names of things it depends on
  • type hints = the contract
  • no side effects in core logic

You can call these directly, through a Hamilton Driver, or import them into notebook cells. The goal is that the code is ready for Tier 2 with minimal changes.

Tier 1 flow

notebook
  ├── UI widgets (sliders, dropdowns) → parameters
  ├── Import from src/ modules (or use Hamilton Driver)
  ├── Call functions / dr.execute(["output_name"], inputs=params)
  └── Display results (figures, tables, metrics)

Prefer to keep transform logic (groupby, rolling, model fitting) in src/ modules. Small exploratory calculations in notebook cells are acceptable during early exploration — move them to src/ once they stabilize.


Tier 2: Config → Computation → Display

Config layer (Hydra recommended)

Hydra composes config from YAML files and CLI overrides. It produces a frozen DictConfig.

# conf/config.yaml
defaults:
  - source: csv_local
  - _self_

baseline:
  resample_freq: 1h
  date_column: opened_at

analysis:
  window_size: 24
  anomaly_threshold: 3.0

Computation layer (Hamilton recommended)

The runner script builds a Hamilton Driver with Hydra config and executes:

# scripts/run.py
import hydra
from hydra.core.hydra_config import HydraConfig
from omegaconf import DictConfig, OmegaConf
from hamilton import driver
from hamilton.io.materialization import to
import src.baseline as baseline
import src.features as features

@hydra.main(version_base=None, config_path="../conf", config_name="config")
def main(cfg: DictConfig) -> None:
    out = Path(HydraConfig.get().runtime.output_dir)

    dr = (
        driver.Builder()
        .with_modules(baseline, features)
        .build()
    )

    inputs = OmegaConf.to_container(cfg, resolve=True)
    results = dr.execute(
        ["summary_stats", "timeseries_figure", "discords"],
        inputs=inputs,
    )

    # Save artifacts to run folder
    save_artifacts(results, out)

Note: Hydra produces the config dict. Hamilton consumes it as inputs. Hamilton's own with_config() is used for node selection (@config.when), not for passing parameter values.

Display layer (marimo recommended)

Two modes:

Interactive exploration — the notebook creates its own Driver (or imports functions directly), passes widget values as inputs, displays results live.

Report/review — the notebook loads pre-computed artifacts from runs/, provides dropdowns to browse runs, displays comparison tables and figures.

See references/marimo-patterns.md for detailed patterns.

Systematic sweeps

python scripts/run.py -m baseline.resample_freq=10min,30min,1h,4h
python scripts/build_comparison.py runs/

Each run saves to its own folder under runs/. The comparison builder reads metrics.json from every run folder.


The Core Loop

Regardless of tier, every analysis cycle follows:

Execute → Self-Review → Present → Human Decision → Record & Advance

Execute

Run the analysis (Hamilton driver, Hydra sweep, DVC repro). Produce outputs: data files, figures, metrics — all inside runs/<run-id>/.

Self-Review

Before showing the human anything, the AI checks its own work:

CheckHowFail →
Outputs exist and non-emptyls, file sizesFix and re-run
Figures non-trivialView PNGs (vision)Regenerate
Metrics plausibleRead metrics.json, check rangesInvestigate
No NaN/Inf in key columnsScan DataFramesClean data or fix logic
Values match figuresCompare summary numbers to visualFix inconsistency

At Tier 1–2, self-review is a mental checklist the AI runs before speaking. At Tier 3+, write review.json with pass/fail per check.

Present

Show the human: what ran, key outputs, AI interpretation (draft), recommendation.

At Tier 1, this is a chat message with inline figures. At Tier 2+, write a card.md summarizing the stage. At Tier 3+, write formal manifest.json + review.json + card.md.

Human Decision

Approve, approve with edits, or reject with feedback.

Record & Advance

At Tier 1–2: note approval in conversation and move on. At Tier 3+: write approval.json. Never update a report with unapproved results.


AI Editing Guidance

ActionHow
Edit analysis logicModify small functions in src/. Hamilton-style isolation keeps blast radius low.
Run quick explorationExecute notebook — it calls src/ functions or Hamilton Driver with widget inputs.
Create artifactsFunctions produce figures/data. Save routines write to runs/.
Add derived outputsNew function in src/ module. Import in notebook or Driver. No ceremony.
Compare runsRead per-run metrics.json, build DataFrame, save comparison.csv.
Build reportsmarimo app loading artifacts: comparison table + per-run drill-down.
Run sweepsHydra config + --multirun. Each run saves to runs/<run-id>/.
Self-reviewRead metrics for sanity, view figures via vision, validate data ranges.
Install new librarypip install <lib> --break-system-packages, update requirements.txt.

Maturity Path

Each phase builds on the previous without rewrites.

Phase 1 — marimo + Hamilton Driver + src/ modules + runs/ folder. Phase 2 — Hydra configs + Hamilton Driver + comparison tables. Phase 3 — DVC caching + formal review contracts. Phase 4 — dagster or prefect orchestration + CI/CD.

Move up when the pain of not having the next tool exceeds the cost of adding it.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.33%
按下载量换算26

Claude

31.45%
按下载量换算23

Cursor

21.12%
按下载量换算15

Gemini CLI

9.09%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills