| name | change-review |
| description | Generate a self-contained interactive before/after review tool (HTML) so a human can sign off on many proposed changes asynchronously. Each change becomes a card with before(red)/after(green), a ํ์ /์์ /๋ณด๋ฅ decision pill, and a memo; a "ํผ๋๋ฐฑ ๋ณต์ฌ" button exports all decisions as text to paste back. Trigger when you have a batch of proposed edits/designs/decisions for the user to review, or when the user says "๋ณ๊ฒฝ ๋ฆฌ๋ทฐ ๋ง๋ค์ด์ค", "before/after ๋ฆฌ๋ทฐ", "๊ต์ ๋ฆฌ๋ทฐ ๋๊ตฌ", "๋ฆฌ๋ทฐ ์นด๋๋ก ๋ณด์ฌ์ค", "review tool". |
change-review
When you propose many changes at once (copy edits, design tweaks, refactors, term renames), don't make the user scroll a wall of diffs in chat. Emit an interactive review artifact: one card per change, the user clicks a decision + writes a memo, then hits ํผ๋๋ฐฑ ๋ณต์ฌ to paste a compact verdict list back. The loop is asymmetric โ you propose, they pick โ so keep each card atomic and self-explanatory.
Steps
- Resolve
$VAULT_PATH (printf '%s' "$VAULT_PATH"). It is served by the user's local web server, so the file is viewable in a browser. If unset/empty, stop and ask โ do not guess a path.
- Build the review JSON (schema below). One card per decision. Put images inline as base64
data: URIs โ the file must be fully self-contained (no CDN, no external paths).
- Render: read
references/template.html, replace the contents of <script type="application/json" id="reviewData">โฆ</script> with your JSON, write to $VAULT_PATH/YYYY-MM-DD-<slug>-review.html. Touch nothing else in the template.
- Hand off: give the user the file path / URL. They review โ ใํผ๋๋ฐฑ ๋ณต์ฌใ โ paste back to you โ you apply and (if iterating) regenerate the next round.
- Commit only that one file (
git -C "$VAULT_PATH" add <file> && git commit -m "review: <slug>") โ never git add .; the dir holds other sessions' in-flight HTML. (The review artifact lives in the private $VAULT_PATH; its content is not the leak boundary โ see ๋ณด์ ๊ฒ์ดํธ.)
reviewData schema
{
"title": "๋ณ๊ฒฝ ๋ฆฌ๋ทฐ",
"subtitle": "๋ก์ปฌ ์ ์ฉ ์๋ฃ, ๋ฐํ ์ ๊ฒํ ",
"storageKey": "review-2026-01-01",
"pills": ["ํ์ ","์์ ","๋ณด๋ฅ"],
"cards": [
{
"id": "card-1",
"section": "๊ทธ๋ฃน A",
"title": "์ ํํ โ ์ ํํ",
"loc": "3.2 ์ ๋ชฉ ยท ๋ณธ๋ฌธ 2๊ณณ",
"why": "...๊ทผ๊ฑฐ (inline HTML ok: <code>, <b>)",
"before": "<code>์ ํํ</code> ...",
"after": "<code>์ ํํ</code> ...",
"images": [{"label":"ํ","src":"data:image/png;base64,..."}],
"kind": "choice",
"options": [{"label":"A์","body":"..."},{"label":"B์","body":"..."}]
}
]
}
- before/after are the workhorse. Omit both for an image-only or choice-only card.
- kind:"choice" adds clickable A/B options (radio) on top of the 3 pills โ use when a change has branches; the picked option rides along in the exported feedback.
- storageKey must be unique per document and per round, or a new round inherits stale decisions.
Notes
- Self-contained is non-negotiable: base64 every image, no
../ paths. The artifact must survive being copied anywhere.
- One card = one reversible decision. Split a sprawling change into atomic cards rather than one giant card.
- For a big batch, fan out section-by-section (subagents) โ each returns its
cards[] โ merge into one JSON. Tabs keep it navigable.
- When a round is settled, the review file is disposable โ old rounds can be deleted or compacted into one archive to cut noise.
๋ณด์ ๊ฒ์ดํธ โ ์ด SKILL ํธ์ง ์ ์๊ฐ๊ฒ์ด
๋์ ๊ฒฝ๊ณ๋ ์์ฑ๋๋ ๋ฆฌ๋ทฐ ์ฐ์ถ๋ฌผ์ด ์๋๋ผ ์ด SKILL.mdยทtemplate.html ์์ฒด๋ค. ์ฐ์ถ๋ฌผ์ ๋น๊ณต๊ฐ $VAULT_PATH(๋ก์ปฌ, ์ธ๋ถ ๋น๋
ธ์ถ)์ ์ ์ฅ๋๋ฏ๋ก ๊ทธ ์ฝํ
์ธ ๋ vault ์ํธ๋ฆฌ์ ๊ฐ์ ๊ฐ์ ์๋ OK๋ค. ๋ฐ๋ฉด ์ด ๋ ํ์ผ์ ๊ณต๊ฐ dotfiles ๋ ํฌ์ ์ถ์ ๋๋ฏ๋ก, ์ฌ๊ธฐ ์ ๋ ์์ยท๊ธฐ๋ณธ๊ฐ์ ํตํด ์ฌ์ฉ์๊ฐ ์ค์ ๋ก ๋ค๋ฃจ๋ ๊ฒ ๋ฌด์์ธ์ง(ํ๋ก์ ํธยท์ฃผ์ ยท๋๋ฉ์ธ)๊ฐ ์๊ตฌ ๊ณต๊ฐ๋ก ์์ด ๋๊ฐ ์ ์๋ค. ์ด ํ์ผ์ ๊ณ ์น ๋ ์ ๊ฒํ๋ค.
- ์์ยท๊ธฐ๋ณธ๊ฐ์ ์ค๋ฆฝ placeholder๋ง. titleยทstorageKeyยทsectionยท์นด๋ ์ํ์ ์ค์ ํ๋ก์ ํธยท์ฃผ์ ยท๊ณ ์ ๋ช
์ ๋๋ฌ๋ด์ง ์๋๋ค(์ฑ
์ ๋ชฉ, ์ด์ธ/์ฌ์ฃผ ์ฑ, ๊ธ์กยท์ข
๋ชฉ, ์ง์ญ, ๊ด๊ณ ๋ฑ).
"๋ณ๊ฒฝ ๋ฆฌ๋ทฐ"ยท"์ ํํ โ ์ ํํ"ยท"A์/B์"์ฒ๋ผ ๋๋ฉ์ธ ์๋ generic์ผ๋ก.
- template ๊ธฐ๋ณธ JSONยท์ฃผ์์ ์ค์ ๋น๋ฐยทPIIยท๊ฐ์ธ ๊ฒฝ๋ก ๊ธ์ง.
- ์คํฌ ํ์ผ๋ง stage(
git add . ๊ธ์ง).