skills/retro/SKILL.md
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: retro description: > Engineering retrospective with git + memory data analysis. Triggers on "retro", "회고", "weekly retro", "이번 주 리뷰", "what did we ship", "엔지니어링 회고", "주간 회고", "지난주 리뷰". Analyzes commits, memory activity, work patterns. Persistent history with trend tracking. allowed-tools: - Bash - Read - Write - Glob - AskUserQuestion --- # /retro — Engineering
npx skillsauth add Kit4Some/Oh-my-ClaudeClaw skills/retroInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
name: retro description: > Engineering retrospective with git + memory data analysis. Triggers on "retro", "회고", "weekly retro", "이번 주 리뷰", "what did we ship", "엔지니어링 회고", "주간 회고", "지난주 리뷰". Analyzes commits, memory activity, work patterns. Persistent history with trend tracking. allowed-tools:
Comprehensive retrospective analyzing git history, memory activity, and work patterns. Persistent history with trend tracking.
Before executing this skill:
Load context from memory:
memory_search(query: "{skill-relevant-query}", associative: true, limit: 5)
memory_search(tag: "{skill-name}", limit: 3)
Review returned memories for relevant past context, decisions, and patterns.
Check OMC state for active work:
state_get_status()
If conflicting active tasks exist, warn the user before proceeding.
Detect current branch (for git-related skills):
git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "not-a-git-repo"
Check proactive mode:
state_read("occ-proactive")
If "false": do NOT proactively suggest other OpenClaw-CC skills during this session.
Only run skills the user explicitly invokes.
Log skill activation:
memory_daily_log(type: "note", entry: "Skill activated: /{skill-name}")
/retro — default: last 7 days/retro 24h — last 24 hours/retro 14d — last 14 days/retro 30d — last 30 days/retro compare — compare current vs prior same-length windowParse argument. Default 7d. Validate format: number + d/h/w, or "compare".
Detect default branch:
DEFAULT_BRANCH=$(gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null || echo "main")
Compute midnight-aligned start date for day/week windows.
Run ALL commands in parallel:
# 1. Commits with stats
git log origin/$DEFAULT_BRANCH --since="<window>" --format="%H|%aN|%ae|%ai|%s" --shortstat
# 2. Per-commit LOC breakdown
git log origin/$DEFAULT_BRANCH --since="<window>" --format="COMMIT:%H|%aN" --numstat
# 3. Timestamps for session detection
git log origin/$DEFAULT_BRANCH --since="<window>" --format="%at|%aN|%ai|%s" | sort -n
# 4. File hotspots
git log origin/$DEFAULT_BRANCH --since="<window>" --format="" --name-only | grep -v '^$' | sort | uniq -c | sort -rn
# 5. PR numbers
git log origin/$DEFAULT_BRANCH --since="<window>" --format="%s" | grep -oE '#[0-9]+' | sort -n | uniq
# 6. Per-author commit counts
git shortlog origin/$DEFAULT_BRANCH --since="<window>" -sn --no-merges
Additionally, query memory:
memory_search_date(start: "{window_start}", end: "{today}", category: "daily-logs", limit: 50)
memory_search(tag: "done", limit: 20)
memory_search(tag: "decision", limit: 10)
memory_stats()
If task-scheduler available:
task_history()
| Metric | Value | |--------|-------| | Commits to default | N | | Contributors | N | | PRs merged | N | | Total insertions | N | | Total deletions | N | | Net LOC | N | | Test LOC ratio | N% | | Active days | N | | Sessions detected | N | | Avg LOC/session-hour | N | | Memories created | N | | Knowledge graph nodes | N | | Skills used | list |
Per-author leaderboard:
Contributor Commits +/- Top area
You (name) 32 +2400/-300 src/
collaborator 12 +800/-150 tests/
Hourly histogram (local time):
Hour Commits ████████████████
09: 4 ████
14: 8 ████████
22: 5 █████
Call out peak hours, dead zones, late-night patterns.
45-minute gap threshold between commits. Classify:
Calculate total active time, average session length, LOC/hour.
Categorize by conventional prefix (feat/fix/refactor/test/chore/docs):
feat: 20 (40%) ████████████████████
fix: 27 (54%) ███████████████████████████
refactor: 2 ( 4%) ██
Flag if fix ratio > 50% — may indicate review gaps.
Top 10 most-changed files. Flag:
From memory data:
Focus score: % of commits touching single most-changed directory. Higher = deeper work. Lower = scattered.
Ship of the week: Highest-impact PR/change.
# Consecutive days with commits
git log origin/$DEFAULT_BRANCH --format="%ad" --date=format:"%Y-%m-%d" | sort -u
Count backward from today.
Search memory for previous retro:
memory_search(tag: "retro", limit: 1)
If found, show trends:
Last Now Delta
Test ratio: 22% → 41% ↑19pp
Sessions: 10 → 14 ↑4
Commits: 32 → 47 ↑47%
If first retro: "First retro recorded — run again next week to see trends."
Save retro to memory:
memory_store(
category: "daily-logs",
title: "Retro: {date range}",
content: "{full retro JSON metrics}",
tags: ["retro", "weekly-review"],
importance: 7
)
memory_daily_log(type: "done", entry: "Weekly retro completed: {tweetable summary}")
Structure:
Tweetable summary (first line):
Week of {date}: {commits} commits, {LOC}k LOC, {test_ratio}% tests, {sessions} sessions | Streak: {N}d
Send notifications for significant events via messenger:
| Event | Platform | Priority | |-------|----------|----------| | Task/pipeline completed | telegram | Normal | | Verification failed | telegram | High | | Long-running task done (10+ min) | telegram | Normal | | Critical error or blocker | telegram | High | | PR created / release shipped | all | Normal | | Importance ≥ 8 memory created | telegram | Normal |
messenger_send(
platform: "telegram",
message: "[{skill-name}] {status_emoji} {brief description}\n\n{details if relevant}"
)
Status Emojis:
messenger_send(platform: "telegram", message: "{tweetable summary}\n\nFull retro available in memory.")
Every skill must end with one of these status codes:
| Code | Meaning | When to Use | |------|---------|-------------| | DONE | All steps completed, evidence provided | Root cause found + fix verified, PR created, review finished | | DONE_WITH_CONCERNS | Completed with warnings or caveats | Tests pass but coverage dropped, fix applied but can't fully verify | | BLOCKED | Cannot proceed, requires user intervention | 3 failed attempts, missing permissions, external dependency down | | NEEDS_CONTEXT | Missing information to continue | Unclear requirements, need user clarification |
3-strike rule: After 3 failed attempts at any step, STOP and escalate to user. Do not continue guessing. Present what was tried and ask for direction.
Scope escalation: If fix/change touches 5+ files unexpectedly, pause and confirm with the user before proceeding.
Security uncertainty: If you are unsure about a security implication, STOP and escalate. Never guess on security.
Verification requirement: Never claim DONE without evidence.
═══════════════════════════════════════
Status: {DONE | DONE_WITH_CONCERNS | BLOCKED | NEEDS_CONTEXT}
Summary: {one-line description of outcome}
Evidence: {test output, verification results, or blocking reason}
═══════════════════════════════════════
development
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: web-researcher description: > Web research with OMC team parallel execution. Triggers on "웹에서 찾아", "최신 정보", "리서치해", "동향", "web research", "find online", "latest info", "look up", "search the web", "trend analysis" and similar. v3: Spawns research-agent in parallel for multi-angle search. Deduplicates via memory_similar. Builds knowledge graph connections. For comprehensive
tools
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: unfreeze description: > Remove edit scope restriction set by /freeze or /guard. Triggers on "unfreeze", "편집 제한 해제", "잠금 해제", "remove freeze", "unlock edits". allowed-tools: - Bash - Read --- # /unfreeze — Remove Edit Restrictions ## Preamble Before executing this skill: 1. **Load context from memory**: ``` memory_search(query: "{skill-relevant-query}", associative:
tools
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: task-analyzer allowed-tools: - Bash - Read - Write - Edit - Glob - Grep - Agent - AskUserQuestion - WebSearch description: > Autonomously analyzes and executes tasks with a structured plan. Triggers on "분석해", "작업 계획", "이거 해줘", "자동으로 처리해", "계획 세워", "workflow 만들어", "analyze", "task plan", "do this", "handle automatically", "make a plan", "create a workflow",
development
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly. Run: node scripts/gen-skill-docs.mjs --> --- name: ship description: > Automated release workflow with comprehensive quality gates. Triggers on "배포", "릴리스", "ship it", "PR 만들어", "release", "deploy", "create PR", "push this", "ship". Non-interactive: user says /ship, next thing they see is the PR URL. Delegates commit organization to OMC git-master, review to code-reviewer, verification to verifier. Sends PR notification vi