Claude Transcripts docs GitHub
Work in progressUnder active development — not tested as ready for use. Breaking changes land without notice, stored data may need to be discarded between revisions, and there is no auth or security model.

29. The recall policy is config-driven and injected at session start

Date: 2026-08-28

Status

Accepted — built; see plugin.md.

Context

Recording sessions is only half of the value; the other half is a live session using what was recorded. A skill (recall) can teach Claude how to search the corpus, but a skill's description only decides whether it gets loaded — it does not make Claude think of looking. For history to be consulted without being asked, two things must be true at turn zero: Claude must know the rules (when to search, how widely, how much to read back), and it must know that there is something here to find.

Where should the rules live, and how should they reach a session?

Options

  1. Nudge on every prompt — a UserPromptSubmit hook classifies the prompt and injects "search history" only when it matches a trigger. Smartest, and on the hot path: a 5-second timeout and a process start on every prompt, plus a fragile classifier inside a component that is not allowed to fail.
  2. Hard-code the policy in the skill — no config, the SKILL.md says "always search first". Zero cost, but one user's preference becomes everyone's, and there is no per-deployment or per-machine way to turn it down.
  3. Config + one session-start primer — the policy is a recall section of the deployment config, projected through the app model like everything else; a SessionStart action resolves it, asks the webapi how much history this cwd has, and injects a short additionalContext block combining the two. Per-user overrides come from the plugin's userConfig.

Decision

Option 3.

The policy is a section of the single config file rather than the separate config/recall.json the design sketched: the loaders (loadAppConfig, the embedded template, app.json seeding) are single-file today, and splitting them is a change of its own. The schema is the same; the file can be split when a multi-file config loader lands.

Consequences