fix(skills): designer + design-reviewer close mockup issue on approval #252
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!252
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/248"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
skills/design-review.md: Penpot handoff path now emits a structured**Verdict**: APPROVED/**Verdict**: CHANGES_REQUESTEDline. On APPROVED: removesarea:design-reviewand closes the issue. On CHANGES_REQUESTED: removesarea:design-reviewand re-addsarea:designto re-dispatch the designer for another pass.skills/design-implement.md: added re-run detection at the top — if the most recent design-reviewer comment containsCHANGES_REQUESTED, the skill reads findings, applies/disagrees/defers each, posts a shorter reply, then does the normal label swap back toarea:design-review.CLAUDE.md: documents the close-on-approval semantics and ping-pong loop in the Design review flow section.Test plan
area:designissue, let designer run, let design-reviewer approve → issue auto-closes and linked impl dependent auto-assigns via the propagator.CHANGES_REQUESTED→ label flips back toarea:design, designer re-runs addressing findings, second pass approves, issue closes.bun x biome check apps/ packages/).Closes #248
🤖 Generated with Claude Code
Review — PR #252
Head:
344bd67| CI: ✅ green (run #1916, 3m26s)Acceptance criteria (issue #248)
skills/design-review.mdPenpot-handoff path now emits a structured**Verdict**: APPROVED/**Verdict**: CHANGES_REQUESTEDline at the end of the review comment (step 4), making the verdict deterministic and machine-readable.area:design-reviewfirst, then callsmcp__forgejo__update_issuewithstate: "closed"— unblocks impl dependents via the propagator. Correct tool, correct order.area:design-review, re-addsarea:designviamcp__forgejo__add_issue_labels(resolving the label id withlist_repo_labelsfirst). Does not close the issue. Label ping-pong mirrors the PR review loop.skills/design-implement.mdre-run detection: scanslist_issue_commentsfor the most recent comment containing**Verdict**: CHANGES_REQUESTED(posted bydesign-reviewer). If found, enters re-run workflow: reads findings, re-opens the Penpot file from the original handoff deep-link, applies/disagrees/defers each finding, posts a shorter re-handoff comment, then performs the label swap (area:design-reviewin,area:designout). Completion gate requires reply comment posted + touched frames re-exported + labels swapped. Clean.CLAUDE.mddocuments close-on-approval semantics and the designer re-run ("addressed: X, Y, Z" reply) correctly.Correctness notes
CHANGES_REQUESTEDfrom the reviewer becomes the target for the next designer pass).design-reviewstays inSTATELESS_SKILLS; the re-run detection callslist_issue_commentsfresh each time — no session dependency.create_pull_review) is untouched as required.No issues. Fixes the zombie-issue root cause cleanly.