Skip to content

The modeling skill ​

/ignatius-modeling is a Claude Code skill that writes ignatius entity and flow files by asking you one question at a time.

One session asks, writes, validates, and then waits for you to approve:

The skill needs Claude Code and the ignatius binary on your $PATH (Download). Install the skill into the current project, or add -g for every project:

bash
npx skills add https://github.com/noormdev/ignatius --skill ignatius-modeling

Which mode do I run? ​

InvocationUse it to
/ignatius-modeling entityAdd one entity
/ignatius-modeling modelBootstrap ignatius.yml, group files, and folders
/ignatius-modeling flowAuthor a data flow diagram when you can already name your processes
/ignatius-modeling discoverWork out entities and flows from how the business runs. With a real database, schema dump, codebase, or API, it reads that instead of interviewing you
/ignatius-modelingAsks which mode

Every entity gets example rows and every process gets input and output examples, because concrete rows expose wrong rules that pass every structural check. The skill picks key-inherited or orm-oriented for each new entity from the keys you already have; see the two key conventions. To point discover at a live database, see Reverse-engineering.

What does validation catch? ​

After each write the skill runs ignatius validate <model-root>, reports each finding with a fix hint, and asks whether to revise. It stops after five attempts.

CheckDone by
Unknown targets, dangling foreign-key columns, missing discriminators, unknown columns in flow contracts, unbalanced decompositionsignatius validate
Example rows with a key that is not a columnOnly ignatius serve shows it. validate never prints that rule, so the skill reads the rows back
Each predicate reads as a true sentence both ways, and the body states the purpose and rulesThe skill's self-check, then you

How do I review what it changed? ​

Every session that changes model files ends with one change note, .ignatius/changes/<slug>.md. It names the entities, columns, diagrams, and nodes the session touched and says why. ignatius serve shows the edit as highlights beside the note. ignatius approve accepts it.

Before its first write, the skill checks for a baseline so that the edit shows as a change:

.ignatius/baseline.json.ignatius/changes/The skill
validanyedits as usual
missing or invalidemptyruns ignatius approve, then edits
missing or invalidholds notesstops and asks you to approve the notes or restore the baseline

The skill never runs approve after editing. Accepting the edit is your step. The model mode writes no note, and a model it creates gets a .gitignore containing .ignatius/. The note format is in Change review.

What bites ​

SymptomCauseFix
The skill stops before its first write.ignatius/changes/ holds notes and there is no baselineRead the notes, run ignatius approve, then continue
A change shows as unexplainedThe note does not name that entity, column, diagram, or nodeAdd the name to the note
A note shows named but unchangedThe note names an entity, column, diagram, or node that did not changeRemove the name, or make the change
A note you wanted is goneignatius approve deletes every noteCopy anything worth keeping into the entity or flow body first

Next ​