Task Memory Ledger
Use this skill when work is too large to fit reliably in conversation memory and needs a visible, durable record on disk. The pattern is:
- root
memory.md: overall objective, global status, blockers, and next actions
- per-unit
memory.md: status and execution history for each baseline, subtask, repo, or component
- root
memory_index.md: generated map of unit memory files and short summaries
Establish the Ledger
- Identify the target root.
- Prefer an explicit path from the user.
- Otherwise use the current working directory.
- Identify the task units.
- For baseline reproduction, default to
baselines/*.
- For implementation work, use the smallest stable folders that own independent progress, such as packages, services, experiments, or milestones.
- Create missing memory files with:
python3 /home/ubuntu/.codex/skills/task-memory-ledger/scripts/memory_ledger.py init --root <root> --unit-glob '<glob>'
Use --unit-glob multiple times when the task spans several folder groups.
Update During Work
Read the relevant root and unit memory before acting. Update memory after meaningful events, not only at the end:
- command launched or completed
- experiment result observed
- blocker discovered or resolved
- design decision made
- artifact, checkpoint, log, report, or PR created
- next action changes
Append a concise execution record with:
python3 /home/ubuntu/.codex/skills/task-memory-ledger/scripts/memory_ledger.py append \
--memory <path/to/memory.md> \
--title "short event title" \
--status "done|running|blocked|planned" \
--command "command or action, if relevant" \
--result "what happened" \
--next "next concrete action"
Then rebuild the root index:
python3 /home/ubuntu/.codex/skills/task-memory-ledger/scripts/memory_ledger.py sync --root <root> --unit-glob '<glob>'
Memory Content Rules
- Keep memory factual and operational. Prefer exact paths, run IDs, commands, metrics, and artifact locations.
- Separate current status from historical logs.
- Preserve useful history; append records instead of deleting past execution evidence.
- Keep entries concise enough that a future agent can scan them quickly.
- Write in the user's language unless the repo already has a clear documentation language.
- Do not record secrets, API keys, private tokens, or raw sensitive data.
- If a claim depends on a file or artifact, include the path.
Default File Shapes
Root memory.md:
# Memory
Last updated: <UTC timestamp>
## Current Objective
## Overall Status
## Active Units
## Global Blockers
## Next Actions
## Recent Updates
Unit memory.md:
# Memory
Last updated: <UTC timestamp>
## Unit Summary
## Current Status
## Execution Log
## Artifacts / Evidence
## Open Problems
## Next Actions
Generated root memory_index.md:
# Memory Index
Generated: <UTC timestamp>
| Unit | Memory | Status | Summary | Latest update |
| --- | --- | --- | --- | --- |
Relationship to Other Planning Skills
- Use
plan-md-ledger for one approved implementation plan and progress checkoff.
- Use this skill for durable multi-unit state, execution logs, and cross-session handoff.
- When both apply, keep
plan.md as the tactical plan and memory.md files as the operational memory.
1---2name: task-memory-ledger3description: Maintain durable task memory for complex, multi-step, or multi-folder work. Use when Codex needs to track long-running progress across sessions for reproductions, baselines, experiments, implementations, audits, or any complex task with multiple units that each need their own memory.md plus a root-level memory.md and memory_index.md.4---56# Task Memory Ledger78Use this skill when work is too large to fit reliably in conversation memory and needs a visible, durable record on disk. The pattern is:910- root `memory.md`: overall objective, global status, blockers, and next actions11- per-unit `memory.md`: status and execution history for each baseline, subtask, repo, or component12- root `memory_index.md`: generated map of unit memory files and short summaries1314## Establish the Ledger15161. Identify the target root.17 - Prefer an explicit path from the user.18 - Otherwise use the current working directory.192. Identify the task units.20 - For baseline reproduction, default to `baselines/*`.21 - For implementation work, use the smallest stable folders that own independent progress, such as packages, services, experiments, or milestones.223. Create missing memory files with:2324```bash25python3 /home/ubuntu/.codex/skills/task-memory-ledger/scripts/memory_ledger.py init --root <root> --unit-glob '<glob>'26```2728Use `--unit-glob` multiple times when the task spans several folder groups.2930## Update During Work3132Read the relevant root and unit memory before acting. Update memory after meaningful events, not only at the end:3334- command launched or completed35- experiment result observed36- blocker discovered or resolved37- design decision made38- artifact, checkpoint, log, report, or PR created39- next action changes4041Append a concise execution record with:4243```bash44python3 /home/ubuntu/.codex/skills/task-memory-ledger/scripts/memory_ledger.py append \45 --memory <path/to/memory.md> \46 --title "short event title" \47 --status "done|running|blocked|planned" \48 --command "command or action, if relevant" \49 --result "what happened" \50 --next "next concrete action"51```5253Then rebuild the root index:5455```bash56python3 /home/ubuntu/.codex/skills/task-memory-ledger/scripts/memory_ledger.py sync --root <root> --unit-glob '<glob>'57```5859## Memory Content Rules6061- Keep memory factual and operational. Prefer exact paths, run IDs, commands, metrics, and artifact locations.62- Separate current status from historical logs.63- Preserve useful history; append records instead of deleting past execution evidence.64- Keep entries concise enough that a future agent can scan them quickly.65- Write in the user's language unless the repo already has a clear documentation language.66- Do not record secrets, API keys, private tokens, or raw sensitive data.67- If a claim depends on a file or artifact, include the path.6869## Default File Shapes7071Root `memory.md`:7273```md74# Memory7576Last updated: <UTC timestamp>7778## Current Objective79## Overall Status80## Active Units81## Global Blockers82## Next Actions83## Recent Updates84```8586Unit `memory.md`:8788```md89# Memory9091Last updated: <UTC timestamp>9293## Unit Summary94## Current Status95## Execution Log96## Artifacts / Evidence97## Open Problems98## Next Actions99```100101Generated root `memory_index.md`:102103```md104# Memory Index105106Generated: <UTC timestamp>107108| Unit | Memory | Status | Summary | Latest update |109| --- | --- | --- | --- | --- |110```111112## Relationship to Other Planning Skills113114- Use `plan-md-ledger` for one approved implementation plan and progress checkoff.115- Use this skill for durable multi-unit state, execution logs, and cross-session handoff.116- When both apply, keep `plan.md` as the tactical plan and `memory.md` files as the operational memory.