REQUIRED for data analysis. Orchestrates 5-phase workflow with output-first verification.
Structured data analysis workflow that orchestrates 5 phases: brainstorming objectives, profiling data, output-first implementation, methodology review, and reproducibility verification. Use when analyzing datasets or building models to ensure rigorous, verifiable results.
/plugin marketplace add edwinhu/workflows/plugin install workflows@edwinhu-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
First, activate the ds workflow and sandbox:
python3 -c "
import sys
sys.path.insert(0, '${CLAUDE_PLUGIN_ROOT}/hooks/scripts/common')
from session import activate_workflow, activate_dev_mode
activate_workflow('ds')
activate_dev_mode()
print('✓ DS workflow activated')
"
Announce: "I'm using the ds workflow. Starting with Phase 1: brainstorming."
REQUIRED NEXT STEP: After activation, IMMEDIATELY invoke:
Skill(skill="workflows:ds-brainstorm")
Do NOT ask "What data would you like to analyze?" - the brainstorm phase handles requirements gathering.
Structured workflow for data analysis and modeling using Task agents and modular skills.
<EXTREMELY-IMPORTANT> ## The Iron Law of Data ScienceYou MUST use the sub-skills. This is not negotiable.
When planning analysis: invoke /ds-brainstorm (clarifies objectives)
When exploring data: invoke /ds-plan (profiles data first)
When implementing: invoke /ds-implement (output-first verification)
When reviewing: invoke /ds-review (methodology checks)
When verifying: invoke /ds-verify (reproducibility checks)
This applies even when:
If you catch yourself about to write analysis code without using the appropriate skill, STOP. </EXTREMELY-IMPORTANT>
| Thought | Why It's Wrong | Do Instead |
|---|---|---|
| "I'll just run this query" | Skipping profiling leads to bad data | Use /ds-plan |
| "I know the analysis already" | Skipping exploration leads to wrong conclusions | Use /ds-brainstorm |
| "Results look fine to me" | Self-review misses methodology issues | Use /ds-review |
| "It should be reproducible" | "Should" isn't verification | Use /ds-verify |
| "This is too simple for the workflow" | Simple analyses can still be wrong | Follow the workflow |
flowchart TD
Start(["/ds"]) --> Brainstorm["Phase 1: /ds-brainstorm<br/>Questions → SPEC.md"]
Brainstorm --> Plan["Phase 2: /ds-plan<br/>Data profiling → PLAN.md"]
Plan --> Implement["Phase 3: /ds-implement<br/>Output-first coding"]
Implement --> Review["Phase 4: /ds-review"]
Review -->|Issues| Implement
Review -->|Approved| Verify["Phase 5: /ds-verify"]
Verify -->|Fail| Implement
Verify -->|Pass| Complete([Completion])
Phase responsibilities:
| Phase | Skill | Does | Outputs |
|---|---|---|---|
| 1 | /ds-brainstorm | Questions, objectives | .claude/SPEC.md |
| 2 | /ds-plan | Data profiling, exploration | .claude/PLAN.md |
| 3 | /ds-implement | Output-first implementation | Working code + results |
| 4 | /ds-review | Methodology review | Approval or issues |
| 5 | /ds-verify | Reproducibility verification | Fresh evidence |
THIS SEQUENCE IS MANDATORY. Do not skip any phase.
Note: Sandbox activates automatically when you invoke /ds. To exit: /ds-exit
CRITICAL: You MUST open the skill gate before invoking sub-skills.
# Step 1: Open the gate (REQUIRED before any ds-* skill)
python3 -c "
import os, hashlib
tty = os.environ.get('TTY', '')
cwd = os.getcwd()
sid = hashlib.md5(f'{tty}:{cwd}'.encode()).hexdigest()[:12]
open(f'/tmp/.claude-skill-gate-{sid}', 'w').close()
"
# Step 2: Invoke the skill
Skill(skill="ds-implement")
# The hook automatically closes the gate after skill starts
Why: Task agents run in isolated context and DON'T inherit skill instructions. The Skill tool loads the protocol into main chat so you can pass it to Task agents.
| /dev | /ds |
|---|---|
| TDD (test-first) | Output-first verification |
| Uses ralph-loop | Direct Task agent spawning |
| Tests verify correctness | Output quality verification |
| Code review focus | Methodology review focus |
All Claude docs go in .claude/ folder (add to .gitignore):
project/
├── .claude/ # gitignored
│ ├── SPEC.md # analysis objectives (from brainstorm)
│ ├── PLAN.md # data profile + task breakdown (from plan)
│ └── LEARNINGS.md # chronological attempt log
└── ...
Session markers are stored in /tmp/ (session-specific, auto-cleaned on exit).
/ds-brainstorm - Clarify analysis objectives/ds-plan - Data profiling and exploration/ds-implement - Output-first implementation/ds-review - Methodology and quality review/ds-verify - Reproducibility verificationThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.