for Claude Code + Codex

You ran /compact 143 times and never automated it.

One month, one real setup. No session could tell you — each one was the first time. gradient reads your history from outside your sessions, finds what recurs and what has gone stale, and proposes the change. It makes no model call and no network call, and writes nothing you have not approved.

measured over 2,800+ transcripts9,191 chars of skill descriptions, every session32 skills installed, several never invoked

what it finds

Seven kinds of drift, ranked the way it ranks them.

Every finding cites the line, the count, or the missing file it came from. You read the evidence before the proposal, and nothing is applied until you say so.

driftYour two assistants disagree. Claude Code reads CLAUDE.md and never AGENTS.md, so a repository with both kinds of user is usually one import line away from serving both.
staleAn instruction names a path, script, or make target the repository no longer has. It was true when it was written; the code moved out from under it.
dead-letterYou keep typing an instruction your setup already contains. You pay its context cost and type it anyway — which means it is not holding.
skill-healthA skill that will not load, will not be selected, or spends context in every session for something nothing has ever invoked.
workflowA habit counted from your own tool events, often enough to be worth a skill, a rule, or a hook.
practiceConformance to published guidance — file length, description caps, path-scoped rules — checked against what the products document today.
memoryRead-only observations about auto memory. gradient never writes to it and never deletes from it.

install

Each product’s own installer.

No package manager, no PATH entry, nothing global. Both assistants get the same three skills and the same runner, byte for byte. The only requirement is Node.

Claude Code

in a session, or in your terminal

/plugin marketplace add elliot-ylambda/gradient
/plugin install gradient@gradient

Codex

its built-in skill installer

$skill-installer install gradient-optimize,
  gradient-report and gradient-features
  from elliot-ylambda/gradient

Then ask your assistant to optimize your setup. Installing runs nothing on its own — every background feature stays off until you turn it on, and turns back off with the same verb.

Later, to update: claude plugin update gradient@gradient, then restart. Codex’s installer will not write over a skill directory that already exists, so remove the three there and install them again.

boundaries

What it will not do.

  • no networkThe CLI never makes a network call and never calls a model. It computes only what is checkable, which is what lets it run in a hook, on a schedule, and with no API key.
  • no surprise writesEvery write to a file gradient does not own is snapshotted first and reversible with --undo. Each edit carries the exact text it expects to find and is refused if the file has moved on.
  • never your memorygradient never writes to or deletes from Claude Code's auto-memory directory, and never deletes a file it did not generate.
  • mined text is suspectText taken from your transcripts becomes instructions an agent obeys, so every proposed line is redacted, length-capped, stripped of URLs and code, and screened against a shell and credential lexicon.
  • opt-in, per projectInstalling runs nothing. Continuity and autopilot are the only features that send session content to a model, both off until you turn them on for a project.