Skip to content

fix(aidd-context): source-backed tool references, with dates and unverified cells #618

Description

@alexsoyes

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

  • Every factual cell in tool-paths.md carries [v] or [?].
  • A Sources section lists each page read, with the date of the pass.
  • The five corrections above are reflected in the file.
  • A [?] cell is never silently promoted to [v] without a re-read.
  • The shape is agreed before extending to the other reference files.

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

Field Value
related #617

Verified against: Claude Code hooks and monitoring-usage, Codex hooks and config-advanced, Cursor hooks, Copilot hooks-reference, OpenCode plugins and config schema.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Projects

    Status
    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions