Skip to content
Development
Command

/craft-analyze

Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.

From plugin
4031 skills27 agents31 commands7 hooks1 MCP
shell
$ npx -y skills add drobins25/craft --agent claude-code

Ships with craft. Installing the plugin gets this command.

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/craft-analyze

Context preview

What this command does when you run it.

Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools.

Command definition

craft-analyze.md
name: analyze
description: "Post-cycle analysis — QA, UX, Creative, and Style audits using MCP browser tools."

Analyze

Run comprehensive analysis on what you've built. Findings persist between sessions — nothing gets lost.

Analysis Types

| Type | Agent | Finds | |------|-------|-------| | **QA** | qa-analyzer | Bugs, errors, edge cases | | **UX** | ux-analyzer | Friction, accessibility, heuristic violations | | **Creative** | creative-analyzer | Delight opportunities, feature ideas | | **Style** | style-analyzer | Token violations, pattern drift | | **Walkthrough** | walkthrough-analyzer | "Does it actually work for a human?" - clicks everything, checks every state |

Flow

Step 1: Check Pending Findings

Before any new analysis, check for existing pending findings of the requested type.

**If pending findings exist:**

> "You have [N] pending [type] findings from [date]: > > **Critical/High:** [count] > **Medium:** [count] > **Low:** [count] > > What would you like to do?"

Use **AskUserQuestion**:

question: "What would you like to do with pending findings?"
header: "Pending"
options:
  - label: "Review pending findings now"
    description: "Go through existing findings before new analysis"
  - label: "Continue analysis (keep pending)"
    description: "Run new analysis, existing findings stay queued"
  - label: "Clear pending and start fresh"
    description: "Dismiss old findings, start new analysis"

**If user provides custom text:** Ask a clarifying AskUserQuestion before proceeding.

**If user chooses "Review pending"** → Go to Step 5 (Review Findings)

**If user chooses "Continue" or "Clear"** → Proceed to Step 2

Step 2: Select Analysis Type

> "What kind of analysis?"

Use **AskUserQuestion**:

question: "What kind of analysis?"
header: "Type"
options:
  - label: "QA Pass"
    description: "Find bugs and errors"
  - label: "UX Insights"
    description: "Usability and accessibility review"
  - label: "Creative Exploration"
    description: "Find delight opportunities"
  - label: "Style Audit"
    description: "Design consistency check"
  - label: "Walkthrough"
    description: "Click everything in the live app, report what doesn't feel right"

**Note:** "Full Analysis" runs all types sequentially. If user selects "Other" and mentions "full" or "all", run all types.

**If user provides custom text:** Ask a clarifying AskUserQuestion to confirm which analysis type(s) they want.

Step 3: Select Scope

> "What should I analyze?"

Use **AskUserQuestion**:

question: "What should I analyze?"
header: "Scope"
options:
  - label: "Current cycle"
    description: "All stories in active cycle"
  - label: "Specific story"
    description: "Pick one story from the cycle"
  - label: "Specific pages"
    description: "I'll specify which pages/URLs"
  - label: "Whole application"
    description: "Full app analysis"

**If user provides custom text:** Ask a clarifying AskUserQuestion to confirm the scope.

**If user selects "Specific pages":**

Use **AskUserQuestion**:

question: "Which pages should I analyze?"
header: "Pages"
options:
  - label: "[Known page 1]"
    description: "Based on project structure"
  - label: "[Known page 2]"
  - label: "[Known page 3]"

**If scope is ambiguous or Claude is unsure:**

Use **AskUserQuestion**:

question: "I want to make sure I analyze the right things. Can you confirm?"
header: "Clarify"
options:
  - label: "[Option based on understanding]"
  - label: "[Alternative interpretation]"
  - label: "Let me explain differently"

**IMPORTANT:** Always confirm scope before running analysis. If uncertain about:

  • Which URLs to visit
  • Which components to inspect
  • What user flows to test
  • What the acceptance criteria mean

Ask first. Don't assume.

Step 4: Run Analysis

**Check MCP availability first.** Chrome-devtools MCP should be available — the Craft plugin bundles it automatically.

If chrome-devtools MCP tools are not available:

> "Chrome DevTools MCP should be available through the Craft plugin, but I'm not seeing it. > > Try restarting Claude Code (`exit` then `claude`) to reload the plugin's MCP servers. > > Then run `/craft:analyze` again."

**If MCP is available**, **INVOKE the appropriate analyzer agent using the Task tool**:

  • QA analysis: `craft:qa-analyzer`
  • UX analysis: `craft:ux-analyzer`
  • Creative analysis: `craft:creative-analyzer`
  • Style analysis: `craft:style-analyzer`
  • Walkthrough: `craft:walkthrough-analyzer`

Pass the confirmed scope and any relevant context to the agent.

**For walkthrough analysis**, assemble a structured brief before invoking the agent (the agent does NOT read story files - it only interacts with the browser):

1. Read `project.md` for dev server command and port 2. For each `type: ui` story in scope, extract: feature name, trigger, expected behavior 3. Pass the brief with dev server command, URL, test plan, and story context 4. The agent returns findings - you write them to `.craft/analysis/pending/walkthrough.yaml`

**After the agent completes, YOU (the orchestrator) must write findings to disk.** The analyzer agents have Write/Edit disabled — they return findings in their output text only.

**Write findings to** `.craft/analysis/pending/[type].yaml`: 1. Create `.craft/analysis/pending/` directory if it doesn't exist: `mkdir -p .craft/analysis/pending` 2. Read the existing pending file (if any) to preserve prior findings 3. Parse the agent's output for findings (bugs, issues, opportunities) 4. Append new findings to the YAML file using the template format from `${CLAUDE_PLUGIN_ROOT}/templates/analysis/pending/[type].yaml` 5. Set `updated:` to current date and `scope:` to what was analyzed

**This is critical.** If you don't write findings to disk, they exist only in conversation context and will be lost on compaction.

User can **stop at any time** — write all findings discovered so far before stopping.

**During analysis, Claude should:**

Read more
Read it on GitHub ↗

Showing the first part of this file.

Ships withcraft

Stop Vibing. Start Crafting. Claude Code plugin: guided + controlled development orchestration harness with built-in workflow + state management, for designing + building durable, production-ready software through the entire product lifecycle - new projects

Get the whole plugin, auto-invoked
Stats
40
Stars
0
Views
5
Forks
Active
Maintenance
Shell
Language
MIT
License
2d ago
Last commit
3mo ago
Created

Repo: drobins25/craft