From 2e6c2238764ef75acc9ba12a12861bf0d7a2e88d Mon Sep 17 00:00:00 2001 From: fullsend-code <278716306+fullsend-ai-coder[bot]@users.noreply.github.com> Date: Sun, 30 Aug 2026 18:26:42 +0000 Subject: [PATCH] docs(#6781): promote forge-abstraction to explicit AGENTS.md bullet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a top-level bullet point in the "How to work in this repo" section for the forge-abstraction rule, placed after the Go coverage gate and before the secrets bullet. The rule was previously discoverable only via the topic-guidance table, which required agents to recognize that setting repository variables is a forge operation — a connection the code agent on PR #6779 failed to make. Promoting it to an inline bullet mirrors the pattern used for other critical rules (DCO, coverage gate, CLI docs) and makes the architectural invariant harder to miss for both code and review agents. Closes #6781 --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index a6bbd521d..afa701856 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -15,6 +15,7 @@ Fullsend is a platform for fully autonomous agentic development for Git-hosted o - You **must** read and follow [COMMITS.md](COMMITS.md) when writing or reviewing commit messages and PR titles. Getting the prefix right is not optional — GoReleaser uses PR titles to build release notes. Breaking changes **must** carry the `!` suffix in both commit messages and PR titles; a missing `!` is an important-severity review finding. - This repository requires a [Developer Certificate of Origin (DCO)](https://developercertificate.org/). Human-proposed commits **must** be signed off: use `git commit -s` (or add `Signed-off-by: Your Name ` as a trailer). Human-driven agent sessions (e.g., using Claude Code locally) should also sign off — the human directing the session is the one certifying the DCO. **Autonomous agent commits are exempt** and must never supply the DCO with `-s` or with `Signed-off-by`. These agents commit using the GitHub App's bot identity, which the [Probot DCO app](https://github.com/apps/dco) auto-skips. - **Go coverage gate:** When changing Go production code (files under `cmd/` or `internal/` that are not `_test.go`), you **must** verify approximate patch coverage meets the 80% threshold from [`.codecov.yml`](.codecov.yml) before considering verification done. `make go-test` passing alone is not sufficient — it does not enforce Codecov thresholds. See [Verifying patch coverage locally](docs/contributing/go-code.md#verifying-patch-coverage-locally) for the exact commands. If coverage is below threshold, add tests for uncovered new/changed lines and re-check within the same run. +- **Forge abstraction:** All forge operations (GitHub API calls, setting repository variables, PR comments, etc.) **must** go through `forge.Client` — never shell out to `gh` CLI or make direct API calls outside `internal/forge/github/`. If `forge.Client` lacks a method you need, add one to the interface. See [Forge Abstraction](docs/contributing/forge-abstraction.md) for the full rules. - Never commit secrets (tokens, API keys, PEM keys, gcloud credentials) or sensitive data (GCP project names, service account identifiers, Model Armor template names, internal hostnames). Use environment variables with no defaults for sensitive values. - When adding a new doc under `docs/`, check `docs/.vitepress/config.ts` sidebar config. Sections using `getMarkdownFiles()` are auto-discovered. All other sections need a manual `{ text, link }` entry. Also add the new folder's prefix to `search.options.scopes` in the same file so the folder's pages are reachable when search scope pills are active. - When removing, renaming, or changing the behavior or output format of a CLI command, public API, or user-facing feature, grep all documentation files under `docs/` for references and update them to reflect the current behavior. Pay special attention to `docs/cli/`, `docs/guides/`, and any getting-started or operations guides.