{"version":"2.1.221","anchor":"pr-review-artifacts-can-carry-an-approve-on-github-button","canonical_anchor":"pr-review-artifacts-can-carry-an-approve-on-github-button","heading":"PR review artifacts can carry an \"Approve on GitHub\" button","tier":"soon","area":"Artifacts","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/pr-review-artifacts-can-carry-an-approve-on-github-button","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### PR review artifacts can carry an \"Approve on GitHub\" button\n\nPR review artifact pages can show a pinned button that approves the pull request from your GitHub account.\n\n**What**\n\nThe artifact-pr-review skill and template gained a third capability alongside the live staleness binding and decision pills: a pinned control that submits an approving GitHub review as the viewer.\n\n**Details**\n\n- adds a `stamp` payload field, a `prr-stamp` JSON island, and a pinned approve script\n- when filled, the page shows a fixed control whose disclosure says it posts from the viewer's own account, after a click-time re-read confirms the head SHA still matches the anchor\n- the script arms only if the read and write tools live on one connector whose display name matches `\/github\/i`, the read declares `readOnlyHint: true`, the write does not, the write's name matches a positive create-and-submit-review allowlist, and every input value is one of the anchor's own identifiers or an approve word\n- the raw (non-composed) publish lane always keeps `{\"stamp\":null}`\n- gated on artifact availability (env `CLAUDE_CODE_ARTIFACT` \/ gate `tengu_cobalt_plinth`, in-source fallback false, plus plan tier and the `enableArtifact` setting); within that, the control exists only when the model fills `stamp` and publish validation accepts it\n\n**Evidence**\n\n`Posts an approving review of <code class=\"stamp-target\"><\/code> from your own GitHub account, as you, if the branch is unchanged.`\n\n- Flag `tengu_cobalt_plinth`: Off by default, switched on for this account (read for one account on one subscription tier against v2.1.221; this account: on, anonymous baseline: on, compiled default: off) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: Artifacts\n- Names: `CLAUDE_CODE_ARTIFACT`, `enableArtifact`\n- Tier: Nothing to try yet\n- Useful: 4\/5\n- Signal: 5\/5\n- Present in the build but not switched on"}