Skip to content

chore: enforce figma links in relevant prs - #734

Merged
jvsena42 merged 8 commits into
masterfrom
codex/731-figma-links
Sep 10, 2026
Merged

chore: enforce figma links in relevant prs#734
jvsena42 merged 8 commits into
masterfrom
codex/731-figma-links

Conversation

@ovitrif

@ovitrif ovitrif commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

Closes #731

Description

This PR:

  1. Adds a Design section to the PR template with Figma-link and explicit N/A guidance.
  2. Aligns agent authoring and review rules for known and uncertain Figma frames.
  3. Updates the release PR generator to include the required non-UI Design value.

Linked Issues/Tasks

Design

N/A — no UI changes.

Preview

N/A — no user-visible changes.

QA Notes

Manual Tests

N/A

Automated Checks

  • Local verification: policy-matrix inspection, release-body generation check, and git diff --check passed.

@ovitrif ovitrif self-assigned this Sep 8, 2026
@ovitrif
ovitrif requested a review from jvsena42 September 8, 2026 21:35
@greptile-apps

This comment has been minimized.

Comment thread .agents/commands/pr.md Outdated
Comment thread AGENTS.md

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Both greptile findings and my parity note are closed — thanks.

The screens-map reference is gone repo-wide: git grep -E "screens-map|screens map|ltqvnKiejWj0JQiqtDf2JJ|figma\.com" at head returns zero hits, and the only Figma pointers are the three Bitkit - Handoff vNN mentions this PR adds. That was the right of the two options — the artifact didn't exist here. release.md:129-131 has ### Design, and the reviewer clauses now sit in pr.md:121-123 as well as AGENTS.md:347-349.

Minor, not worth changing on its own: the handoff page is named but no file key or URL travels with it, unlike the Android side which pins ltqvnKiejWj0JQiqtDf2JJ in docs/screens-map.md:3. Reaching the page still needs knowledge held outside the repo.

One thing Android fixed in its twin that this still carries — inline.

Cross-repo framing that's more useful than either note alone: Android's follow-up went the opposite direction. It closed the N/A loophole but narrowed its design case to mapped *Screen.kt only, dropping 44 sheets out of coverage. This repo's scope is the better one — it covers sheets, views, anything with a design — it just needs the exemption tightened. Between the two PRs, each has the half the other wants.

Comment thread AGENTS.md Outdated
@ovitrif
ovitrif requested a review from jvsena42 September 9, 2026 15:32

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

936b439e applies exactly the scoping I suggested, on both surfaces — AGENTS.md:348 and .agents/commands/pr.md:122 now read `N/A — no UI changes.` needs no review request; `N/A — no design available.` may receive the single advisory clarification. The self-declared branch is no longer blanket-exempt, which was the whole point. Thanks.

I also checked the two literal strings match byte-for-byte (em dash, trailing period) across every surface that emits or consumes them — .github/pull_request_template.md:15-16, AGENTS.md:343-344, .agents/commands/pr.md:117-118, and the release generator at .agents/commands/release.md:129-131. pr.md builds its body from the template and those two are the only PR-body generators in the tree, so no path can now emit a body without ### Design.

Nothing further from me.

@ovitrif
ovitrif requested a review from jvsena42 September 9, 2026 22:22

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Two LOWs inline. These are instruction documents — nobody executes them, but agents and humans follow them, so a wrong or unsatisfiable rule gets acted on repeatedly. That's the lens.

