Deterministic Spec-Driven Harness • v0.5.47

From Spec to Delivery

Workflow Skills

Spec in. Named pipeline. Reviewed pull request out. Any coding agent. GitHub and Azure DevOps.

SCORE ≥ 9
Preset:
$ npx --yes github:jpolvora/workflow-skills
≥ 9 / 10
Ledger-derived verify score gate (fail-closed)
62 Skills
Shipped across 5 architectural tiers
2 Speeds
Standard (10 steps) & Lite (6 steps)
Dual SCM
Identical intents for GitHub & Azure DevOps

Features

A spec-driven pipeline: the spec is source of truth, gates are named, and the agent cannot skip them.

KB

Context budgets and progressive disclosure

Dispatches use bounded subagent contracts and indexed plan slices: an 18 KB fixed preamble, a 4 KB matched MEMORY slice, and a configurable 32 KB total context budget, with optional per-step overrides via defaults.stepContextBudgets (step-override-else-global, 18 KB floor). Every dispatch persists a durable prompt audit pair beside the step artifacts, linked from dispatch provenance and verified by pre-advance gates.

AC

AC ledger and derived scoring

A machine-readable acceptance-criteria ledger links evidence, tasks, files, tests, findings, and sabotage outcomes. Standard Step 5 derives its score from that ledger, so agents cannot author or override it.

N

Atomic Node state runtime

Portable Node helpers write {workflow-id}.state.json first (machine SoT with embedded handoffs), render .state.md, and append a single telemetry.jsonl stream plus the repo plans index for reliable resume and inspection.

T

Telemetry and deterministic reporting

A single append-only telemetry.jsonl stream captures lifecycle, gate, skip, revision, and timing evidence. Aggregate and report commands summarize audit counts and median elapsed time by pipeline and step.

G

Gate granularity and adaptive convergence

Choose step or phase gates, with phase mode capped at five blocking decisions. Adaptive polling uses observed check and thread state while preserving fail-closed verification and review convergence.

UI

Desktop config GUI editor

Interactive Windows Forms editor (npm run config:gui / Edit-Config.bat) with auto Dark/Light themes, categorized tabs, live search filter, schema descriptions, and comment-preserving JSON persistence for config.json.

B

Multi-CLI step runs (ws-spec-to-pr-distributed)

The opt-in ws-spec-to-pr-distributed workflow executes different steps in different CLI processes through the deterministic coordinator (step_coordinator.cjs, no LLM): map steps to runners with defaults.stepRunners / defaults.runners, tune polling with defaults.stepBaton. Revision-serialized claim/release/expiry on the state-file baton, one-shot workers with sparse pointers, baton_* telemetry plus read-only monitor fields, and coordinator-surfaced gates. ws-spec-to-pr ignores those keys and stays single-host.

TH

Translate to human

ws-spec-translate-to-human writes a numbered Implementation / UI Test / Out of scope runbook beside an agent spec. It never replaces the spec, and the refinement hook that offers it is non-blocking when the companion is absent. Spec lifecycle →

AW

Unattended autoMode and batch runs

autoMode chains Steps 0→9 in one orchestrator session with mid-step checkpoint and turn-boundary pause-turn resume via update_state.cjs. ws-spec-multi classifies each queued spec and dispatches exactly one pipeline at a time with isolated workflowType and no cross-resume. In autoMode, Step 5 exit skips Pass 1 / Reach-10 and dispatches Step 6 in the same turn. Pipeline details →

SO

Spec organizer, subfolder sync, and cleanup

ws-spec-organizer files specs into pending / completed / archived subfolders and prefixes NNNN- when plans.enforceSpecPrefixOrdering is true; ws-spec-index sync follows a move, while ws-spec-archive harvests shipped plan folders into index.PRD and ws-cleanup deletes only user-approved untracked leftovers. Cleanup & diagnostics →

TI

Tracker export without a spec

ws-spec-to-issue turns a free-text idea into an anonymized GitHub issue / ADO User Story through the active provider create-issue intent. No local spec, no git mutation. Provider intents →

VS

Install snapshot and global fallback

ws-version prints install scope (global vs project-local), the loaded skill directory, and the package semver. A repo-relative skill path missing on disk falls through to the same path under the global install instead of creating a junction, symlink, or copy. The install-mode detector compares roots as canonical paths, so a coincident tree reports global (never hybrid), and the global version resolves from canonical ws-shared/version.json. Install & hub →

MW

Live monitor watch for long runs

ws-monitor --watch --until-terminal polls an active run until it leaves active state, tracks a stall stopwatch that defers to the workflow state/telemetry clock, follows the correlated session transcript, and proposes an enriched, anonymized defect issue through the configured provider create-issue intent. Read-only: it classifies drift without editing the run. Diagnostics →

RT

Session retrospective that writes back

ws-retro reviews one completed run and proposes ranked, evidence-linked environment improvements (memory, directives, standards, checks, pointers, no-op deletions). Propose-only with approval; opt-in auto-run via retro.enabled after ship; never blocks close. Practices & tooling →

KN

Local kanban board for specs

ws-kanvas (npm run kanvas) serves a six-column board of spec and workflow state with phase color coding, drag-and-drop moves, and a modal that renders the full spec markdown. Kanvas board →

WK

Living wiki with pre-ship doc-sync

ws-wiki keeps a domain-partitioned feature wiki in sync with shipped code (init, from-code genesis, sweep, verify, apply), bounded by a Sync Baseline watermark. The pre-ship gate files wiki, spec-index, and changelog updates before the PR opens. Wiki manager →

LW

Worker liveness verdict for dispatched batches

Every dispatched batch worker writes a .runtime/worker-started-{step}-{batch}.md marker, so the parent resolves exactly one read-only verdict from the recorded dispatch baseline, that marker, and durable progress after dispatch: no-baseline → alive → pending → wedged (exit 2 only for wedged). Durable progress outranks marker absence, only a proven wedge authorizes takeover, and the window resolves from defaults.workerLivenessWindowSec (default 600 s). Inline, lite, and Tier 3 postures carry no marker obligation. Pipeline details →

DoR

Definition of Ready and TDD

Authoring requires Definition of Ready, Validation & Observation Notes, and Negative & Failing Test Scenarios. Interview audits failing tests. Implement is red-then-green. Uncovered negative scenarios cap verify at 8.

M

Dual memory routing

Consult local MEMORY files, an external spec-memo vault, or both. enableMemoryFiles and enableSpecMemoIntegration choose the backends. ws-spec-memo is setup; runtime vault ops use ws-memo.

1

Spec is the contract

Human-facing *.spec.md under the specs directory is the contract of record. Plans are run artifacts. Write a spec, plan, implement, verify, review, test, open a PR, and close threads. One orchestrator owns the sequence so the agent does not skip gates.

2

Two speeds, same config

Standard is thorough (steps 0–9). Lite is fast (steps 0–5). Both share project config. Batch mode classifies each spec and picks the right speed.

default 9

Verify at minVerifyScore or keep going

Standard Step 5 scores the work 0–10. Below defaults.minVerifyScore (default 9) it re-implements flagged tasks and re-scores (max 3 rounds). It never auto-approves a weak score.

⇄

GitHub and Azure, same ops

Auth, fetch to spec, create PR, list and resolve threads, check status, merge. Switch providers.scm. The contract is tested in CI.

⚡

Hermes delivery disciplines

Prior-work sweep before plan/code; design-intent git history; repo-wide defect-class fixes; regression sabotage when mutation is unset; CI triage via extended check-pr-status; GitHub PR-body Closes #{id} auto-close on default-branch merges; tracker comments use comment-issue and post-merge state transitions use close-issue.

✓

Commit, then review

