Mockup: per-component file dropdowns in the sticky PR comment#26
Mockup: per-component file dropdowns in the sticky PR comment#26brovatten wants to merge 3 commits into
Conversation
Two candidate formats for listing changed files under each changed component, rendered as collapsed <details> blocks below the diagram: Variant A (component -> changed files) and Variant B (component -> file dropdowns -> methods tagged added/modified/removed). Mockup only, no action behavior change. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Architecture review · 3 components changedgraph LR
API["API Gateway"]
AUTH["AuthService"]
RL["RateLimiter"]
LSS["LegacySessionStore"]
DB["UserStore"]
API -- "authenticates via" --> AUTH
API -- "throttled by" --> RL
AUTH -- "reads/writes" --> DB
AUTH -- "persisted sessions in" --> LSS
classDef added fill:#1f883d,stroke:#0b5d23,color:#ffffff;
classDef modified fill:#bf8700,stroke:#7d4e00,color:#ffffff;
classDef deleted fill:#cf222e,stroke:#82071e,color:#ffffff,stroke-dasharray:5 3;
class RL added;
class AUTH modified;
class LSS deleted;
linkStyle 1 stroke:#0b5d23,stroke-width:2px;
linkStyle 3 stroke:#82071e,stroke-width:2px,stroke-dasharray:5 3;
Colors indicate component changes compared to 🟨 AuthService — 3 files changed
🟩 RateLimiter — 2 files added
🟥 LegacySessionStore — 2 files removed
See this architecture in your editor: Open in VS Code → codeboarding-action · run 0000000001 · mockup — Variant A: component → changed files |
Architecture review · 3 components changedgraph LR
API["API Gateway"]
AUTH["AuthService"]
RL["RateLimiter"]
LSS["LegacySessionStore"]
DB["UserStore"]
API -- "authenticates via" --> AUTH
API -- "throttled by" --> RL
AUTH -- "reads/writes" --> DB
AUTH -- "persisted sessions in" --> LSS
classDef added fill:#1f883d,stroke:#0b5d23,color:#ffffff;
classDef modified fill:#bf8700,stroke:#7d4e00,color:#ffffff;
classDef deleted fill:#cf222e,stroke:#82071e,color:#ffffff,stroke-dasharray:5 3;
class RL added;
class AUTH modified;
class LSS deleted;
linkStyle 1 stroke:#0b5d23,stroke-width:2px;
linkStyle 3 stroke:#82071e,stroke-width:2px,stroke-dasharray:5 3;
Colors indicate component changes compared to 🟨 AuthService — 3 files · 6 methods changed
🟩 RateLimiter — 2 files · 3 methods added
🟥 LegacySessionStore — 2 files · 4 methods removed
See this architecture in your editor: Open in VS Code → codeboarding-action · run 0000000002 · mockup — Variant B: component → files → methods |
|
Variant C — compact table · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changed
Methods: + added · ~ modified · − removed. Basenames shown; full paths in the Files tab. codeboarding-action · run 0000000003 · mockup |
|
Variant D — diff manifest · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedFile & method manifest — 7 files · 13 methods (
|
|
Variant E — file tree · mockup (diagram + CTA omitted, same as A/B) Architecture review · 3 components changedChanged files — 7 files, grouped by directorycodeboarding-action · run 0000000005 · mockup |
|
Variant F — review flightplan · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedSuggested review pathOrdered by blast radius — start at the top, tick items off as you go.
In the real comment each file deep-links to its diff in the Files tab, and ticks are re-applied when the comment refreshes on a new push. codeboarding-action · run 0000000006 · mockup |
|
Variant G — three reviewer questions · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedImportant Could anything break? 5 methods removed — 🟥 What behavior changed? · 2 methods, both in 🟨 AuthService
What's new? · 6 methods across 🟩 RateLimiter and 🟨 AuthService
codeboarding-action · run 0000000007 · mockup |
|
Variant H — matrix table with in-cell dropdowns · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changed
Method columns: + added · ~ modified · − removed. "·" = none. codeboarding-action · run 0000000008 · mockup |
|
Variant I — release notes · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedAdded · RateLimiter — two new files: Changed · AuthService — gains Removed · LegacySessionStore — 3 components · 7 files · 13 methods codeboarding-action · run 0000000009 · mockup |
|
Variant J — the dek · mockup (CTA omitted; the dek sits above the diagram) Architecture review · 3 components changedRateLimiter arrives, LegacySessionStore departs, and AuthService is rebuilt around token validation. ‹mermaid diagram renders here — same as Variants A/B› Changelog · 7 files · 13 methods🟨 AuthService — new 🟩 RateLimiter — 🟥 LegacySessionStore — removed entirely: codeboarding-action · run 0000000010 · mockup |
|
Variant K — the ledger · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changed🟨 AuthService · + added · ± modified · − removed · † new file — 7 files · 13 methods codeboarding-action · run 0000000011 · mockup |
|
Variant L — footnoted narrative · mockup (diagram + CTA omitted — same as A/B; GitHub hoists footnotes to the very bottom) Architecture review · 3 components changedThis PR introduces RateLimiter1, retires LegacySessionStore2, and reworks AuthService3 — new token validation and auth middleware, with the legacy login path removed. Seven files, thirteen methods. codeboarding-action · run 0000000012 · mockup Footnotes
|
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Variant M — one-liner · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedChanged: 🟨 AuthService (3 files) · 🟩 RateLimiter (2) · 🟥 LegacySessionStore (2) codeboarding-action · run 0000000013 · mockup |
|
Variant N — flat bullets · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changed
codeboarding-action · run 0000000014 · mockup |
|
Variant O — single manifest dropdown · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedChanged files — 7 across 3 components
codeboarding-action · run 0000000015 · mockup |
|
Variant P — plain text block · mockup (diagram + CTA omitted — same as A/B) Architecture review · 3 components changedcodeboarding-action · run 0000000016 · mockup |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Architecture review · 3 components changed🔍 Open interactive graph in VS Code → Component state vs graph LR
API["API Gateway"]
AUTH["AuthService"]
RL["RateLimiter"]
LSS["LegacySessionStore"]
DB["UserStore"]
API -- "authenticates via" --> AUTH
API -- "throttled by" --> RL
AUTH -- "reads/writes" --> DB
AUTH -- "persisted sessions in" --> LSS
classDef added fill:#1f883d,stroke:#0b5d23,color:#ffffff;
classDef modified fill:#bf8700,stroke:#7d4e00,color:#ffffff;
classDef deleted fill:#cf222e,stroke:#82071e,color:#ffffff,stroke-dasharray:5 3;
class RL added;
class AUTH modified;
class LSS deleted;
linkStyle 1 stroke:#0b5d23,stroke-width:2px;
linkStyle 3 stroke:#82071e,stroke-width:2px,stroke-dasharray:5 3;
|
Not for merge — visual mockup for discussion.
Today the sticky PR comment shows the Mermaid diff diagram but never says which files made a component change color, even though every component already carries
file_methods[](files + methods) that the diff logic uses internally and then discards.The two comments below mock up candidate formats, exactly as the action would post them (toy data):
The committed doc (
docs/mockups/pr-comment-file-dropdowns.md) has the same mockups plus implementation notes: intersectfile_methods[]with the git diff (changed files only, not the component's full file list), respect GitHub's 65,536-char comment cap (cap files per component, drop dropdowns before dropping the diagram), and build the block in a Python helper next tobuild_cta.pyrather than inline bash.🤖 Generated with Claude Code