Project context
- summary: one sentence, max 10 words, what was accomplished
- leftOff: what was actively being worked on (specific file/feature/bug)
- nextSteps: ordered array of concrete next steps
affaan-m/ECC
Persistent per-project memory for Claude Code. Auto-loads project context on session start, tracks sessions with git activity, and writes to native memory. Commands run deterministic Node.js scripts — behavior is consistent across model versions.
npx skills add https://github.com/affaan-m/ECC --skill "skills/ck"Source checked Jul 28, 2026·Refresh due Oct 26, 2026
Reorganized from the pinned upstream SKILL.md
You are the Context Keeper assistant. When the user invokes any /ck: command, run the corresponding Node.js script and present its stdout to the user verbatim. Scripts live at: /.claude/skills/ck/commands/ (expand with $HOME).
npx skills add https://github.com/affaan-m/ECC --skill "skills/ck"The pinned source contains enough sections and task detail for a source-grounded deep guide; automated content is still not an independent test.
590 source words · 11 usable sections
Project context
Implementation workflow
Sections are extracted automatically from the pinned SKILL.md and link back to the source.
Review the “Data Layout” section in the pinned source before continuing.
The script outputs JSON with auto-detected info. Present it as a confirmation draft:
The script outputs JSON with auto-detected info. Present it as a confirmation draft:
This is the only command requiring LLM analysis. Analyze the current conversation: - summary: one sentence, max 10 words, what was accomplished - leftOff: what was actively being worked on (specific file/feature/bug) - nextSteps: ordered array of concrete next steps - decisions:…
Display output verbatim. Then ask: "Continue from here? Or has anything changed?" If user reports changes → run /ck:save immediately.
SkillSignal prompt templates
These prompts were written by SkillSignal from the source structure; they are not upstream text.
Source-grounded prompt
Use for a development task while explicitly checking the source sections.
Use ck for this development task: [task]. Inputs and constraints: [details]. Work through these pinned SKILL.md sections: “Data Layout”, “Commands”, “/ck:init — Register a Project”, “/ck:save — Save Session State”, “/ck:resume [name|number] — Full Briefing”. Cite the concrete requirements that shape each step, do not invent capabilities absent from the source, and verify the result against: [acceptance criteria].
Development checklist
The source section “Data Layout” has been checked.
The source section “Commands” has been checked.
The source section “/ck:init — Register a Project” has been checked.
The source section “/ck:save — Save Session State” has been checked.
Static permission evidence
These are source excerpts matched by deterministic rules, not findings of malicious behavior, safety, or actual execution.
SKILL.md · L4
run the corresponding Node.js script and present its stdout to the user verbatim.The documentation asks the agent to run terminal commands or scripts.
SKILL.md · L25
node "$HOME/.claude/skills/ck/commands/init.mjs"The documentation asks the agent to run terminal commands or scripts.
Choose a different workflow
Use it for engineering tasks; the detail page covers purpose, installation, and practical steps.
A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.
Open source detailUse it for engineering tasks; the detail page covers purpose, installation, and practical steps.
A separate implementation from affaan-m/ECC; compare its source, maintenance signals, and permission requirements.
Open source detailAudit skill SKILL.md files for compliance with the agentskills.io specification and house conventions. Checks frontmatter fields (name, description, compatibility, metadata, argument-hint), metadata sub-fields (author, scope, layer, confirms), and layer/suffix consistency. Use when adding new skills, reviewing skill quality, or ensuring all skills follow the spec. Triggers: "audit skills", "check skill spec", "skill compliance", "are my skills up to spec", "/claude-skill-spec-audit".
A separate implementation from jackchuka/skills; compare its source, maintenance signals, and permission requirements.
Open source detailFAQ
You are the Context Keeper assistant. When the user invokes any /ck: command, run the corresponding Node.js script and present its stdout to the user verbatim. Scripts live at: /.claude/skills/ck/commands/ (expand with $HOME).
The source record exposes this install command: npx skills add https://github.com/affaan-m/ECC --skill "skills/ck". Inspect the command and pinned source before running it.
The pinned source record declares support for: claude code.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Quality breakdown
Based on traceable docs and repository signals; stars are not treated as quality.
Compare before choosing
These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.
Use it for engineering tasks; the detail page covers purpose, installation, and practical steps.
Use it for engineering tasks; the detail page covers purpose, installation, and practical steps.
Audit skill SKILL.md files for compliance with the agentskills.io specification and house conventions. Checks frontmatter fields (name, description, compatibility, metadata, argument-hint), metadata sub-fields (author, scope, layer, confirms), and layer/suffix consistency. Use when adding new skills, reviewing skill quality, or ensuring all skills follow the spec. Triggers: "audit skills", "check skill spec", "skill compliance", "are my skills up to spec", "/claude-skill-spec-audit".
Patterns and architectures for autonomous Claude Code loops — from simple sequential pipelines to RFC-driven multi-agent DAG systems.
GAN-inspired Generator-Evaluator agent harness for building high-quality applications autonomously. Based on Anthropic's March 2026 harness design paper.
You are the Context Keeper assistant. When the user invokes any /ck:* command,
run the corresponding Node.js script and present its stdout to the user verbatim.
Scripts live at: ~/.claude/skills/ck/commands/ (expand ~ with $HOME).
~/.claude/ck/
├── projects.json ← path → {name, contextDir, lastUpdated}
└── contexts/<name>/
├── context.json ← SOURCE OF TRUTH (structured JSON, v2)
└── CONTEXT.md ← generated view — do not hand-edit
/ck:init — Register a Projectnode "$HOME/.claude/skills/ck/commands/init.mjs"
The script outputs JSON with auto-detected info. Present it as a confirmation draft:
Here's what I found — confirm or edit anything:
Project: <name>
Description: <description>
Stack: <stack>
Goal: <goal>
Do-nots: <constraints or "None">
Repo: <repo or "none">
Wait for user approval. Apply any edits. Then pipe confirmed JSON to save.mjs --init:
echo '<confirmed-json>' | node "$HOME/.claude/skills/ck/commands/save.mjs" --init
Confirmed JSON schema: {"name":"...","path":"...","description":"...","stack":["..."],"goal":"...","constraints":["..."],"repo":"..." }
/ck:save — Save Session StateThis is the only command requiring LLM analysis. Analyze the current conversation:
summary: one sentence, max 10 words, what was accomplishedleftOff: what was actively being worked on (specific file/feature/bug)nextSteps: ordered array of concrete next stepsdecisions: array of {what, why} for decisions made this sessionblockers: array of current blockers (empty array if none)goal: updated goal string only if it changed this session, else omitShow a draft summary to the user: "Session: '<summary>' — save this? (yes / edit)"
Wait for confirmation. Then pipe to save.mjs:
echo '<json>' | node "$HOME/.claude/skills/ck/commands/save.mjs"
JSON schema (exact): {"summary":"...","leftOff":"...","nextSteps":["..."],"decisions":[{"what":"...","why":"..."}],"blockers":["..."]}
Display the script's stdout confirmation verbatim.
/ck:resume [name|number] — Full Briefingnode "$HOME/.claude/skills/ck/commands/resume.mjs" [arg]
Display output verbatim. Then ask: "Continue from here? Or has anything changed?"
If user reports changes → run /ck:save immediately.
/ck:info [name|number] — Quick Snapshotnode "$HOME/.claude/skills/ck/commands/info.mjs" [arg]
Display output verbatim. No follow-up question.
/ck:list — Portfolio Viewnode "$HOME/.claude/skills/ck/commands/list.mjs"
Display output verbatim. If user replies with a number or name → run /ck:resume.
/ck:forget [name|number] — Remove a ProjectFirst resolve the project name (run /ck:list if needed).
Ask: "This will permanently delete context for '<name>'. Are you sure? (yes/no)"
If yes:
node "$HOME/.claude/skills/ck/commands/forget.mjs" [name]
Display confirmation verbatim.
/ck:migrate — Convert v1 Data to v2node "$HOME/.claude/skills/ck/commands/migrate.mjs"
For a dry run first:
node "$HOME/.claude/skills/ck/commands/migrate.mjs" --dry-run
Display output verbatim. Migrates all v1 CONTEXT.md + meta.json files to v2 context.json.
Originals are backed up as meta.json.v1-backup — nothing is deleted.
The hook at ~/.claude/skills/ck/hooks/session-start.mjs must be registered in
~/.claude/settings.json to auto-load project context on session start:
{
"hooks": {
"SessionStart": [
{ "hooks": [{ "type": "command", "command": "node \"~/.claude/skills/ck/hooks/session-start.mjs\"" }] }
]
}
}
The hook injects ~100 tokens per session (compact 5-line summary). It also detects unsaved sessions, git activity since last save, and goal mismatches vs CLAUDE.md.
~ as $HOME in Bash calls./CK:SAVE, /ck:save, /Ck:Save all work.context.json or CONTEXT.md directly — always use the scripts.projects.json is malformed, tell the user and offer to reset it to {}.