The SDLC pipeline
How the pipeline works
The steps in order, the approval gates between them, and what happens downstream when an upstream document changes.
The SDLC pipeline turns a Request for Proposal into a reviewed document set: scope, requirements, design, test plan, build tickets, a compliance check, a traceability matrix and a client proposal. Each step runs on your project's agent, the bridge checks what the agent wrote, and a person approves the result before the next step can build on it. This page shows the steps in order, the gates between them, the states a step moves through, and what happens downstream when an earlier document changes.
The steps in order
The core chain is RFP, Scope, SRS, SDS and STS. Each of these produces a document that someone reviews, and the next step unlocks only when that document is approved. After STS the pipeline branches: Tasks, Compliance and Traceability run as soon as their input exists, and the Proposal waits for the approved STS.
A diamond is a human approval. A plain arrow means "the document must exist" — it can still be a draft awaiting review.
All steps at a glance
| Step | Command | Document | Needs before it can run | Agent skills used | Output file |
|---|---|---|---|---|---|
| RFP | /rfp | Request for Proposal | Nothing (entry point) | sdlc-rfp-writer | rfp-vN.md (an upload keeps its own extension, such as rfp-v1.pdf) |
| Scope | /scope | Project Scope | RFP produced and approved | sdlc-scope-analyst | scope-vN.md |
| SRS | /srs | Software Requirements Specification | Scope produced and approved | sdlc-business-analyst, sdlc-compliance-checker, sdlc-srs-narrative-writer (four parts) | srs-vN.md |
| SDS | /sds | Software Design Specification | SRS produced and approved | sdlc-architect | sds-vN.md |
| STS | /sts | Software Test Specification | SDS produced and approved | sdlc-test-author, sdlc-sts-narrative-writer | sts-vN.md |
| Tasks | /tasks | Build Plan — Epics and Tickets | STS produced | sdlc-task-author, once per design component | tasks-vN.json and tasks-vN.md |
| Compliance | /compliance | Compliance Assessment | STS produced | sdlc-compliance-checker | compliance-vN.md |
| Traceability | /traceability | Traceability Matrix | SDS produced | None — computed by the bridge | traceability-vN.md |
| Proposal | /proposal | Technical Proposal | Scope, SRS and SDS produced, STS approved | sdlc-proposal-writer | proposal-vN.md |
Every file lives under .sdlc/artifacts/ in the project's working folder. The skills are the reference files on your project's agent; see Set up the project agent.
Reviewed and unreviewed steps
Six steps are reviewed: RFP, Scope, SRS, SDS, STS and Proposal. When one of them finishes, its document waits for Approve or Request changes.
Tasks, Compliance and Traceability are not reviewed. They are complete the moment they produce their output, and they have no Approve button. You can re-run them whenever you like.
What every step does
Whatever the step, a run follows the same pattern:
- Check the inputs. The bridge confirms the documents and data the step reads are in place. A missing input stops the run before the agent is called.
- Call the agent. The bridge sends one message per skill call to the project's agent, as the person who started the run. The agent replies with one JSON object; documents travel inside it as Markdown.
- Check the reply. The bridge validates the data against its schema and the Markdown against the step's document rules: required section headings, every id the step owns, the minimum number of Mermaid diagrams, closed code fences and a size limit.
- Correct. When a check fails, the bridge sends the agent its own reply back with each problem located — where, expected, found, how to fix — and the agent edits that reply. Most calls get up to 3 attempts, and the best reply is kept. If document problems remain, the draft is saved with them listed for the reviewer; if the data a later step reads is still invalid, the run stops and lists the checks that failed.
- Assemble the document. The bridge puts a title block on top (the document title, then a table of project, client, version and date), adds the tables it owns — such as the requirement catalogue or the test-case catalogue — and appends the version history. The agent never writes those parts.
- Record it. The document is written as
<step>-vN.md, hashed, and registered in the project's state.
You can follow each of these stages live in the run panel. See Run the pipeline.
Step states
Each step is always in one of five states. The step rail in SDLC Studio shows each one: an available step with a play button, an approved step with a re-run button, and a locked step with a lock and what it is waiting for — "Approve Requirements Spec to unlock this" or "Run System Design Spec first". Once every document is approved you can start a new version of the pipeline; see Start a new version.
| State | What it means | What you can do |
|---|---|---|
| Locked | A prerequisite document is missing, or a required approval has not been given. | Finish or approve the step the tooltip names. |
| Available | Everything it needs is in place. | Run it. |
| Running | A run is in progress. Only one step runs per project at a time. | Watch it, or Stop it. |
| Awaiting your review | A reviewed step produced a draft. The composer says "/step is waiting on your review above." | Approve, or Request changes. |
| Complete | Approved (reviewed steps) or produced (unreviewed steps). | Read it, or re-run it. |
A step's completion is judged by its document, not just by its run record: a run that ends without registering its file does not count, and the run is marked failed with "finished but did not produce the expected artifact".
Versions
A version number marks an approved milestone, not every generation:
- The first draft of a document is version 1.
- Regenerating a draft that has not been approved yet — a Request changes, or a re-run that failed and was run again — keeps the same version number and replaces the draft.
- Changing a document after it has been approved starts the next version: v1 approved, then a re-run produces v2 for review.
Compliance and Traceability are never approved, so they count up by one on every run. Tasks is never approved either, and keeps the same version number, replacing its files on every run.
Requesting changes
Request changes is available only while a document is awaiting review. You write the changes in the composer, one per line, and only that step runs again; the new draft comes back for review under the same version number.
How the changes reach the agent depends on the step. For the RFP, the agent receives its previous draft and edits it. For Scope, SRS, SDS, STS and Proposal, the change list is passed to the agent as notes alongside the original inputs and the document is written again from those inputs — so describe exactly what should change, and check the parts you did not mention too. See Review, approve, request changes.
When an upstream document changes
Approvals are tied to content. When you approve a document, the bridge records the approver, the time, the version and a SHA-256 hash of the file. An approval stays valid only while the document's current hash still matches the one recorded.
Re-running an approved step
Say the SRS and SDS are both approved, and you re-run /srs:
- The SRS run produces v2, which waits for review. Its old approval no longer matches, so the SRS reads as awaiting review again, and any of its earlier approved runs are re-opened to match.
- The SDS keeps its approval — it was given for the SDS's own content, which has not changed. But the SDS was built from an older SRS, so it is flagged stale: its button reads
/sds re-run, upstream changed. - The same flag spreads down the chain. The STS, built on that SDS, is also flagged stale, because an upstream step somewhere in its chain was produced more recently than it was.
A stale flag clears only when the stale step itself is re-run. Nothing downstream is regenerated for you: approve the new SRS, then re-run the SDS, and carry on down the chain.
Replacing the RFP
While an agent-drafted RFP is awaiting review, the composer offers Replace RFP in place of Upload RFP. An uploaded file becomes the project's RFP and is recorded as approved by you, then the bridge runs the same approval check it runs after any regeneration. Documents already built from an earlier RFP keep their approvals; if the RFP step was re-run after they were produced, they carry the stale flag. Re-run /scope to build on the new RFP.
A re-run that changes nothing
If you re-run an approved step and the agent produces a document identical to the approved one, there is nothing new to review. The run is marked failed with "did not produce a new version — the artifact is unchanged since the last approval", and the existing approval stands.
Under the hood
- The gate table lives in
bridge/sdlc-engine/lib/sdlc/gate-rules.js, loaded throughbridge/src/lib/eccRoot.ts;bridge/src/services/phaseGate.service.tsreads the project's state and run history and resolves each step's state. The client's composer shows exactly the reason the bridge would give. GET /api/projects/:id/commandsreturns every step's state, withblockedBy(a missing document),blockedByApproval(a missing approval) andstale. Starting a locked step returns422 PHASE_GATE_LOCKED.- Starting a step is
POST /api/projects/:id/commands/:cmd. Request changes isPOST /api/projects/:id/commands/amendwith the phase and a non-emptychangeslist; it is refused withARTIFACT_NOT_UNDER_REVIEWunless the document is awaiting review. - Approval is
POST /api/projects/:id/approvals/:phase. It uploads the draft to storage asprojects/<id>/approved/<phase>-vN.mdbefore recording the approval, and refuses while a step is running. - The project's state is
.sdlc/state.json:artifacts.<step>holds each document's path, version, hash and version history, andapprovals.<step>holds each approval. - More detail: Document checks and versioning, Run lifecycle and streaming, and The agent protocol.