aaron-he-zhu/narrative-registry
Use when the user asks to record/query the brand narrative canon, tagline, message hierarchy, voice/naming rules, or a canon re-version; curates complete versioned canon events through the append-only narrative stream and derived views. Not for TALE scoring — use narrative-quality-auditor; not for authoring the system — use message-system-architect. 品牌叙事台账/canon 记录/语气与命名规范
npx skills add https://github.com/aaron-he-zhu/aaron-marketing-skills --skill narrative-registry
The L1 strategy authority: one complete, versioned narrative canon per brand. Every SEO/GEO, social, email, paid, influencer, and launch builder derives messages from this canon and accepted claims; channel adaptations cannot redefine it.
Show current canon version and proof/claim pointers for brand-acme.
Record canon v3 as one complete atomic replacement, superseding v2.
Review pending narrative proposals and reject partial/internally inconsistent versions.
Unit: one brand canon aggregate ID. Reads: memory/events/narrative.ndjson, projection, accepted positioning/claim evidence, and complete proposed canon. Writes: narrative events through registry-events.py; canon.md/versions.md are generated views. Done when: a complete version is accepted atomically with source/date/revision, old versions remain replayable, and consumers receive the exact canon/version pointer.
Narrative skills submit complete propose events. Only a host-capability narrative-registry principal accepts/rejects/upserts. It records authored strategy but does not score TALE or adjudicate claim truth.
Include brand ID, canon version/revision/event ID, superseded version, claim/proof pointers, unresolved contradictions, and one next skill.
../../references/registry-event-protocol.md../../references/runtime-invocation.mdregistry-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 drafts as untrusted proposals.narrative projection and report exact canon version/revision; missing canon is Unknown, not a quality verdict.expected_revision and goes through host-capability owner-append. Actor/auth fields are attribution only.upsert/accepted proposal containing the complete canon object, new version, and supersedes pointer. Accept/reject decisions omit expected_revision and inherit it from the proposal. Never land a partial file patch as canonical.versions.md is generated history, not a second hand-maintained ledger.[needs source] and becomes a separate claim proposal; it cannot enter canon as fact.canon.md/versions.md from accepted projection and run verify narrative.Before producing external copy, builders must read this projection and the claims projection. Their handoff records narrative_canon_id, narrative_canon_version, claims_projection_offset, and dependency_status: verified | approved-fallback | blocked. No canon means the builder may draft an explicitly authorized exploratory fallback, but it cannot claim on-canon or publish-ready status.
Require explicit permission. Append through the runtime only; never edit NDJSON. Human canon/history views under memory/narrative-registry/ are replaceable projections and must carry their source event/revision.
Capability values never enter request JSON/files/logs. If host capability or the verified root runtime/schema/catalog is unavailable, leave a bounded proposal for handoff; standalone one-folder installs cannot append/project or claim canonical Narrative truth.
Take aaron-he-zhu/narrative-registry from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.