Glossary
The words the sticky comment, the config file, and the CLI share.
Short definitions. The pages linked here are the procedures.
Turn
One admitted execution on one head. budget.turns counts turns for the pull request. The sticky field turn is the counter. A new turn needs a new head, a reopen, or a fresh autofeat:go after a stop or pause. Re-adding autofeat:go on the same head does not start a turn when the state is failed, waiting_for_author, or approved, unless the last failure was infra. See Labels.
Run
One attempt id inside a turn. last_run_id on the sticky is the latest. ledger.runs counts attempts. POST /admin/cancel takes this id. See Admin API.
Head
The pull request head SHA. Policy is not read from the head. Policy is read from the default branch. head_sha on the sticky is the SHA the state belongs to. A push changes the head (synchronize) and can resume a non-terminal run.
Directive
A markdown block in a comment that names an action and a method. It is untrusted. Policy clamps it. autofeat directive render prints one. parse reads one. verify checks the HMAC. The portal cannot forge the signature. See CLI.
Journal
The git ref heads/autofeat-state/pr-<N>. The commit message is the sticky body. This is the durable copy. A missing ref is not repaired by labels. See State schema.
Sticky
The pull request comment that starts with <!-- autofeat:state -->. autofeat updates it in place. The author on the hosted App is autofeat-axc[bot]. The human-readable table is a summary. The JSON in the HTML comment is the RunState. See Reading the state comment.
Gate
The action gate. Method native. It checks evidence before a privileged write: the stored gate succeeded, and live checks still pass. stop_before_merge refuses approval and merge at this point and adds autofeat:ready instead. Evidence is stored under autofeat:evidence:v1.
Policy snapshot
The .autofeat/config.yml from the default branch, frozen onto the Decision. policy_sha is that commit. autofeat exec --config does not replace it. A pull request cannot change the policy that judges it.
Dry run
autonomy.dry_run: true (the default). The turn writes the check, the sticky, and the journal. It does not push, submit a review, merge, or add autofeat:ready. A merge action in dry run reports that it would merge and does not merge. Set dry_run: false on the default branch to go paid. See Budgets and billing.
entry_action
The action a label event starts when the comment does not select another legal action. Default review. It must be listed in policy.allowed_actions.
Method
How an action runs. Set with methods.<action> inside the methods policy allows.
| Method | Meaning |
|---|---|
native | Controller code. Used for gate, merge, and halt. Refused for review. |
single | One agent call. Default for plan and test. |
orchestrate | Several workers, capped by orchestrate.max_workers. Default for implement. |
delegate | Hand the action to the configured agent. Default for review. |
flow is a fifth enum value. Policy refuses it. Do not set methods.review: flow.
Allowlist
The operator control list on the receiver. A webhook is ignored unless the installation id is listed and the repository owner/name is listed, and pause_all is false. Ignored deliveries still return HTTP 200. Log reasons: ignored_installation, ignored_repository, ignored_paused. Stored repository names are lower case. The portal shows waiting until an operator allowlists both. See Admin API.