Skip to content

docs(spec): AID-EMIT-1 1.2.0-draft adds the aid vocabulary - #602

Merged
Levaj2000 merged 1 commit into
mainfrom
docs/aid-emit-1-1.2.0-vocabulary
Oct 12, 2026
Merged

Levaj2000 merged 1 commit into
mainfrom
docs/aid-emit-1-1.2.0-vocabulary

Conversation

@Levaj2000

Copy link
Copy Markdown
Owner

Summary

AID-EMIT-1 1.2.0-draft. Section 1.1 pinned the cpex.* / cmf.* field names to the CPEX host family and pointed any host with a different message format at AID-EMIT-2. The signing, chain and stream rules do not depend on the host; only the names do. This resolves that case additively instead of forking the spec.

  • New section 1.2, Vocabularies. A vocabulary names the unmapped members that carry the format's own facts. cpex keeps the section 1.1 names. aid (aid.stream, aid.decision, aid.span, aid.content, aid.request_id, aid.<host>.*) is for emitters that target the AI Identity platform and OCSF rather than a gateway, starting with the LiteLLM adapter designed in docs(specs): Python AID-EMIT-1 emitter and LiteLLM adapter design drafts #600.
  • Six rules: same structure and semantics across vocabularies; one vocabulary per record (MUST); verifiers read aid first and SHOULD surface a record with stream stamps under both; under aid, a fact with a native OCSF field MUST use it and MUST NOT be repeated under unmapped; no covered-bytes change and the same wire-name stability as section 1.1; no in-record vocabulary marker; a non-CPEX emitter conforms as an Emitter and documents how it attaches, including whether it sees denied requests.
  • Sections 7, 8, 9 name the aid counterparts in place. Section 12 notes that no aid vector exists yet. Section 13 records 1.2.0 as MINOR.
  • Version 1.2.0-draft, date 2026-10-12. CHANGELOG entry under Added.

Needs a human pass

Standards-facing wording. The normative choices to check:

  • Rule 2 makes one vocabulary per record a MUST for emitters, but only a SHOULD-surface finding for verifiers (the validator from feat(validator): read stream stamps from aid.stream as well as cpex.stream #601 warns W-STREAM-VOCAB; platform ingest records an anomaly). That keeps mixed records verifiable rather than rejected.
  • Rule 3 applies native-OCSF-first as a MUST to aid only, so no existing cpex record becomes non-conformant.
  • Rule 6 is new: section 10's host registration contract describes the CPEX seam, so a non-CPEX emitter is held to the Emitter class rather than the Host seam class.

Testing

Spec text only. The edits apply to the current main copy of docs/specs/aid-emit-1.md at ten exact-match anchors, all or nothing. The validator merged in #601 already reads both vocabularies in the order rule 2 states.

Section 1.1 pinned the cpex.* / cmf.* unmapped field names to the CPEX
host family and said a host with a different message format would
motivate AID-EMIT-2. The signing, chain and stream rules do not depend
on the host, only the names do, so 1.2.0 resolves that case additively.

New section 1.2, Vocabularies: a vocabulary names the unmapped members
that carry the format's own facts. cpex keeps the section 1.1 names;
aid (aid.stream, aid.decision, aid.span, aid.content, aid.request_id,
aid.<host>.*) is for emitters that target the AI Identity platform and
OCSF rather than a gateway. Rules: same structure and semantics; one
vocabulary per record; verifiers read aid first and surface a record
with stream stamps under both; under aid, facts with a native OCSF
field must use it; no covered-bytes change; no in-record marker;
non-CPEX emitters conform as Emitters and document how they attach.

Sections 7, 8, 9, 12 and 13 name the aid counterparts. Version
1.2.0-draft, MINOR: no covered byte, existing record or vector changes.
@Levaj2000
Levaj2000 marked this pull request as ready for review October 12, 2026 21:13
@Levaj2000
Levaj2000 merged commit 044a4e0 into main Oct 12, 2026
9 checks passed
@Levaj2000
Levaj2000 deleted the docs/aid-emit-1-1.2.0-vocabulary branch October 12, 2026 22:01
Levaj2000 added a commit that referenced this pull request Oct 12, 2026
main gained #601 and #602, which both added CHANGELOG entries at the
top of Unreleased, so CHANGELOG.md conflicted. Resolved by taking main's
CHANGELOG and re-adding this PR's one entry under Added.

Also formats the EmitterConfig example in docs/specs/aid-emit-py.md the
way ruff 0.16.9 (pinned in requirements-dev.txt) does: it formats Python
code blocks inside Markdown, and ruff format --check failed CI on it.
Content unchanged.
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