Skip to main content
OrchestKit v7.0.1 — 69 skills, 38 agents, 95 hooks with Opus 4.6 support
OrchestKit
Skills

Setup

Personalized onboarding wizard. Use when setting up OrchestKit for a new project, configuring plugins, or generating a readiness score and improvement plan.

Command medium

OrchestKit Setup Wizard

Personalized onboarding that scans your codebase, detects your stack, recommends skills and MCPs, and generates an actionable improvement plan.

When to Use

  • First time after installing OrchestKit (/plugin install ork)
  • Joining a new project and want OrchestKit tuned for it
  • Periodically with --rescan to track improvement
  • Enterprise users who need safe, user-scoped install confirmation

Quick Start

/ork:setup              # Full 8-phase wizard
/ork:setup --rescan     # Re-scan after changes (skip safety phase)
/ork:setup --score-only # Just show readiness score
/ork:setup --plan-only  # Just show improvement plan
/ork:setup --channel    # Just show release channel

Argument Resolution

FLAG = "$ARGUMENTS[0]"  # First token: --rescan, --score-only, --plan-only, --channel
# If no arguments, run full 8-phase wizard.
# $ARGUMENTS is the full string (CC 2.1.59 indexed access)

The Eight Phases

PhaseWhatTools UsedOutput
1. ScanDetect languages, frameworks, infra, existing configGlob, Grep, ReadRaw scan data
2. StackClassify detected stack, confidence levelsStack profile
3. SafetyCheck existing config, confirm scope (user/project)Read, AskUserQuestionInstall confirmation
4. SkillsMatch stack to skills, suggest custom skillsGrep, GlobSkill recommendations
5. MCPsRecommend MCPs based on stack and gapsRead, BashMCP recommendations
6. ScoreCompute readiness score (0-10, 6 dimensions)All above dataReadiness score
7. PlanPrioritized improvements with runnable commandsAction plan
8. KeysInstall recommended keyboard shortcutsRead, Bash, AskUserQuestionKeybindings

Phase 1: Scan

Run ALL scan commands in one parallel batch for speed:

# PARALLEL — launch all in ONE message
Glob(pattern="**/package.json")
Glob(pattern="**/pyproject.toml")
Glob(pattern="**/go.mod")
Glob(pattern="**/Cargo.toml")
Glob(pattern="**/pom.xml")
Glob(pattern="**/*.csproj")
Glob(pattern="**/Gemfile")
Glob(pattern="**/composer.json")
Glob(pattern="**/.claude/settings.json")
Glob(pattern="**/.mcp.json")
Glob(pattern="**/docker-compose*.yml")
Glob(pattern="**/Dockerfile*")
Glob(pattern="**/.github/workflows/*.yml")
Glob(pattern="**/terraform/**/*.tf")
Glob(pattern="**/k8s/**/*.yaml")
Glob(pattern="**/CONTRIBUTING.md")
Glob(pattern="**/tsconfig.json")
Glob(pattern="**/next.config.*")
Glob(pattern="**/vite.config.*")
Glob(pattern="**/alembic.ini")

Then read key dependency files found:

# PARALLEL — read detected package manifests
Read(file_path="package.json")       # if found
Read(file_path="pyproject.toml")     # if found
Read(file_path="requirements.txt")   # if found
Read(file_path=".mcp.json")          # if found
Read(file_path=".claude/settings.json")  # if found

Pattern Detection (for custom skill suggestions)

# PARALLEL — count repeated patterns
Grep(pattern="@app\\.(route|get|post|put|delete|patch)", glob="**/*.py", output_mode="count")
Grep(pattern="@router\\.(get|post|put|delete|patch)", glob="**/*.py", output_mode="count")
Grep(pattern="export (default |)function", glob="**/*.tsx", output_mode="count")
Grep(pattern="export (default |)function", glob="**/*.jsx", output_mode="count")
Grep(pattern="class.*Model\\)", glob="**/*.py", output_mode="count")
Grep(pattern="def test_", glob="**/*.py", output_mode="count")
Grep(pattern="(describe|it|test)\\(", glob="**/*.{ts,tsx,js}", output_mode="count")

Phase 2: Stack Detection

Classify scan results into a stack profile. Present to user:

Detected Stack:
  Languages:   Python 3.12, TypeScript 5.6, SQL
  Frameworks:  FastAPI 0.115, React 19, Next.js 16
  Database:    PostgreSQL (via Alembic), Redis
  Infra:       Docker, GitHub Actions (3 workflows)
  Testing:     pytest, Playwright
  Existing CC: .claude/settings.json found, no conflicts

Stack-to-Skill Mapping

DetectedRecommended Skills
Pythonpython-backend, async-jobs, database-patterns
FastAPIapi-design, testing-patterns
Reactreact-server-components-framework, ui-components, responsive-patterns
Next.jsreact-server-components-framework, performance, vite-advanced
Zustandzustand-patterns
SQLAlchemy/Alembicdatabase-patterns
Docker/K8sdevops-deployment, distributed-systems
Terraformdevops-deployment
GitHub Actionsdevops-deployment
LLM/AI depsllm-integration, rag-retrieval, langgraph, mcp-patterns
Test frameworkstesting-patterns, golden-dataset
Security concernssecurity-patterns

All stacks get: explore, implement, verify, commit, review-pr, fix-issue, doctor, remember, brainstorming, help

Phase 2b: Channel Detection

Detect the user's release channel from the OrchestKit version string in the plugin manifest:

# Read version from the installed plugin manifest
Grep(pattern="\"version\"", path="manifests/ork.json", output_mode="content")

Classification Rules

Version PatternChannelDescription
X.Y.Z-alpha.*AlphaBleeding-edge, may include incomplete features
X.Y.Z-beta.*BetaFeature-complete previews, may have rough edges
X.Y.Z (no suffix)StableProduction-ready, fully tested

Channel Display

Present the detected channel alongside the stack profile:

Release Channel: stable (v7.0.0)
  You're on the stable channel — production-ready releases only.

If on a prerelease channel:

Release Channel: beta (v7.1.0-beta.1)
  You're on the beta channel — early access to upcoming features.
  To switch to stable: /plugin install ork@latest
Release Channel: alpha (v7.1.0-alpha.1)
  You're on the alpha channel — bleeding-edge, expect breaking changes.
  To switch to stable: /plugin install ork@latest

Use --channel flag to show only the channel detection (skip all other phases).

Phase 3: Safety Check

Use AskUserQuestion to confirm installation scope:

AskUserQuestion(questions=[{
  "question": "How should OrchestKit be installed?",
  "header": "Install scope",
  "options": [
    {"label": "User-only (Recommended)", "description": "Plugin loads only for you. Invisible to teammates. Safe for enterprise.", "markdown": "```\nUser-Only Install\n─────────────────\n~/.claude/\n  └── plugins/\n        └── ork/    ← only YOU see this\n\nTeammates: unaffected\nGit:       nothing committed\nEnterprise: safe, no repo changes\n```"},
    {"label": "Project-wide", "description": "Adds to .claude/plugins — loads for everyone in this repo.", "markdown": "```\nProject-Wide Install\n────────────────────\nyour-repo/\n  └── .claude/\n        └── plugins/\n              └── ork/  ← everyone sees this\n\nTeammates: auto-loaded for all\nGit:       committed to repo\nRequires:  team buy-in\n```"},
    {"label": "Already installed", "description": "Skip installation, just configure.", "markdown": "```\nSkip to Configure\n─────────────────\n✓ Plugin already installed\n→ Jump to Phase 4: Skill recommendations\n→ Then Phase 5: MCP setup\n→ Then Phase 6: Readiness score\n```"}
  ],
  "multiSelect": false
}])

Conflict Detection

Check for existing OrchestKit installs or conflicting plugins:

Grep(pattern="ork", path="~/.claude/settings.json", output_mode="content")
Glob(pattern="~/.claude/plugins/ork*")

Report: "No conflicts detected" or "Found existing ork install — version {version}."

Phase 4: Skill Recommendations

Present in 3 tiers using AskUserQuestion:

AskUserQuestion(questions=[{
  "question": "Which skill categories should we prioritize? (all are available, this helps focus the improvement plan)",
  "header": "Focus areas",
  "options": [
    {"label": "Full-stack (Recommended)", "description": "All detected stack skills + security + testing", "markdown": "```\nFull-Stack Focus\n────────────────\nBackend:   api-design, database-patterns\nFrontend:  react-server-components, ui-components\nSecurity:  security-patterns, testing-patterns\nDevOps:    devops-deployment\nWorkflow:  implement, verify, commit\n```"},
    {"label": "Backend focus", "description": "API, database, async, security patterns", "markdown": "```\nBackend Focus\n─────────────\nCore:      api-design, database-patterns\nAsync:     async-jobs, distributed-systems\nSecurity:  security-patterns\nTesting:   testing-patterns (integration)\nSkipped:   UI, components, accessibility\n```"},
    {"label": "Frontend focus", "description": "React, UI components, performance, accessibility", "markdown": "```\nFrontend Focus\n──────────────\nCore:      react-server-components\nUI:        ui-components, responsive-patterns\nPerf:      performance, vite-advanced\nA11y:      accessibility patterns\nSkipped:   database, async, infra\n```"},
    {"label": "DevOps focus", "description": "CI/CD, deployment, monitoring, infrastructure", "markdown": "```\nDevOps Focus\n────────────\nCI/CD:     devops-deployment\nInfra:     distributed-systems\nMonitor:   observability patterns\nSecurity:  security-patterns\nSkipped:   UI, components, API design\n```"}
  ],
  "multiSelect": true
}])

Custom Skill Suggestions

Based on pattern detection from Phase 1:

Detected patterns that could become custom skills:
  47 API routes   → Create "api-endpoint" skill (auto-generate: route + schema + migration + test)
  83 React comps  → Create "component" skill (auto-generate: component + props + story + test)
  8 deploy steps  → Create "deploy-checklist" skill (automate your DEPLOY.md)

To create any of these: see CONTRIBUTING-SKILLS.md in the plugin for authoring standards

Phase 5: MCP Recommendations

Check what's installed vs recommended:

# Read existing MCP config
Read(file_path=".mcp.json")  # project-level
Bash(command="cat ~/.claude/settings.json 2>/dev/null | python3 -c \"import json,sys; d=json.load(sys.stdin); print(json.dumps(d.get('mcpServers',{}), indent=2))\"")

MCP Recommendation Matrix

MCPWhen to RecommendInstall Effort
Context7Always — eliminates doc hallucinationZero (cloud, free)
MemoryAlways — knowledge graph persistenceLow (local npx)
Sequential ThinkingIf using Sonnet/Haiku subagentsLow (local npx)
TavilyIf web-research-workflow relevantMedium (needs API key, free tier)
NotebookLMIf many docs/READMEs for team RAGMedium (Google auth)
AgentationIf frontend UI work detectedMedium (npm install)
Phoenix/LangfuseIf LLM observability desired (local tracing, cost tracking)Medium (Docker, optional)

Present as toggles with impact labels. Show install commands for selected MCPs:

MCP Setup Commands:
  Context7:  Already configured ✓
  Memory:    /ork:configure mcp memory
  Tavily:    Sign up at app.tavily.com → /ork:configure mcp tavily

Phase 6: Readiness Score

Compute a composite score (0-10) from 6 dimensions:

DimensionWeightCalculation
Stack Coverage25%matched_skills / relevant_skills_for_detected_stack
Hook Protection20%hooks_active / total_hooks (from /ork:doctor logic)
MCP Enhancement15%installed_mcps / recommended_mcps
Memory Depth15%entity_count from mcp__memory__search_nodes (target: 50+)
Custom Skills15%custom_skills_created / suggested_customs
Agent Utilization10%1.0 if agents accessible, 0.5 if no MCPs limit agent capability

Score Presentation

OrchestKit Readiness Score: 7.2 / 10  (stable channel, v7.0.0)

  Stack Coverage  ████████░░  9/10  Python + React fully covered
  Hook Protection ████████░░  8/10  95 hooks active
  MCP Enhancement ██████░░░░  6/10  2/3 recommended MCPs active
  Memory Depth    ████░░░░░░  4/10  12 entities (target: 50+)
  Custom Skills   ██░░░░░░░░  2/10  0/3 suggested skills created
  Agent Utilization ████████░░  8/10  38 agents available

  Top improvement: Add /ork:remember patterns → +1.5 points

Memory Integration

Store the score for tracking over time:

mcp__memory__create_entities(entities=[{
  "name": "OrchestKit Setup Score",
  "entityType": "metric",
  "observations": [
    "Score: 7.2/10 on 2026-02-26",
    "Stack: Python + React + Next.js",
    "Gap: Memory depth (12/50 entities), Custom skills (0/3)"
  ]
}])

Phase 7: Improvement Plan

Generate prioritized, runnable recommendations:

Your Personalized Improvement Plan:

P0 (do now):
  $ /ork:remember "our API uses cursor pagination, never offset"
  $ /ork:remember "FastAPI + SQLAlchemy 2.0 async + Alembic migrations"
  $ /ork:remember "React 19 + TanStack Query + Zustand for state"
  → Seeds your knowledge graph. Agents use this context automatically.

P1 (this week):
  $ /ork:configure mcp tavily
  → Enables web research for up-to-date library docs.

  Create a custom skill per CONTRIBUTING-SKILLS.md for your most repeated pattern (47 routes detected).
  → e.g., "FastAPI endpoint with Pydantic schema, Alembic migration, and pytest"

P2 (ongoing):
  $ /ork:explore architecture
  → Deep analysis of your codebase structure.

  $ /ork:setup --rescan
  → Re-run in 2 weeks to track score improvement.

Save Plan to Memory

mcp__memory__create_entities(entities=[{
  "name": "OrchestKit Improvement Plan",
  "entityType": "plan",
  "observations": [
    "P0: Seed knowledge graph with 3 core patterns",
    "P1: Add Tavily MCP, create api-endpoint custom skill",
    "P2: Run /ork:explore architecture, rescan in 2 weeks"
  ]
}])

Phase 7b: CLAUDE.md Health Check

After the improvement plan, check if the user's CLAUDE.md could benefit from CC 2.1.59+ modular structure.

See CLAUDE.md Health Check for analysis steps, thresholds, @import syntax, and .claude/rules/ path-scoped rules.

# Quick check
Bash(command="wc -l CLAUDE.md 2>/dev/null | awk '{print $1}'")
Glob(pattern=".claude/rules/*.md")

If CLAUDE.md > 200 lines and no .claude/rules/ exist, recommend splitting. Show the output template from the reference doc.

Phase 8: Keybindings

Check for existing keybindings and offer to install recommended shortcuts:

# Check existing keybindings
Bash(command="cat ~/.claude/keybindings.json 2>/dev/null || echo '[]'")

Prompt the user:

AskUserQuestion(questions=[{
  "question": "Install recommended keybindings for top OrchestKit skills?",
  "header": "Keyboard shortcuts",
  "options": [
    {"label": "Yes, install keybindings (Recommended)", "description": "Adds 5 shortcuts: commit, verify, implement, explore, review-pr"},
    {"label": "Skip", "description": "No keyboard shortcuts"}
  ],
  "multiSelect": false
}])

If Yes: write or merge into ~/.claude/keybindings.json:

[
  {"key": "ctrl+shift+c", "command": "/ork:commit", "description": "Git commit with validation"},
  {"key": "ctrl+shift+v", "command": "/ork:verify", "description": "Run verification suite"},
  {"key": "ctrl+shift+i", "command": "/ork:implement", "description": "Implement feature"},
  {"key": "ctrl+shift+e", "command": "/ork:explore", "description": "Deep codebase exploration"},
  {"key": "ctrl+shift+r", "command": "/ork:review-pr", "description": "Review pull request"}
]

If the file already exists, merge — read existing entries, add only keybindings whose key is not already bound, then write back. Never overwrite user-defined bindings.

CLI Flags

FlagBehavior
(none)Full 8-phase wizard (includes 7b health check)
--rescanRe-run scan + score, skip safety phase
--score-onlyShow current readiness score (Phase 6 only)
--plan-onlyShow improvement plan (Phase 7 only)
--channelShow detected release channel only
  • ork:doctor — Health diagnostics (wizard uses its checks)
  • ork:configure — Detailed configuration (wizard recommends then links here)
  • ork:remember — Knowledge persistence (wizard seeds initial patterns)
  • ork:explore — Deep codebase analysis (wizard links for follow-up)
  • ork:help — Skill directory (wizard surfaces relevant subset)

References (1)

Claude Md Health

CLAUDE.md Health Check

When to Run

Phase 7b of the setup wizard — after the improvement plan, check if the user's CLAUDE.md could benefit from modular structure.

Analysis Steps

# Count CLAUDE.md lines
Bash(command="wc -l CLAUDE.md 2>/dev/null | awk '{print $1}'")

# Check for existing @imports
Grep(pattern="^@", path="CLAUDE.md", output_mode="count")

# Check for .claude/rules/ directory
Glob(pattern=".claude/rules/*.md")

Thresholds

LinesVerdictRecommendation
< 100HealthyNo action needed
100-200FineMention @imports exist, no pressure
200-500Recommend splitSuggest @imports or .claude/rules/
> 500Strongly recommendShow concrete split example

@import Syntax (CC 2.1.59+)

CLAUDE.md can import other files with @path/to/file syntax:

# Project Overview
Brief description here.

# Standards
@docs/coding-standards.md
@docs/api-conventions.md
@docs/testing-guide.md
  • Relative paths resolve from the file containing the import
  • Recursive imports supported (max depth 5)
  • Not evaluated inside code blocks
  • First use in a project triggers an approval dialog

.claude/rules/ Directory (CC 2.1.59+)

Alternative to @imports — auto-loaded markdown files:

.claude/rules/
├── code-style.md      # Always loaded (no frontmatter)
├── testing.md         # Always loaded
└── hooks-dev.md       # Conditionally loaded (has paths:)

Path-Scoped Rules

Add paths: YAML frontmatter to scope rules to specific directories:

---
paths:
  - "src/api/**/*.ts"
---
# API Development Rules
- All endpoints must include input validation
- Use standard error response format

Rules without paths: load unconditionally. Glob patterns supported: **/*.ts, src/**/*, *.\{ts,tsx\}.

User-Level Rules

Personal rules at ~/.claude/rules/ apply to all projects (lower priority than project rules).

Output Template

Healthy (< 200 lines)

CLAUDE.md Health: Good (87 lines)
  No changes needed.

Recommend Split (200-500 lines)

CLAUDE.md Health: Consider splitting (312 lines)

  CC 2.1.59+ supports modular instructions. Two options:

  Option A — @imports in CLAUDE.md:
    @docs/coding-standards.md
    @docs/api-conventions.md

  Option B — .claude/rules/ directory:
    .claude/rules/code-style.md     (always loaded)
    .claude/rules/api-rules.md      (loaded only for src/api/**)

  Benefits: less context noise per task, team can own separate rule files.

Strongly Recommend (> 500 lines)

CLAUDE.md Health: Too large (634 lines)

  Large CLAUDE.md files degrade Claude's performance — too much context
  loaded for every task regardless of relevance.

  Recommended structure:
    CLAUDE.md (< 100 lines) — project overview + @imports
    .claude/rules/code-style.md — coding conventions
    .claude/rules/testing.md — test patterns
    .claude/rules/api.md — API standards (paths: src/api/**)
    .claude/rules/frontend.md — UI rules (paths: src/components/**)
Edit on GitHub

Last updated on