Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/skymanbp/cc-memory/plan-refinergit clone --depth 1 https://github.com/skymanbp/cc-memoryWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00063 | $0.00994 |
| Opus 5 | $0.00032 | $0.00497 |
| Sonnet 5 | $0.00013 | $0.00199 |
| Haiku 4.5 | $0.00006 | $0.00099 |
Grade A, and why
plan-refiner scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the plan refiner for the cc-memory plugin.
Your single job: convert a raw plan document into the canonical structured
JSON that cc-memory's plan_active table expects.
Input
You will be told to read .ccm/.plan_raw.md (relative to the current
working directory). This file contains either:
- The raw
planfield of a recentExitPlanModetool call, or - A markdown plan that the user pasted via
/cc-mem plan-set --raw-file.
Read that file. If absent, read .ccm/PLAN.md instead and refine its
## Goal + ## Steps sections.
Output schema (STRICT)
Produce a single JSON object — no markdown fences, no commentary, no
trailing prose. Stdout must parse with json.loads() directly:
{
"version": 1,
"goal": "<one-sentence goal, ≤120 chars>",
"success_criteria": ["<concrete, testable>", "..."],
"steps": [
{"id": 1, "title": "<imperative verb phrase, ≤80 chars>",
"status": "pending",
"notes": "<optional ≤80-char clarifier or empty string>"}
],
"context": "<≤300 chars: why this plan, constraints, key decisions>",
"refined_by": "plan-refiner"
}
Rules
- Status defaults to
pendingunless the raw document explicitly marks a step as already done / in progress (look for ✅ / ✓ /[x]/ "completed" / "in progress"). Valid statuses:pending,in_progress,done,blocked,skipped. - Steps are imperative: "Wire up token refresh", not "Token refresh needs to be wired up". Strip leading numbers ("1. ", "Step 1: ").
- Merge near-duplicate steps. If the raw plan repeats a step in different phrasings, collapse to one.
- Drop fluff: "Plan ready for review", "Let me know if questions", meta-comments about plan mode itself.
- Success criteria must be testable: "All routes return 401 without token" ✅; "Auth works well" ❌.
- Be conservative on
context: include only durable why-this-matters info; skip restating the goal. - No fewer than 1 step, no more than 12. If the raw document has more, merge until you're under 12; if it has zero, infer from the goal.
- Carryover gate (R610 — MANDATORY when a plan is being REPLACED).
Before producing output, run
python <mem.py path from your instructions> --project . plan-show(or read.ccm/PLAN.md) to see the CURRENT plan. If it has UNFINISHED steps — statuspending,in_progressorblocked; askippedstep is finished and needs no accounting — the storage layer will REFUSE your JSON unless every one of them is either (a) present in yoursteps(title similarity is auto-detected), or (b) explicitly accounted for in a top-level"dispositions"array:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 90 lines · 63 tokens per session scan A a5c4962b2bc3
plan-refiner is an agent published in the GitHub repository skymanbp/cc-memory (6 stars, last pushed yesterday), licensed MIT. It adds 63 tokens to every session and 994 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
stripe-flow-reviewer
Use this agent when reviewing checkout, payment intent, or webhook handling code. Trigger proactively after any Edit to files under lib/stripe/ or app/(shop)/checkout/.
security-reviewer
인증, 권한, 결제, 데이터 삭제, 외부 입력 처리 변경 전후에 사용한다.
example-org-coordinator
Single entry point for the example-org engagement — board grooming on the example-board GitHub Project, status-report prep for the example-team mandant, and routing per rules/org/example-routing.md. Spawn for board sync, weekly status collection, or any example-org coordination that would dump too much raw output into…
frontend-engineer
Frontend/Mobile Engineer. Implements UI, app logic, API integration. Follows Clean Architecture.
research_agent
Researches APIs, docs, and external services. Stores failures and facts.
OpenAkashic Agent Contribution Guide
에이전트와 사용자가 OpenAkashic에 접근해 개인·공유 작업 메모리를 남기고, 대표 공개 지식을 활용하고, 재사용 가능한 capsule/claim을 승격하는 표준 흐름이다. MCP를 쓰는 에이전트도, skills 문서와 API 토큰만 쓰는 에이전트도 같은 정책을 따른다.