Agents: this page is also Markdown; every page is in llms.txt.
The /v1 API
The web app and every MCP tool use the same API, under https://facet.halfspacelabs.com/v1. Its contract is openapi.yaml (OpenAPI 3.1). It only ever adds fields; it never removes them.
Send an API key as Authorization: Bearer fct_.... A key acts with its role (collaborator or viewer) and, if it has one, its Task scope; keys never approve, merge or edit policy. People use the web app or an MCP client, which signs them in.
Errors share one shape: {"error": {"code": "...", "message": "...", "approvers": [...]}}. A 409 with approvers means the action waits for one of those people.
For agents, prefer the MCP server: each tool is one of these operations, with the same inputs.