@cisstech/foundry
v0.1.0-beta.1
Published
Ask for one change, get one change. A spec that lives in your repo, that your agent builds from, and that foundry check keeps honest.
Maintainers
Readme
@cisstech/foundry
The Foundry CLI (command: foundry): a spec you build from, alongside whichever coding agent you
already use. It makes no model calls of its own. Your agent is the author; Foundry gives the spec a
shape, keeps it honest, and renders it.
Commands
Every command runs against a project root: -C <dir> (or --cwd <dir>) points at it; the default is
the current directory. So any command works on any project without cd-ing into it.
foundry [-C <dir>] init [dir] scaffold a project (init also takes a positional target dir)
foundry [-C <dir>] check validate the spec is coherent (<root>/spec)
foundry [-C <dir>] serve [--port <n>] render the screens as a live canvas (dev loop)
foundry [-C <dir>] build [--out <dir>] render the screens as a static site (default out: dist)Four commands, and no versioning of its own: the spec is markdown in your repository, so a tag is a
version and git diff is the history.
What init scaffolds
spec/project.md+spec/flows/<flow>.md- the contract: prose plus onespec:YAML block each. The source of truth.design.md- the visual tokens (colors, typography) at the repo root.wiresmith.yml- project name and asset folders.flows/<flow>/[NN-]<id>.<device>[.<state>].html- the wireframe screens, content-only HTML.AGENTS.md- the conventions that teach any coding agent to read, author, and keep the spec in sync.
Guarantees
checkis a CI gate: exit 0 when coherent, exit 1 on any error, exit 2 if the spec cannot be loaded. It enforces five rules: dangling edges, overlays with no way out, nav pointing at unknown flows, unreachable screens, and flow files missing from the index. It says nothing about taste, and it does not yet verify empty states, form errors, or destructive confirmations.initnever overwrites an existing file.buildoutput is a self-contained static bundle: the navigable canvas (index.html+assets/), with the spec and anydocs/readable in their own tabs.
Boundaries
- No model calls and no network. Generation is your agent's job; Foundry is the deterministic layer around it.
- Rendering needs Angular and Vite, which ship as optional dependencies. Install with
--omit=optionalfor a check-only setup, andinitandcheckstill work. - The spec is parsed and validated by
@cisstech/specsmith; the screens are rendered through@cisstech/wiresmith(its model and Angular canvas). Foundry owns the render runtime (folder loader plus the Analog and Vite app) and orchestrates the loop.
Full documentation: foundry.cisstech.com/docs
