fix(sync): pin the signed-commits engine; record the grants decision - #67
Conversation
|
Claude finished @kyle-sexton's task in 1m 11s —— View job PR Review
Two changes, reviewed separately.
|
Re-pin to ci-workflows 7c29641 — the pilot PR passed every check but was unmergeable because consumer rulesets enforce required_signatures and the engine's CLI-created commits were unsigned; the engine now signs via the API as the App bot. Also supersede the "manage grants via Pulumi" intent in the plan doc: the grants API rejects App installation tokens (all github-iac's credential model offers), so the installation stays "only select repositories", UI-managed and recorded as provider-inexpressible (github-iac#38 closed). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GbDWhcUtduCejgi7mcbMfy
…ception, bot composition, reply protocol) (#122) ## Summary Five reasoning-only convention updates to `engineering/naming.md` and `conventions/review/`: - **naming.md** — promotes the org-wide branch-naming grammar (Conventional Commits type prefix + cloud-agent/bot prefix, kebab-case slug) into its own section, restated abstractly rather than cited from any single downstream repo. - **naming.md** — excepts `github-iac`'s label-governance seam (`GovernedRepositorySpec.PreviousNames` aliasing, `Labels.cs` taxonomy applied via `Github.IssueLabels`) from the "Rename across all coupled edges" rule, since both propagate through a separate reviewed Pulumi deployment on their own cadence rather than atomically with the originating rename. - **conventions/review/reply-protocol.md** (new) — codifies the threaded, same-surface `Fixed in <sha>` reply as the standard way to close a review finding once addressed, plus conditional (bot-thread-only) resolution. - **conventions/review/ai-review-bot-composition.md** (new) — documents the expected AI-review-bot composition per repository governance class (archived / no-CI-surface / governed / high-traffic primary), derived from `github-iac`'s `GovernedRepositorySpec` registry rather than from visibility or ownership. - **conventions/review/code-quality.md** — converts the PR-title prose bullet to a reference-only pointer at the `pr-title` workflow (`ci-workflows/.github/workflows/semantic-pr.yml`) and `enforceability-tiers.md`, removing the duplicated deterministic-rule prose. ## Decisions closed - #24 `naming-branch-convention-org-wide` - #64 `naming-doc-conflict-content-fix` - #22 `replies-codify-inline-reply-protocol` - #51 `tooling-gov-review-bot-composition-standard` - #67 `tooling-gov-standards-catalog-duplicate-prose` Decisions Log: https://claude.ai/code/artifact/232ecdce-8316-4880-8c0a-dc3c7dcf3a63 Evidence/rationale: https://claude.ai/code/artifact/3160ae0e-c02f-4619-8de3-60d73faa1100 ## Test plan - [x] `markdownlint-cli2` — 0 errors on all changed/new files - [x] `lychee --offline` — 0 broken links/anchors - [x] `typos` — clean - [x] Local `lefthook` pre-commit hooks (typos, gitleaks, editorconfig, markdownlint) — all passed at commit time 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>


Summary
Two consequences of the pilot's merge attempt:
7c29641(ci-workflows#60): the pilot sync PR (github-iac#37) was green on every check but unmergeable — every constellation repo enforcesrequired_signatures, and the engine's CLI-created commits were unsigned. The engine now creates commits via the API (sign-commits: true), signed by GitHub as the sync App's bot. After this merges, a re-run refreshes the pilot PR with a signed commit.AppInstallationRepositoryis unusable under github-iac's credential model (the grants API rejects App installation tokens; the deploy deliberately stores no PAT). Superseded by "only select repositories" managed in the UI — provider-inexpressible, same class as App registration. github-iac#38 closed with the same rationale; a forgotten grant self-signals as a failed sync leg.Verification
actionlint + markdownlint (module config) clean locally.
🤖 Generated with Claude Code
https://claude.ai/code/session_01GbDWhcUtduCejgi7mcbMfy
Note
Low Risk
Workflow SHA pin changes how sync commits are created (fixes mergeability); doc-only grant policy clarification with no runtime code in this repo.
Overview
Pins the
standards-syncreusable workflow in.github/workflows/sync.ymlfrom789abbeto7c29641so sync PRs use API commits withsign-commits: true, matching constellation repos that require signed commits (pilot PRs were green but unmergeable on unsigned CLI commits).Updates
docs/dedup-program/config-distribution-plan.mdAuth and the activation checklist: repo access for the sync App is UI-managed (“only select repositories”), superseding PulumiAppInstallationRepository(grants API +github-iac’s App-only credential model). Remaining manual steps are called out—narrow org installation, public App, personal-account install.Reviewed by Cursor Bugbot for commit 859d7a6. Bugbot is set up for automated code reviews on this repo. Configure here.