Product files commit after verify (standard) or after implement (lite). Review diffs committed work vs the base branch. Review fixes get a second commit. Plan files wait until ship.

◇

Any agent, your repo

Skills are markdown plus scripts. No IDE lock-in. Paths come from config.json. Your config, memory, and changelog stay local when you update.

👁

Local preview dry-run

/ws-preview runs your preview.dryRunCommand in-repo (no packaged reviewer). Configure with /ws-configure-project --section preview — it can infer the recipe from harness docs and scripts.

P

Per-run model preset

preset=<name> on the orch invocation overrides defaults.modelsPreset for that run only. An unknown configured preset fails closed at run start; the resolved preset persists in state and survives resume, and telemetry records concrete model ids.

R

Orchestrated fix-PR rounds

ws-goal-fix-pr owns the convergence loop inline while every Act round batch runs in a fresh worker: reviewer-model plan gate first, execution-model fix second. No-dispatch hosts use Tier 3 inline execution.

D

Dry-run before Create PR

Ship reuses preview.dryRunCommand after push and before PR creation (default on via preview.previewBeforeShip). Findings are reported on the Prepare-to-PR board and never block shipping.

Q

Quiet ship preflight

Ship resolves head, base, remote, provider, and commit title from state, git, config, then auto-detect — asking only on genuine ambiguity instead of re-prompting known values.

⎇

Stay on your branch

Runs start on the branch you checked out: defaults.branchStrategy defaults to stay (or from-current, from-base, prompt). Ship resolves feature, shared-head, or push-only refs so a stay run never tries to PR a branch into itself.

∥

Parallel agents, one worktree

Every workflow stages only its own paths and never resets, cleans, or stashes foreign work. A harness gate scans all shipped recipes for broad staging and destructive verbs, bootstrap warns about other active runs, and shared files (index.PRD, MEMORY, changelog) update under a cross-process lock.

10

A dirty baseline never costs the score

Verify counts an alias failure as a defect only when failing paths touch the workflow's own files. Implement runs every scoring alias and formats only what it changed, so a first-pass 10 is reachable on a repo with pre-existing lint debt.

S

Spec board by status

Opt in with plans.statusSubfolders to file specs under pending/, completed/, and archived/. organize_specs.cjs --by-status moves specs with their companions and rewrites index.PRD; shipped specs move to completed/ on sync.

⤴

Dispatch a subagent on demand

workflow-skills dispatch --subagent <name> --task "…" [--payload <json>] [--json] or the async dispatchSubagentTask() API run one task outside an orchestrator, with validated inputs and structured results.

⌂

Ready-to-use project hub

ws-configure-project seeds only what is missing in .ws/: STACK.md, hub AGENTS.md, autoload.md, and .gitignore. Your existing config is never rewritten, and a skillLoader capability lets hosts load skills with their native tool.

Deterministic Verification Engine

How Workflow Skills eliminates LLM hallucinations, fake passes, and regression drift.

AC
Acceptance Criteria Ledger

ac-ledger.json mechanically links each spec requirement to concrete tasks, touched files, tests, commits, and sabotage checks. LLMs cannot fake completion without recorded evidence.

≥9
Derived Score Threshold

Standard Step 5 computes an objective score from the ledger: score = 10 × (implemented / total), capped at 8 if any negative scenario remains uncovered. Agents cannot author or override this score.

FC
Fail-Closed Quality Gates

Before advancing to Step N, validate_state.cjs --pre-advance N verifies all required prerequisites exist on disk and match state hashes. Missing artifacts halt the pipeline immediately.

M
Anti-Regression Memory Engine

ws-self-learning inspects project MEMORY.md and external spec-memo vaults before planning or editing, turning previous coding mistakes into hard rules that subagents must respect.

Host Projections • Zero-Turn Bootstrap

Specialized Host Subagents for Coding Agents

Compile canonical skills into host-native specialized subagents (.cursor/agents/ws-step-*.md). Subagents start instantly with embedded domain instructions and JSON output schemas—eliminating boot-time disk reads while preserving 100% harness portability.

⚡
Zero-Turn Bootstrap

Eliminates prompt token waste. Domain instructions, behavioral invariants, checklists, and the canonical step-output schema are baked directly into the agent definition. No turn spent reading SKILL.md on boot.

🛡️
Collision-Proof Integrity

Generated agents include @generated SHA-256 header signatures. Non-generated custom agents are never touched. Automatic drift detection (--check) warns if projections drift from canonical skills.

🪜
Fail-Safe 3-Tier Fallback

Tier 1 named specialized subagent (@ws-step-*) → Tier 2 generic prompt reading SKILL.md → Tier 3 inline execution. The workflow never breaks if host tool capabilities differ or evolve.

Generated Projection (.cursor/agents)

disable-model-invocation: true
---
name: ws-step-04-implement-tasks
description: "Executes implementation tasks for ws-spec-to-pr. Reserved for orchestrator dispatch."
disable-model-invocation: true
---
<!-- @generated signed-content sha256:7a018f39... -->
# ws-step-04-implement-tasks

## Behavioral Invariants & Pre-Checks
- Consult project MEMORY.md and stack rules before edits
- Apply red-then-green TDD for acceptance criteria
- Output parseable step-output JSON schema on exit

Adaptive Dispatch Ladder

host-dispatch.md
Tier 1
Named Specialized Subagent

Direct delegation to ws-step-04-implement-tasks with zero overhead and direct context handoff.

Tier 2
Generic Subagent Prompt

Dynamic fallback reading canonical SKILL.md when host lacks named subagent routing.

Tier 3
Inline Step Execution

Orchestrator adopts step persona temporarily if tool invocation is completely unsupported.

How It Works

Start from a spec. Derive the plan. Implement against acceptance criteria. Ship a reviewed PR.

Pipeline FSM Transitions & Gate Hierarchy
Step 00 Gate: G1 Auth
Spec & Classification
Transforms request into canonical *.spec.md with ACs and negative scenarios. Runs complexity classifier.
Handoff: step-00-*.spec.md ac-ledger.json
Step 01 Phase F1
Implementation Planning
Binds stack companions and domain schema; maps tasks against acceptance criteria.
Handoff: step-01-*.plan.md plan.index.json
Step 02 Phase F1
Architecture Interview
Audits plan against project rules; clarifies ambiguous edge cases via structured user gates.
Handoff: step-02-*.plan.refined.md
Step 03 Phase F2
Plan to Tasks Decomposition
Deconstructs plan into sequential or DAG execution tasks with strict touch scopes.
Handoff: step-03-*.exec.dag.json
Step 04 Phase F2
Subagent Implementation
Executes tasks with memory trap consulting, surgical diff hygiene, and red-to-green TDD.
Handoff: Product File Diffs
Step 05 Gate: Score ≥ 9
Plan & Ledger Verification
Readonly verifier derives score from ledger. Score ≥ 9 triggers product commit before code review.
Handoff: step-05-*.plan.report.md Product Commit
Step 06 Phase F4
Diff Code Review & Fix
Compares committed diff vs base branch. Automated fix subagent loops until review passes cleanly.
Handoff: step-06-*.review.md
Step 07 Phase F5
Machine Testing & Mutation
Runs unit, integration, coverage, regression sabotage, and optional mutation score checks.
Handoff: step-07-*.testing.report.md
Step 08 Gate: G2 Delivery
Close & Ship PR
Marks run completed, stages delivery artifacts, pushes branch, and creates PR on GitHub/ADO.
Handoff: step-08-*.result.md Pull Request
Step 09 Phase F6
Review Threads & Merge
Batches review thread fixes, verifies green CI status, and executes automatic SCM merge.
Handoff: Merged PR Synced Base
Lite Step 00 Phase F0
Spec & Fast Classification
Normalizes spec, verifies low complexity (≤3 tasks, ≤6 files, ≤2 layers), and initializes state.
Handoff: step-00-*.spec.md ac-ledger.json
Lite Step 01 Phase F1
Direct Implementation Plan
Fast sequential planning skipping interview ceremony; directly targets acceptance criteria.
Handoff: step-01-*.plan.md
Lite Step 02 Gate: G2 Product Commit
Direct Implementation
Executes code modifications, runs local verification, and commits product files before code review.
Handoff: Product Commit
Lite Step 03 Phase F2
Diff Code Review & Fix
Reviews committed diff vs base branch. Automatically fixes any issues with a follow-up commit.
Handoff: step-06-*.review.md
Lite Step 04 Gate: G2 Delivery
Close & Ship PR
Marks run completed, stages delivery artifacts, pushes branch, and creates pull request.
Handoff: step-08-*.result.md Pull Request
Lite Step 05 Phase F4
Fix PR Convergence
Resolves PR review threads, awaits green checks, and executes SCM merge into develop.
Handoff: Merged PR
Step 00

