Skip to content

tools: register the orphaned TCG-publishing verifier in the goal gate - #37

Merged
ANcpLua merged 1 commit into
mainfrom
fix/register-tcg-verifier
Jul 6, 2026
Merged

tools: register the orphaned TCG-publishing verifier in the goal gate#37
ANcpLua merged 1 commit into
mainfrom
fix/register-tcg-verifier

Conversation

@ANcpLua

@ANcpLua ANcpLua commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Status: complete-and-verified

Found during a solution-reference sweep after #36: tools/verify-tcg-publishing-demo.py shipped with First-Light step 3 (#14) and is referenced by docs/TELEMETRY_CAPABILITY_GRAPH.md, but was never registered in the goal orchestrator's COMMANDS list and appears in no workflow — a verifier that never ran anywhere.

Registered as tcg publishing demo next to webapi aot demo — deliberately without the real prefix: it has no container dependency (pure subprocess + clean_env), so it belongs in the PR-time validation floor (--no-demos keeps it) rather than the post-merge container lane.

Verification: python3 tools/verify-aot-autoinstrumentation-goal.py --only "tcg publishing demo"tcg-publishing-demo-ok, exit 0.

🤖 Generated with Claude Code

verify-tcg-publishing-demo.py shipped with First-Light step 3 (#14) and is
referenced by docs/TELEMETRY_CAPABILITY_GRAPH.md, but was never registered in
the goal orchestrator's COMMANDS — a verifier that never ran anywhere.

Registered as 'tcg publishing demo' next to 'webapi aot demo' (same class:
container-free demo verifier, so it runs in the PR-time validation floor, not
only post-merge).

Verified: --only "tcg publishing demo" → tcg-publishing-demo-ok.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0eda35b2-ddb1-447b-ac49-862f3cef7a33

📥 Commits

Reviewing files that changed from the base of the PR and between 083979d and 1445417.

📒 Files selected for processing (1)
  • tools/verify-aot-autoinstrumentation-goal.py
📜 Recent review details
⏰ Context from checks skipped due to timeout. (7)
  • GitHub Check: webapi-aot-demo (ubuntu-24.04-arm)
  • GitHub Check: webapi-aot-demo (macos-latest)
  • GitHub Check: otlp collector fixtures
  • GitHub Check: smoke (ubuntu-24.04-arm)
  • GitHub Check: verify (macos-latest)
  • GitHub Check: smoke (macos-latest)
  • GitHub Check: verify (ubuntu-24.04-arm)
🧰 Additional context used
📓 Path-based instructions (1)
**

⚙️ CodeRabbit configuration file

**: # Qyl.OpenTelemetry.AutoInstrumentation agent rules

Mission

This repository is the runtime AOT auto-instrumentation lane for qyl, evolving into a
self-describing observability substrate. The foundation is unchanged: .NET 10
NativeAOT-compatible zero-code instrumentation through managed build assets, source generation,
DiagnosticListener consumption, and module-initializer boot. The direction is the North Star
below.

Keep this repository separate from:

  • semantic-convention package generation (Qyl.OpenTelemetry.SemanticConventions is a referenced
    vocabulary package, not generated here),
  • the old CLR-profiler/OpenTelemetry auto-instrumentation substrate.

North Star — declare and prove the whole stack

Every observability tool today is pull-by-observation: a backend learns what a service emits
by receiving samples over time, and never knows whether it has seen the whole surface. qyl has a
capability none of them have — because instrumentation is source-generated interceptors + a static
contract + a referenced semconv registry + (incrementally) DTO inference, the complete set of
telemetry a binary can ever produce is a compile-time-derivable fact, with provenance.

The substrate goal: every qyl binary ships a complete, machine-readable Telemetry Capability
Graph (TCG)
— the full possible OpenTelemetry surface for that exact binary, each capability
tagged compile-time-owned vs runtime-valued — and proves it by self-hosting (instrumenting its
own pipeline with its own mechanism, zero extra code). Any external entity consumes the TCG to know
the entire stack before a span is sampled. The contract becomes the shared semantic graph; an OTLP
backend is just one consumer.

Three pillars:

  1. Self-host (the proof). qyl instruments qyl with qyl — QylSelfTelemetry /
    SemConvConformanceProcessor are the seed; the binary observing itself is how "declared TCG ==
    runtime reality" is checked.
  2. **Compile-time-complete TCG (the ar...

Files:

  • tools/verify-aot-autoinstrumentation-goal.py

⚙️ CodeRabbit configuration file

**: Operating principles (solo-dev, agentic SDLC — reviews are advisory, agents act on them):

  1. LAZY: one self-contained, correct review beats ten partial ones. Every finding is
    definitive — concrete evidence with file:line, a concrete fix, no "consider maybe",
    no open or ambiguous questions back to the author. If you cannot decide a point
    from the diff plus repo context, stay silent on it. Never cite a source, API, or
    version you have not verified; an unverifiable claim is a dropped claim.
  2. IMPATIENT: never stall a PR. There are no compatibility obligations here — internal
    and dogfooding code has NO public-API contract; removing shims, breaking signatures,
    and deleting dead paths are normal, desirable changes. Do not flag backward
    compatibility, deprecation ceremony, or migration paths. (SemVer applies only to
    commercially sold libraries — this repo has none.)
  3. EGO: hold the bar of the best reviewer on the market — flag real correctness,
    security, data-loss, and structural problems precisely; produce zero noise.

Files:

  • tools/verify-aot-autoinstrumentation-goal.py
🔇 Additional comments (1)
tools/verify-aot-autoinstrumentation-goal.py (1)

62-62: LGTM!


📝 Walkthrough

Summary by CodeRabbit

  • New Features
    • Added a new verification option for the publishing demo workflow, making it available in command selection lists and filters.
    • Improved command discovery so the new option can be included or excluded consistently with existing verification choices.

Walkthrough

Adds one new entry to the COMMANDS array in tools/verify-aot-autoinstrumentation-goal.py, registering "tcg publishing demo" mapped to the invocation of tools/verify-tcg-publishing-demo.py, making it selectable via the existing --list/--only/--skip flow.

Changes

Verifier command registration

Layer / File(s) Summary
Add tcg publishing demo command
tools/verify-aot-autoinstrumentation-goal.py
Registers "tcg publishing demo" as a new entry in COMMANDS, mapped to python tools/verify-tcg-publishing-demo.py.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Referenced script tools/verify-tcg-publishing-demo.py isn't in this diff — one-line addition assumed correct, nothing else to check.

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title matches the main change: registering the TCG publishing verifier in the goal gate.
Description check ✅ Passed The description accurately describes the verifier registration and its placement in the goal orchestrator.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/register-tcg-verifier
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch fix/register-tcg-verifier

Comment @coderabbitai help to get the list of available commands.

@ANcpLua
ANcpLua merged commit 8cad985 into main Jul 6, 2026
9 checks passed
@ANcpLua
ANcpLua deleted the fix/register-tcg-verifier branch July 6, 2026 04:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant