Skip to content

docs(#6554): document scaffold-sync bot identity and write path - #7086

Merged
ggallen merged 7 commits into
mainfrom
agent/6554-sync-bot-docs
Sep 8, 2026
Merged

docs(#6554): document scaffold-sync bot identity and write path#7086
ggallen merged 7 commits into
mainfrom
agent/6554-sync-bot-docs

Conversation

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor

Summary

Documents the fullsend-ai-sync[bot] App's write path, which became load-bearing on 2026-08-24 when #6549 added push: branches: [main] to notify-scaffold-sync and the App was granted workflow-write. The three properties documented — ruleset bypass, workflow-write scope, and App-token push recursion — were previously undiscoverable from any file in the repo.

Changes

  • docs/contributing/bot-identities.md: Added sync row to the bot-identities table. Added a "Scaffold-sync write path" section covering the ruleset bypass (bypass_mode: always on main), workflow-write scope (disambiguated from the coder token statement in release: validate-agents startup failure (caller permissions) + agents gate validates a different tree than tag-agents tags #6512), and App-token push recursion with the observed 2026-08-24 dispatch chain as a concrete example.
  • docs/contributing/ci-workflows.md: Added a "Scaffold-sync dispatch recursion" section noting that notify-scaffold-sync fires on every push to main and sync commits re-trigger it (≥2 dispatch rounds per scaffold-touching merge), with a cross-link to the bot-identities page.

Item 4 from the issue (.github/workflows/notify-scaffold-sync.yml header comment) is excluded per maintainer instruction — the coder token cannot push workflow files.

Testing

  • Markdown link checks pass (lychee offline, fragment validation)
  • Docs-link linter passes (no links escape repo root)
  • No trailing whitespace, end-of-file newlines correct
  • Secret scan passes

Checklist

  • PR title follows Conventional Commits (correct type, ! for breaking changes)
  • No workflow file changes (excluded per maintainer instruction)

Closes #6554

Post-script verification

  • Branch is not main/master (agent/6554-sync-bot-docs)
  • Secret scan passed (gitleaks — bccd9e815a09ae063447740473df37908efe17ac..HEAD)
  • PR body secret scan passed (gitleaks — no-git)

@fullsend-ai-coder
fullsend-ai-coder Bot requested a review from a team as a code owner September 8, 2026 00:09
@fullsend-ai-coder fullsend-ai-coder Bot added the ready-for-review Triggers review agent dispatch label Sep 8, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:11 AM UTC · Completed 12:24 AM UTC

Commit: a0e5cff · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.30

@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@fullsend-ai-review fullsend-ai-review Bot added the risk/moderate PR risk: moderate label Sep 8, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

Risk Assessment: moderate (2/5)

Details

Bot-authored docs-only PR (4 files, 45 lines) with minimal Tier 1 risk; Tier 2 slightly elevated by ongoing high churn and multi-author activity on ci-workflows.md and platform-nativeness.md, but all changes are purely additive documentation; re-review anchoring confirms Tier 1 signals are identical to prior assessment and Tier 2 churn profile is unchanged, preserving prior score of 2.

Previous run

Risk Assessment: moderate (2/5)

Details

Bot-authored docs-only PR (4 files, 45 lines) with minimal Tier 1 risk; Tier 2 slightly elevated by ongoing high churn and multi-author activity on ci-workflows.md, but the change is purely additive documentation; re-review anchoring preserves the prior score of 2 as Tier 1 signals are unchanged and Tier 2 churn profile remains consistent with prior assessment.

Previous run (2)

Risk Assessment: moderate (2/5)

Details

Bot-authored docs-only PR adding 4 files and 45 lines carries minimal Tier 1 risk; re-review anchoring preserves the prior score of 2 because Tier 1 signals are unchanged and Tier 2 churn on ci-workflows.md remains consistently elevated as in the prior assessment.

Previous run (3)

Risk Assessment: moderate (2/5)

Details

Bot-authored docs-only PR with 3 files and 31 lines carries minimal Tier 1 risk; re-review anchoring preserves the prior score of 2 because Tier 1 signals are unchanged and Tier 2 churn on ci-workflows.md (9 commits/30d, 5 authors/90d, 5 fix-reverts/90d) remains consistently elevated as in the prior assessment.

Previous run (4)

Risk Assessment: moderate (2/5)

Details

Bot-authored docs-only PR with 3 files and 29 lines carries minimal Tier 1 risk; re-review anchoring preserves the prior score of 2 because Tier 1 signals are unchanged and Tier 2 churn on ci-workflows.md (9 commits/30d, 5 authors/90d, 5 fix-reverts/90d) remains consistently elevated as in the prior assessment.

Previous run (5)

Risk Assessment: moderate (2/5)

Details

Bot-authored docs-only PR with 3 files and 27 lines carries minimal Tier 1 risk; re-review anchoring preserves the prior score of 2 because Tier 1 signals are unchanged and Tier 2 churn on ci-workflows.md (9 commits/30d, 5 authors/90d, 7 fix-reverts/90d) remains consistently elevated as described in the prior assessment.

Previous run (6)

Risk Assessment: moderate (2/5)

Details

Small docs-only bot-authored PR with no security, CI, or dependency risk; composite score remains at 2 per re-review anchoring — Tier 1 signals are unchanged from the prior assessment and Tier 2 churn and multi-author contention on these documentation files remain similarly elevated, preserving the moderate score.

Previous run (7)

Risk Assessment: moderate (2/5)

Details

Small docs-only bot-authored PR with no security, CI, or dependency risk; composite score driven slightly above minimum by high fix-commit churn and multi-author contention on these documentation files in recent history.

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

Looks good to me

Previous run

Review

Findings

Medium

  • [adr-immutability] docs/ADRs/0033-per-repo-installation-mode.md:338 — The "App identity confusion" bullet in the Risks section (Consequences) was substantively rewritten rather than annotated. The original text described "silent failures (no review triggered after fix pushes)"; the replacement corrects this to the actual risk (least-privilege violation). docs/contributing/adrs.md prohibits substantial rewrites to Consequences sections of Accepted ADRs and limits edits to "minor annotations (cross-references, short notes, typo fixes)." The Alternative 2 correction note added elsewhere in this PR uses the correct annotation pattern.
    Remediation: Restore the original bullet text verbatim. Append a > Note (2026-09): annotation after it that explains the corrected reasoning (App installation token pushes do trigger events, so the single-App risk is permission union / least-privilege, not silent failures). This matches the annotation pattern used for Alternative 2 in the same PR.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (2)

Review

Findings

Low

  • [adr-immutability] docs/ADRs/0033-per-repo-installation-mode.md:338 — The "App identity confusion" bullet in the Risks section (a Consequences subsection) was substantively rewritten, not merely annotated. The old text described "silent failures (no review triggered after fix pushes)"; the new text states "the fix→review loop itself would function, but a single App grants every role the union of all permissions — violating least-privilege." This changes the described risk from a functionality failure to a security principle violation. The ADR contributing guide (docs/contributing/adrs.md) requires "Call out any edits to accepted ADRs in the PR description." The PR body does not mention changes to ADR 0033 or platform-nativeness.md. The edit itself is factually correct, but the disclosure omission violates the guide's requirement.
    Remediation: Add a sentence to the PR description noting the Risks section edit to ADR 0033 (e.g., "Also corrects the App identity confusion risk entry in ADR 0033, which was based on the now-refuted suppression premise."). No ADR text change needed.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (3)

Review

Findings

Low

  • [Code organization] docs/contributing/bot-identities.md:22 — The two ##-level sections use different sub-structuring patterns. “Scaffold-sync write path” uses ### headings for its three subsections, while “General identity notes” groups its pre-existing subsections as bold-prefixed paragraphs (**Shared vendor identity:**, **REST vs. GraphQL login format:**). However, the ### headings are load-bearing: both docs/ADRs/0033-per-repo-installation-mode.md (line 69) and docs/contributing/ci-workflows.md (line 209) cross-reference the #app-token-push-recursion anchor generated by the ### heading — converting to bold-prefixed paragraphs would break those links.
    Remediation: If consistency is desired, promote the “General identity notes” bold-prefixed paragraphs to ### headings (the reverse direction). Do not convert the ### headings to bold paragraphs — that breaks the #app-token-push-recursion anchor used by two other files in this PR.

  • [Stale cross-reference] docs/problems/platform-nativeness.md:38platform-nativeness.md credits “a pending fullsend proposal ([PR docs: Add ADR 074 with a single-auth #5649]...not yet merged)” as the source of the correction that GitHub event suppression applies only to GITHUB_TOKEN. This PR now formally embeds that correction in ADR 0033 as a correction note. After this PR, readers following the ADR → platform-nativeness.md reference chain will find that platform-nativeness.md still credits PR docs: Add ADR 074 with a single-auth #5649 as the sole source, without noting that the correction is now also present in ADR 0033 itself.
    Remediation: Update the platform-nativeness.md passage to note that the correction is now formally documented in ADR 0033, and update the “not yet merged” qualifier on PR docs: Add ADR 074 with a single-auth #5649 if its status has changed.


Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (4)

Review

Findings

Medium

  • [Internal consistency] docs/ADRs/0033-per-repo-installation-mode.md:338 — The correction note added at line 69 states that GitHub App installation token pushes trigger new workflow runs regardless of App identity, explicitly correcting the suppression-based rationale in Alternative 2. However, the Risks section at line 338 still describes "App identity confusion" with the failure mode "no review triggered after fix pushes." This failure mode depends on the same incorrect suppression logic the correction note disproves — if App installation token pushes trigger events regardless of identity, a single-App fix push would trigger review workflows, so the claimed silent failure would not occur. The document now contradicts itself.
    Remediation: Update the Risks bullet at line 338 to reflect the corrected understanding. A single-App setup is still problematic for permission isolation (ADR 0007) and GitHub's self-approve restriction, but the "no review triggered" failure mode is what the correction note disproves. Reframe the risk around the actual remaining failure modes, or add a parenthetical note similar to the one at line 69.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (5)

Review

Findings

Medium

  • [code-organization] docs/contributing/bot-identities.md:34 — The new ## Scaffold-sync write path section is inserted before the existing general-purpose bold-paragraph notes (**Shared vendor identity:**, **REST vs. GraphQL login format:**). In rendered Markdown, those bold paragraphs fall inside the new ## section rather than appearing at top-level, which misrepresents their scope — they describe conventions that apply to all bot identities, not just the sync App write path.
    Remediation: Add a new top-level section heading (e.g. ## General identity notes) immediately before **Shared vendor identity:** so those paragraphs are clearly scoped as document-wide, or move the new ## Scaffold-sync write path section after all existing general notes.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (6)

Review

Findings

Medium

  • [stale reference] docs/ADRs/0033-per-repo-installation-mode.md:67 — ADR-0033 states that GitHub suppresses events triggered by pushes made with "any GITHUB_TOKEN or GitHub App installation token." The new bot-identities.md documentation authoritatively states the opposite: suppression is scoped to GITHUB_TOKEN only and does not apply to GitHub App installation tokens — evidenced by the observed 2026-08-24 dispatch recursion chain. docs/problems/platform-nativeness.md line 38 already notes that ADR-0033 "overstated that constraint," but the ADR itself remains uncorrected. A contributor reading ADR-0033's Alternative 2 rejection rationale in isolation will conclude that App installation token pushes are suppressed, which contradicts the sync App's observed and now-documented recursion behavior.
    Remediation: Correct the first sentence of the Alternative 2 rejection in ADR-0033 line 67 to state that only GITHUB_TOKEN pushes are suppressed; GitHub App installation token pushes do trigger events and can create recursion.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR
Previous run (7)

Review

Findings

Low

  • [naming-convention] docs/contributing/bot-identities.md:22 — The three new subsection headings use a numeric prefix style (### 1. Ruleset bypass, ### 2. Workflow-write scope, ### 3. App-token push recursion) that does not exist anywhere else in docs/contributing/. Every other ### heading across ci-workflows.md, harness-fields.md, runtime-implementation.md, mintcore.md, go-code.md, and harness-composition.md uses plain descriptive text with no numeric prefix.
    Remediation: Drop the numeric prefix from each subsection heading: ### Ruleset bypass, ### Workflow-write scope, ### App-token push recursion. Update the cross-reference anchor in ci-workflows.md from bot-identities.md#3-app-token-push-recursion to bot-identities.md#app-token-push-recursion to match.

Next steps:

  • /fs-fix — agent addresses review findings automatically
  • /fs-fix <your instruction> — agent fixes with your specific guidance
  • Push commits directly — review re-runs automatically on push
  • /fs-fix-stop — disable automatic fix runs for this PR

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 12:27 AM UTC · Completed 12:33 AM UTC

Commit: a0e5cff · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.14

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 1 (bot-triggered)

Dropped numeric prefixes from three subsection headings in bot-identities.md and updated the corresponding cross-reference anchor in ci-workflows.md to match the naming convention used across docs/contributing/.

Fixed (1):

  1. Subsection headings use numeric prefix style not found elsewhere in docs/contributing/ (docs/contributing/bot-identities.md): Removed numeric prefixes from three subsection headings (### 1. Ruleset bypass → ### Ruleset bypass, ### 2. Workflow-write scope → ### Workflow-write scope, ### 3. App-token push recursion → ### App-token push recursion) to match the plain-descriptive heading convention used throughout docs/contributing/. Updated the cross-reference anchor in ci-workflows.md from bot-identities.md#3-app-token-push-recursion to bot-identities.md#app-token-push-recursion.

Tests: passed

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

fullsend-ai-coder Bot added a commit that referenced this pull request Sep 8, 2026
Remove numeric prefixes from ### headings under Scaffold-sync write
path in bot-identities.md to match the plain-descriptive heading
convention used throughout docs/contributing/. Update the cross-
reference anchor in ci-workflows.md accordingly.

Addresses #7086
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:35 AM UTC · Completed 12:50 AM UTC

Commit: 0b6e2d7 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.94

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 12:51 AM UTC · Completed 12:59 AM UTC

Commit: 0b6e2d7 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.79

@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 2 (bot-triggered)

Addressed the stale-reference finding by adding a correction annotation to ADR-0033's Alternative 2 rejection. The annotation clarifies that GitHub's event suppression applies only to GITHUB_TOKEN pushes (not App installation tokens), cross-references bot-identities.md and platform-nativeness.md, and preserves the original ADR text per immutability rules.

Fixed (1):

  1. ADR-0033 Alternative 2 rejection overstates GitHub event suppression scope (docs/ADRs/0033-per-repo-installation-mode.md): Added a correction annotation (permitted minor annotation per docs/contributing/adrs.md) after the Alternative 2 rejection paragraph, noting that GitHub's event suppression applies only to GITHUB_TOKEN pushes — not to App installation tokens — with cross-references to bot-identities.md and platform-nativeness.md. The original text is preserved per ADR immutability rules.

Tests: passed

Decision points
  • Annotation vs. rewrite of ADR-0033 Alternative 2 rejection (alternatives: Rewrite the first sentence to correct the factual claim, Add a correction annotation note preserving the original text; rationale: ADR-0033 has status Accepted and is on main. Per docs/contributing/adrs.md, minor annotations (short notes, cross-references) are permitted but substantial rewrites are not. An annotation preserves the point-in-time record while correcting the factual error and linking to the now-documented correct behavior.)

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

fullsend-ai-coder Bot added a commit that referenced this pull request Sep 8, 2026
Add a note to ADR-0033's Alternative 2 rejection clarifying that
GitHub's event suppression applies only to GITHUB_TOKEN pushes, not
to GitHub App installation token pushes. The original sentence
overstated the suppression scope — the observed scaffold-sync
dispatch recursion confirms App tokens do trigger new workflow runs.
This is a permitted minor annotation on an Accepted ADR (per
docs/contributing/adrs.md), preserving the original text while
linking to the corrected documentation in bot-identities.md.

Addresses #7086
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:01 AM UTC · Completed 1:15 AM UTC

Commit: 65fb32b · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.79

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 1:18 AM UTC · Completed 1:23 AM UTC

Commit: 65fb32b · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.10

fullsend-ai-coder Bot added a commit that referenced this pull request Sep 8, 2026
Add `## General identity notes` heading before the bold-paragraph
notes (`**Shared vendor identity:**`, `**REST vs. GraphQL login
format:**`, `**gh pr view --json format:**`) so they are scoped as
document-wide conventions rather than falling inside the sync-specific
`## Scaffold-sync write path` section.

Addresses #7086
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 3 (bot-triggered)

Added ## General identity notes section heading to properly scope the general-purpose bold-paragraph notes that were incorrectly rendered under the sync-specific ## Scaffold-sync write path section

Fixed (1):

  1. Scaffold-sync write path section swallows general-purpose identity notes (docs/contributing/bot-identities.md): Added ## General identity notes heading before the bold-paragraph notes (Shared vendor identity, REST vs. GraphQL login format, gh pr view --json format) so they are scoped as document-wide conventions rather than falling inside the sync-specific ## Scaffold-sync write path section

Tests: passed

Decision points
  • Chose to add a new heading rather than moving the sync section after existing notes (alternatives: Add a ## General identity notes heading before the bold paragraphs, Move ## Scaffold-sync write path after all general notes; rationale: Adding a heading is a smaller diff (2 lines vs relocating entire sections), preserves the logical reading order (specific sync details first, then general conventions), and matches the reviewer's first suggested remediation)

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:25 AM UTC · Completed 1:39 AM UTC

Commit: f6b5c6a · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.22

fullsend-ai-review[bot]

This comment was marked as outdated.

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 1:41 AM UTC · Completed 1:48 AM UTC

Commit: f6b5c6a · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.91

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:03 PM UTC · Completed 12:19 PM UTC

Commit: 9897457 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.73

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ❌ Failure (running pre-script: exit status 1) · Started 12:21 PM UTC · Completed 12:21 PM UTC

Commit: 9897457 · View workflow run →

Effort: high

@ggallen

ggallen commented Sep 8, 2026

Copy link
Copy Markdown
Member

/fs-fix - Rebase, fix all review issues, respond to and resolve all conversations.

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 12:24 PM UTC · Completed 12:32 PM UTC

Commit: 9897457 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $1.96

Restore the original App identity confusion bullet text in ADR 0033
Risks section and append a Note (2026-09) annotation explaining the
corrected reasoning. The previous iteration substantively rewrote the
bullet, which violates ADR immutability rules (docs/contributing/adrs.md).
The annotation pattern matches the one used for Alternative 2 in the
same PR.

Note: pre-commit hooks were not run during commit. pre-commit could not
complete (sandbox network policy blocks git fetch for remote hook repos).
All relevant local hooks (lint-adr-status, lint-adr-numbers,
lint-adr-frontmatter, lint-docs-links, lychee) were run directly and
all passed.

Addresses #7086
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 6 (human-triggered)

Restored the original ADR-0033 App identity confusion risk bullet text and added a correction annotation, matching the pattern used for Alternative 2 in the same PR. This addresses the adr-immutability review finding. PR description update for ADR edit disclosure was blocked by sandbox network policy.

Fixed (1):

  1. ADR immutability: App identity confusion bullet substantively rewritten rather than annotated (docs/ADRs/0033-per-repo-installation-mode.md): Restored the original bullet text verbatim and appended a > Note (2026-09): annotation explaining the corrected reasoning (App installation token pushes do trigger events, so the single-App risk is permission union/least-privilege, not silent failures). This matches the annotation pattern used for Alternative 2 in the same PR.

Disagreed (1):

  1. PR description does not disclose edits to ADR 0033: The PR body should be updated to note the ADR 0033 Risks section edit and platform-nativeness.md cross-reference update per docs/contributing/adrs.md. The gh pr edit command is blocked by sandbox network policy (GraphQL endpoint denied). The post-script summary comment should include this disclosure: 'Also corrects the App identity confusion risk entry in ADR 0033 Risks section (which was based on the now-refuted suppression premise) and updates platform-nativeness.md to cross-reference the ADR 0033 correction note.'

Tests: passed

Strategy change: Iteration 6: reversed iteration 4's substantive rewrite approach in favor of the annotation-only pattern that the reviewer explicitly requested and that matches the correction note already used elsewhere in this PR.

Decision points
  • Use annotation pattern instead of substantive rewrite for ADR 0033 Risks bullet (alternatives: Restore original text and add annotation (matching Alternative 2 pattern), Keep the rewrite from iteration 4; rationale: ADR immutability rules (docs/contributing/adrs.md) prohibit substantial rewrites to Consequences sections of Accepted ADRs. The annotation pattern is already used successfully for Alternative 2 at line 69 of the same file. Restoring the original text and adding an annotation is the correct approach per the review finding.)

Next steps:

  • /fs-review — request a re-review of the changes
  • /fs-fix <your instruction> — run another fix pass with specific guidance
  • Push commits directly — review re-runs automatically on push
    Updated by fullsend fix agent

@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:34 PM UTC · Completed 12:48 PM UTC

Commit: 3183e28 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $3.50

@fullsend-ai-review
fullsend-ai-review Bot dismissed stale reviews from themself September 8, 2026 12:48

Superseded by updated review

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Sep 8, 2026
@ggallen
ggallen added this pull request to the merge queue Sep 8, 2026
Merged via the queue into main with commit 609f261 Sep 8, 2026
54 checks passed
@ggallen
ggallen deleted the agent/6554-sync-bot-docs branch September 8, 2026 12:56
@fullsend-ai-retro

fullsend-ai-retro Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 12:58 PM UTC · Completed 1:13 PM UTC

Commit: 3183e28 · View workflow run →

Runtime: claude · Model: opus → claude-opus-4-6 · Effort: high · Cost: $4.96

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #7086 — docs(#6554): document scaffold-sync bot identity and write path

What happened

A docs-only PR (+41/−4 lines, 4 files) went through 8 review cycles and 7 fix iterations (5 autonomous, 2 human-triggered) before merging. Total agent cost: ~$49. The bot-cap circuit breaker correctly halted the autonomous loop after 5 iterations; the human (ggallen) intervened ~9.5 hours later with two /fs-fix commands to resolve the remaining issues.

The core dynamic was fix-agent scope expansion: the original PR changed 2 files (bot-identities.md, ci-workflows.md), but the fix agent pulled ADR-0033 into the diff at iteration 2 and platform-nativeness.md at iteration 5. Each new file introduced new review surface area — 6 of 7 review findings targeted issues the fix agent itself introduced, not the original code. The fix agent also substantively rewrote an ADR bullet (iteration 4) instead of using the annotation pattern, violating ADR immutability rules. The human ultimately restored the original ADR text and added a Note (2026-09): annotation — the approach the review agent had suggested from iteration 7.

Evidence for existing issues

Proposals filed

  1. Fix agent should constrain scope expansion during review-fix iterations (→ fullsend-ai/agents)

Proposals filed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-human Agent loop needs human intervention ready-for-merge All reviewers approved — ready to merge ready-for-review Triggers review agent dispatch risk/moderate PR risk: moderate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: record the scaffold-sync App's write path — missing from bot-identities, ruleset bypass, workflow-write, dispatch recursion

1 participant