본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

request-progress

사용자의 첫 요청을 바탕으로 관련 대화를 하나의 전체 요청으로 묶고, 기억에 기록된 근거로 진행 상황과 결과를 정리합니다. 요청을 목표와 연결하고 작업 과정을 시간순으로 기록해 My Work에 진행률, 성과, 작업 선호를 보여 줍니다.

원문원문 설명 보기

Group recent conversations into overall requests, review each one's progress from memory, sort each into one of the owner's focus areas, and write the build story, so My Work shows progress meters, shipping velocity and learned working preferences. Use when asked to "group requests", "group by overall request", "review request progress", "refresh progress", "build story", "shipping velocity", or "how do I like to work with agents".

thedotmack/claude-mem스타 104,504(GitHub 104,504 + cccskills 0)

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • 전체 요청별로 대화를 묶을 때
  • 요청의 진행 상황과 결과를 확인할 때
  • 요청을 목표와 연결할 때
  • 에이전트와의 작업 선호를 돌아볼 때

한국어 소개

할 수 있는 일

이 스킬은 대화의 첫 실질 요청과 관련 작업의 근거를 바탕으로 같은 전체 요청에 속하는 대화를 묶습니다. 기억을 검색해 요청별 상태와 진행 상황, 결과, 주요 단계를 기록합니다. 근거가 있는 경우에는 출시된 작업의 사용 현황과 가치, 회귀 문제도 정리합니다. 각 요청이 어떤 목표를 진전시키는지 연결하고, 작업이 진행된 과정과 출시까지 걸린 시간, 에이전트와 일하는 방식에 관한 선호를 시간순 작업 이야기로 작성합니다. My Work에는 묶인 요청과 진행 상황, 관련 기록이 표시됩니다.

이럴 때 유용합니다

하나의 일이 여러 대화나 작업 트리, 날짜에 걸쳐 이어질 때 요청이 어디까지 진행되었는지, 무엇이 출시되었는지 확인할 수 있습니다. 각 요청이 어떤 목표를 돕는지 살펴보거나 기록된 협업 방식을 돌아볼 때도 활용할 수 있습니다.

사용 예시

  • “최근 대화를 전체 요청별로 묶고 진행 상황을 검토해 주세요.”
  • “요청의 진행 상황과 결과를 갱신하고 목표에 연결해 주세요.”
  • “에이전트와 일하는 방식에 대한 선호를 작업 이야기로 정리해 주세요.”

주의 사항

명령줄 도구는 ~/.claude-mem/claude-mem.db를 읽기 전용으로 열고 ~/.claude-mem/work-view/에 씁니다. 검토 결과는 요청에 기록된 상태 자체를 바꾸지 않습니다. 대화는 하나의 프로젝트 루트 안에서만 묶을 수 있으며, 표현이 비슷하거나 같은 저장소를 쓴다는 사실만으로는 병합 근거가 되지 않습니다. 진행 상황과 결과는 확인 가능한 기억 및 기록에 근거해 정리합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호데이터베이스는 읽기 전용이고 쓰기 위치가 한정되며 요청 상태는 바뀌지 않습니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족bun과 claude-mem 데이터 경로가 필요하지만 제공된 자료에는 설치 절차가 없습니다.

점수에는 넣지 않았습니다. 2026년 10월 24일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(2)

  • SKILL.md17.6 KB
  • scripts/request-groups.mjs193.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Request Progress

My Work shows one card per human request, built from the human's own prompts: a conversation's first substantive ask owns its follow-ups, and agent work, activity and progress sit beneath it, even before any work is recorded. People rarely finish a goal in one conversation, though. They /clear, switch worktrees, hand off to Codex, come back the next day. This skill checks each new conversation's opening ask against the open requests in its project to join those conversations into one overall request, then reviews each request from memory and writes the build story.

${CLAUDE_SKILL_DIR} is the folder holding this file. Every step runs one CLI:

CLI="bun ${CLAUDE_SKILL_DIR}/scripts/request-groups.mjs"

