Skip to content

Project Configuration

syntaxis/config.json holds workflow policy that belongs to you, in a format the skills themselves can read. Every skill checks its relevant settings before it acts.

Configuration is free to make review and verification stricter, and it can tune branch names and how far automation is allowed to go on its own.

It can never grant permission to commit, merge, push, deploy, publish, send anything, delete data, wave off a failing check, or accept a finding. Those approvals sit outside what configuration is allowed to touch, by design.

{
"schemaVersion": 1,
"workflow": {
"stepReview": "feature",
"checkpointCommits": "disabled"
},
"git": {
"featureBranchPrefix": "feature/",
"fixBranchPrefix": "fix/",
"rollbackBranchPrefix": "rollback/"
},
"verification": {
"logicTests": "when-configured",
"uiEvidence": "when-available"
},
"review": {
"independentExecution": "automatic"
},
"qualityGates": {
"regular": { "audit": "manual", "independentReview": "when-sensitive", "check": "manual", "tryGuide": "manual" },
"continuous": { "audit": "manual", "independentReview": "when-sensitive", "check": "manual", "tryGuide": "manual" }
},
"continuous": {
"maxFeatures": null,
"maxRepairAttempts": 2,
"finalIntegrationAudit": false
}
}

No file at all just means the built-in defaults apply. An invalid file still lets read-only status fall back to those defaults, but anything that would actually mutate the workflow stops and points you at /doctor instead of guessing what you meant.

stepReview What that looks like
feature (default) One review packet, once every step is done
every A pause for review after each individual step

Onboarding presents this choice as Efficient versus Guided, but all it’s actually storing is these two low-level settings. Pair every with checkpointCommits: enabled for the most hands-on version of the loop.

Cadence only governs when you’re asked to approve something — it has nothing to do with whether you can ask for an explanation afterward. Either style ends with an optional, read-only code walkthrough.

qualityGates.regular governs the normal workflow plus Autopilot. qualityGates.continuous governs Continuous Mode specifically.

Mode What triggers it
manual Nothing automatic — only when you ask
always Every single work item in that workflow
when-sensitive Sensitive or unusually broad work (audit, independent review)
when-behavioral Work with an observable behavior change (check)
when-user-facing Anything user-facing (guides)

Independent review ships set to when-sensitive, so it kicks in on its own for sensitive work while leaving small, ordinary features alone. Switch it to manual to turn off that automatic trigger — /audit independent current still works as an explicit request either way.

review.independentExecution decides how a selected review runs — not whether one gets selected in the first place.

Value What happens
automatic (default) A fresh, isolated reviewer child, whenever the adapter can prove isolation, exact reviewer identity, model, and completion
manual Always hand off through a fresh session instead

When automatic execution isn’t actually supported, it drops back to the manual handoff rather than letting review get skipped outright. That automatic reviewer is a generic child of the current runtime, told what to do only by the project’s own installed Audit skill and review contract — no global agent role or outside framework gets required or discovered along the way.

Setting Values
verification.logicTests when-configured, required
verification.uiEvidence when-available, required
Setting What it controls
continuous.maxFeatures Caps how many items run in one pass; null means run to the end of the plan
continuous.maxRepairAttempts Caps how many repair attempts one feature gets
continuous.finalIntegrationAudit Runs one integration audit at the very end

Run /doctor. It flags schema problems and any drift between what’s configured and what the project is actually doing.