Spec Brainstorming & Schema Alignment

Phase 1: Spec & Architecture

Transforms free-text user intent, issue description, or context into a canonical *.spec.md with crisp section hierarchy, mandatory acceptance criteria, Definition of Ready, Validation & Observation Notes, and Negative & Failing Test Scenarios. Authoring validation fails closed. New runs also ask a feature-branch strategy gate (stay on current, or create feat/{slug} from HEAD or from baseBranch).

Skills called: ws-spec-write ws-classify-complexity ws-spec-format ws-spec-index
Step 01

Technical Implementation Planning

Phase 1: Spec & Architecture

Generates a detailed technical implementation plan (step-01-*.plan.md), mapping proposed file modifications, domain schema bindings, and verification strategies.

Skills called: ws-plan-write ws-fable-domain
Step 02

Architectural Interview & Audit

Phase 1: Spec & Architecture

Audits the plan against actual project code structure, surfaces design trade-offs, and resolves ambiguities interactively with structured user-gate choices.

Skills called: ws-plan-interview
Step 03

DAG Task Graph Decomposition

Phase 2: Execution & Verification

Breaks down the refined plan into an atomic Directed Acyclic Graph (*.exec.dag.json), establishing strict dependencies, touch boundaries, and test obligations.

Skills called: ws-plan-to-tasks
Step 04

Subagent Task Implementation

Phase 2: Execution & Verification

Executes DAG tasks sequentially using subagent isolation. Enforces surgical diff hygiene, memory trap consulting before edits, and action-first execution. Product files stay uncommitted until after Step 05 verification.

Skills called: ws-implement-tasks ws-senior-developer ws-self-learning ws-tdah
Step 05

Spec Compliance Verification

Phase 2: Execution & Verification

Evaluates code changes against spec acceptance criteria, calculating an objective completeness score (0–10) and generating a verification report. Advance requires score ≥ defaults.minVerifyScore (default 9, range 1–10); below the bar the orchestrator runs scoreAndRefine (re-implement flagged tasks and re-verify) until that bar. After a passing score, the orchestrator commits workflow-touched product files so local review can diff committed work vs the base branch.

Skills called: ws-plan-verify
Step 06

Multi-Stage Local Code Review & Auto-Fix

Phase 2: Execution & Verification

Reviews the committed diff vs baseBranch (git diff {base}...HEAD). Runs a two-phase code review (Security/Bugs & Senior Standards) with automatic fix sub-cycles, then a second product commit for review fixes if any.

Skills called: ws-code-review ws-senior-developer ws-fable-judge
Step 07

Automated Testing & Quality Gate

Phase 3: Delivery & PR Fix Convergence

Runs pre-PR automated test suites (unit, integration/E2E, coverage) plus an optional mutation-testing gate (kill/survive score vs threshold) when configured in project config. Optional defaults.testingModel selects a dedicated test-executor model for this step after modelsPreset / stepModels overrides (falls back to executionModel).

Skills called: ws-testing ws-secrets-leak-review
Step 08

SCM Commit & Pull Request Delivery

Phase 3: Delivery & PR Fix Convergence

Commits configured plan-dir delivery artifacts (product code is already committed after verify and after review-fix), pushes the feature branch, and opens a Pull Request via the configured SCM provider (GitHub CLI / Azure DevOps).

Skills called: ws-ship-pr ws-spec-provider-github ws-spec-provider-azure-devops ws-spec-provider-local
Step 09

PR Review Thread Convergence

Phase 3: Delivery & PR Fix Convergence

For each Act-round or standalone batch, runs a gate-only fixPrPlan with reviewer-class model resolution, then validates and applies it in fixPrExec with execution-class resolution. Both roles stay inside outer Step 9; convergence continues until zero unresolved threads remain.

Skills called: ws-fix-pr ws-goal-fix-pr ws-goal-loop ws-changelog
Step 00

Lite Spec Creation & Complexity Routing

Lite Pipeline

Drafts a canonical *.spec.md with Definition of Ready, Validation & Observation Notes, and Negative & Failing Test Scenarios (authoring validation fails closed), then evaluates complexity against dagThresholds in project config to validate Lite eligibility.

Skills called: ws-spec-write ws-classify-complexity
Step 01

Direct Implementation Planning

Lite Pipeline

Generates concise, focused implementation plan without requiring deep multi-round interview overhead.

Skills called: ws-plan-write
Step 02

Direct Sequential Task Execution

Lite Pipeline

Executes code changes sequentially in place, bypassing complex JSON DAG file generation for rapid feature delivery. Then commits workflow-touched product files before local review.

Skills called: ws-implement-tasks ws-senior-developer
Step 03

Focused Code Review & Refinement

Lite Pipeline

Reviews the committed diff vs the base branch, verifying quality standards and auto-fixing issues, then a second product commit for review fixes if any.

Skills called: ws-code-review
Step 04

Rapid SCM Delivery

Lite Pipeline

Pushes the feature branch and opens the pull request (product already committed). GitHub or Azure DevOps, same intents.

Skills called: ws-ship-pr ws-spec-provider-github ws-spec-provider-azure-devops
Step 05

PR Review Fix Convergence

Lite Pipeline

Runs the same gate-only plan before execute order for each incoming PR-comment batch, inline on the current session model, until all threads are resolved.

Skills called: ws-fix-pr ws-goal-fix-pr
Phase 1

Spec Queue Discovery & Validation

Batch Orchestration

Scans specs/ directory or `{plansDir}/specs/` to index all pending feature specifications and verify structural formatting.

Skills called: ws-spec-multi ws-spec-index
Phase 2

Smart Complexity Auto-Routing

Batch Orchestration

Evaluates spec complexity (file count, layer depth, estimated tasks). Automatically routes simple specs to ws-spec-to-pr-lite and complex specs to full ws-spec-to-pr.

Skills called: ws-classify-complexity
Phase 3

Sequential Worker Dispatch & State Persistence

Batch Orchestration

Dispatches worker FSM pipelines one spec at a time, persisting multi-spec execution status under {plansDir}/ws-spec-multi/ to allow resumption across sessions.

Skills called: ws-spec-to-pr ws-spec-to-pr-lite
Phase 4

Interactive Failure Recovery & PR Consolidation

Batch Orchestration

If a worker spec fails, pauses execution with clear user-gate choices (Resume, Skip, Abort). On success, ships individual PRs and updates project changelog.

Skills called: ws-ship-pr ws-changelog
⚡

Orchestrators

Top-level Finite State Machines that coordinate multi-step workflows, manage subagent lifecycles, and maintain state persistence.

