docs(agents): add change scope guidance for agent-authored work - #3
Merged
Merged
Conversation
Codifies the scope discipline CONTRIBUTING.md already asks of human contributors, in the file agents actually read. Defaults to the smallest change, bars unrequested functionality, and requires explicit intent before a frontend task reaches server, contracts, or migrations. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Picks up the ci-runners fork customization. This branch predates it, so its ci.yml still requests blacksmith-* labels that this fork cannot schedule -- PR #3's jobs sat QUEUED for two hours with no runner assigned. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Jul 25, 2026
NoahHendrickson
added a commit
that referenced
this pull request
Jul 26, 2026
Review finding #3 / handoff doc §6.5: the override ran after shellEnvironment.installIntoProcess, which shells out and can be slow, while Chromium spawns helper processes on its own timeline — so an early helper could capture the default user-data directory before the fork-owned override landed. Observed at runtime as a GPU helper argv carrying the default --user-data-dir while the main process used t3code-fork. Moving the override ahead of the shell-out shrinks the race window to the in-memory service resolutions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 26, 2026
NoahHendrickson
added a commit
that referenced
this pull request
Jul 28, 2026
…t, named port Review round 1 (PR #32). The two blocking items and the decided ones: Guard rewritten so it can actually fail (review #1, #6a). Source assertions now run against the extracted fork:begin/end hunks and pin the subscription's input expressions and the derived port — the reviewer's mutation table (threadId: null, devServerPort = null, = 5173) now fails the suite, replayed and confirmed. The meta component is asserted on rendered output (attribute presence/absence, sr-only copy and ordering, and the `> svg` direct-child contract the stylesheet depends on — wrapping the icon now fails). CSS is read through cssRules.ts, so a behaviour-identical declaration swap passes where it used to fail. Manifest cost paragraph corrected (review #2): upstream's v1 row already makes this exact per-row subscription unconditionally, so v2 gaining it is parity, not a new class of cost. The per-environment multiplier (M environments → M streams, each host polling) is now disclosed instead of hidden behind "N rows share one stream". The lsof-fallback degradation (probe failure → terminal: null everywhere → pulse permanently off, silently) and the 1MiB truncation flicker are recorded as known limitations next to the external-shell one (review #5). The port is named, "dev server" dropped (review #3, #4): the row tooltip now carries `localhost:<port>` (+n overflow), v1's exact copy, and the accessible text says "Server listening on port N" — what the scanner actually knows — placed after the branch name so identity precedes transient state (review #6c). Slim rows no longer subscribe (Cursor review): the hook input is gated on variant === "card", so settled/snoozed rows pass null and skip the subscription instead of retaining the scanner for rows that cannot pulse. The repaint cost of animating a non-compositing property is now a stated yes in the stylesheet rather than an accident (review #6d). Globe2Icon imports as its own fenced statement because the phosphor guard parses upstream's import braces and a fence inside them reads as a binding. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What Changed
Adds a Change Scope section to the top of
AGENTS.md(whichCLAUDE.mdsymlinks to), covering how agents should size and bound their changes:apps/server,packages/contracts, or migrations requires explicit intent and confirmationWhy
CONTRIBUTING.mdalready sets these expectations, but only for human contributors — agents don't read it.AGENTS.mdis the file that actually gets loaded into context, so the policy had no effect on agent-authored work.Framed as scope discipline rather than a literal "frontend only" rule. Real work here does legitimately cross layers (thread snoozing in pingdotgg#4311 touched server, contracts, migrations, and both clients); a hard frontend-only rule would either be ignored or push agents into faking backend-dependent behavior in the UI. Requiring explicit intent before crossing into server/contracts gets the intended outcome without blocking valid full-stack work.
UI Changes
N/A — documentation only.
Checklist
Follow-up
packages/client-runtimeis not currently in the explicit-intent tier. It holds shared client state (thread reducers, commands), so a change framed as "frontend" there shifts behavior on web and mobile simultaneously. Worth deciding whether it belongs alongside server/contracts.🤖 Generated with Claude Code