Context
The neo-identity-update skill (ADR 0018) governs Neo's identity across ~30 surfaces in two classes: FACTS (single-source-derive + coherence-check) and FRAMING (audience-segmented against the README apex). It does not govern CTAs / calls-to-action — what we ask a visitor to do. The conversion surface therefore drifts ad-hoc and breaks. Friction→gold candidate raised by @tobiu (2026-06-05): make CTAs a first-class governed dimension so they stay coherent, audience-segmented, and proof-surfacing every time identity is touched.
The Problem (publicly observable)
- The README section that pitches the wedge — "Deploy a Cross-Model AI Engineering Team on Your Own Codebase" — has no CTA: it pitches, then links to docs ("Read …"). A reader who wants the thing has no door.
- The README's only actionable CTAs are
npx neo-app@latest (Quickstart) and Discord/Slack joins (Community) — no audience-segmented door for a non-framework visitor, and no "see the proof" link.
- Neo's strongest evidence that its claims are real — repo stats, merged-PR history over time, public agent review conversations — is fully visible but never surfaced at the claim. The README tells ("706 merged PRs of proof") where it could link the receipts.
- CTAs span multiple surfaces (README hero / Quickstart / Community, portal header) with no single governance → silent drift (e.g. dead/low-retention channels persisting as the primary CTA).
The Architectural Reality
.agents/skills/neo-identity-update/SKILL.md (thin router) → references/update-protocol.md routes to facts-ledger.md (FACTS), framing-governance.md (FRAMING), affected-areas-map.md (surface inventory).
- FACTS = single-source-derive. FRAMING = audience-segmented vs the README apex; anti-pattern = find-replace across surfaces.
- CTAs are a structurally parallel third class — ACTIONS — that the skill should govern across the same
affected-areas-map surfaces.
The Fix
Add the third class via a new reference (e.g. references/cta-governance.md) + hooks in update-protocol.md + entries in affected-areas-map.md. Progressive Disclosure: governance lives in the reference; do NOT bloat the router SKILL.md (per create-skill). Governance principles:
- Every pitch has a door — no surface that pitches a capability may dead-end into docs without a CTA.
- Audience-segmented doors — developer vs decision-maker paths (mirrors FRAMING; no find-replace).
- Proof-surfacing — claims/CTAs link the visible receipts (repo stats, PR history, public agent conversations) so a reader can see the claim is true, not just read it.
- No dead channel as a primary CTA — a CTA target must be live.
- A lead-capture / "talk to us" door exists as a governed CTA type (content business-owned — see Out of Scope).
- Coherence-checked across all
affected-areas-map surfaces on every identity update.
Decision Record impact
aligned-with / extends ADR 0018 — adds a third identity class (ACTIONS) beside FACTS and FRAMING. If the implementer judges this a structural change to the source-of-truth model, amend ADR 0018 (apply the ADR successor-risk audit).
Acceptance Criteria
Out of Scope
- The specific CTA content — the actual offer, lead-capture copy, destination inbox — is a business/product decision (operator-owned), not this ticket. This ticket governs structure + principles; content fills in via a normal
/neo-identity-update run once those decisions exist.
- Editing the README/portal CTAs themselves (downstream identity-update runs).
- Any client/customer naming (skill already forbids it).
Avoided Traps
- Don't bloat the router — CTA governance is a reference, not
SKILL.md content (Progressive Disclosure / create-skill).
- Don't find-replace CTAs across surfaces — same audience-segmentation discipline as FRAMING.
- Don't bake specific offers into the skill — it governs the form of CTAs; the content is business-owned and changes faster than the skill.
Related
- ADR 0018 (identity source-of-truth model) ·
.agents/skills/neo-identity-update/ · create-skill (Progressive Disclosure) · turn-memory-pre-flight.
Origin Session ID: 4870c6b2-ee28-467c-875a-497b961d2a27
Handoff Retrieval Hint: query_raw_memories("CTA governance third identity class neo-identity-update FACTS FRAMING ACTIONS")
Context
The
neo-identity-updateskill (ADR 0018) governs Neo's identity across ~30 surfaces in two classes: FACTS (single-source-derive + coherence-check) and FRAMING (audience-segmented against the README apex). It does not govern CTAs / calls-to-action — what we ask a visitor to do. The conversion surface therefore drifts ad-hoc and breaks. Friction→gold candidate raised by @tobiu (2026-06-05): make CTAs a first-class governed dimension so they stay coherent, audience-segmented, and proof-surfacing every time identity is touched.The Problem (publicly observable)
npx neo-app@latest(Quickstart) and Discord/Slack joins (Community) — no audience-segmented door for a non-framework visitor, and no "see the proof" link.The Architectural Reality
.agents/skills/neo-identity-update/SKILL.md(thin router) →references/update-protocol.mdroutes tofacts-ledger.md(FACTS),framing-governance.md(FRAMING),affected-areas-map.md(surface inventory).affected-areas-mapsurfaces.The Fix
Add the third class via a new reference (e.g.
references/cta-governance.md) + hooks inupdate-protocol.md+ entries inaffected-areas-map.md. Progressive Disclosure: governance lives in the reference; do NOT bloat the routerSKILL.md(percreate-skill). Governance principles:affected-areas-mapsurfaces on every identity update.Decision Record impact
aligned-with / extends ADR 0018— adds a third identity class (ACTIONS) beside FACTS and FRAMING. If the implementer judges this a structural change to the source-of-truth model, amend ADR 0018 (apply the ADR successor-risk audit).Acceptance Criteria
references/cta-governance.mddefines the ACTIONS class + the 6 principles; routerSKILL.mdgains only a thin one-line hook (no router bloat).update-protocol.mdroutes to CTA governance;affected-areas-map.mdinventories the CTA-bearing surfaces.turn-memory-pre-flightapplied (skill substrate change).Out of Scope
/neo-identity-updaterun once those decisions exist.Avoided Traps
SKILL.mdcontent (Progressive Disclosure /create-skill).Related
.agents/skills/neo-identity-update/·create-skill(Progressive Disclosure) ·turn-memory-pre-flight.Origin Session ID: 4870c6b2-ee28-467c-875a-497b961d2a27 Handoff Retrieval Hint:
query_raw_memories("CTA governance third identity class neo-identity-update FACTS FRAMING ACTIONS")