ws-spec-to-pr ws-spec-to-pr-lite ws-spec-multi
📐

Planners & Validators

Brainstorming, spec formatting, architectural plan generation, plan auditing, and DAG task graph building.

ws-spec-write ws-plan-write ws-plan-interview ws-plan-to-tasks ws-spec-format ws-spec-index
🛠️

Task Executors

Isolated coding step workers that execute individual tasks, apply targeted refactoring, and resolve implementation issues.

ws-implement-tasks
🔍

Verifiers & Auditors

Spec compliance scoring (advance at ≥ defaults.minVerifyScore (default 9), scoreAndRefine until then), multi-pass code reviews, adversarial AI fraud detection, secrets scanning, install diagnose, and test verification.

ws-plan-verify ws-code-review ws-testing ws-secrets-leak-review ws-fable-judge ws-doctor
🚀

SCM Delivery & PR Fixers

Branch management, git commits, PR creation across GitHub / Azure DevOps with a shared intent contract, Local spec register, and goal loops for PR thread fixing.

ws-ship-pr ws-fix-pr ws-goal-fix-pr ws-spec-provider-github ws-spec-provider-azure-devops ws-spec-provider-local
🛡️

Guardrails & Memory

Scope control standards, surgical code diff guidelines, anti-regression memory, action-first response rules, and changelog updates.

ws-senior-developer ws-self-learning ws-tdah ws-changelog ws-configure-project

Workflows

Every delivery run starts from a spec. One thorough path. One fast path. Same project config.

spec-to-pr

Standard FSM

Thorough delivery (steps 0–9)

Plan, interview, implement, verify at ≥ minVerifyScore (default 9), commit, review, test, open a PR, and close threads.

What it runs:
  • Feature-branch strategy gate at bootstrap, then spec (Step 0)
  • Architectural Review & Interview (Steps 1–2)
  • DAG Task Decomposition (Step 3)
  • Implement, verify (score ≥ defaults.minVerifyScore (default 9) or scoreAndRefine), product commit, local code review, review-fix commit (Steps 4–6)
  • Pre-PR testing (optional testingModel), shipping & ws-goal-fix-pr (Steps 7–9)
Start in your repo

spec-to-pr-lite

Lite FSM

Fast delivery (steps 0–5)

Plan, implement, commit, review, ship. Same GitHub or Azure PR ops as standard. No interview, DAG, or test step.

What it runs:
  • Feature-branch strategy gate at bootstrap (same as standard)
  • Planning & brainstorm from existing spec
  • Direct sequential coding, then product commit
  • Local code review of committed diff vs base; second commit for fixes
  • Fast consolidation & PR delivery (plan-dir artifacts at ship)
  • Zero setup/config duplication in dual-mode
Start in your repo

ws-spec-to-pr-distributed

Opt-in multi-CLI

Same standard steps, several CLI processes

Drives the standard 0–9 step set across CLI processes on one machine via the state-file baton and deterministic step_coordinator.cjs. Explicitly invoked only; never auto-selected.

What it does:
  • Maps steps to runners with defaults.stepRunners / defaults.runners
  • Revision-serialized claim/release/expiry on the state-file baton
  • One-shot workers get sparse pointers plus a baton envelope
  • Gates surface at the coordinator; ws-spec-to-pr stays single-host
Start in your repo

Skill Catalog

Discover every shipped skill. Search by name, layer, or full vs lite.

62 skills available

Layer 0 — Harness

10 skills
ws-benchmarks
Benchmark management suite — interactive menu to inspect version-over-version evolution results, run static/live benchmarks, and update comparison reports.
Dependencies:
none
View skill →
ws-check-harness
full
Meta-harness integrity auditor — detects install mode/scope (upstream, project-local, global, hybrid) and scans routing, links, portability, integrity digests, instruction duplication, role clarity, and skill composition topology.
Dependencies:
none
View skill →
ws-check-workflows
full
Workflow FSM simulation runner — validates step continuity, state isolation, provider dispatch, and artifact transitions across standard, lite, and multi-spec pipelines.
Dependencies:
none
View skill →
ws-doctor
Workflow skills diagnostic inspector — read-only diagnose of path errors, tool/script recipes, config switches, and missing references across installed ws-* skills.
Dependencies:
none
View skill →
ws-monitor
Read-only live observer for active Spec-to-PR and multi-spec workflow runs, memory vault status, telemetry, artifacts, and multi-host transcripts.
Dependencies:
none
View skill →
ws-preview
Run the consumer-configured local pipeline review dry-run command without publishing PR threads.
Dependencies:
none
View skill →
ws-run-benchmark
Upstream-only package-root fixture compare. Never during ws-spec-to-pr. Trigger only on explicit /ws-run-benchmark from the workflow-skills source tree.
Dependencies:
none
View skill →
ws-show-harness
Session harness snapshot generator — reports active skills, rules, precedence hierarchy, and capabilities for the current session.
Dependencies:
none
View skill →
ws-version
Read-only install snapshot: loaded skill directory, global vs project-local scope, package semver from .agents/skills/ws-shared/version.json, and stored hub path tokens. Trigger on /ws-version or version.
Dependencies:
none
View skill →
ws-write-a-skill
Skill authoring & optimization protocol — guides the creation, editing, structural formatting, and progressive-disclosure tuning of agent skills.
Dependencies:
none
View skill →

Layer 1 — Engineering standards

1 skills
ws-senior-developer
full lite
Engineering delivery gate for scope control, anti-reinvention, ambiguity stops via user-gate, surgical diff hygiene, and pre-ship proof. Invoke via rules.seniorDeveloper, /senior-developer, or /karpathy-guidelines.
Dependencies:
none
View skill →

Layer 2 — Pipeline + providers

16 skills
ws-code-review
full lite
Local two-phase code review with fix → re-review loops (max 3). Trigger when reviewing a branch/diff before ship, or when orch Step 6 / lite Step 3 runs.
Dependencies (4):
ws-senior-developerws-tdahws-self-learningws-fable-judge
View skill →
ws-fix-pr
full lite
Single-pass PR thread fixer — resolves active GitHub or ADO PR review threads, applying targeted code fixes and posting progress reports.
Dependencies (1):
ws-self-learning
View skill →
ws-fresh-verify
full
Fresh-worker re-verification stage — re-derives AC verdicts from the spec with fresh eyes, injects one fault per AC on a scratch worktree, and reports evidence-or-zero. Trigger for fresh verification or orch Step 6b.
Dependencies:
none
View skill →
ws-goal-fix-pr
full lite
PR thread convergence loop — orchestrates iterative fix-pr rounds until all open PR review threads are resolved and checks pass.
Dependencies (3):
ws-fix-prws-goal-loopws-self-learning
View skill →
ws-implement-tasks
full lite
Task implementation & fix executor — builds planned features following task DAGs or applies surgical defect fixes from code review findings.
Dependencies:
none
View skill →
ws-plan-interview
full
Interactive plan interrogation engine — audits implementation plans to uncover hidden assumptions, resolve ambiguities, and refine technical designs.
Dependencies:
none
View skill →
ws-plan-to-tasks
full
Task DAG breakdown generator — transforms approved implementation plans into atomic, dependency-mapped task execution graphs.
Dependencies:
none
View skill →
ws-plan-update
Post-ship QA delta manager — captures manual QA findings, plans delta fixes, executes modifications, and updates delivery summaries.
Dependencies:
none
View skill →
ws-plan-verify
full
Spec compliance scorer (0–10). Pipeline advances only at score ≥ `defaults.minVerifyScore` (default 9); below bar runs scoreAndRefine. Trigger for check-implementation or orch Step 5.
Dependencies (1):
ws-fable-judge
View skill →
ws-plan-write
full lite
Implementation plan generator — transforms feature specifications into structured, technical step-01 implementation plans.
Dependencies (1):
ws-spec-translate-to-human
View skill →
ws-ship-pr
full lite
End-to-end PR shipping manager — drives prepare-to-PR checklists, pushes code, creates PRs, waits for CI, and manages convergence.
Dependencies (3):
ws-secrets-leak-reviewws-fable-judgews-spec-index
View skill →
ws-spec-provider-azure-devops
full lite
Azure DevOps work-item→spec and PR ops. Same required intents as GitHub (scm-provider-contract). Trigger when providers.scm is azure-devops.
Dependencies (3):
ws-spec-formatws-spec-writews-spec-provider-local
View skill →
ws-spec-provider-github
full lite
GitHub issue→spec and PR ops. Same required intents as Azure DevOps (scm-provider-contract). Trigger when providers.scm is github.
Dependencies (3):
ws-spec-formatws-spec-writews-spec-provider-local
View skill →
ws-spec-provider-local
full lite
Local Markdown spec provider — detects, normalizes, and registers hand-written *.spec.md feature specifications into canonical pipeline artifacts.
Dependencies (2):
ws-spec-formatws-spec-organizer
View skill →
ws-spec-write
full lite
Local spec authoring & reformulation — drafts and enhances structured *.spec.md feature specifications under {specsDir} from free-text requirements or remote tracker issues.
Dependencies (4):
ws-spec-formatws-spec-indexws-spec-provider-localws-spec-organizer
View skill →
ws-testing
full
Pre-PR test suite executor — plans and executes unit, integration, E2E, coverage, and optional mutation-testing batteries with quality verification.
Dependencies:
none
View skill →

