Skip to content

naturalize.invariants is documented but never rendered #15

Description

@eric-sabe

Summary

naturalize.invariants is documented in engsys.config.example.yaml ("project hard rules appended to CLAUDE.md project facts") but is never consumed by the renderer — the values go nowhere.

Evidence

  • engsys.config.example.yaml: invariants: [] # project hard rules appended to CLAUDE.md project facts
  • lib/render.js (renderClaudeMd): reads nat.project_facts, nat.model_strategy, hook patterns — there is no reference to nat.invariants anywhere in lib/ or install.

Repro

Install into a project with:

naturalize:
  invariants:
    - "Never commit *.campfile.json saves — they carry the real camper roster."

The generated CLAUDE.md contains no trace of the invariant (found during a real install into eric-sabe/campOS).

Suggested fix

Either render invariants into the PROJECT-FACTS seed (e.g. an **Invariants (hard rules).** bullet list appended after project_facts), or remove the key from the example config so users don't declare rules that silently evaporate. Rendering it seems right — invariants are exactly the facts you want machine-seeded on every fresh install rather than re-typed.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions