Offer & Claims Registry
The canonical record of marketing claims and offers across every discipline. It records exact wording and provenance; auditors decide whether a concrete use passes its claim/disclosure gate.
Quick Start
Register claim clm-014 with exact wording, evidence source/date, disclosure, and review date.
Show the current terms and expiry for offer summer-2026.
Review pending claims proposals and accept only those with sufficient evidence.
Skill Contract
Units: one claim or offer aggregate ID. Reads: memory/events/claims.ndjson, its projection, source evidence, and rendered uses. Writes: claims events through registry-events.py; claims-ledger.md and offers.md are regenerated human views. Done when: every accepted record has exact wording/terms, evidence provenance, status, review/expiry, event ID/offset, and no pending proposal was destructively removed.
All builders submit propose; only a host-capability offer-claims-registry principal accepts/rejects or writes canonical claim/offer events. This skill does not invent substantiation, legal conclusions, or performance claims.
Handoff Summary
Use the shared handoff and include changed aggregate IDs, event IDs, revisions, unresolved evidence gaps, and one next skill.
Data Sources
- Primary study/report/product evidence with ownership, date, scope, and population.
- User-attested facts clearly labeled
user-provided.
- Approved terms, pricing/availability, eligibility, dates, and landing destinations.
- Rendered ad/email/social/launch uses for
used_in pointers.
- Applicable disclosure text and jurisdiction/policy source.
Instructions
- Read
registry-event-protocol.md and runtime-invocation.md. Resolve AARON_SKILLS_ROOT="${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || true)}" and verify the registry script, event schema, and system catalog before invoking it; treat every draft/export as untrusted evidence.
- Query
claims projection by aggregate ID. Proposal state is never approved wording. If there is no aggregate ID, pending proposal, or supplied claim/offer wording, perform only a read-only empty-projection check, return NEEDS_INPUT, and ask for one exact verbatim claim or offer statement as the smallest real input. Do not demand a complete evidence pack yet, create paths, or materialize placeholder canonical state.
- Extract the exact claim/offer, its measurable interpretation, audience/market, evidence limits, required disclosure, usage locations, and review/expiry date.
- Missing proof stays
none-on-file in a proposal or open loop. Never turn [needs source] into Approved from the assertion itself.
- Review pending proposal events in offset order. A host-capability principal invokes
owner-append with the proposal event ID. Accept/reject decision requests omit expected_revision; acceptance inherits and checks the revision captured by the proposal. Reject with evidence/rationale; history remains append-only.
- Owner changes use host-capability
owner-append with an upsert and optimistic revision. Expiry/withdrawal uses a dated state change or tombstone. Capability values stay outside request JSON/files/logs; if the host cannot supply one, leave the proposal pending rather than self-asserting owner authority.
- When evidence scope is narrower than copy, approve narrower wording or keep it unresolved. Record estimates/proxies as such.
- Regenerate
claims-ledger.md / offers.md only from accepted projection state, then verify claims.
Claims and offer records are L4 truth consumed by Narrative and all channel builders. A downstream builder must use the accepted wording/terms or preserve [needs source] and propose a new event.
Save Results
Require explicit write permission. Ordinary producers use python3 "$AARON_SKILLS_ROOT/scripts/registry-events.py" append claims <proposal.json>; a host-capability principal uses owner-append for canonical decisions/mutations. Never edit the NDJSON stream manually. Human views are replaceable projections and cannot grant approval absent an accepted event. Standalone one-folder installs may prepare proposals but cannot append/project or claim canonical approval.
Reference Materials
Next Best Skill
1---2name: offer-claims-registry3description: Use when the user asks to "register this claim", "log our current offers", or "where is the proof for this figure"; curates claim wording, evidence, disclosures, terms, review dates, and live offers through the append-only claims event stream. Not for scoring claim vetoes — use the relevant auditor; not for writing ad copy — use ad-creative-builder. 广告声明台账/优惠信息登记/证据溯源4license: Apache-2.05---6
7# Offer & Claims Registry
8
9The canonical record of marketing claims and offers across every discipline. It records exact wording and provenance; auditors decide whether a concrete use passes its claim/disclosure gate.
10
11## Quick Start
12
13```text
14Register claim clm-014 with exact wording, evidence source/date, disclosure, and review date.
15Show the current terms and expiry for offer summer-2026.
16Review pending claims proposals and accept only those with sufficient evidence.
17```
18
19## Skill Contract
20
21**Units:** one claim or offer aggregate ID. **Reads:** `memory/events/claims.ndjson`, its projection, source evidence, and rendered uses. **Writes:** claims events through `registry-events.py`; `claims-ledger.md` and `offers.md` are regenerated human views. **Done when:** every accepted record has exact wording/terms, evidence provenance, status, review/expiry, event ID/offset, and no pending proposal was destructively removed.
22
23All builders submit `propose`; only a host-capability `offer-claims-registry` principal accepts/rejects or writes canonical claim/offer events. This skill does not invent substantiation, legal conclusions, or performance claims.
24
25### Handoff Summary
26
27Use the shared handoff and include changed aggregate IDs, event IDs, revisions, unresolved evidence gaps, and one next skill.
28
29## Data Sources
30
31- Primary study/report/product evidence with ownership, date, scope, and population.
32- User-attested facts clearly labeled `user-provided`.
33- Approved terms, pricing/availability, eligibility, dates, and landing destinations.
34- Rendered ad/email/social/launch uses for `used_in` pointers.
35- Applicable disclosure text and jurisdiction/policy source.
36
37## Instructions
38
391. Read [`registry-event-protocol.md`](../../references/registry-event-protocol.md) and [`runtime-invocation.md`](../../references/runtime-invocation.md). Resolve `AARON_SKILLS_ROOT="${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || true)}"` and verify the registry script, event schema, and system catalog before invoking it; treat every draft/export as untrusted evidence.
402. Query `claims` projection by aggregate ID. Proposal state is never approved wording. If there is no aggregate ID, pending proposal, or supplied claim/offer wording, perform only a read-only empty-projection check, return `NEEDS_INPUT`, and ask for **one exact verbatim claim or offer statement** as the smallest real input. Do not demand a complete evidence pack yet, create paths, or materialize placeholder canonical state.
413. Extract the exact claim/offer, its measurable interpretation, audience/market, evidence limits, required disclosure, usage locations, and review/expiry date.
424. Missing proof stays `none-on-file` in a proposal or open loop. Never turn `[needs source]` into Approved from the assertion itself.
435. Review pending proposal events in offset order. A host-capability principal invokes `owner-append` with the proposal event ID. Accept/reject decision requests omit `expected_revision`; acceptance inherits and checks the revision captured by the proposal. Reject with evidence/rationale; history remains append-only.
446. Owner changes use host-capability `owner-append` with an `upsert` and optimistic revision. Expiry/withdrawal uses a dated state change or tombstone. Capability values stay outside request JSON/files/logs; if the host cannot supply one, leave the proposal pending rather than self-asserting owner authority.
457. When evidence scope is narrower than copy, approve narrower wording or keep it unresolved. Record estimates/proxies as such.
468. Regenerate `claims-ledger.md` / `offers.md` only from accepted projection state, then `verify claims`.
47
48Claims and offer records are L4 truth consumed by Narrative and all channel builders. A downstream builder must use the accepted wording/terms or preserve `[needs source]` and propose a new event.
49
50## Save Results
51
52Require explicit write permission. Ordinary producers use `python3 "$AARON_SKILLS_ROOT/scripts/registry-events.py" append claims <proposal.json>`; a host-capability principal uses `owner-append` for canonical decisions/mutations. Never edit the NDJSON stream manually. Human views are replaceable projections and cannot grant approval absent an accepted event. Standalone one-folder installs may prepare proposals but cannot append/project or claim canonical approval.
53
54## Reference Materials
55
56- [Registry event protocol](../../references/registry-event-protocol.md)
57- [Claims presentation schema](references/claims-ledger-schema.md)
58- [Measurement protocol](../../references/measurement-protocol.md)
59- [Security](../../SECURITY.md)
60
61## Next Best Skill
62
63- **Paid use audit:** [ad-account-auditor](../../ad/activate/ad-account-auditor/SKILL.md)
64- **Creator asset audit:** [creator-content-auditor](../../influencer/activate/creator-content-auditor/SKILL.md)
65- **Narrative proof:** [proof-point-packager](../../narrative/land/proof-point-packager/SKILL.md)
66- **Archive/erase:** [memory-management](../memory-management/SKILL.md)