Skip to content

feat(framework): a skill that proves the telemetry pipeline fires #617

Description

@alexsoyes

As a developer who has just installed AIDD telemetry
I want a skill that tells me, line by line, whether each link actually produces data
So that I never build a decision on figures an inert installation left incomplete

Acceptance

  • The skill prints one line per independently verifiable claim, and no line that is a summary of the others.
  • A hook whose configuration exists but that has never fired reads FAIL, not ok.
  • A hook whose last observed write is older than the current session's start reads FAIL.
  • A complete installation whose identifier is missing from the export reads FAIL — the OTEL_METRICS_INCLUDE_SESSION_ID=false case.
  • A session that emitted a run file but no telemetry datapoints is named as such, and not counted as healthy.
  • The four uncovered tools are named explicitly, never passed over in silence.
  • On a public repository the skill reports telemetry as disabled until the repository has opted in.
  • The skill consumes no model quota beyond its own invocation, and makes no network call other than to the local sink.

Expected output

enabled for this repository        ok
plugin installed                   ok    aidd-telemetry
hook observed                      ok    last write 4 min ago
export configured                  ok    OTLP to 127.0.0.1:4318
identifier joinable                ok    session.id present in the export
sessions journaled                 ok    12 over 7 days
step names readable                FAIL  OTEL_LOG_TOOL_DETAILS unset, steps collapse to third-party
not covered                        --    codex, copilot, cursor, opencode

Why a skill and not a CLI command

The diagnostic answers a question asked from inside a session, about the session that is running. A skill can read the run journal and see whether the current session has a file — which is precisely the "did the hook fire" check, and it is stronger from inside than from outside.

The CLI keeps one job only: turning the export on. Everything that reads belongs to the plugin.

Why this is the most important issue in the milestone

The measurement campaign (#632) found that no probe worked on the first attempt, and never for a different reason. Every tool gates its hooks differently. A hook installed without lifting the gate is silent and raises nothing.

That is not an edge case, it is the nominal case. Hence the central requirement: the skill does not check that a file exists, it checks that a hook fired.

Out of scope

  • Per-tool inert-state detection for Codex, Copilot and Cursor. Those tools are out of scope for this milestone; naming them as uncovered is the correct answer, and parsing their trust state is days of work with no bearing on the promise.
  • Any figure. Reading cost belongs to the consultation skill.

Relations

Field Value
parent #631
depends_on #620, #646, #647
related #629, #632

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Fields

    Priority

    None yet

    Projects

    Status
    In review

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions