agent-environment-retr…
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use…
Use when the user asks to sanitize memory for sharing, redact PII, or scan memory for credentials. Not for auditing memory: use memory-clean.
Claude Code
$ npx -y skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize --agent claude-code
Codex
$ npx skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize -a codex -y
Cursor
$ npx skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize -a cursor -y
Gemini CLI
$ npx skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize -a gemini-cli -y
GitHub Copilot
$ npx skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize -a github-copilot -y
OpenCode
$ npx skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize -a opencode -y
Windsurf
$ npx skills add OutlineDriven/odin-claude-plugin --skill memory-sanitize -a windsurf -y
name: memory-sanitize description: 'Use when the user asks to sanitize memory for sharing, redact PII, or scan memory for credentials. Not for auditing memory: use memory-clean.' disable-model-invocation: true
Sanitize a memory directory so it is safe to share externally.
| Field | Bound contract | |---|---| | Trigger | The user asks to sanitize memory for sharing, redact PII, or scan memory for credentials. | | Authority | Reversible local: writes only a fresh `/tmp/memory-sanitized-<timestamp>` directory; rollback is undo. No remote mutation. Never modifies originals. | | Side effect | Create redacted copies of top-level Markdown memory files under a new temporary directory. Rollback is deletion of that directory. | | Done | A temporary directory containing redacted copies, a JSON report of redactions, and a user-facing diff review. If any Tier-1 credential is found in a source file, stop before generating copies and report the affected files. |
1. **Resolve source and validate destination freshness.** Run `../memory-update/scripts/resolve-paths.sh memory_dir` to resolve the source directory; the resolver rejects a missing directory, control bytes, or shell metacharacters, and refuses a memory directory git would track. Confirm the destination is a fresh path under `/tmp` before any write. Done when: the source resolves and the destination is confirmed fresh. 2. **Scan sources for Tier-1 credentials.** Run `scripts/sanitize-memory.py --scan-only <memory-dir>` to check every top-level Markdown file for Tier-1 credential patterns (OpenAI, GitHub, AWS, Slack, bearer-token, ECR). If any Tier-1 credential is found, stop before generating any copies and report the affected files. The user must remediate the originals before a new run. Done when: the scan completes with zero Tier-1 hits, or the run stops with affected files reported. 3. **Generate redacted copies.** Run `scripts/sanitize-memory.py <memory-dir> <destination>` to produce redacted copies of all top-level Markdown files. Tier-2 redactions (home paths, email addresses, session IDs, dates older than 30 days) are applied in the copies. Done when: the JSON report and redacted copies are generated. 4. **Compute and display per-file diffs.** Compare each reported source with its reported destination and show the complete diff. Verify that the report accounts for every processed top-level Markdown file and states redaction counts. Done when: every processed file has a complete diff and the report accounts for all files. 5. **Classify output as safe for human review.** Report the generated directory and ask the user to review the displayed diff before sharing. Leave originals unchanged; the generated directory is a disposable review artifact, not a replacement memory store. Done when: the generated directory is reported and the user is asked to review the diff.
Return the destination path, the sanitizer JSON report, the original-to-copy diff for every processed file, warnings for skipped nested files, and one terminal classification: `sanitized for human review`, `blocked: credential detected`, or `blocked: sanitization or proof incomplete`.
Formerly the ODIN Claude Plugin. The repository URL is unchanged. Outline-Driven Development, nicknamed ODIN, is a highly opinionated code-agent skill library: principles-first engineering, surgical editing, and workflow automation, published as installable
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use…
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not…
Use when a human explicitly asks for a full repository agent-compatibility pass returning a scored report with prioritized fixes.…
Use when setting up a project, auditing agent command permissions, or asking which read-only bash commands and domains to allow.…
Use when asked to build or review a CLI intended for coding agents and return flag-driven, pipeline-safe, idempotent design…
Use when the user asks to make the skills framework work in a new harness, IDE, or CLI. Not for remote, credential, publish,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.