agent-wiki-compare-out…
Compare successful and failed normalized agent trajectories to derive evidence-backed agent-wiki guidelines. Use when Codex has…
Analyze saved trajectories and recall audit events offline to record whether recalled guidelines influenced completed sessions.
Claude Code
$ npx -y skills add AgentToolkit/altk-evolve --skill provenance --agent claude-code
Codex
$ npx skills add AgentToolkit/altk-evolve --skill provenance -a codex -y
Cursor
$ npx skills add AgentToolkit/altk-evolve --skill provenance -a cursor -y
Gemini CLI
$ npx skills add AgentToolkit/altk-evolve --skill provenance -a gemini-cli -y
GitHub Copilot
$ npx skills add AgentToolkit/altk-evolve --skill provenance -a github-copilot -y
OpenCode
$ npx skills add AgentToolkit/altk-evolve --skill provenance -a opencode -y
Windsurf
$ npx skills add AgentToolkit/altk-evolve --skill provenance -a windsurf -y
name: provenance description: Analyze saved trajectories and recall audit events offline to record whether recalled guidelines influenced completed sessions.
This skill runs after one or more sessions have completed. It reads `recall` events from `.evolve/audit.log`, locates each session's trajectory, and records post-hoc `influence` events for the recalled guidelines.
The mechanical work — reading recall rows, skipping already-assessed pairs, resolving entity files, and locating trajectories — is done deterministically by `provenance.py candidates`. Your job is the judgment: read each candidate and decide whether the recalled guideline was `followed`, `contradicted`, or `not_applicable` — or that the trajectory is `insufficient_evidence` to tell — then persist that verdict.
Use this skill when you want to compute usage provenance without coupling the work to the live learn step.
Run the candidate builder. It emits one JSON object per line (JSONL), one per unresolved `(session_id, entity)` recall pair:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/evolve-lite/provenance/scripts/provenance.py candidatesEach candidate looks like:
{
"session_id": "<session-id>",
"entity_id": "<type>/<name>",
"entity_excerpt": "<frontmatter + content of the entity file>",
"trajectory_path": "/path/to/transcript.jsonl",
"trajectory_excerpt": "<head of the trajectory transcript>",
"missing": ["trajectory"]
}Notes:
suffix, e.g. `feedback/foo`, `guideline/bar`, or `subscribed/alice/guideline/baz`.
reuses the same dedup rule used when influence rows are written. You will never be handed a duplicate.
to the native Claude transcript at `~/.claude/projects/<slug>/<session-id>.jsonl`. This means provenance works even when no `.evolve/trajectories/` file was written.
emitted with a `missing: [...]` field so the gap is visible. When the trajectory is missing you usually cannot judge the pair — skip it (do not guess), unless the entity content alone makes `not_applicable` certain. Do not record `insufficient_evidence` for a missing trajectory: a recorded verdict is final for its pair, while a skipped candidate is offered again on the next run, once the trajectory may have been found.
For each candidate, read `entity_excerpt` (and open `trajectory_path` for the full transcript if the excerpt is not enough). Compare the recalled guideline against the agent's actual actions in the trajectory and pick exactly one verdict:
repeated the avoidable dead end.
session.
whether the guideline was followed or contradicted (for example, the relevant step is not in the transcript). Abstain with this rather than forcing one of the other three.
The writer accepts omitted, null, or empty `evidence` for compatibility; null is stored as an empty string. For new assessments, provide evidence so the verdict can be reviewed. Keep `evidence` to one short sentence citing a concrete action, tool call, or absence in the trajectory. This judgment is yours — there is no heuristic fallback.
Persist each verdict. Either pipe one verdict per call to `provenance.py record`:
echo '{
"session_id": "<session-id>",
"entity": "<type>/<name>",
"verdict": "followed",
"evidence": "Agent used the saved parser before trying shell fallbacks."
}' | python3 ${CLAUDE_PLUGIN_ROOT}/skills/evolve-lite/provenance/scripts/provenance.py record…or, to batch many assessments for one session in a single call, pipe to the underlying writer directly:
echo '{
"session_id": "<session-id>",
"assessments": [
{"entity": "feedback/foo", "verdict": "followed", "evidence": "Agent followed it."},
{"entity": "guideline/bar", "verdict": "not_applicable", "evidence": "Did not apply."},
{"entity": "guideline/baz", "verdict": "insufficient_evidence", "evidence": "The transcript does not show the deploy step."}
]
}' | python3 ${CLAUDE_PLUGIN_ROOT}/skills/evolve-lite/provenance/scripts/log_influence.pyBoth paths write the identical `influence` audit row and skip duplicates. If either exits non-zero, read its error: it names each assessment it rejected (for example, a misspelled verdict, an item with no `entity`, or two different verdicts for the same entity in one batch, in which case neither is recorded). Fix those and send them again; anything already recorded is skipped as a duplicate, so resending the whole batch is safe. A resend cannot change a verdict that was already recorded: the pair keeps its first verdict and the new one is skipped as a duplicate, so decide on the verdict before you send it. The `entity` value must match the candidate's `entity_id` exactly, including any `subscribed/<source>/` prefix.
It is valid to record nothing when recall events exist but no recalled guideline can be assessed (e.g. every candidate is missing its trajectory).
Evolve helps AI agents learn from experience. It turns past trajectories into reusable guidelines that help agents complete future tasks, without changing model weights.
Compare successful and failed normalized agent trajectories to derive evidence-backed agent-wiki guidelines. Use when Codex has…
Read all atomic guidelines in wiki-twobatch/guidelines/ and propose themed clusters that group near-duplicates. Writes cluster…
Consult an agent-wiki for guidelines relevant to the task at hand. The wiki itself documents how to retrieve from it (AGENTS.md).…
Read a normalized Claude Code trajectory JSON and extract reusable guidelines into wiki-twobatch/guidelines/. Use when mining…
Ingest one or more agent trajectories (raw bob/claude traces or normalized JSON) into an agent-wiki end-to-end — convert,…
Read a normalized Claude Code trajectory JSON and write an episodic summary page to wiki-twobatch/summaries/. Use when…
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.