Why enterprise grade
An app built in a weekend and a platform built for a global brand fail in the same places: an endpoint that checks who you are but not whose data you asked for, a migration nobody can roll back, a business rule nobody approved, a Monday with ten times the traffic. Enterprise teams do not avoid these by being smarter. They avoid them with process. This is the same SDLC our developers use for global brands, cut into steps your own agent can run.
It was not written for this product. The same SDLC builds large applications: enterprise systems, high-traffic e-commerce, customer-data platforms, product systems running in several countries at once. It was designed and refined over years of delivery by a team of product managers, project managers, senior architects and senior engineers at Innovate d.o.o., and what they learned is encoded in the playbooks: how a story is written, when it counts as refined, the execution rules, the coding standards, the rubrics each reviewer scores against, the dimensions of the sprint audit, the rules for a release. The MCP hands that process to your own agent, one step at a time.
- Seven gates, G0 to G7: refined, preflight, verify, review, pushed, audit, integration flows. A step that skips one is refused.
- Three independent reviewers on every change, none of whom built it.
- Due diligence across nineteen dimensions with file-level evidence, rescored after the work.
- Load testing at a year of your traffic before release, not after the first spike.
- An audit after every sprint, and a decision register for every rule nobody approved.
- The paperwork enterprises ask for: NDA, an art. 28 DPA, GDPR as home law — Innovate d.o.o., Ljubljana. When we do the work, your code and data stay in the EU; when your agent does it, your code never reaches us.
The pipeline
Eleven steps, seven gates. Planning happens once per sprint, building happens once per story, and the sprint closes only when the merged work survives an audit and the journeys across it work end to end.
What happens at each step
Every step has the same shape. Your agent does the work in your repository, where you can watch it. Our server hands out the brief, checks the preconditions before it accepts a state change, and writes the result into the ledger. Skip a gate and the server says which one, and what the next allowed step is.
Discover
briefsdlc_project_init- Your agent
- Reads what exists — notes, designs, the codebase — before asking anything. States the product in one sentence, lists the core workflows per role, writes down the business rules and draws the first-release line.
- Our server
- Business questions only, three to five per round, at most three rounds; a reasonable assumption is recorded with its reasoning instead of asked. Discovery stops at 80 out of 100 confidence, or earlier if health or payment data turns up that nobody mentioned.
- You get
- A few questions only you can answer, and assumptions you can overrule.
Backlog
templatesdlc_backlog_add- Your agent
- Writes stories to one template: who, what and why; at least three acceptance criteria, including one failure case and one scope boundary; at least two tasks; an estimate on 1, 2, 3, 5, 8; a risk; an owner.
- Our server
- Validates each story and stores it as Draft with whatever is missing listed. Criteria must be pass-or-fail — never “looks good” or “is fast”. Anything above 5 points gets split.
- You get
- A backlog in plain language that someone who did not write it can mark done or not done.
Refine
G0 · refinedsdlc_refine- Your agent
- Answers the twelve-item refinement checklist per story. Among them:
- What must this story not create or change?
- What happens on invalid input, a missing permission, a missing record, an outside service that is down?
- Which roles may do this, and which data must never be shown or logged?
- Which automated tests prove each acceptance criterion?
- Our server
- Moves the story to Ready only when every item has an answer; otherwise returns the open items by number.
- You get
- Stories someone else could build without asking you anything.
Sprint plan
refined onlysdlc_sprint_plan- Your agent
- Sets one goal in business language with numbered outcomes, picks three to eight stories, orders them by dependency and checks for two stories claiming the same route or table.
- Our server
- Refuses any story that has not passed G0.
- You get
- A sprint you can read in two minutes, reviewed with you before it starts.
Build
G2 · preflightsdlc_story_start- Your agent
- Builds exactly what the story says, in batches of three to five stories — never the whole sprint first. A stub or a to-do counts as unfinished. Each story is committed with its id.
- Our server
- Checks preflight — refined, three criteria, two tasks, an owner, an estimate — then hands over the builder brief: coding standards and the definition of done. Validation at every boundary, a role check on every endpoint, the tenant from the session and never from the request.
- You get
- Nothing starts that was not fit to start.
Verify
G3 · verifysdlc_verify- Your agent
- Runs the project's own typecheck, lint, build and tests on the committed branch and reports each result as it came out. Never skips, silences or loosens a check.
- Our server
- Passes G3 only when all four pass; a skipped test counts as a failure. Each failed run is one attempt, and the third moves the story to Blocked for a person to decide.
- You get
- Stories that build and pass, and the ones that could not, stopped and named.
Three reviews
G4 · reviewsdlc_review_request · _submit- Your agent
- Runs three reviewers, each in a fresh context with its own one-time nonce. They change nothing, score every criterion 0 to 5 and cite a file and line for every score; a claim without a location does not count.
Architecture
Correctness, maintainability, fit with existing patterns, and whether it holds at ten times the data.
any score below 3, any critical finding
Security
Sign-in, role and tenant on every route, input validation, data exposure, dependency risk.
also an unauthenticated path, a committed secret, a known exploited vulnerability
Functional
Every criterion walked as the user would, edge cases, error, loading and empty states.
also acceptance-criteria coverage below 4
- Our server
- Approves only when all three approve. A rejection sends the story back with every finding as a task. After three rework cycles it is Blocked: at that point the story is wrong, not the code.
- You get
- Three independent verdicts on every change, with locations you can check.
Push, Done
G6 · pushedsdlc_story_done- Your agent
- Pushes the branch and reports the reference. Never force-pushes a shared branch, never commits secrets.
- Our server
- Marks Done only with a passed verify and an approved review on record. Done by hand is refused.
- You get
- A Done column that means what it says.
Sprint audit
G5 · auditsdlc_audit_submit- Your agent
- Audits the merged sprint in a fresh context, on five dimensions scored 0 to 5:
- Story fulfilment — every Done story meets each criterion in the merged code.
- Functional completeness — no stubs; integrations work or are switched off.
- Data integrity — migrations run forward and back, queries scoped to the tenant.
- Integration flows — each critical journey walked screen to endpoint.
- Baseline integrity — what passed before the sprint still passes.
- Our server
- Blocks completion on any dimension scoring 1 or any critical finding. Blocking findings become sprint work and the audit runs again.
- You get
- What story-level review cannot see: what broke between stories.
Integrate
G7 · flowssdlc_sprint_complete- Your agent
- Walks every critical journey the sprint touched — sign-in, the core action, error recovery — and records each as passing or failing.
- Our server
- Completes the sprint only when the audit passed and every journey passes.
- You get
- A sprint whose journeys work, not a pile of approved parts.
Report
ledgersdlc_report- Your agent
- Asks for the report and runs a short retrospective: delivered, blocked and why, estimates against actuals.
- Our server
- Renders the board, every gate row with its provenance and the open decisions, as text and as an unlisted page.
- You get
- One page you can forward to an investor or the next developer.
The decision register: ship it switched off
The most expensive thing in a vibe-coded app is a business rule the model decided and the founder never saw. Here, a rule without an owner's answer is recorded the moment a story needs it — one question, answerable in one line — and the behaviour ships switched off or on a conservative default until you answer. The story still reaches Done; the sprint is not held hostage.
It iterates until 4/5
One pass is not the product. After every sprint, the audit's findings and the retrospective go into the next backlog as stories, and the estimates are recalibrated against what the sprint actually took. The due diligence runs again on the same nineteen dimensions, the load test runs again at a year of your traffic, and the next sprint fixes what they found. The loop repeats until the app or platform scores at least 4 out of 5 — strong — on the same 1–5 scale the due diligence uses.
How many sprints that takes depends on where the project starts. The reference project went from 2.0 to 3.4 in its first run of sprints; reaching 4 takes further sprints on the licence. The report shows the score after every iteration, so you can see which way it is moving.
Your dashboard
Every SDLC licence includes the SDLC dashboard, running on your own computer over your project's ledger; what your agent does through the MCP shows up there. It is the same dashboard our own delivery runs on, with nothing held back: the board, the sprint runs, the due diligence, the decisions, the agents and what each job cost, the reports.
Ready 3
In development 2
In QA 1
In review 1
Done 12
✓ typecheck ✓ lint ✓ build ✓ tests 312 passed
rework 1/3 · attempt 1/3 · provenance: panel-witnessed
✓ typecheck ✕ lint 2 errors · attempt 1/3
2.0 → 3.4 / 5 overall
22 decided4 open
14:32 security reviewer · S-014 approve €0.41
14:29 verifier · S-016 lint fail €0.07
14:21 builder · S-017 running €1.12
14:08 architecture reviewer · S-014 approve €0.38
readiness · 0–100
Illustrative screens. Numbers and stories are an example, not a client.
What the workspace contains
- Project overview
- Product vision
- Requirements
- Discovery and document intake
- Backlog
- Board
- Story pages with their refinement
- Sprints and sprint runs
- Change requests
- Dependencies
- Design and wireframes
- Software design document
- Due diligence
- Decisions taken on your behalf, and open questions
- Agents and their jobs
- Activity log
- Cost
- Timeline
- Regression runs
- Performance
- Load testing
- Monitoring
- Infrastructure
- Releases
- Reports
- Docs
- Settings and members
A sprint, as a transcript
Condensed from one session in Claude Code on a booking app. Tool calls are shown by name; the agent's work between them — editing files, running tests — happens in the terminal as usual.
> Set this repo up on the SDLC. First goal: customers can cancel their own bookings.
▸ sdlc_project_init {name: "booking", stack: ["nextjs","postgres"]}
→ project k3F9xQ2a · discovery brief
Three questions before I write stories:
1. Can a customer cancel at any time, or only up to a cutoff?
2. Is a cancellation inside the cutoff refunded?
3. Who gets notified — the customer, the business, both?
> Up to 24 hours before. Both get an email. Refunds — I haven't decided.
▸ sdlc_backlog_add 4 stories
→ S-001 … S-004 stored as Draft · S-003 has 2 criteria, needs ≥ 3
▸ sdlc_decision_add "Is a cancellation inside 24 h refunded?" asked_by: owner
→ D-001 open · ships as: switched off
▸ sdlc_refine S-001 … S-004
→ G0 pass ×3 · S-003 open: R5 (scope boundary), R12 (tests per criterion)
[agent adds the boundary and a test per criterion]
▸ sdlc_refine S-003 → G0 pass · Ready
▸ sdlc_sprint_plan goal: "Customers cancel their own bookings" · S-001 … S-004
▸ sdlc_sprint_start SP-1 → active
▸ sdlc_story_start S-002 "Customer cancels a booking up to 24 h before"
→ G2 pass · builder brief · In Development
[agent builds on its branch, commits "S-002 …"]
▸ sdlc_verify S-002 → G3 fail · lint: 2 errors · attempt 1 of 3
[agent fixes the two lint errors in the story's files]
▸ sdlc_verify S-002 → G3 pass · tests 48 passed, 0 failed · In QA
▸ sdlc_review_request S-002 → 3 briefs, 3 nonces, run each in a fresh context
▸ sdlc_review_submit architecture → approve · min score 4
▸ sdlc_review_submit security → reject · auth 2
high: DELETE /api/bookings/[id] checks sign-in, not that the booking belongs to the caller's account — app/api/bookings/[id]/route.ts:41
▸ sdlc_review_submit functional → approve · ac_coverage 4
→ G4 reject · back to In Development · 1 task · rework cycle 1 of 3
[agent scopes the query to the session's account, adds a test for another account's booking]
▸ sdlc_verify S-002 → G3 pass · 50 passed
▸ sdlc_review_request S-002 → 3 new nonces
▸ sdlc_review_submit ×3 → approve · approve · approve
→ G4 approve
▸ sdlc_story_done S-002 pushed_ref: 9c41e7a → G6 · Done
[S-001, S-003, S-004 the same way]
▸ sdlc_audit_request SP-1 → 5 dimensions
▸ sdlc_audit_submit 4 · 4 · 3 · 4 · 4 · refund path deferred (D-001, switched off)
→ G5 pass
▸ sdlc_sprint_complete SP-1 flows: sign in → book → cancel pass · cancel inside 24 h → refused with message pass
→ G7 · SP-1 completed
▸ sdlc_report → 4 stories Done · 1 verify retry · 1 review rework · 1 open decision · report page /r/k3F9xQ2a
> Refunds inside 24 hours: no.
▸ sdlc_decision_resolve D-001 → decided · story S-005 planned to switch it on
Notice what did not happen. The agent did not mark its own work Done. The refund question did not stall the sprint, and did not get answered by a guess.
What you get
- A gate ledger with provenance: every result, its time, its verdict and where it came from.
- A decision register: open rules, who decides, how each ships meanwhile.
- A refined backlog: pass-or-fail criteria, tasks, estimates, risks, owners.
- Three independent reviews per change, scored with file and line.
- Sprint audits on five dimensions, re-run until nothing blocks.
- A load-test gate before release.
- The dashboard on your own computer with the board, sprint runs, reports and everything above.
- A sprint report page per project.
- Readiness before and after: the free scan on day one and after the last sprint.
What “attested” means, plainly
Our server never reads your disk. When your agent says the tests passed, the server records that your agent said so. It checks the order of things — no Done without a passed verify and an approved review, no sprint without refined stories — and refuses a step that skips a gate. It cannot check that the tests really ran.
So every ledger row carries its provenance. Rows your agent reports are marked self-attested. Two paths are witnessed: CI intake, where results are read from your CI, and the reviewer panel, where our server runs the three reviews against the pull request. Those rows say so. Nothing else does, and we do not call any of it enforced.
Three ways in
Readiness scan
- The analysis and everything around it is free
- 118 read-only detectors, run by your agent on your machine
- A 0–100 score, a grade, every gap and its consequence
- No remedies. The diagnosis is free; the fix is not.
SDLC licence
- Every step on this page, through the same MCP
- Reviewer panel included
- The dashboard, on your own computer
- Updates to the process for the year
- Activated by a person, not a checkout
48 hours
- We run the same pipeline on your repository
- Delivered as pull requests; nothing is pushed to your main branch
- Includes a year of the SDLC licence
Request the SDLC
The licence is not self-serve. Tell us who you are and what you built.
Request received. A person replies within one working day; until then the free scan keeps working.
Already connected? Ask your agent to call sdlc_request_access and the same request is made from inside your MCP host.
Short answers
Which hosts does it work in?
Any MCP host that speaks streamable HTTP with OAuth: Claude Code, Claude Desktop, Codex, and Cursor, Windsurf or Cline through mcp-remote. The install line for each is on the start page.
What leaves my machine?
What your agent sends: story text, decisions, pass or fail with one-line summaries, review scores and findings with file and line. Not your source files. The project document stays on our server so the ledger survives between sessions; sdlc_project_delete removes it. The reviewer panel, if you use it, reads the diff of the pull request it reviews.
Can I cancel?
The licence is paid a year at a time. Do not renew and the SDLC tools lock again at the end of the paid year; the free scan keeps working, and your projects can be deleted whenever you like.
What if my agent is weak?
Then it fails more gates. That is the point: a weak agent that cannot pass verify in three attempts stops at Blocked instead of shipping, and three reviewers in fresh contexts catch what the builder talked itself into. Or take the done-for-you tier: the same pipeline, with us at the keyboard.
What does “attested” mean?
That your agent reported the result and the ledger records it as such. The server checks order, not the truth of a test run. CI intake and the reviewer panel are the two witnessed paths; everything else is marked self-attested.
Do I need GitHub?
No. Sign-in is an emailed link. The pipeline needs a git remote your agent can push to, so a pushed reference can be recorded; any host will do.
Is the code mine?
Yes. Your agent writes it in your repository; we never hold a copy. What we hold is the project document — stories, decisions, the ledger — and that is yours to export or delete.
Install the MCP. Run the free scan tonight.
Sign-in is by email and free. The scan tells you what is wrong; the prodready SDLC is how your agent fixes it without skipping a step — €299 / year + VAT, unlimited projects.