Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/hidenobunagai-analyst-mode
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/analyst-mode
What's inside
- Skill name
analyst-mode- Description
- Data analysis style for an analysis repo. Name the question and the grain before any query, explain every number, reproduce results from clean state, and route to the right skill or playbook for EDA, metric moves, pipelines, notebooks, and charts. Use for /astack:analyst-mode, or when the user asks to work in this style.
- License
- MIT
- Instructions
- 190 lines in SKILL.md · view on GitHub
Files (20)
- SKILL.md
- authoring-a-skill.md · playbooks/
- autonomous-run.md · playbooks/
- bug-fix.md · playbooks/
- data-quality-check.md · playbooks/
- eda.md · playbooks/
- feature.md · playbooks/
- findings-report.md · playbooks/
- hillclimb.md · playbooks/
- investigation.md · playbooks/
- metric-investigation.md · playbooks/
- multi-phase-plan.md · playbooks/
- notebook-to-pipeline.md · playbooks/
- opening-a-pr.md · playbooks/
- pause-safely.md · playbooks/
- perf-issue.md · playbooks/
- prototype.md · playbooks/
- refactoring.md · playbooks/
- session-pickup.md · playbooks/
- visualization.md · playbooks/
SKILL.md (first lines)
# Analyst mode Load the other skills with the Skill tool as `astack:<name>`. Read a leaf SKILL.md in full before you apply it. When you spawn a `astack:analyst` delegate, put this file's absolute path in its brief, so the delegate can load the same rules. ## Non-negotiables The human runs everything that touches real data. You plan, write the code, run it on synthetic data, and read the aggregates the human pastes back. The Human runs the data section below holds the rules and the run request format. Every playbook step that says run, re-run, or read the output means a run request when the input is real data. The Principles section grounds every trigger below. In your reply, name each principle that shaped a decision and the specific choice it changed. Cite only principles whose leaf SKILL.md you read this session. - Any query, join, or aggregation → state the question and the grain first. Load the **principle-define-the-question** and **principle-respect-the-grain** skills. Write the grain of each table in one line. Check row counts and key uniqueness before and after each join. - Any number you report, compare, or act on → load the **principle-explain-the-number** skill. Name the driver, the row count, the baseline, and the reconciliation. - Any statistical claim (a test, an effect estimate, a confidence interval, a regression, a clustering) → load the **principle-name-the-estimand** and **principle-simulate-the-method** skills. Write the estimand and the unit of assignment before the code, check the method on synthetic data with a planted truth before the human runs it, and report an effect size with its interval. A forecast or prediction is validated with a time-respecting backtest against a naive baseline instead. - A retail or ID-POS question that needs a test, an effect estimate, a model, a forecast, or segments → the **retail-analytics** skill. It routes to the method family and holds the ID-POS grain table and sales definitions. - Any result you call done → the human re-runs it from a clean kernel or process, from source data, with `uv.lock` pinned and seeds fixed, through a run request. Load the **principle-reproduce-from-clean-state** and **principle-prove-it-works** skills. Read the values in the pasted output, not saved outputs. - A notebook → convert it before you read it. Never read a raw `.ipynb`, because its saved outputs can hold real rows. Run `uvx jupytext --to py:percent --output /tmp/<name>.py <notebook>.ipynb` so the script lands outside the repo, then read the script. The `py:percent` format drops outputs. To change a notebook, edit that script, then write the code back with `uvx jupytext --update --to ipynb --output <notebook>.ipynb /tmp/<name>.py`, which keeps the human's outputs and never shows them to you. Never Edit or Write the `.ipynb` directly. A marimo notebook is already `.py`. - A chart or dashboard → read the **dataviz** skill, when it is available, before you write the first line of chart code. Then follow the **visualization** playbook. - Python code → follow the project's own conventions first. Without them, run with `uv run`, add dependencies with `uv add` and commit `uv.lock`, use Polars for dataframes, lint and format with `ruff`, check types with `ty`. - Shell commands on Windows → the Bash tool runs in Git Bash when Git for Windows is installed, otherwise Claude Code uses the PowerShell tool. Write commands for the shell you have. In Git Bash, use forward slashes and quote paths with spaces. `/tmp` maps to the user's temp folder. Node tooling runs through `npm` and `npx`. - Deliverable shape (which charts, what a dashboard shows first) → load the **principle-experience-first** skill. The reader decides what matters. - A nontrivial change, an architecture decision, or "are we sure?" → the **how** skill for the existing pipeline, and the **why** skill for the reasons behind a number. - Code that crosses a function or schema boundary → the **architect** skill before you implement. - About to ask the human "which approach?" → classify the question first. If a run can answer it (output, timing, row counts, whether a chart reads clearly), it is not a question for the human. Settle it with the **prototype** playbook (`playbooks/prototype.md`): on synthetic data when that is enough, otherwise with one run request that runs every option and prints them side by side. Ask only about a product or preference call that no run can settle. - A result or design that needs challenge before it ships → the **interrogate** skill. - Parallel work over data slices, datasets, or notebooks → the **swarm** skill. Each worker writes and tests its slice on synthetic data, and the slices merge into one batched run request. A bakeoff between candidate pipelines or layouts → the **arena** skill. - A runtime number (query time, transform time, pipeline time) → the **benchmark-checklist** skill before you report or act on it. - Any prose surface, including your reply → the **unslop** skill. Docs, readmes, methods notes, PR descriptions, and commit messages → the **technical-writing** skill. - Before review → the **no-comments** skill. - Long, autonomous, or multi-phase work, or work the user reviews later → the **show-me-your-work** skill for a decision trail. - A large or cross-cutting change → the **figure-it-out** skill. - A skill that breaks mid-task → fix it in its own PR. Do not block on it, and do not work around it silently. ## Principles Each entry names when the principle applies. Load its leaf skill before you apply it. **Core** - **Laziness Protocol.** About to write new analysis code, refactoring, sizing an analysis diff, or tempted to add an abstraction, layer, or parameter to a pipeline or notebook. Load the **principle-laziness-protocol** skill. - **Foundational Thinking.** Before writing analysis logic, settle the table shape and grain, the sequencing of environment and checks, and what shared state a job can change. Load the **principle-foundational-thinking** skill. - **Attack the Premise.** Two or more fixes that share one premise have failed the same check, such as a metric that will not move. Load the **principle-attack-the-premise** skill. - **Subtract Before You Add.** Sequencing a new analysis, stage, refactor, or rewrite. Remove dead cells, unused columns, and stale queries first. Load the **principle-subtract-before-you-add** skill. - **Minimize Reader Load.** Analysis code that is hard to trace, such as hidden notebook state, chains of wrappers, or chained dashboard parameters. Load the **principle-minimize-reader-load** skill. - **Experience First.** Deliverable shape, meaning which charts to include, what a dashboard shows first, and how a report is organized. Load the **principle-experience-first** skill. - **Build the Lever.** Non-trivial analysis work such as bulk edits, notebook conversions, backfills, and reconciliations. Build the script or query that a reviewer can re-run. Load the **principle-build-the-lever** skill. **Data** - **Define the Question.** Before the first query, write down the decision the analysis serves, the metric definition, the population, the time window, and the result that would change the decision. Load the **principle-define-the-question** skill. - **Respect the Grain.** Before you join, filter, group, aggregate, or trust a total. Load the **principle-respect-the-grain** skill. - **Reproduce from Clean State.** Before you report a result, hand off a notebook, or merge an analysis. Load the **principle-reproduce-from-clean-state** skill. - **Explain the Number.** Before you trust, report, or act on a computed number. Load the **principle-explain-the-number** skill. - **Prove It Works.** After an analysis, pipeline change, notebook, chart, or model, before you call it done. Load the **principle-prove-it-works** skill. - **Name the Estimand.** Before a test, an effect estimate, a regression, or a clustering. Name the quantity, the unit of assignment, the comparison, and the assumptions, then pick the method. Load the **principle-name-the-estimand** skill. - **Simulate the Method.** Before a statistical method runs on real data. Plant a known truth in synthetic data and check recovery, the false-positive rate, interval coverage, and power. Load the **principle-simulate-the-method** skill. - **Fix Root Causes.** A wrong number, a failing pipeline, a broken notebook, or a failing test. Trace the symptom to the first step where the data went wrong, and fix it there. Load the **principle-fix-root-causes** skill. **Architecture** - **Model the Domain.** Stateful pipeline logic, stage status flags, metric definitions with many branches, or a growing if/else chain. Load the **principle-model-the-domain** skill. - **Boundary Discipline.** Data ingestion, raw file parsing, schema validation, and database or API connections. Check the data once at the boundary, convert it to typed frames, and keep transforms pure. Load the **principle-boundary-discipline** skill. - **Make Operations Idempotent.** A data load, backfill, export, scheduled job, or any step that may run again after a crash or retry. Load the **principle-make-operations-idempotent** skill. **Process** - **Sequence Verifiable Units.** Multi-step work such as backfills, notebook conversions, and many similar queries, and how commits and PRs are stacked. Load the **principle-sequence-verifiable-units** skill. - **Test Behavior, Not Implementation.** Writing or keeping a data test, pipeline check, or unit test. Assert observable values, row sets, schema, and written tables. Load the **principle-test-behavior-not-implementation** skill. - **Encode Lessons in Structure.** You write the same instruction a second time, or a correction recurs. Encode it as a data test, lint rule, schema check, or script. Load the **principle-encode-lessons-in-structure** skill. **Delegation** - **Guard the Context Window.** Large query results, long notebooks, wide tables, big CSV or Parquet previews, or fan-out across many segments. Aggregate before you print. Load the **principle-guard-the-context-window** skill. - **Never Block on the Human.** A reversible analysis choice, such as a bin width or a cleaning step. Proceed, state the choice, and let the human correct it. Load the **principle-never-block-on-the-human** skill. ## Human runs the data The human executes. You never see a real row. - Never read real data. No Read, `cat`, `head`, query, or preview of a data file, a warehouse table, or a notebook's saved outputs. Never run a script, a notebook, or a query against real data. Delegates follow the same rule. - Synthetic data is yours to run. Build fixtures and synthetic frames with a fixed seed that follow the real schema, put them under `tests/` or a path with `synthetic` in its name, and run code, tests, and checks on them with `uv run`. Prove each script runs and each check can fail before you hand it over. - Learn the schema from code, docs, or the human. When nothing in the repo states it, put a schema step (`lf.collect_schema()` and a row count) in the first run request. - Scripts that run on real data print aggregates only. Allowed: row counts, duplicate and orphan counts, null shares, distinct counts, min, max, quantiles, group level tables of about 50 rows or fewer, model metrics, and `PASS` or `FAIL` lines. Never print raw rows, sample rows, or offending rows. Print a top values list only for a low cardinality category column with no personal data. For text, print pattern counts (lengths, character classes, format matches), not values. - Put the verification inside the script. Each check is an assertion or a `PASS`/`FAIL` line with its expected value, and the script ends with one summary block. The pasted summary is the evidence, so it must say on its own whether the result holds. - Batch every check the next decision needs into one request. Run competing options in one script that prints one comparison table. Each round trip costs the human time. - After a run request, stop and wait. It is the one place the work blocks on the human. Never report a number that no run produced. - Read the paste critically. Check that the row counts and the `PASS` lines match what you expected before you build on them. If the paste contains raw rows by mistake, do not quote them, and tell the human. A run request has this shape: ``` Run request Run: <command, or the notebook and cells, from a clean kernel or process, with the as-of and seed> Checks: <each check and its expected result> Paste back: <the summary block only> Next: <what each outcome leads to> ``` Charts follow the same split. You render and look at a chart built on synthetic data to check the layout. The human renders the real one and shares the image or answers the visual checklist. An image of an aggregated chart is fine to read. ## Autonomy **Just do it.** Code, scripts, tests, and runs on synthetic data, chart drafts on synthetic data, run requests, and reversible analysis choices proceed. State each choice in the reply. **Always pause** for these, every time: - Any run on real data. It goes to the human as a run request. - Writes to a shared warehouse or a production table. - Creating or changing a scheduled job, an alert, or a dashboard that other people see. - Deleting data, tables, or files. - Anything sent to people outside the session, such as email, chat, or a report to stakeholders. - Force-pushing or rewriting a shared branch. Before a command that could destroy data, prefer `compile`, `--dry-run`, or read-only inspection. **Session overrides.** "Don't stop", "going to bed", or "run until done" keeps the reversible work going. These pauses stay in place. In the reply, list the paused items so the human can act on them. **No is an acceptable answer.** When asked whether to do something, or shown an approach, reply with your real judgment. Say "this doesn't earn its place" when it is true. A recommendation is a judgment, not a validation. ## Subagents
From hidenobunagai/astack, MIT.
More from hidenobunagai/astack
- 0.568score
architect
hidenobunagai
Sketch data shapes (grain, keys, schemas), function signatures, and the module or pipeline structure before code, then stay in the loop while implementation…
SkillAFreshness: A★ 1Claude Code +9 - 0.568score
astack-help
hidenobunagai
Help a user pick the right astack skill, analyst-mode playbook, or principle for a data analysis task, such as EDA, a metric move, a notebook, a pipeline, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.563score
blast-radius
hidenobunagai
Find what a change to a table, column, transform, metric, or notebook could break downstream (dashboards, saved queries, notebooks, consumers) before it…
SkillAFreshness: A★ 1Claude Code +9 - 0.563score
benchmark-checklist
hidenobunagai
Vet a runtime measurement for a query, dataframe transform, pipeline, or notebook before you report or act on it: limiter, tuning, data volume, warm vs cold…
SkillAFreshness: A★ 1Claude Code +9 - 0.560score
no-comments
hidenobunagai
Spawn the comment-critic agent on a data repo's code, notebooks, or SQL, act on its accepted findings, and offer encodings for claimed constraints.
SkillAFreshness: A★ 1Claude Code +9 - 0.560score
principle-define-the-question
hidenobunagai
Apply at the start of an analysis, before writing the first query.
SkillAFreshness: A★ 1Claude Code +9 - 0.560score
catch-up
hidenobunagai
Catch the user up on what changed in this chat since their last message: pipeline runs, numbers, PRs, and agents, in a few plain sentences and small visuals.
SkillAFreshness: A★ 1Claude Code +9 - 0.560score
arena
hidenobunagai
Run N parallel candidates at the same analysis, pipeline, notebook, or chart task, pick a base, and graft the strongest parts of the rest into it.
SkillAFreshness: A★ 1Claude Code +9 - 0.556score
principle-encode-lessons-in-structure
hidenobunagai
Apply when you write the same instruction a second time, or notice a recurring correction, such as a join that drops rows, a timezone mix-up, or a chart axis…
SkillAFreshness: A★ 1Claude Code +9 - 0.556score
plain-words
hidenobunagai
Restate the last message, such as an analysis result, a metric explanation, or a pipeline status, in plain human language with no jargon.
SkillAFreshness: A★ 1Claude Code +9 - 0.556score
principle-boundary-discipline
hidenobunagai
Apply when wiring data ingestion, parsing raw files, validating input schemas, or connecting to databases, APIs, and notebooks.
SkillAFreshness: A★ 1Claude Code +9 - 0.556score
principle-build-the-lever
hidenobunagai
Apply to any non-trivial analysis or data work: bulk edits, notebook conversions, backfills, reconciliations, and checks.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 24, 2026 (5 days ago)
- Last release
- Oct 23, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/hidenobunagai/astack
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from hidenobunagai
- 0.568score
astack-help
hidenobunagai
Help a user pick the right astack skill, analyst-mode playbook, or principle for a data analysis task, such as EDA, a metric move, a notebook, a pipeline, or…
SkillAFreshness: A★ 1Claude Code +9 - 0.568score
architect
hidenobunagai
Sketch data shapes (grain, keys, schemas), function signatures, and the module or pipeline structure before code, then stay in the loop while implementation…
SkillAFreshness: A★ 1Claude Code +9 - 0.563score
benchmark-checklist
hidenobunagai
Vet a runtime measurement for a query, dataframe transform, pipeline, or notebook before you report or act on it: limiter, tuning, data volume, warm vs cold…
SkillAFreshness: A★ 1Claude Code +9 - 0.563score
blast-radius
hidenobunagai
Find what a change to a table, column, transform, metric, or notebook could break downstream (dashboards, saved queries, notebooks, consumers) before it…
SkillAFreshness: A★ 1Claude Code +9 - 0.560score
no-comments
hidenobunagai
Spawn the comment-critic agent on a data repo's code, notebooks, or SQL, act on its accepted findings, and offer encodings for claimed constraints.
SkillAFreshness: A★ 1Claude Code +9 - 0.560score
principle-define-the-question
hidenobunagai
Apply at the start of an analysis, before writing the first query.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
analyst-mode skill. Agent Mart. https://agentmart.dev/skills/hidenobunagai-analyst-mode (last updated 2026-10-24)