autofeat docs
Reference

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.

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.

MethodMeaning
nativeController code. Used for gate, merge, and halt. Refused for review.
singleOne agent call. Default for plan and test.
orchestrateSeveral workers, capped by orchestrate.max_workers. Default for implement.
delegateHand 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.

On this page