agent-environment-retr…
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
Use when a user asks to audit what recall fed agents. Not for source or remote-system changes.
$ npx -y skills add OutlineDriven/odin-claude-plugin --skill history-health --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/history-healthContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when a user asks to audit what recall fed agents. Not for source or remote-system changes.
name: history-health description: 'Use when a user asks to audit what recall fed agents. Not for source or remote-system changes.' disable-model-invocation: true
| Field | Bound contract | |---|---| | Trigger | User explicitly audits what recall fed agents. | | Authority | Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. | | Side effect | None. | | Done | A bounded event table reports kind, time, session count, bytes, and empty-result flag, or a null object when absent; model-facing digest replay is refused. |
1. Verify `deja` is in PATH. Run `command -v deja`. If absent, return `{ "error": "deja CLI not found in PATH", "hint": "install or rebuild deja" }`. Do not conflate a missing CLI with an empty log. Done when: the CLI is confirmed present or the error object is returned.
2. Run `deja log --json --limit 50` with the harness filter if supplied: `deja log --json --harness <name> --limit 50`. When the user supplies a custom limit, use that value instead of 50. Done when: the command is executed.
3. Capture stdout and exit code. Done when: stdout and exit code are captured.
4. If exit code is non-zero, return `{ "error": "deja log failed", "hint": "install or rebuild deja" }`. Done when: the error is returned.
5. If stdout is the exact string `null\n`, return `null`. Done when: null is returned.
6. Parse stdout as JSON. If parse fails, return `{ "error": "malformed JSON from deja log" }`. Done when: the JSON is parsed or the error is returned.
7. The parsed value is a JSON array of event objects or `null`. Done when: the value type is determined.
8. If the parsed value is `null`, return `null`. Done when: null is returned.
9. If the parsed value is an empty array, return `null`. Done when: null is returned.
10. For each event object, extract the following fields into an audit row:
11. Build an array of row objects with keys `time`, `kind`, `bytes`, `sessions`, `empty`.
12. Sort the array by `time` descending (newest first) before returning. Done when: rows are sorted by time descending.
13. Digest text fields (`digest`, `policy`, `into`, `terms`, `ids`) are never read, never included in output, and never surfaced to the model. Done when: digest text exclusion is confirmed.
| Failure class | Condition | Result | |---|---|---| | `tool-missing` | `deja` not in PATH | `{ "error": "deja CLI not found in PATH", "hint": "install or rebuild deja" }` | | `command-failed` | `deja log --json` exits non-zero | `{ "error": "deja log failed" }` | | `malformed-response` | stdout does not parse as JSON | `{ "error": "malformed JSON from deja log" }` |
Partial-result rule: if `deja log` produces a partial list (due to a cap or clock skew), return exactly what was returned. Do not extrapolate, impute, or estimate missing events. Non-mutation rule: no file, directory, index, or state is written or altered.
Newest-first event rows sorted by `time` descending, with keys `time`, `kind`, `bytes`, `sessions`, and `empty`; return `null` when the log is absent or empty; return an explicit error object when `deja` is unavailable. Never include digest text, policy, terms, session IDs, or injection targets.
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
Repo: OutlineDriven/odin-claude-plugin
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential,…
Use when a human explicitly asks for a full repository agent-compatibility pass returning a scored report with prioritized fixes. Not for tasks that require…
Use when setting up a project, auditing agent command permissions, or asking which read-only bash commands and domains to allow. Not for remote, credential,…
Use when asked to build or review a CLI intended for coding agents and return flag-driven, pipeline-safe, idempotent design advice. Not for running or…
Use when the user asks to make the skills framework work in a new harness, IDE, or CLI. Not for remote, credential, publish, deploy, or irreversible changes.