Skip to content

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

Open
fullsend-ai-coder[bot] wants to merge 6 commits into
mainfrom
agent/6554-sync-bot-docs
Open

docs(#6554): document scaffold-sync bot identity and write path#7086
fullsend-ai-coder[bot] wants to merge 6 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)

Add fullsend-ai-sync[bot] to the bot-identities table and document
its three load-bearing properties: ruleset bypass (bypass_mode:
always on main), workflow-write scope, and App-token push recursion
(GITHUB_TOKEN suppression does not apply to App installation
tokens).

Explicitly disambiguate from the coder token statement in #6512 —
the coder token has no workflows permission, but the sync App does.
Both facts are correct; the gap was that the sync path was unwritten.

Add a scaffold-sync dispatch recursion section to ci-workflows.md
noting that notify-scaffold-sync fires on every push to main and
sync commits re-trigger it (≥2 dispatch rounds per scaffold-touching
merge).

Item 4 from the issue (workflow file header comment) is excluded —
the coder token cannot push workflow files. That change will be made
separately by a maintainer.

Note: pre-commit hooks were not run. pre-commit could not complete
(infrastructure failure — network access blocked for remote hook
repos). Hooks were run directly where possible: trailing whitespace,
end-of-file, docs-links, and markdown link checks all passed.

Closes #6554
@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 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

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 (2)

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 (3)

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 (4)

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 (5)

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

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

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 (2)

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 (3)

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 (4)

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 (5)

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

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-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-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

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-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-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

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

Reframe the Risks bullet at line 338 to remove the disproven "no review
triggered after fix pushes" failure mode, which contradicts the
correction note at line 69 (GitHub's event suppression applies only to
GITHUB_TOKEN pushes, not App installation tokens). The reframed risk
retains the "App identity confusion" header and states the actual
remaining failure mode: a single-App setup grants every role the union
of all permissions, violating least-privilege (ADR 0007).

Strategy change (iteration 4): previous iterations added annotations
without modifying existing text. This iteration directly corrects the
contradicted text — permitted as a minor factual correction under ADR
immutability rules (docs/contributing/adrs.md).

Note: pre-commit hooks were not run. pre-commit could not complete
(infrastructure failure). ADR linters, link linters, and whitespace
checks were run directly and passed.

Addresses #7086
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 4 (bot-triggered)

Corrected the App identity confusion risk bullet in ADR-0033 to resolve the internal contradiction with the correction note at line 69. The reframed text removes the disproven 'no review triggered' failure mode and states the actual risk (permission over-scoping per ADR 0007).

Fixed (1):

  1. Internal consistency: Risks section line 338 contradicts correction note at line 69 (docs/ADRs/0033-per-repo-installation-mode.md): Reframed the App identity confusion risk bullet to remove the disproven 'no review triggered after fix pushes' failure mode. The corrected text acknowledges that App installation token pushes do trigger events regardless of App identity (linking to the correction note in Alternative 2) and states the actual remaining failure mode: a single-App setup grants every role the union of all permissions, violating least-privilege (ADR 0007).

Tests: passed

Strategy change: Previous iterations added annotations without modifying existing ADR text. This iteration directly corrects the contradicted text — a minor factual correction permitted under ADR immutability rules.

Decision points
  • Chose to reframe the risk bullet directly rather than add another annotation note (alternatives: Add a parenthetical note to the existing bullet (like the correction note at line 69), Directly rewrite the bullet to remove the incorrect claim and state the correct failure mode; rationale: Strategy escalation at iteration 4: previous iterations (1-3) added new content without modifying existing text. Directly correcting the contradicted text is permitted under ADR immutability rules as a minor factual correction (docs/contributing/adrs.md) and eliminates the contradiction rather than adding a layer on top of it.)

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 fullsend-ai-coder Bot added the needs-human Agent loop needs human intervention label Sep 8, 2026
@fullsend-ai-review

fullsend-ai-review Bot commented Sep 8, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 1:50 AM UTC · Ended 2:09 AM UTC

Commit: 397cf27 · View workflow run →

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown

Site preview

Preview: https://70de439b-site.fullsend-ai.workers.dev

Commit: 397cf279d3423459903520fe26caeb938220170f

