Skip to content
v1.15.3GPL-3.0-or-later

skraft SDLC pipeline — agents, skills and instructions for outside-in TDD, Clean Architecture and the RESEARCH→DESIGN→DISTILL→DELIVER engineering pipeline.

SKRAFT plugin

Deterministic agentic software delivery for Claude Code and GitHub Copilot.

Give SKRAFT one refined story. Specialist agents research it, design it, turn it into acceptance tests and deliver tested code, each phase challenged by a read-only reviewer. Runtime hooks — not the model's goodwill — enforce the phase order, the skills each agent must load, the artifacts a phase must produce, the verdicts and the commits.

Why SKRAFT

  • Phases you can trust. A phase cannot start out of order, and cannot close without its artifacts, a recorded review verdict and, for delivery, a new commit.
  • Proof, not claims. Tests, architecture checks, coverage and mutation scores are run by scripts and recorded as evidence; a missing proof blocks delivery instead of passing silently.
  • Craft by default. Outside-In TDD, BDD, Clean Architecture per stack, contract testing, ADRs and mutation testing ship as skills the agents load when they need them.
  • Resumable. State, recovery data and an append-only audit trail live in your repository.

Install

Claude Code — inside Claude Code:

/plugin marketplace add SebastienDegodez/skraft-plugin
/plugin install skraft

GitHub Copilot — install skraft from this repository's marketplace (or load plugins/skraft-framework with --plugin-dir for local development), then select skraft:skraft-orchestrator in the agent picker.

Run a story

  1. Select skraft-orchestrator.
  2. Give it one refined story with acceptance criteria.
  3. Review the artifacts and commits it produces; it resumes where it stopped.
flowchart LR
    P[skraft-backlog plugin, or any story writer] -. refined story .-> O[skraft-orchestrator]
    subgraph Engineering pipeline
        R[RESEARCH] --> A[DESIGN] --> T[DISTILL] --> I[DELIVER]
    end
    O --> R
PhaseSpecialistReviewerResult
RESEARCHsolution-researcher—Research brief and constraints
DESIGNsolution-architectsolution-architect-reviewerArchitecture decisions and implementation shape
DISTILLacceptance-designeracceptance-designer-reviewerGherkin scenarios, test plan, implementation plan
DELIVERsoftware-engineersoftware-engineer-reviewerTested code, quality evidence, verified commits

A rejected result goes back to its specialist; it never advances silently.

Other entry points you can call directly:

  • Product: install the skraft-backlog plugin: its backlog-discoverer and backlog-planner turn a need into refined stories the orchestrator reads. Any story with acceptance criteria works as well.
  • Brownfield: brownfield-analyst characterizes an existing system, brownfield-harness-builder pins its behavior with tests and contracts, brownfield-refactorer modernizes it step by step (Mikado, Strangler Fig).

Supported stacks

StackClean ArchitectureQuality gates and mutationMocking and contract tests
.NETclean-architecture-dotnetquality-gates-dotnet (Stryker.NET)Microcks or in-process doubles; WebApplicationFactory
Pythonclean-architecture-pythonquality-gates-python (cosmic-ray)Microcks or respx; FastAPI TestClient
Java / Spring Bootclean-architecture-javanot yetnot yet
React / TypeScript (Vitest)clean-architecture-reactquality-gates-typescript (StrykerJS on Vitest 4)MSW or Microcks; no contract test, a front end exposes no API
Node JavaScript—quality-gates-javascript (node --test, StrykerJS TAP)not yet

A stack without a quality-gates adapter blocks DELIVER with a structured reason: SKRAFT never guesses a command or skips a gate.

Guarantees

GuardWhat you get
G1A phase agent dispatched out of order is blocked before it runs
G2 / G3Each agent starts with its mandatory skills, and is sent back if it never loaded them
G4 / G5A phase closes only with its artifacts, a matching review verdict and, for DELIVER, a new commit
G7State, execution logs and the active-pipeline pointer cannot be edited by hand
G8The orchestrator never writes source or test files; it dispatches the agent that does
G9A dispatch must pass every recorded input, and the previous review on a retry

Every guard is covered by unit and acceptance tests; the hooks reference lists what each one checks, how it fails, and what has been verified live.

Where the work lives

.copilot-tracking/skraft-plans/{project-slug}/
├── research/  plans/  features/  details/  changes/  reviews/
├── state.json
└── execution-log.json

Each artifact feeds the next phase. state.json is a runtime contract, not a planning document: read it through the state CLI, run from your repository.

node "<plugin-root>/src/cli/state.mjs" get --slug my-feature
node "<plugin-root>/src/cli/state.mjs" timeline
node "<plugin-root>/src/cli/health-check.mjs"

Repository settings live in skraft-config.json; quality thresholds and engineering invariants are deliberately not user-relaxable.

Reports in pull requests (in progress)

SKRAFT is gaining two stable PR comments per story: a forecast from the approved scenarios and test plan, and an outcome from the delivered code, evidence and review. The scope, the current state and what remains unverified are in REPORTING.md.

Documentation

License

GPL-3.0-or-later. See the repository license.