It opens ~/.claude-mem/claude-mem.db read-only and writes only to ~/.claude-mem/work-view/, except record-focus, which saves through the running claude-mem worker because focus areas sync between computers. My Work picks up changes within a second: grouped conversations show as one card that starts at the earliest ask, with a progress meter; the request page shows the build story, how released work landed (usage, value, regressions, why each change was made) and its work product; each card shows the focus area it sits in; the build story's first paragraph is My Work's recap, and the story sheet shows shipping velocity, the narrative and preferences. A review never changes a request's recorded status.

Default window: 14 days. Use the window the user asks for.

1. Group conversations into overall requests

A human request is the top level of My Work: every conversation's opening ask either starts a request or continues one. Grouping decides once per conversation, from its opening substantive ask, and decisions already in the ledger are kept. Requests stay inside one project root (the project key before its first /, so worktrees of one repo share requests): apply refuses a group whose conversations come from different roots unless the decision names the request's projectRoot, in which case every conversation it lists joins that request and the request records that root.

Before any batch reaches you, the worker's judge files each new conversation on its own ($CLI judge --days 14 shows what it would do; --apply writes it). A code link (the conversation wrote to the same work-state list, or recorded the same request_id, as one open request) joins at once. On a CMEM Pro or OpenRouter install, Jev then checks the opening ask against the root's open requests: a check score of 0.8 or more joins the request (a judge link whose evidence names the judge and its score, and the request records its root), 0.5 to 0.8 makes the conversation its own request with a suggestion the owner accepts or declines on its card in My Work ("Looks like part of …"), and below 0.5 it starts its own request. Only conversations the judge could not place (no code link and no Jev, or a refused or failed call) come to grouping-input.

$CLI grouping-input --days 14

It returns one batch: up to 20 conversations the ledger has not decided yet, earliest first, all from one project root, each with its openingAsk and work lists; that root's openRequests (title, anchor conversation, anchorAsk, recentAsks; shipped and abandoned requests are left out); and proposedLinks, conversations code already linked because they wrote to the same work-state list or recorded the same request_id (keep these unless the list is obviously a generic bucket). remaining counts the undecided conversations left for later batches. Apply each batch, then run grouping-input again until conversations is empty.

Decide every conversation in the batch:

  • continue: it serves one of the openRequests (or another conversation in the same batch).
  • new: it starts its own overall request (a group of one).
  • ignore: it is not a human goal (an automated naming prompt, a bot kickoff, a pasted transcript with no ask).

Evidence for continue, strongest first:

  1. The ask refers back to earlier work: "this is excellent work, can you now …", "continue the X", a PR or branch name, a pasted handoff.
  2. The same named artifact (feature, page, skill, release, bug) appears in both asks within a few days.
  3. Memory confirms it: mem_search for the artifact finds observations from both conversations describing the same change.

