Repository navigation
Document the agent operating model in AGENTS.md - #414
Conversation
Record the owner's decisions of 2026-10-18/19: four scheduled routines with one job each, the issue labels and the agent-ready triage rule, the claim protocol, the T2/T3 gates and the hard rules for agents. Docs-not-needed: AGENTS.md is not an owned path of any subsystem doc.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90b326ee40
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ### Gates | ||
|
|
||
| - A T2 or T3 PR needs an independent PASS at the head commit from a reviewer in [`.github/agent/review-policy.json`](.github/agent/review-policy.json) (the author never counts) **and** maintainer approval. Any new commit voids a PASS. | ||
| - Agents never bypass a gate and never admin-merge. The merge queue squashes the PR title and body, so `Docs-not-needed:` lines go in the PR **body**. Run `verify` with `TZ=UTC`. |
There was a problem hiding this comment.
Record Docs-not-needed in a pre-merge commit
For an owned-path change that intentionally omits a subsystem-doc update, an agent following this instruction and putting the marker only in the PR body will still fail before merge: hasDocsNotNeededTrailer() reads only git log <base>..HEAD --pretty=%B (core/scripts/check-arch-docs.mjs:101-107), and the PR body is not there until the squash commit exists. Require the trailer in one of the branch commit messages too (while retaining it in the PR body for the final squash), otherwise npm run lint/tests-ok remains red.
AGENTS.md reference: AGENTS.md:L152-L154
Useful? React with 👍 / 👎.
…st labels (ThinkFlowLab#415) Follow-up to ThinkFlowLab#414 (already merged at 11:43 Asia/Shanghai, so its branch can no longer carry more commits). Applies the owner's decisions of 2026-10-19 and fixes the doc/config conflicts left by ThinkFlowLab#414. Docs, gate rule and labels in one PR. **Owner decisions applied** - Self-PASS counts: a PR opened by the owner's Bot/agent (`Birfy`) may be PASSed by the owner's own reviewer Bot/agent. No independent reviewer is required. A new commit still voids a PASS; CI green, the merge queue and "never admin-merge / bypass" stay. - T0/T1: merge through the queue once CI is green, mergeable and design-conformant. No PASS, no human approval. (Nothing in code demanded a PASS for T0/T1; `review-gate` is report-only. Only the docs said so.) - T2/T3: still the maintainer's approval through GitHub (a human) **and** a PASS at the tip (self-PASS allowed). - `agent-ready` is set by a maintainer or by the maintenance routine after triage (it runs as `Birfy`). The "never use a maintainer's admin login" rule now forbids admin-merge and gate bypass instead. **Changes** - `.github/agent/review-policy.json`: new `selfReview: ["Birfy"]` (must also be in `reviewers`); note updated. - `.github/scripts/review-gate.mjs`: the author's own report is excluded **unless** the author is in `selfReview`. All other rules unchanged (listed reviewer, `Tip SHA` = head, `Ran:` and `Not run:`, newest report wins). Tests: self-PASS counts, other authors still excluded, selfReview does not unlock an unlisted login, stale tip / missing evidence / later FAIL still fail, policy consistency. - `.github/labels.json`: add `awaiting-approval` and `self-test` (also created in the repo); `agent-ready` description matches the new rule. `sync-labels.test.mjs` checks the new names. `agent-working` / `agent-pr` already existed. - `AGENTS.md`: Pipeline step 6, label line, Gates; `Docs-not-needed:` goes in a branch commit as well as the body (Codex finding on ThinkFlowLab#414). - `docs/autonomous-dev.md`: who sets `agent-ready`, credentials / admin wording, per-tier rule table, self-review in "The reviewed tip", phases. - `.github/agent/risk-rules.json`: tier `meaning` strings only (no paths or limits). `.github/workflows/review-gate.yml`: comment only. `.github/ISSUE_TEMPLATE/agent-task.yml`: wording. - `docs/code-standards.md`, `CONTRIBUTING.md`, `.claude/skills/{review-pr,fix-issue}/SKILL.md`: dropped the "author never counts" / "OpenCode and Codex both PASS" wording so nothing conflicts. **Tier: T3** (`.github/**`, `AGENTS.md`, `CONTRIBUTING.md`, `docs/code-standards.md`, `docs/autonomous-dev.md`). Needs the maintainer's approval at the head. Not auto-merged. Ran at the tip: `ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify` (Node 24): passes (arch-docs OK, .github script tests 255/255 incl. review-gate and sync-labels). `node .github/scripts/changelog.mjs check` passes. Not run: smoke test, pack check (no runtime code changed). Docs-not-needed: policy and docs only; no subsystem-owned path changed.
…ew (ThinkFlowLab#426) Owner decision 2026-10-19 15:31 (Asia/Shanghai): stop using Codex for PR review. The owner's own reviewer Bot, acting as `Birfy`, reviews and PASSes (self-PASS already allowed by ThinkFlowLab#415, `selfReview: ["Birfy"]`). How Codex was triggered: not by anything in this repo. No workflow, script, routine, label or `@codex` comment requests it (rg of `.github/`, skills, scripts, docs; `gh api repos/ThinkFlowLab/FlyBot/hooks` is empty). The reviews on ThinkFlowLab#402/ThinkFlowLab#414/ThinkFlowLab#415/ThinkFlowLab#416 come from the `chatgpt-codex-connector` GitHub App with trigger "PR opened", i.e. Codex's automatic code review enabled for this repo in ChatGPT Codex settings. That switch is outside the repo and is turned off there by the owner. This PR (wording only, no gate change): - AGENTS.md, CONTRIBUTING.md, docs/autonomous-dev.md, LESSONS.md: the reviewer is the owner's Bot (self-review); nothing requests or waits for Codex. - review-pr skill: drop the OpenCode↔Codex agreement requirement and Verifier line; reviewer's own evidence at the tip decides. - review-gate.test.mjs: neutral fixture login `reviewer-agent` instead of `codex-agent`, drop the unused agreement line (the gate never parsed it). Unchanged: `.github/agent/review-policy.json` (reviewers `hsliuustc0106`, `Birfy`; selfReview `Birfy`; Codex was not listed), CI, risk tiers, T2/T3 maintainer approval. Tip SHA: aa57d50 Ran: - ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify (Node 24.21.0) → pass - node --test .github/scripts/*.test.mjs → pass (88/88) Not run: - smoke / Desktop / live-e2e with a real model — no runtime code changed T3 (touches AGENTS.md and .github/**): needs the maintainer's approval; not merged by the agent.
Documents the owner's agent operating model (decisions of 2026-10-18/19) as one new section,
## Agent operating model, in AGENTS.md. No other file changes.agent-readytriage rule, and the claim / release-of-claim protocol.TZ=UTC).Tier: T3 (
AGENTS.md), so it needs the maintainer's one-click approval and an independent PASS at the tip. Docs only; no changelog fragment (not user-visible).Ran at the tip:
ARCH_DOCS_BASE=origin/main TZ=UTC npm run verify(Node 24) passes;node .github/scripts/changelog.mjs checkpasses. Not run: smoke test, pack check (docs only).