Chain System
Overview
Capture durable, structured summaries of work so a later session can resume without re-discovery. Provide three subcommands under one skill: link, load, and list.
Usage
Invoke with a subcommand:
$chain-system link <chain-name>
$chain-system load <chain-name>
$chain-system list
If the chain name is missing for link or load, ask the user for it.
Chain Root
Default to .claude/chains to remain compatible with the existing Claude chain-system plugin. If the user explicitly wants Codex-only storage, switch to .codex/chains and confirm.
Subcommands
link
Create a new chain link summarizing the current work.
Steps:
- Build a concise but complete summary using this structure:
- Primary Request and Intent
- Key Technical Concepts
- Work Completed
- Decisions and Rationale
- Files and Code Changes (Created/Modified/Read)
- Unresolved Issues and Blockers (only if any)
- Pending Tasks
- Current Work
- Next Step
- Create a slug (kebab-case) and a human readable title.
- Create the directory:
mkdir -p .claude/chains/<chain-name>. - Generate timestamp in local time:
date '+%Y-%m-%d-%H%M'. - Write the summary to:
.claude/chains/<chain-name>/<timestamp>-<slug>.md - Write only the summary (no analysis), then tell the user the file path and how to load it.
Use the same file format each time so load can extract summary and next step reliably.
load
Load the most recent chain link for a named chain.
Steps:
- Find the most recent link:
ls .claude/chains/<chain-name>/*.md 2>/dev/null | sort -r | head -1
- If none, tell the user the chain does not exist and suggest
list. - Read the file fully and internalize it as working context.
- List the 5 most recent links:
ls .claude/chains/<chain-name>/*.md 2>/dev/null | sort -r | head -5
- Detect insufficiency and ask questions if needed:
- Missing context referenced by the link
- Ambiguous "Next Step"
- Stale link (>7 days old)
- Show the user: chain name, most recent link filename, short summary, next step, and the 5 most recent links.
- If any insufficiency flags exist, stop and clarify before proceeding.
list
List all chains with counts and most recent link.
Steps:
- Check for chains:
ls -d .claude/chains/*/ 2>/dev/null
- For each chain, show:
- chain name (directory)
- link count (
ls .claude/chains/<chain-name>/*.md 2>/dev/null | wc -l) - most recent link filename (
ls .claude/chains/<chain-name>/*.md 2>/dev/null | sort -r | head -1)
- If no chains exist, suggest
linkto start one.