Similar wording alone is not evidence, and neither is sharing a repo. When unsure, make it new: a wrongly merged card hides work, a split card only shows up twice. To continue an open request, list its anchor first, then the new conversations, keep its title, and add a link with the evidence. List only conversations from the batch (and an open request's anchor first).

Apply the decisions:

$CLI apply - <<'JSON'
{
  "groups": [
    {
      "title": "Live My Work request cards",
      "conversations": ["[\"conversation\",\"claude\",\"<earliest>\"]", "[\"conversation\",\"codex\",\"<later>\"]"],
      "links": [{ "kind": "agent-judgment", "conversations": ["…", "…"], "evidence": "Oct 16 ask: \"this is excellent work, can you now add request cards\" continues the Oct 15 build" }]
    },
    { "title": "Pricing page copy", "conversations": ["[\"conversation\",\"claude\",\"<id>\"]"] }
  ],
  "ignored": [{ "conversation": "[\"conversation\",\"codex\",\"<id>\"]", "reason": "Automated workspace naming prompt" }]
}
JSON

The command fails fast; fix the input and rerun. Its rules:

  • List conversations earliest first. The first one anchors the group id, so reviews survive later merges.
  • A group of more than one conversation needs at least one link (shared-work-list, shared-request-id or agent-judgment) with evidence text. Quote the human's words where you can.
  • title is the goal in plain words (≤120 chars), not the process.
  • Every conversation in a group comes from one project root, unless the group gives an explicit projectRoot (a root as grouping-input reports it), which lets conversations from other roots join and is recorded on the request.

Then run $CLI pending --days 14 --limit 48. ungroupedConversations should be 0; groups lists the overall requests due for a review (new, or active since their last review).

2. Review each due request from memory

Split the due groups into batches of about 8 and give each batch to a subagent, in parallel, with this task (fill in the CLI path and groups):

Review the progress of these overall requests from claude-mem memory. For EACH groupId:

  1. Run <CLI> show <groupId> for its conversations, every human ask in full (with prompt ids and times), each conversation's own observations (id, time, type, title), work lists, dates, any previous review and a reviewBasis. When mode is "amend", the group has the same conversations as its previousReview, and asks holds only the asks after amendSince: start from previousReview, search memory only for what happened after amendSince, and change only what that new evidence moves (state, percent, dates, summary, new milestones, outcome, preferences). Keep the rest of the previous review as it is. When mode is "full" (no previous review, or the conversations changed), review from scratch.
  2. Search memory (mem_search, timeline, get_observations) for the outcome: merged PRs, releases, deploys, work-state items marked done, the owner confirming or rejecting the result, or work that stopped. Search for the named artifacts in the asks, not generic words. Fetch the observations you rely on.
  3. Decide from the evidence only:
    • state: shipped (merged and released or deployed, or the owner confirmed it done) | in-progress | stalled (no activity for 3+ days and not finished) | abandoned (explicitly dropped or replaced) | unknown (memory has too little).
    • percent: 0 not started · 10–30 exploring or planning · 40–70 building · 80–95 in review, PR open or awaiting release · 100 shipped only.
    • startedAt (earliest ask), shippedAt (only when shipped), lastActivityAt, as ISO dates.
    • summary (≤280 chars, what it delivers for the person), narrative (≤1200 chars: how the build went, including turns, rework and lessons), milestones (≤12, dated, each text ≤200 chars, each citing observation ids or PR numbers in evidence).
    • outcome, for any request that shipped or released something (omit it otherwise). Research it, then answer from evidence only; "no-evidence" and "unclear" are honest answers:
      • landed: {text, at, evidence} where and how it shipped: merged PR, release version, deploy, published page.
      • usage: {level: in-use | some-use | no-evidence | unknown, text, evidence}. Look for the owner or users coming back to it in later asks, observations of it running, analytics or logs the agents checked, issues filed against it.
      • value: {level: high | medium | low | unclear, text, evidence} for us: did later work build on it, did the owner praise, rely on or replace it, did it remove a cost or a chore.
      • regressions (≤10): {text, at, fixedBy, evidence} for anything it broke: later fix PRs or commits that name it, reverts, bug reports, the owner's corrections. fixedBy is null while unfixed.
      • changes (≤12): {what, why, at, evidence} for each meaningful change, with the WHY from the owner's own ask (quote it), the commit or PR message, or the incident that caused it. Never write a why you cannot cite.
    • preferences (≤10): how the owner likes to work with agents, taken ONLY from the owner's own asks shown by show. Each has preference (≤200 chars, the statement), quote (verbatim, ≤300 chars), kind and at. quote is verbatim; kind is directive | correction | praise | frustration. Skip pasted agent text, secrets, keys and tokens.
  4. Record it: <CLI> record-progress - <<'JSON' {...} JSON with groupId, state, percent, the dates, summary, narrative, milestones, outcome, preferences, evidence and reviewBasis copied verbatim from that group's show output (it marks which conversations and activity you reviewed). Pass the JSON through the heredoc; never write review files to disk, because other reviewers run at the same time. Fix and retry if it rejects. A subtask finishing does not mean the request shipped.

Return the groups you recorded and any you could not, with the reason.

3. Sort each request into a focus area

A focus area is a part of the owner's work you could ask for things inside of. Every request sits in exactly one area, or in Other when it fits none. Run this yourself after the reviews. Areas are only ever proposed: the owner keeps, renames, merges or dismisses them.

  1. Run $CLI focus-input. It returns:

    • areas: the owner's kept and suggested focus areas (focusAreaId, name, goal, about).
    • dismissed: areas the owner dismissed. They take no requests and are never proposed again, under any name.
    • requests: one batch of up to 20 requests to place now (new, changed since they were placed, or whose area is gone). Each has its anchor, title, first ask, progress state and summary, repo, how many conversations it holds and each conversation's opening ask (conversationAsks). A request may also carry judgeSuggestion (focusAreaId, confidence, evidence): Jev's pick among the kept areas, which is only a suggestion; you decide the placement from the request and the areas.
    • remaining: requests left for later batches.

    If requests is empty, go to step 3. A request the owner moved stays where they put it and is never listed.

  2. Place every listed request exactly once, by the exact focusAreaId of the area you could ask for it inside of (read the area's goal and about), or "other" when no area fits. Sharing a repo is not evidence. Never invent an id. Each placement needs evidence (≤300 chars) quoting the request's or the area's words. If a request's conversations hold several separate asks (read conversationAsks), it is really an area: you may also promote it with a promote proposal holding that one request. Record the batch, then run focus-input again until requests is empty:

$CLI record-focus - <<'JSON'
{"placements": [{"anchor": "<anchor>", "focusAreaId": "fa_…", "evidence": "…"}, {"anchor": "<anchor>", "focusAreaId": "other", "evidence": "…"}],
 "proposals": [{"kind": "promote", "name": "…", "goal": "…", "about": "…", "anchors": ["<anchor>"], "sameAs": null, "evidence": "…"}]}
JSON
  1. Run $CLI focus-input --other. It lists the requests the router put in Other (other, not the ones the owner put there) and due. If due is false, skip this step: these requests were already looked at. Otherwise propose areas from them, placing nothing:

    • new: ask of each Other request whether it is one step of a larger effort rather than a complete ask that stands on its own. Two or more requests that are steps of the same larger effort become one proposed area.
    • promote: one request whose conversations hold several separate asks.

    Propose nothing when nothing qualifies, and still record the empty answer so the pass is not repeated:

$CLI record-focus --other - <<'JSON'
{"placements": [], "proposals": [{"kind": "new", "name": "…", "goal": "…", "about": "…", "anchors": ["<anchor>", "<anchor>"], "sameAs": null, "evidence": "…"}]}
JSON

Every proposal has kind, name (a short label, ≤80 chars, that must never reuse a nav label as whole words, in any case: My Focus, My Work, My Rules, Other, Suggested, Past focus, Monitor, Steer ("Work viewer" is fine, "Other tools" is not). claude-mem refuses such a name and the save fails), goal (one sentence, ≤300 chars: what the area is for), about (≤300 chars: what belongs in it), anchors (the requests it holds), evidence (≤300 chars, quoting the asks) and sameAs: the id of the area in areas or dismissed that this proposal already is, else null. A proposal that is an area in areas adds no area: its requests are placed in that area. One that is a dismissed area is refused for good. record-focus validates and saves through the claude-mem worker, so fix and retry if it rejects.

My Work shows each request's area, Other, or "Sorting…" until this step places it. Proposed areas wait under Suggested for the owner.

4. Write the build story

Run $CLI story-input. Without a previous story it returns every review; with one (update: true) it returns only the reviews whose facts (state, percent, dates, milestones, preferences or outcome) changed since that story was written. If it lists no reviews, skip this step: the story still holds. Aim for about narrativeTarget characters. narrativeLimit is a hard cap: a longer story is refused. When updating, previousParts lists the previous story's recap and chapters, each with its length in characters and words (chars, words), a budget counted for you (budgetChars, budgetWords) and how far it is over that budget (overBudgetChars).

  • When condenseChars is 0, keep the previous story's chapters and wording where they still hold, change only what the listed reviews move, and add at most roomChars characters. If the new facts need more room, condense the parts furthest over their budget.
  • When condenseChars is above 0, the previous story is past the target. Rewrite every part whose overBudgetChars is above 0 in at most its budgetWords words, the recap and the chapters the listed reviews change included. Keep each chapter's dates, ids and outcomes, fit the listed reviews' new facts into those budgets, and merge finished chapters into one where that reads better. Count the words of each rewritten part before you answer.
  • When mergeOldestChapters is above 0, the story has more chapters than the budgets fit: merge that many of the oldest chapters into one chapter within its budget first, keeping their dates, ids and outcomes, then follow the rules above.
  • If a refusal names parts with their budgets, rewrite each of those parts within its budget, and condense any other part it says is over budget too. If it names the oldest chapters to merge, merge them into one first.

Write:

  • narrative (markdown, about 8000 chars and never over 12000, blocks separated by blank lines, ## headings for chapters): a chronological build story. Lead with a short paragraph on shipping velocity (My Work shows it as the recap), then what was set out, what shipped and when, how long ask-to-ship took, where work stalled or was reworked, and what that teaches. Use only the dated facts in the reviews. Refer to the person as "the owner" or "they"; never guess pronouns.
  • preferences (≤30): merge the per-request preferences into distinct, actionable statements of how the owner likes to work with agents. supportCount is how many requests showed it; keep up to 3 verbatim quotes with dates. Drop one-off remarks.
$CLI record-story - <<'JSON'
{"narrative": "...", "preferences": [{"preference": "...", "kind": "directive", "supportCount": 3, "quotes": [{"quote": "...", "at": "ISO"}]}]}
JSON

Finish by telling the user how many requests were reviewed, how many were placed in focus areas and which areas were proposed, the shipping velocity in two sentences, and the five strongest preferences.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Agent Cost Report

무료요약 있음

에이전트의 작업 기록과 토큰 수로 완료한 성과별 비용과 재작업 비용을 정리합니다. 추정액과 실측액을 구분하고 근거를 담은 HTML, JSON, CSV 보고서를 만듭니다.

  • 주간 지출과 성과를 확인할 때
  • 완료한 성과별 비용을 비교할 때
  • 반복 작업과 재작업 비용을 조사할 때
thedotmack/claude-mem10.5만2026년 10월 29일 업데이트

babysit

무료요약 있음

풀 리퀘스트의 리뷰와 자동 검사를 지속적으로 확인합니다. 지적 사항을 검증하고 수정, 테스트, 반영을 반복하여 미해결 사항 없이 병합 가능한 상태까지 확인합니다.

  • PR 자동 검사 모니터링
  • 리뷰 지적 사항 검증 및 수정
  • 병합 전 미해결 사항 확인
thedotmack/claude-mem10.5만2026년 10월 29일 업데이트

backup-setup

무료요약 있음

claude-mem 데이터베이스의 정기 로컬 스냅샷을 설정하고, 최근 저장 시각과 스냅샷 수, 오류를 확인하거나 저장된 파일에서 복원합니다.

  • 데이터베이스 스냅샷 일정 설정
  • 최근 저장 시각과 오류 확인
  • 목록의 스냅샷에서 데이터베이스 복원
thedotmack/claude-mem10.5만2026년 10월 29일 업데이트

build-and-release

무료요약 있음

코딩 작업을 하위 에이전트에 맡겨 build 실행, 준비된 PR 병합, 갱신된 main에서의 release를 순서대로 자동화합니다.

  • 구현부터 릴리스까지 맡기고 싶을 때
  • PR 병합과 배포 작업을 연결할 때
  • build와 release를 연속 실행할 때
thedotmack/claude-mem10.5만2026년 10월 29일 업데이트

ccs-align

무료요약 있음

로컬 claude-mem의 작동 상태와 중요 기록 캐시를 점검합니다. 기록을 제외하거나 복원하고 계층 간 규칙 충돌을 보고하는 정기 운영용 스킬입니다.

  • 작동 상태와 중요 기록 캐시를 갱신할 때
  • 원본 이력을 보존하며 기록을 제외할 때
  • 제외한 기록을 복원할 때
thedotmack/claude-mem10.5만2026년 10월 29일 업데이트

childhood

무료요약 있음

릴리스 후 공개 패키지, 운영 서비스와 설치된 플러그인을 확인합니다. 늦게 도착한 CI 결과와 버그 보고도 추적하며 허용된 범위에서 수정을 진행합니다.

  • 공개된 패키지 내용 확인
  • 운영 환경의 변경 경로 검증
  • 설치된 플러그인 버전 확인
thedotmack/claude-mem10.5만2026년 10월 29일 업데이트

thedotmack의 스킬 모두 보기

이 스킬의 문제 신고