Skip to content
cccskills
FreePublished on GitHub

workflow-state

Internal skill for managing workflow lifecycle state in sdd/workflows/. Provides session-independent, resumable workflow tracking.

The English summary is being prepared. Showing the original description.

See how to install

Files included (6)

  • SKILL.md6.2 KB
  • resources/internal-api.md10.9 KB
  • resources/recovery.md3.2 KB
  • resources/workflow-yaml-schema.md3.7 KB
  • schemas/input.schema.json2.0 KB
  • schemas/output.schema.json1.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Workflow State Skill

Purpose

Manages sdd/workflows/<id>-<name>/ state - tracking where each item is in the solicitation → review → approval → implementation lifecycle.

This is process state management, not project task management.

Core Principle: Zero Session Context

ALL workflow state is persisted in sdd/ files. A new session must be able to resume with ZERO knowledge of what happened before:

  • No conversation history
  • No in-memory state
  • No assumptions

Read the files, know the state. This enables aggressive context compaction and allows users to clear sessions freely.

Directory Structure

sdd/
├── sdd-settings.yaml
├── archive/
│   ├── external-specs/         # External specs archived here (read-only)
│   │   └── 20260205-1430-feature-spec.md  # yyyymmdd-HHmm-lowercased-filename.md
│   ├── revised-specs/          # Specs removed during decomposition revision
│   │   └── 20260205-1430-a1b2c3-user-auth-03-password-reset/
│   │       └── SPEC.md
│   └── workflow-regressions/   # Work archived during phase regression
│       └── 20260205-1430-user-auth-1-impl/
│           ├── changes.patch   # Git patch for committed changes
│           ├── stash.patch     # Git stash for uncommitted changes
│           ├── src/            # Implementation files
│           └── metadata.yaml   # Regression context
└── workflows/                  # Multiple concurrent workflows supported
    ├── a1b2c3-user-auth/       # One workflow (user A, branch feature-x)
    │   ├── workflow.yaml       # This workflow's state
    │   └── drafts/
    │       ├── 01-user-management/
    │       │   ├── context.md
    │       │   ├── 01-api-contracts/
    │       │   │   └── context.md
    │       │   └── 02-auth-service/
    │       │       └── context.md
    │       └── 02-notifications/
    │           └── context.md
    └── x7y8z9-notifications/   # Another workflow (user B, branch feature-y)
        ├── workflow.yaml
        └── drafts/...

Status Progression (Four-Field Model)

The workflow uses four separate status fields for granular tracking:

Spec Phase

  1. spec_status: pending → in_progress → ready_for_review → approved

Plan Phase (only after ALL specs approved)

  1. plan_status: pending → in_progress → approved

Implementation Phase (only after ALL plans approved)

  1. impl_status: pending → in_progress → complete

Review Phase (after implementation)

  1. review_status: pending → ready_for_review → approved

Key Difference from Previous Design:

The old design had a single status field with immediate spec_approved → plan_review transition. The new design:

  1. spec_status: approved IS a resting state - Phase gating requires ALL specs approved before ANY planning starts
  2. Plan phase is separate - Only begins after checkpoint "All specs approved"
  3. Review phase is explicit - User must approve implementation, not just verify tests pass

Phase Gating Rules

GateCondition
Start planningALL items have spec_status: approved
Start implementingALL items have plan_status: approved
Complete workflowALL items have review_status: approved
Approve specNo OPEN questions in Requirements Discovery section
Approve specNo dependencies with spec_status: needs_rereview

Resource Files

For detailed guidance, read these on-demand:

Input

Schema: schemas/input.schema.json

Accepts operation type and operation-specific parameters for workflow lifecycle management.

Output

Schema: schemas/output.schema.json

Returns workflow ID, current phase, and progress tracking.

Workflow ID Generation

Workflow IDs are short, unique identifiers:

  1. Generate 6 random alphanumeric characters (a-z, 0-9)
  2. Check for collision with existing workflows
  3. If collision, regenerate
  4. Format: a1b2c3, x7y8z9, etc.

Change ID Format

Change IDs are derived from the workflow name:

  • Format: <name>-<seq> (e.g., user-auth-1, user-auth-2)
  • name: The workflow's user-chosen name
  • seq: Sequence number within workflow (1, 2, 3, ...)
  • Unique across concurrent workflows (different workflows = different name prefix)

Epic Handling

  • Each epic is an item with type: epic and children array
  • Children are features within the epic
  • Epic status tracks overall progress:
    • pending until first child starts
    • complete when all children complete
  • Epic itself doesn't get a change_id - only leaf features get change_ids
  • Epic folder in changes/ contains child change folders

Cleanup Behavior

  • When item moves from drafts/ to changes/:
    • Keep context.md in drafts for reference
    • Delete solicitation-workflow.yaml
  • When item is marked complete:
    • Remove from workflow.yaml items array
  • When all items complete:
    • Delete entire sdd/workflows/<id>-<name>/ directory including workflow.yaml
  • Completed items remain in changes/ permanently (that's the source of truth)

INDEX.md Handling

  • changes/INDEX.md is updated when items move to changes/ directory
  • No separate INDEX.md in sdd/workflows/ - workflow.yaml is the source of truth
  • workflow_state.ready_for_review() updates changes/INDEX.md with new entry

Consumers

  • /sdd orchestrator — creates workflows and manages lifecycle
  • spec-solicitation skill — reads context, saves specs
  • change-creation skill — saves plans
  • external-spec-integration skill — creates workflows and items from decomposition

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Scaffolds Node.js/TypeScript backend components with CMDO architecture, driven by component settings.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

CMDO architecture standards for Node.js/TypeScript backends with strict layer separation.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Intent-to-command mappings for fullstack-typescript tech pack features.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Create change specification and implementation plan with dynamic phase generation. Supports feature, bugfix, refactor, and epic types.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

Orchestrates the full change lifecycle — routes actions to phase-specific sub-files.

The English summary is being prepared. Showing the original description.

LiorCohen/sdd43Updated Feb 24, 2026

See all skills by LiorCohen

Report a problem with this skill