How this skill is triggered — by the user, by Claude, or both
Slash command
/wrap-up:wrap-upThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
---
Records what was done in the current session and what needs to be done next, saving to a per-topic markdown file that accumulates across sessions.
Defaults (no config file needed):
wrap-up/wrap-up/{topic-name}.md (topic = main feature/subject worked on)config.yaml (language field). If en, always write in English regardless of conversation language. If ko, always write in Korean. If missing, auto-detect from conversation.Glob("wrap-up/*.md") to list all wrap-up files| Scenario | Action |
|---|---|
| Exact match found (filename = topic) | Ask user to confirm: "기존 wrap-up/{name}.md에 이어서 기록할까요?" |
| Similar match found (related title/content) | Show candidates and ask user to select |
| Multiple candidates | Present list with AskUserQuestion for selection |
| No match | Ask user to confirm new file creation with suggested topic name |
Matching criteria:
auth matches auth.md)# Auth Module - Wrap Up)Naming rules:
business-avengers, wrap-up, api-refactorIf adding to an existing file:
### Next section to identify pending itemsLanguage enforcement: Read config.yaml for the language field.
language: en → Write ALL content (section headers, bullet points, context, decisions, issues, next items) in English, regardless of conversation language.language: ko → Write in Korean.Review the entire conversation history to extract:
| Section | What to Extract |
|---|---|
| Done | Tasks completed, features added, bugs fixed, refactoring done. Use conventional commit prefixes (feat, fix, refactor, docs, chore). If items from previous Next were completed, include them with "(from previous Next)" note |
| Decisions | Architecture choices, library selections, approach decisions made during the session |
| Issues | Blockers, errors, unresolved problems, workarounds applied |
| Next | Pending tasks, follow-up items, explicitly mentioned TODOs. Use checkbox format - [ ] |
If NEW file (user confirmed new topic):
wrap-up/ directory if neededIf EXISTING file (user selected existing file):
[ ] → [x]> **Scope**: line), BEFORE existing sessions--- separator between the new entry and the previous most-recent sessionSession date format:
date '+%Y-%m-%d %H:%M' to get the exact current time. Never estimate or guess the time.## Session: 2026-02-23 14:00Context line:
> **Context**: {brief summary} right after the session headerSession ordering: Reverse chronological (newest first, oldest last).
Template (new file):
# {Topic Name} - Wrap Up
> **Project**: `{CWD}`
> **Scope**: `{relative path to primary working directory}` (e.g., `plugins/business-avengers/`)
## Session: 2026-02-23 14:00
> **Context**: OAuth 2.0 소셜 로그인 연동 및 Google/GitHub 프로바이더 구현
### Done
- ...
### Decisions
- ...
### Next
- [ ] ...
Template (existing file — insert new session at top):
# {Topic Name} - Wrap Up
> **Project**: `{CWD}`
> **Scope**: `...`
## Session: 2026-02-24 10:00 ← NEW (inserted here)
> **Context**: ...
### Done
- ...
### Next
- [ ] ...
---
## Session: 2026-02-23 14:00 ← PREVIOUS (pushed down)
> **Context**: ...
### Done
- ...
### Next
- [x] completed item (from previous Next)
- [ ] remaining item
Section omission rules:
Show the user:
After confirming the wrap-up file, check config.yaml for blog_log.enabled:
config = Read("config.yaml") // from skill directory
if config.blog_log.enabled == false:
exit // skip silently
// Prompt user
AskUserQuestion(
"블로그 로그도 생성할까요?",
options=[
{ label: "네", description: "오늘 작업 내용을 블로그 logs 컬렉션에 저장합니다" },
{ label: "아니요", description: "wrap-up만 저장하고 종료합니다" }
]
)
if answer == "네":
// Invoke wrap-to-blog skill with current session context
// Pass: session date, topic name, Done items, Decisions, Next items
invoke_skill("wrap-to-blog", {
session_date: current_date, // YYYY-MM-DD
topic: current_topic, // e.g., "planning-interview"
done: session.done_items,
decisions: session.decisions,
next: session.next_items,
context_summary: session.context,
blog_dir: config.blog_log.blog_dir,
collection: config.blog_log.collection
})
Note: This step only runs if blog_log.enabled: true in config.yaml. If config.yaml is missing or blog_log section is absent, skip silently.
English:
Korean:
Use this skill when:
Skip when:
| Scenario | Response |
|---|---|
| Output directory doesn't exist | Create it with mkdir -p |
| Write permission denied | Error: Cannot write to {path}. Check permissions. |
| Empty conversation | Warning: Not enough content to summarize. Continue working first. |
| Existing file is malformed | Append new session entry at the end regardless |
npx claudepluginhub jaykim88/claude-ai-engineering --plugin wrap-upWrites a short distilled summary of a working session to docs/sessions/YYYY-MM-DD-<topic>.md after substantial work. Useful for maintaining continuity across sessions without dumping raw chat transcripts.
Generates and saves Markdown session logs capturing objectives, file changes, referenced materials, technical notes, future plans, open items, and metrics to resume project work across conversations.
Ends a work session by writing a concise HANDOFF.md snapshot summarizing progress, decisions, and next steps for the next session.