Ship a direct "View image" link on every media library gallery card so users can open the generated PNG in the browser without navigating through the HTML card page.
Read and implement all steps in the plan at docs/plans/add-image-link-media-library-gallery.md — Add "View image" link to media-library gallery cards. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/add-image-link-media-library-gallery.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
More ways to run this plan — goal & workflow prompts, file path
Achieve this goal: Add "View image" link to media-library gallery cards. The plan at docs/plans/add-image-link-media-library-gallery.md describes one approach — use it as reference, but optimize for the outcome. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/add-image-link-media-library-gallery.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
add-image-link-media-library-gallery.html
docs/plans/add-image-link-media-library-gallery.html
docs/plans/add-image-link-media-library-gallery.md
Context
The story behind this plan — what prompted the work and why it matters now.
The media-library skill scans docs/media/social/ and builds a filterable HTML gallery ( index.html ). Each card-generating skill saves both an HTML card and a PNG screenshot side-by-side in that directory. The gallery currently links each card to its HTML file so users can read the post copy — but there is no way to open the PNG image directly from the gallery UI.
The fix is a plain HTML <a> link placed below each gallery card, outside the existing <a class="gallery-card"> wrapper. Siblings can't nest, so this avoids the HTML spec violation entirely and requires no JS card-click refactoring. Each card + link pair lives inside a thin <div class="gallery-card-wrap"> container so the existing filter JS can show/hide both elements together.
Two files need updating: templates/gallery.html (CSS for the wrap and link, JS filter update) and skills/media-library/SKILL.md (the gallery entry block that the skill generates per card).
Steps
The step-by-step work, in order — each step says what to do, why it matters, and how to check it worked.
Definition of done
The plan counts as done when every statement below is true — check each one off as you verify it.
Final check
One last pass to confirm the whole change works end to end.
Rebuild the gallery by running /social-media-tools:media-library and open docs/media/social/index.html in a browser. Confirm:
Each card has a "View image" link rendered visibly below it (not inside the card).
Clicking the card body opens the HTML card file in the same tab.
Clicking "View image" opens the .png in a new tab — the gallery page does not navigate away.
Using the type filter chips or search box hides both the card and its "View image" link together — no orphaned links remain visible.
Switching between grid and list view still shows the link below each card in both layouts.
Wrapping up
Three gates that must all pass before this plan is marked completed.
Completion Report
No items to report — all requirements met.