feat: add ?consumer= query param to getting started URLs and telemetry governance#96
Merged
Merged
Conversation
…y governance - Updated all oddkit URLs in getting-started article to include ?consumer=yourname - Added explanation of transparency leaderboard and what telemetry tracks - Updated telemetry-governance.md consumer resolution chain: query param is now priority 1 - Query param works on every platform (no custom header support needed)
klappy
added a commit
that referenced
this pull request
Apr 17, 2026
Eleven governance articles plus an evidence note, mirroring the PR #96 encode pattern. Governance lands in canon first; the future workers/src/orchestrate.ts refactor extracts against live articles. No runtime behavior change in this PR. Meta governance - odd/challenge-types/how-to-write-challenge-types.md — extraction contract, Domain Adaptation with three worked patterns (software engineering, thought leadership from books, comparative architectural writing), six-step procedure for KB stewards Software-engineering default challenge types (shipped defaults, labeled as such on purpose) - odd/challenge-types/strong-claim.md - odd/challenge-types/proposal.md - odd/challenge-types/assumption.md - odd/challenge-types/observation.md (fallback: true) Architectural-writing overlay challenge types (klappy.dev additions for comparative-analysis and principle-extraction writing work) - odd/challenge-types/pattern-coinage.md - odd/challenge-types/comparative-positioning.md - odd/challenge-types/principle-extraction.md Supporting articles (coexist both domains in klappy.dev canon) - odd/challenge/base-prerequisites.md - odd/challenge/normative-vocabulary.md - odd/challenge/stakes-calibration.md (includes voice-dump mode which suppresses all challenge output as invariant) Evidence - docs/oddkit/evidence/challenge-governance-articles-commit.md captures the gauntlet run: preflight, AI voice cliches audit, author-identity check, derives-from path audit, Writing Canon gate per-article, session capture reference, open risks. Gauntlet notes - Writing Canon gate passed per-article (title, blockquote, summary section, headers, no buried claims) after remediation of missing Summary sections caught during the validate pass - AI voice cliches audit clean - One broken derives_from path caught and fixed (canon/epistemic-modes.md -> canon/definitions/epistemic-modes.md in stakes-calibration.md) - oddkit_gate returned NOT_READY due to the same hardcoded-logic problem this refactor solves — the gate's generic prereqs cannot see session state. Noted honestly; proceeding because materially met and documented. Co-authored-by: Claude <noreply@anthropic.com>
klappy
added a commit
that referenced
this pull request
Apr 30, 2026
…state as if current; preserved with addendum (Audit 2026-04-30)
klappy
added a commit
that referenced
this pull request
Apr 30, 2026
…te; preserved with addendum (Audit 2026-04-30)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
?consumer=yournamequery parameter to all oddkit URLs in the getting started article and updates the telemetry governance doc to reflect query param as the highest-priority consumer resolution method.Why
Users on platforms like Claude.ai, ChatGPT, and ElevenLabs can't set custom HTTP headers on MCP connections, but every platform lets you edit the URL. Making the query param the highest priority consumer identification method means anyone can self-identify regardless of platform.
This pairs with a corresponding oddkit server change (separate PR on klappy/oddkit) that reads
?consumer=from the URL.Files Changed
writings/getting-started-with-odd-and-oddkit.md— All URLs updated to include?consumer=yournamewith explanationcanon/constraints/telemetry-governance.md— Consumer resolution chain updated: query param is now priority 1Testing
Article renders correctly with new content. Governance doc resolution chain is consistent with planned server change.
Note
Low Risk
Low risk documentation-only change that updates public guidance for consumer identification; no runtime behavior or security-sensitive code is modified in this repo.
Overview
Documentation update to standardize consumer identification. The telemetry governance doc now defines
?consumer=as the highest-priority consumer label source and recommends it over custom headers for broad MCP client compatibility.The getting-started guide updates all oddkit connection examples (Claude, ChatGPT, MCP config, etc.) to include
?consumer=yournameand adds a short explanation of the transparency leaderboard and opting out.Reviewed by Cursor Bugbot for commit 32703db. Bugbot is set up for automated code reviews on this repo. Configure here.