Skip to content
Back to skills

Collection

ASecurity

Safely transition task state with validation and prerequisite checks

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
testinggobashtestinggitapiperformance

Works with

  • api

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

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

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-9798f829/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-9798f829)

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
---
name: state-transition
description: Safely transition task state with validation and prerequisite checks
allowed-tools: Bash, Read, Write
---

# State Transition Skill

**Purpose**: Safely transition task.json state with automatic prerequisite validation and proper timestamp tracking.

**Performance**: Reduces state transition errors, ensures prerequisites met

## When to Use This Skill

### ✅ Use state-transition When:

- Need to transition task to new state
- Want automatic prerequisite validation
- Ensuring state machine compliance
- Recording state transition timestamps

### ❌ Do NOT Use When:

- State already correct
- Prerequisites not yet met (will fail validation)
- Task doesn't exist yet
- Working outside task protocol

## What This Skill Does

### 1. Validates Current State

```bash
# Checks task in expected current state
# Prevents invalid transitions (e.g., INIT → VALIDATION)
```

### 2. Checks Prerequisites

```bash
# For each state transition, validates:
- Required files exist
- Required flags present
- Required conditions met
```

### 3. Updates State

```bash
# Updates task.json:
jq '.state = "NEW_STATE" | .transitions += [{
  "from": "OLD_STATE",
  "to": "NEW_STATE",
  "timestamp": "2025-11-11T12:34:56-05:00"
}]' task.json > tmp.json
mv tmp.json task.json
```

### 4. Records Transition

```bash
# Logs transition history
# Tracks timestamps for metrics
# Enables state machine audit
```

## Usage

### Basic State Transition

```bash
# Transition from INIT to CLASSIFIED
TASK_NAME="implement-formatter-api"
FROM_STATE="INIT"
TO_STATE="CLASSIFIED"

/workspace/main/.claude/scripts/state-transition.sh \
  --task "$TASK_NAME" \
  --from "$FROM_STATE" \
  --to "$TO_STATE"
```

### With Automatic Validation

```bash
# Skill automatically validates prerequisites
TASK_NAME="implement-formatter-api"
TO_STATE="SYNTHESIS"

/workspace/main/.claude/scripts/state-transition.sh \
  --task "$TASK_NAME" \
  --to "$TO_STATE" \
  --auto-validate true
```

## State Machine

### Valid State Flow

```
INIT
  ↓
CLASSIFIED
  ↓
REQUIREMENTS
  ↓
SYNTHESIS
  ↓
IMPLEMENTATION
  ↓
VALIDATION
  ↓
AWAITING_USER_APPROVAL
  ↓
COMPLETE
  ↓
CLEANUP
```

### State Descriptions

**INIT**: Task initialized, worktrees created
**CLASSIFIED**: Task categorized, ready for requirements
**REQUIREMENTS**: Stakeholder agents gathering requirements
**SYNTHESIS**: Main agent synthesizing implementation plan
**IMPLEMENTATION**: Stakeholder agents implementing features
**VALIDATION**: Running build/tests/checks
**AWAITING_USER_APPROVAL**: Waiting for user to approve changes
**COMPLETE**: Merged to main, ready for cleanup
**CLEANUP**: Branches/worktrees removed, task archived

## Prerequisites by Transition

### INIT → CLASSIFIED

```bash
Prerequisites:
- task.json exists
- task.md exists
- All worktrees created
- All branches created

Validation:
ls /workspace/tasks/{task}/task.json
ls /workspace/tasks/{task}/task.md
git worktree list | grep {task}
```

### CLASSIFIED → REQUIREMENTS

```bash
Prerequisites:
- Task classified (task.md has description)
- All stakeholder agents invoked

Validation:
grep -q "## Requirements" /workspace/tasks/{task}/task.md
```

### REQUIREMENTS → SYNTHESIS

```bash
Prerequisites:
- All 3 requirement reports exist:
  * {task}-architect-requirements.md
  * {task}-tester-requirements.md
  * {task}-formatter-requirements.md
- All agents completed successfully

Validation:
verify-requirements-complete skill
```

### SYNTHESIS → IMPLEMENTATION

```bash
Prerequisites:
- Implementation plan in task.md
- User approval flag exists:
  * user-approved-synthesis.flag

Validation:
grep -q "## Implementation Plan" /workspace/tasks/{task}/task.md
test -f /workspace/tasks/{task}/user-approved-synthesis.flag
```

### IMPLEMENTATION → VALIDATION

```bash
Prerequisites:
- All agents completed implementation
- All agent work merged to task branch

Validation:
jq -r '.agents | to_entries | .[] | select(.value.merged == false)' task.json
# Should return empty
```

### VALIDATION → AWAITING_USER_APPROVAL

```bash
Prerequisites:
- Build succeeds
- All tests pass
- No Checkstyle violations
- No PMD violations

Validation:
mvn clean verify
```

### AWAITING_USER_APPROVAL → COMPLETE

```bash
Prerequisites:
- User approval flag exists:
  * user-approved-changes.flag
- Changes merged to main

Validation:
test -f /workspace/tasks/{task}/user-approved-changes.flag
git log main --oneline | grep -q {task}
```

### COMPLETE → CLEANUP

```bash
Prerequisites:
- Task merged to main
- todo.md updated (task marked complete)
- changelog.md updated

Validation:
git log main -1 --grep={task}
grep -q "\[x\] {task}" /workspace/main/todo.md
grep -q "{task}" /workspace/main/changelog.md
```

## Workflow Integration

### Typical State Progression

```markdown
1. Task initialization
   [task-init skill]
   → INIT state

2. Classify task
   [state-transition: INIT → CLASSIFIED]

3. Gather requirements
   [gather-requirements skill]
   → REQUIREMENTS state

4. Verify requirements
   [verify-requirements-complete skill]

5. Synthesize plan
   [synthesize-plan skill]
   → SYNTHESIS state

6. Get approval
   [checkpoint-approval skill]
   [state-transition: SYNTHESIS → IMPLEMENTATION]

7. Implement features
   [Invoke agents]
   → IMPLEMENTATION state

8. Validate implementation
   [Run build/tests]
   → VALIDATION state

9. Get approval
   [checkpoint-approval skill]
   [state-transition: AWAITING_USER_APPROVAL → COMPLETE]

10. Archive task
    [archive-task skill]
    [state-transition: COMPLETE → CLEANUP]

11. Cleanup
    [task-cleanup skill]
```

## Output Format

Script returns JSON:

```json
{
  "status": "success",
  "message": "State transition successful",
  "task_name": "implement-formatter-api",
  "from_state": "SYNTHESIS",
  "to_state": "IMPLEMENTATION",
  "prerequisites_met": true,
  "transition_timestamp": "2025-11-11T12:34:56-05:00",
  "duration_in_state": "PT15M30S",
  "timestamp": "2025-11-11T12:34:56-05:00"
}
```

**Or if prerequisites not met**:

```json
{
  "status": "failed",
  "message": "Prerequisites not met for transition",
  "task_name": "implement-formatter-api",
  "from_state": "SYNTHESIS",
  "to_state": "IMPLEMENTATION",
  "prerequisites_met": false,
  "missing_prerequisites": [
    "user-approved-synthesis.flag not found"
  ],
  "error": "Cannot transition without user approval",
  "timestamp": "2025-11-11T12:34:56-05:00"
}
```

## Invalid Transitions

### Skipping States

```bash
❌ INVALID: INIT → SYNTHESIS
Reason: Must go through CLASSIFIED, REQUIREMENTS first

✅ VALID: INIT → CLASSIFIED → REQUIREMENTS → SYNTHESIS
```

### Backward Transitions

```bash
❌ INVALID: VALIDATION → IMPLEMENTATION
Reason: Cannot go backward (use re-invoke agents instead)

✅ VALID: Stay in VALIDATION, re-invoke agents for fixes
```

### Duplicate Transitions

```bash
❌ WARNING: SYNTHESIS → SYNTHESIS
Reason: Already in target state (no-op)

✅ VALID: Check current state before transitioning
```

## Safety Features

### Precondition Validation

- ✅ Verifies task exists
- ✅ Checks task.json readable/writable
- ✅ Validates from_state matches current
- ✅ Confirms to_state is valid next state

### Prerequisite Enforcement

- ✅ Checks all required files exist
- ✅ Validates all required flags present
- ✅ Confirms all required conditions met
- ✅ Blocks transition if prerequisites missing

