Human
Requirements
AI
Domain spec + templates
FixedCode
Deterministic generation
AI
Business logic
Human
Review + ship
Smaller teams. Faster delivery. Fewer handoffs.
AI + deterministic generation replaces the coordination overhead that slows every software org down.
Create a ticket. Get a running service back. No handoffs.
The real cost of building software
It's not writing code. It's the handoffs, coordination, and waiting between the people who write it.
Handoffs Everywhere
PM writes requirements, waits for dev. Dev asks platform about CFRs. Platform explains for the 50th time. Dev hand-wires everything. Review catches drift. Fix. Re-review. Weeks of coordination before any business logic.
Guardrails Are Social, Not Structural
The golden path lives in wikis and CLAUDE.md files. Code reviews catch violations after the fact. Nothing enforces standards at generation time. Compliance depends on discipline.
AI Makes It Faster But Not Safer
AI coding tools accelerate delivery but produce different structural code every time. 10 teams, 50 services, 50 interpretations. Speed without guardrails is just faster drift.
Why not just use one or the other?
AI alone is fast but inconsistent. Scaffolding alone is consistent but rigid. FixedCode uses both where they're strongest.
AI Generation Alone
What it does well
- Fast — generates entire services in minutes
- Flexible — handles any language, any framework
- Creative — great at business logic and edge cases
Where it falls down
- Different output every time, even for the same prompt
- CLAUDE.md and coding standards are suggestions, not guarantees
- At 50 services, review agents can't catch everything
- No regeneration path — once generated, you're on your own
Scaffolding Alone
What it does well
- Deterministic — same input, same output
- Consistent — every service looks identical
- Auditable — you know exactly what was generated
Where it falls down
- Templates are painful to write and maintain by hand
- Fire-and-forget — generate once, then you're alone (Yeoman, Backstage)
- Rigid — can't handle the creative, domain-specific parts
- Nobody wants to author YAML specs manually
FixedCode: AI + Deterministic Together
AI handles the creative parts
Translating requirements into specs. Building and refining templates. Implementing business logic in extension points. The parts that need flexibility.
Engine handles the structural parts
Deterministic generation from specs. Same input, identical output. Every CFR built in. Regeneration-safe. The parts that need guarantees.
Each compensates for the other
AI can't be consistent — the engine is. The engine can't be creative — AI is. Templates are hard to write — AI builds them. Specs are tedious — AI drafts them.
The AI Sandwich
AI creates the patterns. FixedCode locks them in. AI enriches the output. You never re-prompt for the same structure twice.
AI agents call fixedcode generate via CLI, MCP, or CI pipeline. Works with any AI tool.
AI + Human
Domain Specs
PM / Domain Expert
Defines what to build. Plain English requirements translated by AI into YAML domain specs.
Template Curation
Developer / Platform Team
Defines how to build it. AI extracts patterns from existing services into templates. Human refines iteratively.
FixedCode
Crystallises AI-generated patterns into reproducible templates. Same spec = identical output, every time.
AI + Human
The custom parts: business rules, domain-specific logic, unique integrations. In clearly marked extension points that regeneration never touches.
From ticket to running service
Anyone writes a request. AI handles the translation. The engine handles the guarantees. Humans handle the business logic.
The line between PM and developer blurs — with AI + deterministic generation, anyone who understands the domain can ship a service.
Request
HumanAnyone creates a ticket, Slack message, or doc. Plain English requirements. No YAML, no terminal. The role doesn't matter — PM, developer, domain expert.
Translate
AI AgentAI agent picks up the request from any source. Translates plain English into a YAML domain spec conforming to the org's schema. Asks clarifying questions if needed.
Generate + Deploy
AutomatedSpec pushed to standards repo. CI triggers fixedcode generate. Code pushed to service repo. CI/CD deploys. Every CFR built in automatically.
Enrich
Human + AIThe same person — PM, developer, whoever — fills in business logic in extension points with AI assistance. The 10% that's unique. The role boundary has dissolved.
The role boundary is dissolving
Step 1 and Step 4 are done by the same person. A PM who understands the domain can request a service and implement the business rules — with AI assistance. A developer who understands the platform can improve the templates that make this possible. The distinction isn't PM vs developer. It's domain knowledge vs platform knowledge.
This isn't a code generator. It's a different org structure.
Fewer handoffs. Fewer roles involved per service. The line between PM and developer dissolves — anyone who understands the domain can ship.
Today: Handoffs everywhere
PM, dev, platform — rigid roles, rigid boundaries
- PM → dev → platform → review → fix → re-review → deploy. Multiple handoffs, multiple waits, weeks.
- Every new service: someone hand-wires auth, logging, events. Platform team answers the same questions.
- Review agents check AI output. Humans review what agents flag. Every step is lossy at scale.
- Rigid roles: PM can't ship, developer is stuck on infrastructure, platform team is a bottleneck.
With FixedCode: Roles blur
Domain knowledge matters, not job title
- Create a request → AI drafts spec → pipeline generates → deployed. One person, one workflow, minutes.
- Anyone who understands the domain can ship a service. AI handles the translation. Engine handles the guarantees.
- Generated code is known-good. Review only the 10% that's unique. Templates reviewed once, applied everywhere.
- Roles blur: domain experts ship directly, developers evolve the platform, the org scales without overhead scaling.
From spec to code in seconds
schema: ddd/1.0
boundedContext: Order
aggregates:
Order:
attributes:
orderId!: uuid
customerId!: uuid
status: string = OrderStatus
totalAmount: decimal
commands:
- PlaceOrder{customerId!, items!}
-> OrderPlaced
- UpdateOrder(orderId!){items!}
-> OrderUpdated
- CancelOrder(orderId!)
-> OrderCancelled
queries:
- GetOrder(orderId!)
-> Order
- SearchOrders(page, size, filters)
-> PagedList
entities:
LineItem:
lineItemId!: uuid
productId!: uuid
quantity!: int~20 lines of YAML. Auth, audit, logging, events, tests — all generated. Teams write business logic, not infrastructure.
One engine. Five architecture types.
Pluggable schemas for the patterns your team actually uses.
Domain-Driven
Event-driven microservices with command/query separation
REST / CRUD
Standard API services with relationships and validation
Event-Driven
Producers, consumers, and event contracts
Frontend
Pages, components, and data sources
Infrastructure
Service catalog to deployment configs
Pluggable stack bundles
Templates tied to schema + stack. Pick your architecture, pick your language.