Canonical Agent Contract
Deploy To Mullmania
Use this page when a human says “deploy to Mullmania” and you need the deployment contract without back-and-forth. The goal is a static site at <site>.mullmania.com using the existing Mullmania publishing pipeline, not a custom one-off.
Hosted Bucket
s3://mullmania.com/<site>/
Data Bucket
s3://mullmania.com-data/<site>/data/
Catalog
s3://mullmania.com-data/_catalog/
Workspace
/Users/mist83/Code/mullmania
Default Meaning
If a user says “deploy to Mullmania,” interpret that as:
- publish a static site to
https://<site>.mullmania.com/ - sync hosted assets to
s3://mullmania.com/<site>/ - sync optional site data to
s3://mullmania.com-data/<site>/data/ - write site metadata to
s3://mullmania.com-data/<site>/site.json - update the shared catalog under
s3://mullmania.com-data/_catalog/
Canonical Scripts
The workspace that owns this flow is /Users/mist83/Code/mullmania.
- publish script:
scripts/publish-site.js - repo bootstrap script:
scripts/bootstrap-mullmania-github.js - framework registry:
catalog-overrides.json
Cold-Agent Behavior
- If the repo already has
mullmania.site.json, use it as the deploy source of truth. - Deploy with:
node /Users/mist83/Code/mullmania/scripts/publish-site.js apply --config /path/to/repo/mullmania.site.json
- If the repo does not have
mullmania.site.json, look for one obvious publish directory such asdist,build,out,public, orwwwroot. - If the publish directory is obvious, bootstrap with:
cd /Users/mist83/Code/mullmania npm run bootstrap-site -- --repo /path/to/repo --site my-site --publish-dir dist
- Then deploy with
publish-site.
Naming And Guardrails
- site ids must use lowercase letters, numbers, and hyphens
- reserved ids:
_root,sites,ui,index - do not put created site data into
mullmania.com - do not touch AWS-managed infrastructure buckets
- do not delete an existing site unless the user explicitly asks
- do not invent a different deploy shape when
mullmania.site.jsonalready exists
Ask Only If It Matters
Ask a human only if one of these is true:
- the site id is ambiguous
- the publish directory is ambiguous
- the repo is not a static site
- the repo root needs exclude rules before a safe publish
- the requested site would overwrite something important
Framework Sites
If the site is core to the framework or regression-sensitive, update the framework registry and sync it.
cd /Users/mist83/Code/mullmania npm run sync-framework-catalog