Verified sound:

  • The missing docs/screens-map.md edit is correct, not a gap. The android twin (synonymdev/bitkit-android#1236) also edits its screens map, and I checked whether iOS should have an equivalent. It shouldn't: git grep -Ei "screens-map|screens map|ltqvnKiejWj0JQiqtDf2JJ|figma\.com" at head returns zero hits, there is no docs/ directory (only Docs/ with eight unrelated files), and no map-drift test exists. Nothing here was missed.
  • Literal strings byte-identical across template :15/:16, AGENTS.md:343/:344/:348, pr.md:117/:118/:122, release.md:131. release.md's body order matches the template (Description → Design → Screenshot / Video), and :116 still reads the template first.
  • No unbacked enforcement claimAGENTS.md:349 and pr.md:123 say links never block approval or CI, and nothing in the repo reads the PR body.
  • Rule reaches all agent surfacesCLAUDE.md symlinks to AGENTS.md, .cursor/commands/pr.md symlinks to .agents/commands/pr.md.

Drift vs the android twin — mostly justified by the absence of a screens map, but three differences are not: android scopes the advisory request "per PR" where this doesn't scope it at all; android's pr.md:168 says links never block "approval, CI, PR creation, or review readiness" where every other surface on both repos says just "approval or CI"; and android deliberately drops "missing" from the uncertain-frame clause (its map makes a missing frame unreachable) where :345 here keeps "Missing or uncertain", which is right for this repo. Worth one pass to decide which wordings are meant to be identical.

Comment thread .agents/commands/pr.md Outdated
Comment thread AGENTS.md Outdated
@ovitrif
ovitrif requested a review from jvsena42 September 10, 2026 10:07
@jvsena42
jvsena42 enabled auto-merge September 10, 2026 11:05

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Both fixes confirmed at e0f9bac2, and the drift closed. No findings.

Attribution first, because the diffstat looks alarming: git diff c88ad9d9 refs/remotes/pr/734 shows 23 files / +822 including PubkyService.swift and a pile of tests — but 19 of those are byte-identical to origin/master (git diff --quiet origin/master refs/remotes/pr/734 -- <path> exits 0 for every one), inherited from the 5ea3cf3d merge that brought in #697. git diff --stat origin/master refs/remotes/pr/734 returns exactly four files, all docs, +36/-0, matching gh pr diff --name-only. No source file is PR-authored and there is no evil mergegit diff origin/master…pr/734 touches zero non-doc files, so there was nothing for git show --cc to interrogate. A docs PR carrying no source changes is exactly right.

(a) resolved. pr.md:115 — "Include a ### Design section when the PR template contains a ### Design heading." Matches the file's own ### Preview gating at :188/:189, so the library-repo travelling case at :154 is handled. No behaviour change in this repo (the template does carry the heading) — this is purely portability.

(b) resolved, and the key is right. The file key landed in all three surfaces — pr.md:116, pull_request_template.md:14, AGENTS.md:342 — identical in each, as https://www.figma.com/design/ltqvnKiejWj0JQiqtDf2JJ/. Re-ran the grep at the new head: it now returns those three hits where it previously returned nothing, so the instruction is resolvable from inside the repo. I checked the key against android's docs/screens-map.md:3 — same file, and no typo drift between the three occurrences.

Drift, both items I flagged now fixed:

  • Advisory-request scope: you adopted "per PR", matching android.
  • Non-blocking wording: both repos now say "approval, CI, PR creation, or review readiness". git grep "approval or CI" returns zero hits in both repos — four surfaces, one wording. Worth noting I'd assumed the android side would narrow to match iOS; converging on the long form is the better result.
  • Still different, and correctly so: this repo keeps "Missing or uncertain" where android drops "missing". Android's screens map makes a missing frame unreachable; you have no map, so "missing" is a live case here. Not asking you to match.

I also re-checked that the pr.md:115 gate doesn't contradict the unconditional "must … under ### Design" at AGENTS.md:342-344 — it doesn't, since AGENTS.md is repo-local and this template carries the heading. Android has the identical two-layer shape.

Clean from my side.

@jvsena42
jvsena42 merged commit a130757 into master Sep 10, 2026
10 of 11 checks passed
@jvsena42
jvsena42 deleted the codex/731-figma-links branch September 10, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: enforce figma links in relevant prs

2 participants