### State History Tracking

- ✅ Records all transitions
- ✅ Timestamps each transition
- ✅ Tracks duration in each state
- ✅ Enables metrics and auditing

### Error Handling

On any error:
- Does not modify task.json
- Reports specific prerequisite failures
- Returns JSON with error details
- Provides recovery actions

## Metrics Tracking

### State Duration Metrics

```json
{
  "task_name": "implement-formatter-api",
  "transitions": [
    {"from": "INIT", "to": "CLASSIFIED", "timestamp": "...", "duration": "PT2M"},
    {"from": "CLASSIFIED", "to": "REQUIREMENTS", "timestamp": "...", "duration": "PT45M"},
    {"from": "REQUIREMENTS", "to": "SYNTHESIS", "timestamp": "...", "duration": "PT10M"},
    ...
  ],
  "total_duration": "PT2H15M"
}
```

### Phase Metrics

```bash
# Time in each phase:
- REQUIREMENTS: 45 minutes (agents working)
- SYNTHESIS: 10 minutes (planning)
- IMPLEMENTATION: 1 hour (agents implementing)
- VALIDATION: 15 minutes (testing)
- Total: 2 hours 15 minutes
```

## Related Skills

- **task-init**: Creates task in INIT state
- **verify-requirements-complete**: Validates REQUIREMENTS → SYNTHESIS
- **checkpoint-approval**: Manages approval prerequisites
- **task-cleanup**: Final transition to CLEANUP

## Troubleshooting

### Error: "Invalid state transition"

```bash
# Trying to skip states
From: INIT
To: SYNTHESIS

Fix: Go through intermediate states:
1. INIT → CLASSIFIED
2. CLASSIFIED → REQUIREMENTS
3. REQUIREMENTS → SYNTHESIS
```

### Error: "Prerequisites not met"

```bash
# Missing required files/flags
Missing: user-approved-synthesis.flag

Fix:
1. Complete prerequisite step (get user approval)
2. Create required flag
3. Retry transition
```

### Error: "Task not in expected state"

```bash
# from_state doesn't match actual state
Expected: SYNTHESIS
Actual: REQUIREMENTS

Fix:
1. Check current state: jq -r '.state' task.json
2. Update from_state parameter
3. Or complete missing state transition
```

### State Stuck (Cannot Progress)

```bash
# Prerequisites can't be met
State: SYNTHESIS → IMPLEMENTATION
Blocker: User approval not obtained

Fix:
1. Present plan to user
2. Wait for explicit approval
3. Create approval flag
4. Retry transition
```

## Common Transition Patterns

### Pattern 1: Sequential (Normal Flow)

```bash
# Follow state machine exactly
INIT → CLASSIFIED → REQUIREMENTS → SYNTHESIS →
IMPLEMENTATION → VALIDATION → AWAITING_USER_APPROVAL →
COMPLETE → CLEANUP
```

### Pattern 2: Iteration (Fix Loop)

```bash
# Stay in VALIDATION, re-invoke agents
VALIDATION (fails) → re-invoke agents → VALIDATION (retry)
# Don't transition backward, fix in place
```

### Pattern 3: Fast-Forward (Skip Optional States)

```bash
# Some states optional for simple tasks
❌ Cannot skip: REQUIREMENTS, SYNTHESIS (mandatory)
⚠️  Cannot skip checkpoints (approval required)
```

## Implementation Notes

The state-transition script performs:

1. **Validation Phase**
   - Check task exists
   - Verify task.json readable
   - Validate from_state matches current
   - Confirm to_state is valid

2. **Prerequisite Check Phase**
   - Load prerequisites for transition
   - Check each prerequisite
   - Report missing prerequisites
   - Block if any missing

3. **Transition Phase**
   - Calculate duration in current state
   - Update state field
   - Append transition record
   - Update timestamp

4. **Persistence Phase**
   - Write updated task.json
   - Verify write successful
   - Validate JSON structure

5. **Verification Phase**
   - Read task.json back
   - Confirm state updated
   - Validate transition recorded
   - Return success status

6. **Metrics Phase**
   - Calculate phase duration
   - Update metrics
   - Log transition
   - Return detailed results

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.5 KB

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…