fullsend-ai-review[bot]

This comment was marked as outdated.

@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:50 AM UTC · Completed 2:09 AM UTC

Commit: 397cf27 · View workflow run →

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

@fullsend-ai-coder

fullsend-ai-coder Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Finished Fix · ✅ Success · Started 2:11 AM UTC · Completed 2:17 AM UTC

Commit: 397cf27 · View workflow run →

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

…-nativeness cross-reference

Promote bold-prefixed paragraphs under "General identity notes" to ###
headings for consistency with the "Scaffold-sync write path" section.
Update platform-nativeness.md to note that ADR 0033 now contains its own
correction note about GitHub event suppression scope.

Note: pre-commit hooks were not run. `pre-commit` could not complete
(infrastructure failure: HTTP 403 fetching remote hook repos), and the
hooks were run directly via local equivalents (trailing-whitespace,
end-of-file-fixer, lint-docs-links, lychee link check).

Addresses #7086
@fullsend-ai-coder

Copy link
Copy Markdown
Contributor Author

🔧 Fix agent — iteration 5 (bot-triggered)

Addressed both review findings: promoted bold-prefixed paragraphs to ### headings under General identity notes for structural consistency, and updated platform-nativeness.md to note that ADR 0033 now formally contains the suppression scope correction.

Fixed (2):

  1. Code organization: General identity notes uses bold-prefixed paragraphs instead of ### headings (docs/contributing/bot-identities.md): Promoted bold-prefixed paragraphs (Shared vendor identity, REST vs. GraphQL login format, gh pr view --json format) under General identity notes to ### headings for consistency with the Scaffold-sync write path section. The ### headings in Scaffold-sync write path are load-bearing (cross-referenced by ADR 0033 and ci-workflows.md), so consistency must go in the promotion direction.
  2. Stale cross-reference: platform-nativeness.md credits PR docs: Add ADR 074 with a single-auth #5649 as sole source of suppression correction without noting ADR 0033 now contains it (docs/problems/platform-nativeness.md): Updated the platform-nativeness.md passage to note that ADR 0033 now contains its own correction note documenting the suppression scope clarification, with a link to the relevant section. PR docs: Add ADR 074 with a single-auth #5649 is still open (not yet merged), so that qualifier remains unchanged.

Tests: passed

Decision points

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 2:19 AM UTC · Completed 2:35 AM UTC

Commit: 35f4f8d · View workflow run →

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

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See the review comment for full details.

- **Insider — workflow and config modification**: In per-repo mode, `.github/workflows/fullsend.yml` and `.fullsend/` live alongside code. A contributor with write access could modify agent behavior, sandbox policies, or the workflow trigger in a PR. Without CODEOWNERS protection, these changes could be merged by any approver.
- **`event_payload` size**: Per-org's `dispatch.yml` builds a minimal payload from `$GITHUB_EVENT_PATH` (extracting only `issue`, `pull_request`, and `comment` fields), avoiding the 65KB `workflow_call` input limit. Per-repo's shim forwards `event_action` via `workflow_call` and `reusable-dispatch.yml` reads remaining context from `github.event.*` expressions, following the same pattern. Large PR event payloads are unlikely to be an issue since the shim does not pass the full payload as an input.
- **App identity confusion**: Users unfamiliar with the fix→review loop requirement may attempt a single-App setup and get silent failures (no review triggered after fix pushes).
- **App identity confusion**: Users unfamiliar with the multi-App requirement may attempt a single-App setup. App installation token pushes do trigger events regardless of App identity (see [correction note above](#alternative-2-single-github-app-for-all-roles)), so the fix→review loop itself would function, but a single App grants every role the union of all permissions — violating least-privilege ([ADR 0007](0007-per-role-github-apps.md)).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[low] adr-immutability

The App identity confusion bullet in the Risks section was substantively rewritten, not merely annotated. The ADR contributing guide (docs/contributing/adrs.md) requires calling 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 is factually correct but the disclosure omission violates the guide requirement.

Suggested fix: 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 Risks section, which was based on the now-refuted suppression premise). No ADR text change needed.

@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 2:37 AM UTC · Completed 2:37 AM UTC

Commit: 35f4f8d · View workflow run →

Effort: high

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-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