Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions apps/vinaya/specs/vinaya-spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ Wording refinements are Principal-owned; do not improvise these fields.
- **Custom checks:** any executable honoring the §5 error contract, registered in `vinaya.config.json`. Core gates use the same interface — no privileged API. Glob scoping is allowed; conditional logic (if/unless/except) is forbidden.
- **Error contract:** every check error carries `agent_recovery_prompt` — a corrective instruction for the executing model, not a restated diagnosis. The check contract + error schema are a versioned public surface.
- **State placement:** process/work state lives on the forge (Milestones, labels, comments); low-churn parseable artifacts (project registry, doc-owners) stay plain files wrapped in a code-free workspace package; universal AEG doctrine ships inside the npm package with a scaffolded, visible pointer in the adopter's repo.
- **Repo-root resolution is a deployment constraint, not just a lookup:** the site's doctrine-reading routes (`/the-harness`, `/docs`) are handed no root — they locate the repo by walking up from the working directory for a **marker file** (`vinaya.config.json`; the Studio's registry reader walks for `.vinaya/projects.md`). On a serverless host only traced files exist at runtime, so **the marker file is a deployment input in its own right** and must be declared alongside the doctrine itself in the web app's file-tracing config. Omit it and the walk fails before any doctrine is read — the routes 500 in production only, with a green build and a clean local run. Renaming a marker is therefore a two-place change. The failure this actually produced was subtler than a forgotten rename: one commit moved the repo-root marker **and** introduced a second marker for the registry reader, updated the tracing declaration for the second, and never declared the first — so the change looked complete, built green, and 500ed only the routes that walk for the marker nobody declared.

## Distribution (`vinaya-cli-v1`, task 9, #700)

Expand Down
Loading
Loading