The form-template.* family (6 verbs). Every verb enters through the one front door: it is capability-checked, permission-checked, scope-checked and audited before it runs (see Security & permissions). Each entry below lists its capability, risk class (which fixes the minimum autonomy level), the minimum caller permission, its availability tier, whether it is idempotent, and any outbound egress.
form-template.create
| Property | Value |
|---|---|
| Capability | form-template.author |
| Risk class | Sensitive - autonomy L2 |
| Min. permission | Admin |
| Availability | On demand (MCP tier 2) |
| Idempotent | No |
| Egress | None - in-box (pure Postgres, no outbound call) |
author a new DRAFT form template. { key, title, description?, schema }.
Call POST /v/form-template.create with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool form-template.create.
form-template.edit
| Property | Value |
|---|---|
| Capability | form-template.author |
| Risk class | Sensitive - autonomy L2 |
| Min. permission | Admin |
| Availability | On demand (MCP tier 2) |
| Idempotent | No |
| Egress | None - in-box (pure Postgres, no outbound call) |
re-draft a DRAFT template’s schema/title/description. { id, title?, description?, schema? }.
Only DRAFT templates are editable (a published version is immutable, R11 - mirrors board.edit).
Call POST /v/form-template.edit with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool form-template.edit.
form-template.get
| Property | Value |
|---|---|
| Capability | form-template.read |
| Risk class | Read - autonomy L0 |
| Min. permission | Member |
| Availability | Core - always on (MCP tier 1) |
| Idempotent | No |
| Egress | None - in-box (pure Postgres, no outbound call) |
| Render schema | Yes - drives an inline chat artefact and a GUI panel |
one template. { id }.
Call POST /v/form-template.get with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool form-template.get.
form-template.list
| Property | Value |
|---|---|
| Capability | form-template.read |
| Risk class | Read - autonomy L0 |
| Min. permission | Member |
| Availability | Core - always on (MCP tier 1) |
| Idempotent | No |
| Egress | None - in-box (pure Postgres, no outbound call) |
| Render schema | Yes - drives an inline chat artefact and a GUI panel |
list templates (optionally filter by status). { status? }.
Call POST /v/form-template.list with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool form-template.list.
form-template.publish
| Property | Value |
|---|---|
| Capability | form-template.author |
| Risk class | Destructive - autonomy L3 |
| Min. permission | Admin |
| Availability | On demand (MCP tier 2) |
| Idempotent | No |
| Egress | None - in-box (pure Postgres, no outbound call) |
validate the DRAFT schema, forward-mint an immutable FORM Version,
DRAFT->ACTIVE, point current_version at the minted version. { id, changelog? }. R11 snapshot-not-live.
Call POST /v/form-template.publish with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool form-template.publish.
form-template.validate
| Property | Value |
|---|---|
| Capability | form-template.author |
| Risk class | Read - autonomy L0 |
| Min. permission | Admin |
| Availability | On demand (MCP tier 2) |
| Idempotent | No |
| Egress | None - in-box (pure Postgres, no outbound call) |
| Render schema | Yes - drives an inline chat artefact and a GUI panel |
run validate_form_schema without persisting. { id } or { schema }.
Call POST /v/form-template.validate with a JSON body; returns JSON (or { error, code }). Also exposed as the MCP tool form-template.validate.