Problem
plugins/aidd-context/skills/08-hook-generate/references/tool-paths.md stated that Codex CLI has no session-end moment. Codex documents SessionEnd explicitly. The claim was wrong, and it propagated: a downstream design decision was taken on it before anyone re-read the source.
The failure is structural, not a typo. Not one cell in that table carried a URL or a date. Nothing distinguished "read in the docs" from "assumed in 2026-06 and never re-checked", so the only way to audit one cell was to re-verify all of them. A reference that cannot be audited cell by cell decays silently, and agents quote it with full confidence.
These references are load-bearing: a skill reads them instead of the vendor docs, so an error there becomes an error in every artefact the skill generates.
Scope
Applies to reference files that make per-tool factual claims, starting with 08-hook-generate/references/tool-paths.md.
- Per-claim verification marks.
[v] = read in the official docs on the stated date. [?] = not re-read, unverified. An unverified cell stays unverified; it is never filled with a plausible value.
- Sources section. Every page actually read, with its URL, plus the date of the pass. Redirects noted with their target (
developers.openai.com/codex/hooks and docs.github.com/.../hooks-configuration both moved).
- Re-verification trigger. State when a
[v] becomes stale and must be re-read.
- Extend to the other per-tool references in
aidd-context once the shape is agreed (11-explore/references/ai-mapping.md, 03-context-generate/references/ai-mapping.md).
A first pass over tool-paths.md is written and ready to land with this issue: marks, sources, verification date, plus the corrections below.
Corrections found while verifying (5 tools, official docs, 2026-08-11)
- Codex has
SessionEnd. Previously recorded as absent. Timeout is 1 s by default, 3 s max, and it does not run for subagents.
- Copilot casing is not an alias. The configured casing selects the payload format (camelCase fields vs snake_case) and sometimes the event name itself:
agentStop becomes Stop, userPromptSubmitted becomes UserPromptSubmit. The file described it as accepting both names.
- Failure semantics differ per tool, and one denies. A
preToolUse handler that exits non-zero on Copilot denies the tool call. An observer hook that throws stops the agent. Not documented anywhere in the file before.
- OpenCode confirmed as plugins-only, with no session-end event and no session identifier in the plugin context.
- Session identifier field names differ across all four supported tools (
session_id, conversation_id, sessionId) and none of the five documents whether the value survives a resume, clear, compaction or fork.
Acceptance criteria
Prior art in this repo
plugins/aidd-context/skills/08-hook-generate/references/tool-paths.md — the file this issue fixes.
plugins/aidd-context/skills/08-hook-generate/references/hook-authoring.md — R1-R7, which delegate every per-tool fact to tool-paths.md.
AGENTS.md — "Don't guess APIs, signatures, flags, or behavior" and "Don't assume your knowledge is current" already carry the intent. This issue does not add a rule; it makes the existing ones auditable in the file that holds the claims.
Relations
Verified against: Claude Code hooks and monitoring-usage, Codex hooks and config-advanced, Cursor hooks, Copilot hooks-reference, OpenCode plugins and config schema.
Problem
plugins/aidd-context/skills/08-hook-generate/references/tool-paths.mdstated that Codex CLI has no session-end moment. Codex documentsSessionEndexplicitly. The claim was wrong, and it propagated: a downstream design decision was taken on it before anyone re-read the source.The failure is structural, not a typo. Not one cell in that table carried a URL or a date. Nothing distinguished "read in the docs" from "assumed in 2026-06 and never re-checked", so the only way to audit one cell was to re-verify all of them. A reference that cannot be audited cell by cell decays silently, and agents quote it with full confidence.
These references are load-bearing: a skill reads them instead of the vendor docs, so an error there becomes an error in every artefact the skill generates.
Scope
Applies to reference files that make per-tool factual claims, starting with
08-hook-generate/references/tool-paths.md.[v]= read in the official docs on the stated date.[?]= not re-read, unverified. An unverified cell stays unverified; it is never filled with a plausible value.developers.openai.com/codex/hooksanddocs.github.com/.../hooks-configurationboth moved).[v]becomes stale and must be re-read.aidd-contextonce the shape is agreed (11-explore/references/ai-mapping.md,03-context-generate/references/ai-mapping.md).A first pass over
tool-paths.mdis written and ready to land with this issue: marks, sources, verification date, plus the corrections below.Corrections found while verifying (5 tools, official docs, 2026-08-11)
SessionEnd. Previously recorded as absent. Timeout is 1 s by default, 3 s max, and it does not run for subagents.agentStopbecomesStop,userPromptSubmittedbecomesUserPromptSubmit. The file described it as accepting both names.preToolUsehandler that exits non-zero on Copilot denies the tool call. An observer hook that throws stops the agent. Not documented anywhere in the file before.session_id,conversation_id,sessionId) and none of the five documents whether the value survives a resume, clear, compaction or fork.Acceptance criteria
tool-paths.mdcarries[v]or[?].Sourcessection lists each page read, with the date of the pass.[?]cell is never silently promoted to[v]without a re-read.Prior art in this repo
plugins/aidd-context/skills/08-hook-generate/references/tool-paths.md— the file this issue fixes.plugins/aidd-context/skills/08-hook-generate/references/hook-authoring.md— R1-R7, which delegate every per-tool fact totool-paths.md.AGENTS.md— "Don't guess APIs, signatures, flags, or behavior" and "Don't assume your knowledge is current" already carry the intent. This issue does not add a rule; it makes the existing ones auditable in the file that holds the claims.Relations
Verified against: Claude Code hooks and monitoring-usage, Codex hooks and config-advanced, Cursor hooks, Copilot hooks-reference, OpenCode plugins and config schema.