From insight-blueprint
Guides structured revision of an analysis design based on review comments. Reads review feedback via MCP, tracks progress per comment, and helps fix each issue. Triggers: "レビューを直して", "指摘を反映して", "revision対応して", "fix review", "address comments", "レビュー修正".
npx claudepluginhub etoyama/insight-blueprint --plugin insight-blueprintThis skill uses the workspace's default tool permissions.
Guides the user through a structured revision workflow for an analysis design
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Guides the user through a structured revision workflow for an analysis design that has received review comments. Reads review feedback via MCP, creates a persistent tracking file for per-comment progress, and helps address each comment through interactive dialogue.
revision_requested and review comments need to be addressedrevision_requested statusIf $ARGUMENTS contains a design ID (e.g., "FP-H01"), use it directly.
Otherwise, call list_analysis_designs(status="revision_requested") and ask the user to select.
get_analysis_design(design_id) -- load the design.
Status check: If status != "revision_requested", display an error and exit:
このデザイン ({design_id}) は revision_requested 状態ではない (現在: {status})。
レビューで修正依頼が出た後にこのスキルを使おう。
get_review_comments(design_id) -- get all review batches.
Batch selection (important -- do NOT just pick the newest batch overall):
status_after == "revision_requested"created_atIf no qualifying batch found (all batches have status_after != "revision_requested"):
revision_requested に対応するレビューバッチが見つからない。
レビューが WebUI 経由で提出されているか確認しよう。
Exit.
Display situation summary:
-- Revision: {design_id} --
Title: {title}
Status: {status}
Target batch: {batch.id} ({batch.created_at})
Reviewer: {batch.reviewer}
Comments: {len(batch.comments)} items
Read .insight/designs/{design_id}_revision.yaml using the Read tool.
If file exists AND batch_id matches the target batch -> reuse existing tracking (session resume).
Show: "前回のセッションから再開する。未対応のコメントから進めよう。"
If file does not exist OR batch_id does not match the target batch -> create new tracking file.
If file exists but is corrupted (parse error) -> treat as non-existent and create new tracking file. Show: "tracking file が破損していたため、新しいバッチから再作成する。"
New tracking file schema:
batch_id: "{target_batch.id}"
created_at: "{now_jst in ISO 8601 format}"
items:
- index: 0
fingerprint: "{fingerprint}"
comment_summary: "{first 50 chars of comment}"
target_section: "{target_section or null}"
status: "open"
addressed_at: null
- index: 1
fingerprint: "{fingerprint}"
comment_summary: "{first 50 chars of comment}"
target_section: "{target_section or null}"
status: "open"
addressed_at: null
# ... one item per comment in the batch
Fingerprint generation formula (stable identity key for cross-session matching):
import hashlib
fingerprint = hashlib.sha256(f"{comment}|{target_section or ''}".encode()).hexdigest()[:8]
The fingerprint is based on comment content rather than index position, so it remains stable even if comments are reordered. It is used for reconciliation when resuming a session.
Write the tracking file using the Write tool. Write the full YAML content to
.insight/designs/{design_id}_revision.yaml.
Note: In production code, atomic writes should use the tempfile + os.replace() pattern.
Since the skill operates through Claude's Write tool, the tool handles file writing directly.
For each item in the tracking file where status == "open":
Display the comment with context:
-- Comment {index+1}/{total} --
Section: {target_section or "general"}
Comment: {full comment text from the batch}
Target content: {target_content from the batch, if present}
Current value: {current value of that section from get_analysis_design, if target_section is set}
Status: {status}
To get the current value, call get_analysis_design(design_id) and extract
the field matching target_section (e.g., if target_section == "hypothesis_statement",
show design.hypothesis_statement).
Ask user for direction:
どう対応する?
1. fix -- 修正する (修正内容を一緒に考える)
2. skip -- 対応しない (wontfix としてマーク)
3. discuss -- 方針を相談したい
If fix:
update_analysis_design(design_id, **changes)status: "addressed", addressed_at: "{now_jst}"If skip (wontfix):
status: "wontfix", addressed_at: "{now_jst}"If discuss:
Write updated tracking file after each comment is resolved.
Write the full YAML content to .insight/designs/{design_id}_revision.yaml
using the Write tool.
After all items have been processed, verify: every item has status of either
"addressed" or "wontfix".
Show summary:
-- Revision Summary --
Total: {total} comments
Addressed: {addressed_count}
Won't fix: {wontfix_count}
Propose re-submission:
全コメントへの対応が完了した。in_review に戻してレビュアーに再確認を依頼する?
If yes: transition_design_status(design_id, "in_review")
Suggest next steps:
| Tool | Used for |
|---|---|
get_analysis_design(design_id) | Load design details and check status |
list_analysis_designs(status?) | Find designs in revision_requested status |
get_review_comments(design_id) | Get review batches with comments |
update_analysis_design(design_id, ...) | Apply fixes to design fields |
transition_design_status(design_id, new_status) | Re-submit for review (-> in_review) |
.insight/designs/{design_id}_revision.yaml
This file is skill-managed data, not MCP-managed (see YAML Format Reference in analysis-design SKILL.md).
| Situation | Action |
|---|---|
| Design not found | Show error, suggest list_analysis_designs() |
| Design not in revision_requested status | Show current status, exit with guidance |
| No revision_requested batch found | Show message, suggest checking WebUI review |
| Tracking file corrupted | Re-create from target batch, warn user |
| update_analysis_design fails | Show error, ask user to retry or adjust |
| Session interrupted mid-loop | On next run, resume from tracking file (open items) |
| From | To | When |
|---|---|---|
| WebUI review (revision_requested) | -> /analysis-revision | Review submitted with revision_requested status |
| /analysis-revision | -> /analysis-design | Major redesign needed: "大きな方針変更が必要なら /analysis-design {id}" |
| /analysis-revision | -> /analysis-journal | Need to investigate before fixing: "調査してから修正するなら /analysis-journal {id}" |
| /analysis-revision | -> (WebUI review) | After transition to in_review, reviewer re-reviews in WebUI |