Delimit publishable content in merge approval prompt
Problem
The merge approval prompt rendered by the merge-pr skill mixes the merge commit's title and body with surrounding metadata (header line, strategy/delete fields, CI status, free-form context). With no visual boundary around the publishable content, it's hard to tell at a glance where the body ends and unrelated agent commentary begins.
The same Title:/Body: shape is reused by merge-bb-pr for its "auto-merge unavailable, here's what would have merged" fallback notice, so the same confusion applies there.
Context
- The prompt template lives in
packages/agents/content/skills/merge-pr/SKILL.md step 7 ("Approval gate").
- The Bitbucket fallback template lives in
packages/agents/content/skills/merge-bb-pr/SKILL.md.
- Agents frequently append freelance context (CI status, branch fate, etc.) after the body and before the approval question. That text isn't part of the template but renders adjacent to the body, contributing to the confusion.
Solution
Wrap the publishable fields in inward-pointing triangle delimiters so the boundary between "what will be published" and "everything else" is unmistakable:
- Title: Wrap inline with
▶︎ … ◀︎. Pattern: Title: ▶︎ {merge_title} ◀︎.
- Body: Replace the
Body: label with a ▼ Body heading on its own line, and add a closing ▲ on its own line after the body content. Both glyphs point at the body region.
Before
Title: #384 root|tooling: Move CWS pack output to tmp directory (#392)
Strategy: squash
Delete: remote
Body:
Moves the Chrome Web Store upload artifact from `.dist/dist-cws.zip` to `tmp/cws-packed/extension.zip`. The previous location was a single-character variant of the loose-extension `dist/` directory, inviting typos in scripts and confusion in code review. The new location nests under the existing `tmp/` (already gitignored), is consistent with the artifact's ephemeral lifecycle, and adds no new top-level entries to the project root.
Closes #384
CI status: code-quality ✓, audit ✓, e2e ✓ (mergeStateStatus: CLEAN). Squash will land a single commit on main; the local 384 branch stays untouched, remote origin/384 will be deleted.
Proceed with merge? 👍🏼👎🏼
After
Title: ▶︎ #384 root|tooling: Move CWS pack output to tmp directory (#392) ◀︎
Strategy: squash
Delete: remote
▼ Body
Moves the Chrome Web Store upload artifact from `.dist/dist-cws.zip` to `tmp/cws-packed/extension.zip`. The previous location was a single-character variant of the loose-extension `dist/` directory, inviting typos in scripts and confusion in code review. The new location nests under the existing `tmp/` (already gitignored), is consistent with the artifact's ephemeral lifecycle, and adds no new top-level entries to the project root.
Closes #384
▲
CI status: code-quality ✓, audit ✓, e2e ✓ (mergeStateStatus: CLEAN). Squash will land a single commit on main; the local 384 branch stays untouched, remote origin/384 will be deleted.
Proceed with merge? 👍🏼👎🏼
Apply the same treatment to:
merge-pr/SKILL.md step 7 (pre-merge approval prompt).
merge-bb-pr/SKILL.md (Bitbucket fallback notice).
Anything outside the delimiters — strategy/delete fields, the trailing approval question, freelance commentary the agent adds — is unambiguously metadata.
Acceptance criteria
Delimit publishable content in merge approval prompt
Problem
The merge approval prompt rendered by the
merge-prskill mixes the merge commit's title and body with surrounding metadata (header line, strategy/delete fields, CI status, free-form context). With no visual boundary around the publishable content, it's hard to tell at a glance where the body ends and unrelated agent commentary begins.The same
Title:/Body:shape is reused bymerge-bb-prfor its "auto-merge unavailable, here's what would have merged" fallback notice, so the same confusion applies there.Context
packages/agents/content/skills/merge-pr/SKILL.mdstep 7 ("Approval gate").packages/agents/content/skills/merge-bb-pr/SKILL.md.Solution
Wrap the publishable fields in inward-pointing triangle delimiters so the boundary between "what will be published" and "everything else" is unmistakable:
▶︎ … ◀︎. Pattern:Title: ▶︎ {merge_title} ◀︎.Body:label with a▼ Bodyheading on its own line, and add a closing▲on its own line after the body content. Both glyphs point at the body region.Before
After
Apply the same treatment to:
merge-pr/SKILL.mdstep 7 (pre-merge approval prompt).merge-bb-pr/SKILL.md(Bitbucket fallback notice).Anything outside the delimiters — strategy/delete fields, the trailing approval question, freelance commentary the agent adds — is unambiguously metadata.
Acceptance criteria
merge-pr/SKILL.mdstep 7 prompt template wrapsTitle:inline with▶︎ … ◀︎.merge-pr/SKILL.mdstep 7 prompt template uses▼ Body/▲to delimit the body region (heading line + closing-glyph line).merge-bb-pr/SKILL.mdnotice template applies the same title and body delimiters.