Skip to content
Back to skills

Blocker Detection

ASecurity

Identifies missing prerequisites (blockers) for each `/architect:` command based on `_state.json` field requirements. Used by `/architect:next-steps`, `/architect:check-state`, and validation commands to determine which commands can run and which are blocked.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aigogitsecuritydocumentation

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add navraj007in/architecture-cowork-plugin --skill blocker-detection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Blocker Detection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Blocker Detection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/navraj007in-blocker-detection/badge)](https://www.skillsdirectory.com/skills/navraj007in-blocker-detection)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Blocker Detection Skill

Identifies missing prerequisites (blockers) for each `/architect:` command based on `_state.json` field requirements. Used by `/architect:next-steps`, `/architect:check-state`, and validation commands to determine which commands can run and which are blocked.

## When to Use

Invoke this skill to determine if a command can execute or what prerequisites must be completed first. Blocker detection:
- Prevents wasted time on commands that will fail due to missing inputs
- Shows users exact remediation steps ("Run X first, then retry Y")
- Enables dependency graph visualization
- Powers `/architect:next-steps` prerequisite analysis

## Input

Provide:
1. `_state.json` (current project state)
2. Target command name (e.g., `"generate-tests"`, `"setup-monitoring"`)
3. Optional: verbose mode for detailed blocker reasoning

## Output

A blocker analysis object:

```json
{
  "command": "generate-tests",
  "can_execute": false,
  "blocking_count": 1,
  "blockers": [
    {
      "blocker_id": "B-001",
      "severity": "critical",
      "field": "components",
      "reason": "Generate-tests needs scaffolded components to generate tests from",
      "missing": true,
      "fix": "Run /architect:scaffold first",
      "fix_eta_minutes": 15,
      "blocking_next_steps": [
        "generate-tests",
        "build-verification",
        "production-readiness"
      ]
    }
  ],
  "unblocked_by": [
    "scaffold",
    "scaffold-component"
  ],
  "dependency_chain": "scaffold (15min) → generate-tests (45min) → production-readiness (30min)",
  "total_unblock_time_minutes": 90
}
```

## Blocker Categories

### 1. Missing SDL or State File (CRITICAL)

**Blocker structure:**
```json
{
  "blocker_id": "B-1xx",
  "severity": "critical",
  "type": "missing_input",
  "field": "solution.sdl.yaml OR _state.json",
  "reason": "Cannot proceed without architecture definition",
  "fix": "Run /architect:blueprint or /architect:sdl first",
  "fix_eta_minutes": 20
}
```

**Commands affected:**
- Any command that reads SDL (scaffold, design-system, generate-data-model, etc.)
- Any command that depends on state (check-state, next-steps, production-readiness, etc.)

### 2. Missing Scaffold (CRITICAL for code-generation commands)

**Blocker structure:**
```json
{
  "blocker_id": "B-2xx",
  "severity": "critical",
  "type": "missing_scaffold",
  "field": "components[].name",
  "reason": "Command needs scaffolded components to generate code for",
  "fix": "Run /architect:scaffold first",
  "fix_eta_minutes": 15
}
```

**Commands affected:**
- `generate-tests` (needs components to test)
- `security-scan` (needs code to scan)
- `setup-monitoring` (needs service structure to instrument)
- `generate-docs` (needs files to document)
- `accessibility-audit` (needs rendered components)

### 3. Missing Data Model (MEDIUM for features that need entity definitions)

**Blocker structure:**
```json
{
  "blocker_id": "B-3xx",
  "severity": "medium",
  "type": "missing_data_model",
  "field": "entities",
  "reason": "Command generates tests/docs that reference entity types",
  "fix": "Run /architect:generate-data-model first",
  "fix_eta_minutes": 10
}
```

**Commands affected:**
- `generate-tests` (better test fixtures with entity schema)
- `generate-data-model` (needs entities first)
- `load-test` (needs entity sizes for payload generation)

### 4. Missing Design Tokens (MEDIUM for UI commands)

**Blocker structure:**
```json
{
  "blocker_id": "B-4xx",
  "severity": "medium",
  "type": "missing_design_tokens",
  "field": "design (primary color, fonts, etc.)",
  "reason": "Command needs design direction to apply tokens consistently",
  "fix": "Run /architect:design-system first",
  "fix_eta_minutes": 15
}
```

**Commands affected:**
- `scaffold-component` (applies design tokens to new components)
- `prototype` (needs design palette)
- `wireframes` (needs color/font specs)

### 5. Missing Blueprint (LOW-MEDIUM for planning commands)

**Blocker structure:**
```json
{
  "blocker_id": "B-5xx",
  "severity": "low",
  "type": "missing_blueprint",
  "field": "blueprint",
  "reason": "Blueprint provides architecture decisions and patterns",
  "fix": "Run /architect:blueprint first",
  "fix_eta_minutes": 20
}
```

**Commands affected:**
- `cost-estimate` (better estimates with architecture detail)
- `load-test` (needs service interaction diagram)
- `technical-roadmap` (needs architecture context)

### 6. Missing Compliance/Monitoring (LOW-MEDIUM for launch gates)

**Blocker structure:**
```json
{
  "blocker_id": "B-6xx",
  "severity": "medium",
  "type": "missing_compliance",
  "field": "monitoring OR compliance",
  "reason": "Launch gates require observability and regulatory sign-off",
  "fix": "Run /architect:setup-monitoring and /architect:compliance first",
  "fix_eta_minutes": 60
}
```

**Commands affected:**
- `launch-check` (gates on monitoring + compliance)
- `production-readiness` (gates on enterprise readiness)

## Blocker Severity Levels

| Level | Meaning | Action |
|-------|---------|--------|
| **critical** | Command CANNOT run at all without this prerequisite | Block immediately, show remediation path |
| **medium** | Command can run with degraded output; results less useful without this | Warn user, allow proceed with caveats |
| **low** | Command runs fully; output would be richer with this | Inform user, suggest but don't force |

## Dependency Chain Visualization

Show the full unblocking path as a text diagram:

```
Current blockers: scaffold

Unblock path:
  scaffold (15 min)
    ↓
  install-deps (5 min)
    ↓
  build-verify (10 min)
    ↓
  generate-tests (45 min)
    ↓
  production-readiness (30 min)

Total time: 105 minutes
```

## Blocker Resolution Rules

For each blocker, show:
1. **Blocker ID** (B-NNN for auditability)
2. **Severity** (critical/medium/low)
3. **Field that's missing**
4. **Human explanation** (1 sentence why it matters)
5. **Fix command** (what to run)
6. **ETA** (minutes to unblock)
7. **Cascading effects** (what else becomes unblocked after this)

## Commands and Their Blockers

### Blueprint / Architecture Commands

| Command | Blockers | Severity | Fix |
|---------|----------|----------|-----|
| `blueprint` | None (can run on empty state) | — | — |
| `sdl` | None (can run on empty state) | — | — |
| `design-system` | `design` field from blueprint | low | Run `/architect:blueprint` first |
| `generate-data-model` | `entities` in SDL; `components` in scaffold | medium | Run `/architect:scaffold` and provide entities in SDL |
| `visualise` | SDL or state file | critical | Run `/architect:blueprint` or `/architect:sdl` |

### Code Generation Commands

| Command | Blockers | Severity | Fix |
|---------|----------|----------|-----|
| `scaffold` | SDL (`solution.sdl.yaml` or state) | critical | Run `/architect:blueprint` first |
| `scaffold-component` | Existing scaffold | critical | Run `/architect:scaffold` first |
| `implement` | Existing scaffold | critical | Run `/architect:scaffold` first |
| `generate-tests` | Components (scaffold) + test framework choice | critical | Run `/architect:scaffold` first |
| `review` | Source files | critical | Run `/architect:scaffold` first |

### Production & Observability Commands

| Command | Blockers | Severity | Fix |
|---------|----------|----------|-----|
| `setup-monitoring` | Service structure (scaffold) | critical | Run `/architect:scaffold` first |
| `setup-cicd` | Scaffold + git repo | critical | Run `/architect:scaffold` and `git init` |
| `compliance` | Scaffold (for code scanning) | medium | Run `/architect:scaffold` first (can scan SDL for policy gaps) |
| `security-scan` | Source files | medium | Run `/architect:scaffold` first |
| `load-test` | Scaffold + service endpoints | medium | Run `/architect:scaffold` and `/architect:implement` |
| `launch-check` | Scaffold + build artifacts | critical | Run `/architect:scaffold` and build locally |
| `production-readiness` | Monitoring + compliance + tests | critical | Run monitoring, compliance, and generate-tests first |

### Documentation & Planning Commands

| Command | Blockers | Severity | Fix |
|---------|----------|----------|-----|
| `generate-docs` | Scaffold (optional) | low | Run `/architect:scaffold` for better docs, but can generate from SDL alone |
| `cost-estimate` | Tech stack + architecture details | low | Run `/architect:blueprint` for better estimates |
| `technical-roadmap` | Blueprint | low | Run `/architect:blueprint` first |
| `user-journeys` | Personas + use cases | low | Provide in SDL or use `/architect:user-personas` |
| `problem-validation` | Problem statement | low | Define in SDL |

## Usage in Commands

**From `/architect:next-steps`:**
```pseudo
for each candidate_command in [top_10_commands]:
  blockers = blocker_detection(candidate, state)
  if blockers.can_execute == false:
    score -= dependency_cost(blockers.blocking_count)
    show blocker count in recommendation
    show unblock_eta in time estimate
  else:
    score += points (command is ready)
```

**From `/architect:check-state`:**
```pseudo
for each command:
  blockers = blocker_detection(command, state)
  if blockers.critical_count > 0:
    report "Command X blocked by Y. Run Z to unblock."
```

**From user error handling:**
```pseudo
if command fails with "missing prerequisite":
  blockers = blocker_detection(command, state)
  show user: "I need X to continue. Run Y first (est. N minutes). See dependency chain above."
```

## Edge Cases

### Command is blocked by itself
**Example:** `scaffold-component` exists but no initial scaffold

```json
{
  "command": "scaffold-component",
  "can_execute": false,
  "blockers": [{
    "reason": "Need initial scaffold with base structure first",
    "fix": "Run /architect:scaffold to create the initial project structure"
  }]
}
```

### Multiple independent paths to unblock
**Example:** `production-readiness` needs both monitoring AND compliance

```json
{
  "command": "production-readiness",
  "can_execute": false,
  "blockers": [
    { "fix": "Run /architect:setup-monitoring (30 min)" },
    { "fix": "Run /architect:compliance (20 min)" }
  ],
  "note": "Paths are independent; can run in parallel"
}
```

### Optional blocker
**Example:** `generate-tests` works without entities, but better with them

```json
{
  "command": "generate-tests",
  "can_execute": true,
  "blockers": [{
    "severity": "low",
    "type": "missing_entities",
    "reason": "Tests will be generic without entity type information",
    "fix": "Run /architect:generate-data-model for richer fixtures"
  }],
  "note": "Can proceed, but recommend completing blocker first"
}
```

## Implementation Notes

- **Fast lookup:** Blockers are statically defined per command (not computed from graph analysis)
- **No cascades beyond 3 levels:** If unblocking X requires Y which requires Z, show Z but don't compute full graph beyond 3 levels
- **Optimistic:** if a command might work without a blocker (e.g., generate-tests can work with just SDL), mark blocker as `"can_skip": true` with a warning
- **Audit trail:** every blocker detection gets a timestamp and can be logged to `_activity.jsonl` for investigation

## Related Commands

- `/architect:next-steps` — uses blockers to calculate recommendation scores and unblock ETAs
- `/architect:check-state` — uses blockers to recommend prerequisite commands
- `/architect:production-readiness` — uses blockers to gate launch (critical blockers = launch not ready)
- `skills/dependency-graph` — visualizes full command dependency topology

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.