matchstick

Matchstick for agents

Version 1.5.0 · All sections

Autonomy and approvals

Each site has an autonomy level, set by the account's owner in Settings → Agents. Whatever the level, a change becomes live only when its pull request is merged and the site is deployed.

LevelAgents mayMerges need
0 · ObserveRead.—
1 · Propose (default)Read, research, check, draft, suggest, review.A person's tap on matchstick.io, every time.
2 · Auto-approve low riskAs 1, and approve_change merges on its own when the change is low risk, of an allowed type (title, description, link, canonical, sitemap by default), every gate passes, the site's daily merge cap isn't reached and it isn't quiet hours.A person for medium and high risk.
3 · Trusted operatorAs 2, and medium risk too, except anything touching a shared layout or component file or more than 5 files.A person for high risk.

Levels 2 and 3 are off by default and lapse when no person has signed in for 30 days. Call get_agent_policy before acting on a site: it says what the credential may do there, the budget left and who the human approvers are.

Approvals

When approve_change needs a person, it returns approval_pending with an approve_url. Give the person the link and stop. They see the change with who asked, approve (which merges as them, with the request recorded on the pull request), deny with a note, or ask for changes. A request is bound to the head you reviewed and stands for 72 hours; if the branch moves it goes stale. A client that declares URL elicitation gets the same round as an input_required result and sees the outcome on its retry.

Gates and budgets

An agent is held by the same gates as Matchstick's own daily triage: the owner's not-now and never, stale Search Console data, protected pages, a page under evaluation from an earlier change (page_frozen, with the date), one live draft per finding, the open-pull-request cap, the agents' drafts per day, the plan's credits and the connection's weekly credit budget (set at consent; the week starts Monday 00:00 UTC). A person in the app is never gated.