Layer 4 — Review & audit

2 skills
ws-fable-judge
full lite
Adversarial audit of claimed work against git diffs and re-run verifications. Trigger after claimed completion, during local review, or before merge.
Dependencies (2):
ws-tdahws-senior-developer
View skill →
ws-secrets-leak-review
full lite
Secrets & PII leak auditor with an optional runtime-resolving pre-commit hook for local or global installs.
Dependencies:
none
View skill →

Layer 5 — Utility & meta

33 skills
ws-activity-report
Timesheet entries (date, start, end, description) for ws-spec-to-pr / ws-spec-to-pr-lite deliveries. Start = earliest bootstrap file creation in the plan folder; end = latest of last PR thread comment or last delivery commit. Trigger on activity-report {date}, log hours, timesheet, or activities for a day.
Dependencies:
none
View skill →
ws-changelog
full lite
Summarized task history writer — appends concise, structured task completion records to the project changelog file.
Dependencies:
none
View skill →
ws-classify-complexity
full lite
Pipeline complexity classifier — analyzes a spec against config.json dagThresholds and recommends ws-spec-to-pr-lite or ws-spec-to-pr (standard).
Dependencies:
none
View skill →
ws-cleanup
Lists disposable workflow leftovers (telemetry, .runtime, fix-pr temps, codereview PR*.md, shipped plan dirs), confirms via user-gate, then deletes only approved untracked paths. Suggests missing .gitignore patterns. Trigger on /ws-cleanup, cleanup workflow, or clean plan leftovers.
Dependencies (1):
ws-configure-project
View skill →
ws-configure-project
full lite
Project configuration wizard — detects project settings and interviews config.json sections (including preview.dryRunCommand and optional specMemo).
Dependencies:
none
View skill →
ws-fable-domain
Domain adapter generator & schemas — binds domain authority, minimum evidence sets, observation rules, and fraud definitions for DevOps, Data, Research, and Ops.
Dependencies:
none
View skill →
ws-fable-method
7-step structured problem-solving methodology — evidence-based problem classification, primary-source investigation, surgical action, and adversarial verification for complex tasks.
Dependencies (4):
ws-fable-judgews-tdahws-senior-developerws-self-learning
View skill →
ws-goal-loop
full lite
Generic convergence loop primitive — stateful loop engine providing sentinel management, heartbeat/settle timers, and re-check convergence control.
Dependencies:
none
View skill →
ws-kanvas
Packaged local kanban visualizer for spec and workflow state (Backlog, Sprint, Development, Staging, Production, Abandoned).
Dependencies:
none
View skill →
ws-megabrain
Vibe-coding task implementer without a spec. Scan dirty work when asked what next; route specialists; consume fable/senior/tdah. Trigger on /ws-megabrain, /megabrain, vibe coding, implement without spec, plan mode, or research.
Dependencies (5):
ws-fable-methodws-senior-developerws-tdahws-self-learningws-changelog
View skill →
ws-patterns-generator
Consumer project-patterns skill generator that harvests run artifacts and project knowledge to seed and refresh an autoloaded, hub-hosted ws-project-patterns skill.
Dependencies (4):
ws-configure-projectws-self-learningws-changelogws-secrets-leak-review
View skill →
ws-pre-daily
Standup briefing of the last 36 hours — delivered, made, ongoing, next.
Dependencies (1):
ws-configure-project
View skill →
ws-retro
full lite
Optional session retrospective — reviews a completed workflow run and proposes curated, evidence-linked improvements to memory, harness directives, reviewer standards, automated checks, navigation pointers, or no-op deletions. Proposes only; applies nothing without user approval. Opt-in auto-run via config retro.enabled.
Dependencies (1):
ws-self-learning
View skill →
ws-self-learning
full lite
Anti-regression memory engine — consults shared MEMORY before planning/coding and records newly discovered traps into the project knowledge hub.
Dependencies:
none
View skill →
ws-spec-archive
Harvests plansDir delivery facts into specsDir/index.PRD, then proposes cleanup of shipped plan folders. Trigger on /ws-spec-archive, archive plans, archive index.PRD.
Dependencies (4):
ws-configure-projectws-spec-indexws-spec-provider-githubws-spec-provider-azure-devops
View skill →
ws-spec-explain
Read-only panorama of a spec or US/issue — status, what it does, what it delivers or delivered, how to check in the project/UI, and how to test. Trigger on /ws-spec-explain, /explain, spec explain, or after ship/fix-pr.
Dependencies (3):
ws-configure-projectws-spec-provider-githubws-spec-provider-azure-devops
View skill →
ws-spec-format
full lite
Specification schema & validator — defines canonical *.spec.md format, section hierarchy, and acceptance criteria rules.
Dependencies:
none
View skill →
ws-spec-from-provider
Bulk-import open GitHub issues or ADO User Stories into local specs (spec-write + register). Trigger when importing tracker backlog to {specsDir} for ws-spec-list / ws-spec-multi.
Dependencies (7):
ws-spec-provider-githubws-spec-provider-azure-devopsws-spec-writews-spec-provider-localws-spec-formatws-spec-indexws-configure-project
View skill →
ws-spec-index
full lite
Project PRD index manager — initializes, synchronizes, and promotes feature specifications within the project index (index.PRD).
Dependencies (1):
ws-spec-organizer
View skill →
ws-spec-list
Dual board for specs vs plan workflows plus manage menu. Trigger when listing, picking, or managing specs/plans.
Dependencies (3):
ws-spec-to-prws-spec-to-pr-litews-configure-project
View skill →
ws-spec-manager
Unified specification router and lifecycle manager — routes spec creation, listing, inspection, drift updating, index synchronization, organization, and archiving to specialized ws-spec-* skills.
Dependencies (12):
ws-spec-writews-spec-listws-spec-indexws-spec-updatews-spec-explainws-spec-organizerws-spec-archivews-spec-formatws-spec-from-providerws-spec-to-issuews-classify-complexityws-configure-project
View skill →
ws-spec-memo
workflow-skills ↔ spec-memo bridge only: wire config.json memory backends, import/migrate MEMORY, harness preflight, disable vault, or hybrid fallback when MCP/CLI is down. Never for day-to-day vault search/get/upsert/bootstrap/doctor when MCP is registered — that is /ws-memo (spec-memo package). Companion: https://github.com/jpolvora/spec-memo/issues/17
Dependencies (2):
ws-configure-projectws-self-learning
View skill →
ws-spec-multi
Batch specs one by one. Classifies each spec and runs standard or lite. Trigger for multi-spec queues.
Dependencies (7):
ws-spec-to-prws-spec-to-pr-litews-classify-complexityws-ship-prws-goal-fix-prws-tdahws-senior-developer
View skill →
ws-spec-organizer
full lite
Spec-of-record path resolution and chronological NNNN- spec organizer.
Dependencies:
none
View skill →
ws-spec-to-issue
Turn a free-text feature description into an anonymized tracker item (GitHub issue or Azure DevOps User Story) without writing any local spec file or touching git. Trigger on /spec-to-issue, ws-spec-to-issue, "open an issue for this idea", or "send this idea to the tracker".
Dependencies (5):
ws-spec-writews-spec-formatws-spec-provider-githubws-spec-provider-azure-devopsws-configure-project
View skill →
ws-spec-to-pr
full
End-to-end Spec-to-PR (steps 0–9). Verify score ≥ `defaults.minVerifyScore` (default 9) before review. Trigger for full/standard delivery.
Dependencies (29):
ws-spec-writews-classify-complexityws-plan-writews-plan-interviewws-plan-to-tasksws-implement-tasksws-plan-verifyws-code-reviewws-testingws-fresh-verifyws-ship-prws-fix-prws-goal-fix-prws-spec-provider-githubws-spec-provider-azure-devopsws-spec-provider-localws-check-harnessws-check-workflowsws-tdahws-spec-formatws-goal-loopws-self-learningws-changelogws-configure-projectws-spec-indexws-wikiws-senior-developerws-spec-translate-to-humanws-retro
View skill →
ws-spec-to-pr-distributed
Distributed Spec-to-PR — drives the shared standard 0–9 step set across multiple CLI processes on one machine via the deterministic step coordinator and state-file baton. Explicit opt-in only.
Dependencies (29):
ws-spec-to-prws-spec-writews-classify-complexityws-plan-writews-plan-interviewws-plan-to-tasksws-implement-tasksws-plan-verifyws-code-reviewws-testingws-fresh-verifyws-ship-prws-fix-prws-goal-fix-prws-spec-provider-githubws-spec-provider-azure-devopsws-spec-provider-localws-check-harnessws-check-workflowsws-tdahws-spec-formatws-goal-loopws-self-learningws-changelogws-configure-projectws-spec-indexws-wikiws-senior-developerws-spec-translate-to-human
View skill →
ws-spec-to-pr-lite
lite
Fast Spec-to-PR (steps 0–5). Plan, implement, commit, review, ship. Trigger for lite/fast delivery.
Dependencies (21):
ws-spec-writews-classify-complexityws-plan-writews-implement-tasksws-code-reviewws-ship-prws-fix-prws-goal-fix-prws-spec-provider-githubws-spec-provider-azure-devopsws-spec-provider-localws-tdahws-spec-formatws-self-learningws-changelogws-configure-projectws-spec-indexws-wikiws-senior-developerws-spec-translate-to-humanws-retro
View skill →
ws-spec-translate-to-human
full lite
Translates an agent spec into a parallel human runbook (numbered Implementation / UI Test / Out of scope steps beside the source artifact). Trigger on spec translate, human runbook, manual test script, or refinement companion.
Dependencies:
none
View skill →
ws-spec-update
Feature spec updater — updates feature specifications after prompt-driven code changes to prevent spec drift, with optional self-learning memory recording.
Dependencies:
none
View skill →
ws-task-lifecycle
On-demand coordinator for prompt-driven product work — Intake, Implementation, Completion tracking without a Spec-to-PR plan tree.
Dependencies (6):
ws-spec-writews-spec-formatws-spec-indexws-senior-developerws-changelogws-self-learning
View skill →
ws-tdah
full lite
Action-first reply shape, anti-slop clarity, and operational judgment. Trigger via /ws-tdah, /tdah, /wait-what, or start ws-tdah (autoload in upstream dogfood hubs).
Dependencies:
none
View skill →
ws-wiki
full lite
Living project feature wiki and domain knowledge base manager — initializes, synchronizes, and validates living feature documentation, business rules, and technical architecture.
Dependencies (2):
ws-configure-projectws-spec-write
View skill →

Installation Packages

Flexible installation presets powered by bin/skill-dependencies.json dependency graph.

Shortcut: f

Full Package

Full package — selects every installable top-level skill and initializes the consumer (.ws/) config/docs hub.

✓ Every top-level skill
✓ Full consumer (.ws/) config & docs hub
✓ Best for complete team environments
Shortcut: e

Extra Package

Extra package — 8 optional authoring/review skills. Does not install workflow orchestrators or hub by default.

Includes: ws-write-a-skill, ws-show-harness, ws-preview, ws-activity-report, ws-fable-domain, ws-plan-update, ws-run-benchmark, ws-benchmarks

Installation, Updates & Management

Canonical installation form: npx --yes github:jpolvora/workflow-skills. Preserves consumer-owned files under .ws/.

Interactive Menu

Launch the interactive visual installer to select skills and packages.

npx --yes github:jpolvora/workflow-skills

Update Skills

Refresh managed skills listed in ws-shared/installed-skills.json while preserving local config.

npx --yes github:jpolvora/workflow-skills update
npx --yes github:jpolvora/workflow-skills update --include-new

Version & Health Check

Verify current local installed version against latest remote release.

npx --yes github:jpolvora/workflow-skills --check
npx --yes github:jpolvora/workflow-skills --version

cURL Quick Shim

Execute CLI directly via shell pipeline (requires Node.js).

curl -fsSL https://raw.githubusercontent.com/jpolvora/workflow-skills/main/install-skills.sh | bash -s --

Coding Agent Environment Configuration

Copy-paste integration recipes for Cursor, OpenCode, Claude Code, and Antigravity.

.cursor/rules/workflow-skills.mdc
---
description: Spec-driven harness and workflow skills router
globs: .agents/**/*, **/*.spec.md
---
# Workflow Skills Harness
Read .ws/AGENTS.md for project configuration and task routing.
Follow ws-spec-to-pr for standard pipeline, or ws-spec-to-pr-lite for low-complexity changes.
opencode.json
{
  "$schema": "https://opencode.ai/schema.json",
  "instructions": [
    ".ws/AGENTS.md"
  ],
  "skills": {
    "local": ".agents/skills",
    "global": "~/.agents/skills"
  }
}
CLAUDE.md / settings
# Claude Code Spec-Driven Instructions
At session start, read .ws/AGENTS.md.
Use `npx --yes github:jpolvora/workflow-skills` to update or install skills.
All changes require a spec file under .agents/specs/*.spec.md.
AGENTS.md / .agents/skills/
# Antigravity / Gemini CLI Instructions
Load project settings from .ws/config.json.
When running multi-spec batches, invoke ws-spec-multi.
Adhere to surgical code hygiene and verify ledger scoring.
Global install — Antigravity / Gemini CLI (~/.gemini/config/skills.json)
# Explicit Antigravity / Gemini CLI target (declarative ~/.gemini/config/skills.json)
npx --yes github:jpolvora/workflow-skills install --full --global --targets gemini --yes

# Or every known host (canonical + claude + codex + gemini)
npx --yes github:jpolvora/workflow-skills install --full --global --targets all --yes

# Interactive --global install/update prompts for host targets; piped/--yes runs auto-detect
# a pre-existing ~/.gemini dir when --targets is omitted
npx --yes github:jpolvora/workflow-skills update --global
Shell Recipes (Bash / PowerShell)
# Install global skills once
npx --yes github:jpolvora/workflow-skills --global

# Configure current project (in your coding agent)
/ws-configure-project

# Verify harness integrity (in your coding agent)
/ws-check-harness

Frequently Asked Questions

Spec-driven delivery, orchestrators, quality gates, and agent harness compatibility.

Workflow Skills is a portable, spec-driven skill pack for coding agents. You install it once. The agent then runs a named pipeline from a feature spec to a reviewed pull request instead of inventing a process each time.

The spec is the contract of record. Plans are run artifacts. Standard delivery is ten steps. Lite is six. Skills are LLM-agnostic: any coding agent that can load SKILL.md can run the pipeline. Verify must hit ≥ defaults.minVerifyScore (default 9) from the AC ledger before review. GitHub and Azure DevOps expose the same PR operations. Your project config and memory stay local when skills update.

Yes. Delivery is spec-driven:

  • Spec of record — canonical *.spec.md under the specs directory (local draft, GitHub issue, or Azure DevOps work item).
  • Plans are runs — workflow copies and state live under the plans directory. A plan is not a second spec.
  • Acceptance criteria gate code — standard verify derives its 0–10 score from an AC ledger. Agents cannot author or override that score. Advance only at score ≥ defaults.minVerifyScore (default 9).

This upstream repo uses the same model. Extra skills (direct problem-solving, doctor, preview, human runbook) sit beside the pipeline; they do not replace the spec contract. ws-spec-translate-to-human writes a numbered implementation and UI-test runbook next to the spec. The pipeline still runs if that file is absent.

Pick by how much process you want:

  • Standard (ws-spec-to-pr): ten steps. Plan interview, task graph, verify at ≥ minVerifyScore (default 9), commit, review, tests, PR, thread fixes.
  • Lite (ws-spec-to-pr-lite): six steps. Plan, implement, commit, review, PR. No interview, DAG, or test step.

Product files are committed before local code review, not first at ship:

  • Standard: after Step 5 verify (score ≥ defaults.minVerifyScore, default 9), then Step 6 reviews git diff {base}...HEAD. Review fixes get a second product commit.
  • Lite: after Step 2 implement, then Step 3 review; second commit after review fixes if any.
  • Ship (Step 8 / lite Step 4): close implementation first (plan-dir G2-delivery, MEMORY, changelog, status: completed), then optional push/PR. Plan files stay uncommitted until close. Shipping uses shipStatus, not workflow completion.

Only workflow-touched created/updated/deleted product paths are staged. Never git add -A. Review fails closed if those files are still uncommitted.

Standard Step 5 (ws-plan-verify) advances only at overall score ≥ defaults.minVerifyScore (default 9, range 1–10).

  • Score below the bar: the orchestrator runs scoreAndRefine (re-implement flagged tasks, then re-verify) until ≥ defaults.minVerifyScore.
  • Max 3 rounds per Step 5 visit; then Pause (fail closed). Resume continues. Never auto-approve below the bar, including in autoMode.
  • Optional polish (Accept As-Is) only when the score is already ≥ defaults.minVerifyScore and the scoreAndRefine flag is on. Choosing Second Pass reviews the full Pass 1 diff for overengineering and unused workflow-introduced files, tests, methods, and classes.

Lite has no Step 5 verify gate. Product commit on standard runs only after score ≥ defaults.minVerifyScore (default 9). Uncovered Negative & Failing Test Scenarios cap the derived score at 8.

Authoring a spec requires Definition of Ready, Validation & Observation Notes, and Negative & Failing Test Scenarios. validate_spec.cjs --mode=authoring fails closed if those sections are missing or placeholder.

Interview audits failing-test coverage. Implement-tasks is red-then-green. Verify treats uncovered negative scenarios as a known defect and caps the score at 8.

ws-spec-multi is a sequential smart multi-spec batch orchestrator. A blank scan lists only pending and unfinished specifications under {specsDir}, runs ws-classify-complexity on each selected spec to dynamically select between Standard or Lite pipeline execution, and processes them one by one.

It maintains state persistence under per-run {plansDir}/{runId}/ directories (legacy flat {plansDir}/ws-spec-multi/*.state.md files still resume), allowing safe session pauses/resumes. It skips specs with already-merged PRs and presents structured user-gate choices if a spec encounters an issue.

No! Workflow Skills maintains a strict separation between managed skill files and consumer-owned project data.

Project .ws/config.json, STACK.md, and installed-skills.json stay put on update and uninstall. MEMORY.md, memory/, and CHANGELOG.md follow rules.memoryDir and rules.changelogFile (repo root by default) and are never overwritten from upstream. Update replaces managed skill files only.

Yes. Dual routing is controlled by enableMemoryFiles and enableSpecMemoIntegration. Default is local MEMORY files on and spec-memo off unless you opt in.

ws-spec-memo is the harness setup/bridge (wizard, import, config.json flags, hybrid fallback). Runtime vault ops (search, upsert, bootstrap, canvas) use ws-memo from the spec-memo package. When both backends are on, consult the vault first, then local MEMORY.

Workflow Skills includes multiple layers of automated defense:

  • ws-plan-verify: Spec compliance score 0–10. Standard Step 5 advances only at ≥ defaults.minVerifyScore (default 9); below the bar runs scoreAndRefine until that bar (max 3 rounds).
  • ws-senior-developer: Delivery gate enforcing surgical diff footprints, anti-reinvention checks, and pre-ship verification proof.
  • ws-fable-judge: Adversarial audit engine performing diff-grounded verification to detect 4 classic AI code frauds (weakened unit tests, false verification claims, unauthorized side effects, and scope creep).
  • ws-secrets-leak-review: Pre-PR scanner checking diffs for hardcoded API tokens, private keys, passwords, and sensitive credentials.
  • ws-doctor: Read-only install/runtime diagnose of path errors, script recipes, config switches, and missing skill references.

Yes. Skills are markdown plus scripts. Any coding agent that can load SKILL.md can run the pipeline. There is no required host or IDE, and shipped skill bodies do not couple to a vendor UI.

GitHub and Azure DevOps share the same PR operations. Config, memory, and changelog stay in your repo when skills update.

You can run ws-configure-project or edit .ws/config.json directly. Key configurable options include:

  • plans.dir: Target folder for workflow plans and execution artifacts (default: .agents/plans).
  • providers.scm: Active SCM provider (github via gh CLI, azure-devops via ADO PAT). Both implement the same required intents in scm-provider-contract.md (parity checked in npm run test). Hybrid: providers.active: local with scm: github.
  • rules.stackFile: Path to project technology stack guidance (default: .ws/STACK.md).
  • verification.*: Build, test, format, and optional mutation commands.
  • preview.dryRunCommand: Local pipeline review dry-run for /ws-preview (set via /ws-configure-project --section preview, which can infer from AGENTS/README/MEMORY/rules/scripts; empty until configured).
  • defaults.testingModel: Optional test-executor model for standard Step 7 (falls back to executionModel).

ws-preview does not ship a reviewer backend. It runs whatever command you set in preview.dryRunCommand from the consumer repo root, and never publishes PR threads.

Recommended setup: /ws-configure-project --section preview. The wizard infers candidates from AGENTS.md, README.md, MEMORY, rules.*, package.json scripts, and local skills, then asks you to accept, edit, or leave empty. You can also edit .ws/config.json directly (see config.json.example).

Yes. Both SCM providers implement the same required intents: validate-auth, fetch-to-spec, create-pr, list-threads, sweep-prior-work, check-pr-status, resolve-thread, comment-issue, close-issue, and merge-pr.

The contract lives in {skillsRoot}/ws-shared/runtime/scm-provider-contract.md. Host CLI recipes stay inside each provider. An extra intent on one side without the other (and without an allowlist row) fails npm run test via test/test-provider-parity.js.

The local spec provider is not an SCM implementer. It registers specs and delegates PR intents to providers.scm.

Closes #{id} stays in the PR body. GitHub auto-closes that issue only when the PR base is the repository default branch. After a merge with zero active threads, ship dispatches close-issue on any base. comment-issue stays a comment. Local specs (id: null) skip the close with exit 0.

Yes! To author a new skill, use our meta-skill ws-write-a-skill. It guides you through defining standard YAML frontmatter (name, description, version), applying progressive disclosure principles, and structuring helper scripts.

Lasting skill improvements can be submitted via Pull Request to the canonical upstream repository: jpolvora/workflow-skills. When that clone and a global ~/.agents/skills install both exist, edit only the clone; see README § This clone vs a global install.

ws-doctor is a read-only install/runtime diagnose: path errors, tool/script recipes, config switches, and missing references across installed ws-* skills. Use it after install/update or when a skill recipe fails.

ws-check-harness is the meta-harness integrity audit (routing, links, portability, integrity digests).

On a new ws-spec-to-pr / lite start (not resume), bootstrap asks how to isolate the run: stay on the current branch, create feat/{slug} from HEAD, or create it from baseBranch (after fetch). Resume skips this gate and checks out state.branch.

The gate never rewrites config.project.workingBranch. It will not git reset, delete branches, or overwrite an existing feature branch.

Optional model preference for standard Step 7 (testing). modelsPreset / stepModels overrides apply first. When set, the orchestrator prefers that model for the test executor subagent. Empty or omitted falls back to defaults.executionModel, then the active session model. Lite has no Testing step and does not read testingModel.

Yes. Pass preset=<name> (or --preset <name>) on the ws-spec-to-pr / ws-spec-to-pr-lite invocation and that run resolves subagent models from the named bundle instead of defaults.modelsPreset — no config.json edit needed.

Unknown names warn in telemetry and the Init banner and fall back to the configured preset. The resolved preset persists in workflow state and survives resume without re-passing the flag. The orchestrator session itself always stays on the active model.

ws-goal-fix-pr acts as an orchestrator: its session owns the wait/fetch convergence loop inline, while every Act round batch runs in a freshly dispatched worker. Each worker runs one ordered pair — reviewer-model fixPrPlan writes the complete gate before any mutation, then execution-model fixPrExec validates and applies it.

Hosts without subagent dispatch use documented Tier 3 inline execution with identical gate and learning contracts. Resolve and push stay forbidden until both substeps have evidence.

Specialized subagents project canonical .agents/skills/ws-* definitions into native host agent formats, such as .cursor/agents/ws-step-*.md. Each compiled subagent embeds domain instructions, behavioral rules, and JSON schemas directly into its prompt with disable-model-invocation: true, eliminating the prompt token tax of reading SKILL.md on boot.

Canonical skills remain the single source of truth: compile_host_subagents.cjs signs generated files with @generated hashes to prevent clobbering human-authored agents and detects drift via --check. If specialized subagents are disabled or unsupported, the orchestrator automatically falls back to generic subagent prompts or inline execution.

Three things:

  • Node 22+ — the only required runtime. Install, update, skills, and scripts all run on npx/Node. No Python, no shell toolchain.
  • A coding agent that can load SKILL.md — any host works; there is no required IDE.
  • Your SCM CLI — gh for GitHub or an ADO PAT for Azure DevOps, only if you want issue/PR operations. Local-spec runs need neither.

After install, ask your agent to run ws-check-harness once, then /ws-configure-project to fill .ws/config.json (or use the desktop GUI via npm run config:gui on Windows).

Five steps, in order:

  • 1. Install — npx --yes github:jpolvora/workflow-skills install --full --yes in your repo.
  • 2. Configure — /ws-configure-project (interview) so builds, tests, and the SCM provider match your repo.
  • 3. Write a spec — describe the feature; the agent drafts a testable *.spec.md with acceptance criteria.
  • 4. Run the pipeline — ws-spec-to-pr-lite for a fast first run, ws-spec-to-pr for the full gated path.
  • 5. Review the PR — code is committed before review and shipped only after close; fix-PR rounds converge review threads.

Unsure which pipeline fits? ws-classify-complexity recommends lite vs standard from your spec.

  • Project-local (.agents/skills/) — best for teams and CI: the skills travel with the repo and every run uses the same version.
  • Global (~/.agents/skills) — best for solo work across many repos: install once, use everywhere. Global runs still read and write project config from the open repo, never from the global hub.
  • Hybrid — both installed: project-local skill bodies win, global fills gaps, and project .ws/config.json always wins over global defaults.

Global installs can also project into companion host targets (Claude Code, Codex, Gemini/Antigravity) via --targets. ws-version shows which scope a session actually loaded.

The pipeline fails closed and tells you how to resume — it never auto-approves a weak state:

  • Below the verify bar — scoreAndRefine re-implements and re-scores up to 3 rounds, then Pauses with the deficiencies listed.
  • Review loops — fix → re-review runs max 3 rounds, then Pause.
  • Resume — re-invoke the orchestrator on the same slug; atomic state plus telemetry.jsonl restore the exact step. ws-monitor shows which step and gate a run is waiting on.

Genuine blockers (missing credentials, ambiguous scope, failing base branch) surface through a user-gate choice instead of a guess.

Two read-only views, no interference with the run:

  • ws-monitor --watch --until-terminal — polls until the run leaves active state, tracks a stall stopwatch, follows the session transcript, and can file an anonymized defect issue when something hangs.
  • ws-kanvas (npm run kanvas) — a six-column board of spec and workflow state with drag-and-drop moves.

In autoMode the orchestrator chains steps 0→9 without yielding at internal checkpoints; mid-step progress survives host turn ends via checkpoint / turn-boundary pause records.

  • index.PRD — the project spec board. Specs are tracked as pending on write/import and flipped to done with a Done-log row when delivery evidence (commit or PR URL) exists.
  • Status subfolders — opt in with plans.statusSubfolders to file specs under pending/, completed/, archived/; sync moves shipped specs automatically and a close verifier fails if a done row still points at pending/.
  • ws-spec-manager — one front door for create/list/update/sync/organize/archive/validate/import/run, so agents stop guessing which skill owns the task.

Before the ship phase opens a PR, the close step files a documentation trio so docs reflect shipped code:

  • ws-wiki sync — living feature wiki pages for the shipped behavior (warn-skips when no wiki is configured).
  • ws-spec-index sync — flips the spec row to done and files the spec into completed/.
  • Changelog entry — append-only record of prompt, done, and result.

Governed by defaults.requirePreShipDocSync (default true; omitted or invalid also means true). Set false to restore the previous offered-wiki behavior.

Contribute

Lasting skill changes ship here. Consumer installs stay managed copies.

Skills live in .agents/skills/<name>/SKILL.md with standard YAML frontmatter (name, description, version).

If this clone and a global install (~/.agents/skills) both exist, edit only .agents/skills/ws-* in the clone. Do not edit the global copies from this repo. There is no IDE toggle that hides the duplicate; agents follow AGENTS.md § Global vs local ws-*.

Agents: see AGENTS.md for the full routing contract.
Humans: see README.md for install and contribution guidelines.

Docs map: Wiki · Flow diagram · FAQ · FEATURES.md · CATALOG.md