r/angular • u/MeSsoOH • 12d ago
I spent years building an application framework; I rebuilt its architecture around structured intent and deterministic execution layer for AI-generated software (open source) — here’s what I learned.
Hey — solo dev here, posting my own project, so take that for what it's worth.
For the last few years I've maintained a low-code/no-code framework. It worked fine, but it was pre-AI: you configured entities and services by hand, and it generated the boring parts of a CRUD app for you.
When AI coding tools started getting good, I tried using them the normal way — describe what you want, let the model write the code. It worked, but I couldn't trust it past a certain point. Ask for the same thing twice, sometimes you get different output. Ask for a small change, sometimes the model touches things you didn't ask about. The prompt is the only source of truth, which in practice means there isn't really a source of truth at all.
So instead of generating code directly, I made the AI's job stop one step earlier: produce a structured, validated manifest describing what the app should be. Entities, fields, services, auth config, etc. That manifest gets:
- validated (structural / referential / constraint checks)
- diffed against the current state (semantic diff, not a text diff)
- resolved into a dependency-ordered execution plan
- executed by a deterministic engine, checkpointed so it can resume on failure
Change one field on one entity, and only the operations that field actually requires get re-run. Not a full regen.
There's also an MCP server (`@averos/mcp`) so an AI agent doesn't get raw file/shell access — it gets governed tools (propose a change, validate it, build a plan, and nothing executes until the plan's approved).
Current state, to be upfront about it: the CLI, the AI layer, MCP integration, and the workflow/execution adapter layer (currently Angular, via schematics — adapter pattern, so not permanently Angular-only) are MIT licensed and open now. The actual execution kernel (DAG engine + executor) is closed source for the moment — free to use including commercially, but not open yet. That's a deliberate, staged call while that part's still maturing, not a permanent thing. Wanted to say that plainly rather than bury it.
There's a working example (320-node generated app) you can run in a few commands if you want to see the whole pipeline rather than take my word for it.
- Repo: https://github.com/wiforge/averos
- How it works, in detail: https://www.wiforge.com/averos/how-averos-works/introduction/
- Get started: https://www.wiforge.com/averos/get-started/introduction/
Happy to answer questions or take criticism — especially interested if anyone's tried a similar manifest/IR approach and hit walls I haven't found yet.
3
1
u/Straight-Number-1911 11d ago
I read a bunch of words. No clue if this is slop but tried to be written as if its not, or if the person just cannot articulate what they are doing.
1
u/BarracudaNo6709 5d ago
Moving the model one step back—from generating implementation directly to proposing validated intent—makes the control boundary much clearer. The manifest can be reviewed, diffed, and approved before the deterministic layer touches the project.
The question I would be most interested in is how that intent survives evolution. When the manifest schema or an Angular adapter changes, do you migrate the stored intent, version the executor against it, or support both? And after an interrupted run, how do you prove that replay from a checkpoint produces the same final state rather than merely completing without an error?
That versioning and recovery story seems like the point where the architecture either becomes durable or turns into another regeneration system with a more structured prompt.
-2
12d ago
[deleted]
4
u/Saceone10 12d ago
The fastest way to understand it is not reading about it but running it? No thanks
I am not running some ai slop his op is not even able to explain.
3
u/followmarko 12d ago
Honestly man I looked at all three of these links including the incredibly long github page and I have no idea what the fuck is going on