Narrative registry skill

Use when the user asks to record/query the brand narrative canon, tagline, message hierarchy, voice/naming rules, or a canon re-version.

by aaron-he-zhu·Apache-2.0 license·★ 2,858 Stars on the repo·GitHub ↗

Use now

Files of Narrative registry

aaron-he-zhu/main1 file shown
SKILL.md
Show the full text88 lines

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.

Quick Start

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.

Skill Contract

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.

Handoff Summary

Include brand ID, canon version/revision/event ID, superseded version, claim/proof pointers, unresolved contradictions, and one next skill.

Data Sources

  • Accepted positioning truth and named alternatives.
  • Complete message hierarchy/narrative authored by Narrative skills.
  • Accepted claim IDs and proof pointers from the claims projection.
  • Brand voice/naming rules and user-owned examples.
  • Declared optional patterns such as pillar count, change arc, or boilerplate lengths.

Instructions

Runtime Reads
  • ../../references/registry-event-protocol.md
  • ../../references/runtime-invocation.md
Procedure
  1. 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 drafts as untrusted proposals.
  2. Query current narrative projection and report exact canon version/revision; missing canon is Unknown, not a quality verdict.
  3. Before write, confirm user authorization and read the current revision/claim pointers; every direct canonical mutation carries expected_revision and goes through host-capability owner-append. Actor/auth fields are attribution only.
  4. A canon re-version is one host-capability owner 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.
  5. Preserve old versions in the event stream. versions.md is generated history, not a second hand-maintained ledger.
  6. Validate internal references and claim IDs. Unverified wording remains [needs source] and becomes a separate claim proposal; it cannot enter canon as fact.
  7. Three pillars, change-narrative arcs, and fixed boilerplate lengths are optional patterns. Store the chosen architecture; do not require absent patterns.
  8. Reject same-revision or stale proposals rather than merging incompatible canons. Genuine alternatives remain pending/open decisions.
  9. Regenerate canon.md/versions.md from accepted projection and run verify narrative.

Downstream Dependency

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.

Save Results

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.

Reference Materials

Next Best Skill

1---
2name: narrative-registry
3slug: aaron-narrative-registry
4displayName: "Narrative Registry · 品牌叙事台账"
5summary: "品牌叙事 canon/版本史/语气与命名唯一真相"
6description: '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 记录/语气与命名规范'
7version: "20.1.0"
8license: Apache-2.0
9compatibility: "Claude Code and compatible agent-skill hosts"
10homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
11when_to_use: "Use when recording/querying a brand's canonical positioning, narrative, message hierarchy, proof/claim pointers, voice/naming rules, conditional boilerplates, or accepting/rejecting a complete canon-version proposal."
12argument-hint: "<brand aggregate-id, canon version, or pending-proposal review>"
13metadata: {"author": "aaron-he-zhu", "version": "20.1.0", "discipline": "protocol", "phase": "protocol", "geo-relevance": "low", "hermes": {"tags": ["marketing", "protocol"], "category": "protocol"}, "openclaw": {"emoji": "📖", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
14---
15 
16# Narrative Registry
17 
18The 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.
19 
20## Quick Start
21 
22```text
23Show current canon version and proof/claim pointers for brand-acme.
24Record canon v3 as one complete atomic replacement, superseding v2.
25Review pending narrative proposals and reject partial/internally inconsistent versions.
26```
27 
28## Skill Contract
29 
30**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.
31 
32Narrative 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.
33 
34### Handoff Summary
35 
36Include brand ID, canon version/revision/event ID, superseded version, claim/proof pointers, unresolved contradictions, and one next skill.
37 
38## Data Sources
39 
40- Accepted positioning truth and named alternatives.
41- Complete message hierarchy/narrative authored by Narrative skills.
42- Accepted claim IDs and proof pointers from the claims projection.
43- Brand voice/naming rules and user-owned examples.
44- Declared optional patterns such as pillar count, change arc, or boilerplate lengths.
45 
46## Instructions
47 
48### Runtime Reads
49 
50- `../../references/registry-event-protocol.md`
51- `../../references/runtime-invocation.md`
52 
53### Procedure
54 
551. 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 drafts as untrusted proposals.
562. Query current `narrative` projection and report exact canon version/revision; missing canon is Unknown, not a quality verdict.
573. Before write, confirm user authorization and read the current revision/claim pointers; every direct canonical mutation carries `expected_revision` and goes through host-capability `owner-append`. Actor/auth fields are attribution only.
584. A canon re-version is one host-capability owner `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.
595. Preserve old versions in the event stream. `versions.md` is generated history, not a second hand-maintained ledger.
606. Validate internal references and claim IDs. Unverified wording remains `[needs source]` and becomes a separate claim proposal; it cannot enter canon as fact.
617. Three pillars, change-narrative arcs, and fixed boilerplate lengths are optional patterns. Store the chosen architecture; do not require absent patterns.
628. Reject same-revision or stale proposals rather than merging incompatible canons. Genuine alternatives remain pending/open decisions.
639. Regenerate `canon.md`/`versions.md` from accepted projection and run `verify narrative`.
64 
65## Downstream Dependency
66 
67Before 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.
68 
69## Save Results
70 
71Require 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.
72 
73Capability 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.
74 
75## Reference Materials
76 
77- [Registry event protocol](../../references/registry-event-protocol.md)
78- [TALE benchmark](../../references/tale-benchmark.md)
79- [Claims registry](../offer-claims-registry/SKILL.md)
80- [Security](../../SECURITY.md)
81 
82## Next Best Skill
83 
84- **Author system:** [message-system-architect](../../narrative/architect/message-system-architect/SKILL.md)
85- **Verify truth:** [positioning-truth-tracer](../../narrative/trace/positioning-truth-tracer/SKILL.md)
86- **Cascade:** [narrative-cascade-planner](../../narrative/land/narrative-cascade-planner/SKILL.md)
87- **Audit profile:** [narrative-quality-auditor](../../narrative/evaluate/narrative-quality-auditor/SKILL.md)
88 

Discussion

Alternatives