Intent vs reality
What you meant,and what was built.
ezmodo keeps a map of what your product does, grounded in the code and the work, and shows where it has drifted from what you meant.
What’s included
“How it works” for every feature, goal, project, epic and task, with each claim citing its sources.
It shows where what you meant and what was built have diverged.
It tells you which commits and decisions changed since it was written.
Your agent writes it. To have ezmodo write it instead, press Generate.Paid plans · AI credits
A feature map: nested capabilities that span projects, each owning the code that implements it.
Code no feature owns yet waits for you to assign it.
Decisions are recorded where the feature lives.
Find an existing capability by meaning before you create a duplicate.Paid plans
A database schema catalog with an entity diagram and version diffs.Paid plans
A catalog of your app’s screens, synced from your code.Paid plans
A design system your agent reads before it builds UI: themes, components and pages as Tailwind HTML, with a live preview.Paid plans
Your agent edits designs as local files and pushes them back without overwriting anyone else’s change.Paid plans
How it works
Every claim nameswhere it came from.
Every feature, goal, project, epic and task can carry a plain account of how it works. Each claim in it cites the tasks, commits, files or decisions behind it. A claim nothing backs is marked unverified rather than left to sound sure.
Where what you meant and what was built disagree, it says so: intent on one line, reality on the next. It also lists the commits and decisions that changed since it was written, so you know when it’s time to have it written again.
Your agent writes it from the work it just did. It asks ezmodo for the sources with how_it_works_context and saves the result with apply_how_it_works. On paid plans with AI credits, you can press Generate and have ezmodo write it instead.
How it works · Push notifications
Written by your agentChanged since this was written
commit a81e04dcommit 77c2b19Decision: batch digests
- Sends a push when a watched task changes status.Task #142commit 3f9c2ab
- Delivery is retried from a durable queue.file push_worker.go
- Users can mute a project.Unverified
Intent vs reality (1)
Intent: Quiet hours hold every notification until morning.
Reality: Quiet hours apply to email only; pushes still send.
The feature map
Features that ownthe code behind them.
A feature is something your product does, like push notifications. It can span several projects and hold sub-features of its own.
Each feature owns the files and folders that implement it, so work that touches them links to the feature. Code no feature owns yet waits on the Features page for you to assign it.
The decisions made along the way are recorded where the feature lives, next to the thing they shaped.
Push notifications
ActiveProjects api web worker
Owned code paths
- api/internal/notify/
- web/src/components/notifications/
Sub-feature: Quiet hours
Unmapped code paths
Code paths no feature owns yet.
api/internal/digest/Assign
Catalogs · paid plans
Your schema and screens,kept as versions.
On paid plans, a database schema catalog records your tables as versions. You see them as an entity diagram, and you can compare two versions to see what a migration added, removed or changed.
A screens catalog lists the screens and pages your app has, synced from your code. It is an inventory: work still links to features, not to screens.
primary · v12 compared with v11
db_schemaprojects
- idPK
- nametext
- slugtext
tasks
- idPK
- project_idFK → projects
- due_atnew in v12
1 added · 0 removed · 1 changed
Design system · paid plans
Your agent reads the house stylebefore it builds UI.
On paid plans, your designs live in ezmodo as Tailwind HTML: a theme for the shared tokens, components such as buttons and drawers, and full pages. Each one has a live preview in a sandboxed frame.
Before your agent builds a screen, it calls get_design_system to learn the house style, then fetches the few designs it needs.
In a local checkout those designs arrive as files your agent edits like any other. A push carries the version it started from, so if someone changed the design in the meantime, the push is refused rather than overwriting their change.
> get_design_systemtheme tokens, plus one row per theme and component> get_design designIds:["primary-button"].ezmodo/designs/primary-button/index.html, styles.css, notes.md# the agent edits the files, then> manage_design update fromFiles:truesends the edited fields with the updatedAt it downloadedIn the help centre
More of what ezmodo does
Your AI is a teammate
Your own agent plans, tracks and records the work in ezmodo as it goes, and ezmodo never runs a model behind your back.
Read moreReleases you can trust
Your CI asks ezmodo whether a build may ship, and the answer comes from your tests, bugs and sign-offs.
Read moreBuild in public
Take bug reports, show your roadmap and publish your changelog and docs from the same place you plan the work.
Read moreThe everyday PM work
The sprint board, goals, reminders and recurring work, without the busywork.
Read more