# Account Copy

> Emits reader-specific account copy — outreach sequences, follow-ups, one-pagers, case-study atoms, QBR narratives, renewal and expansion notes — by selecting a typed sequence blueprint and filling its slots only with facts the account already holds, so every piece reads like it was written for one named reader and never like mail-merge. Use when the user says "outreach for [prospect]", "follow-up email", "nurture sequence", "one-pager", "case study", "QBR narrative", "renewal note", "win-back", "expansion copy", or when a factory contract includes 07-copy. Runs one reader or batches a whole list with per-reader verification. Every claim cites SYNTHESIS or is cut; refuses unpersonalizable sends and "just checking in" revivals.

- Skill: `manutej/account-copy` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add manutej/account-copy`
- Raw SKILL.md: https://api.skillmd.com/api/skills/manutej/account-copy/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: manutej (https://skillmd.com/u/manutej)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/manutej/account-copy

---


# Account-copy — typed sequence blueprints that emit reader-specific pieces

Copy here is not writing — it is **evidence arranged to move one named reader one step**. The unit of production is a typed **sequence blueprint** (a meta-prompt: `../forge/references/meta-meta-map.md` Level 2). A blueprint carries `{{slots}}`; each slot is filled only with a fact this account demonstrably holds — a tell from SYNTHESIS, a proof atom, a verbatim prior-thread line. Blueprints are shared across all clients; the *fills* are per-reader. This is what lets us run copy at scale without producing template-smelling mail-merge: the skeleton is reused, the load-bearing sentences are unique to the reader.

Binding law: `../forge/references/evidence-rules.md` outranks persuasion. A claim without a SYNTHESIS citation gets cut or reworded as an honest question — never smoothed over. Plain language: no adjective may do a number's job.

## H1 · Typed contract

Fill at intake; `UNKNOWN` is legal, never invented.

```
PIECE_TYPE:        {net-new-outreach|post-meeting-advance|dormant-revival|renewal-winback|expansion|one-pager|case-atoms|qbr-narrative}
READER_PERSONA:    str            # named human when known, else role archetype
READER_ROLE:       {champion|economic-buyer|technical-evaluator|procurement|end-user|gatekeeper}  # drives what evidence lands
RELATIONSHIP_WARMTH: {cold|warm|hot}   # inherited factory slot — tunes voice matrix + CTA-ladder start
CHANGE_APPETITE:   {augment|transform|explore}|UNKNOWN  # what we may propose; mismatching it makes us the risk
SYNTHESIS_REF:     path            # 01-research/SYNTHESIS.md — the ONLY source of tells + numbers (never the raw dossier)
PROOF_ATOMS_REF:   path|UNKNOWN    # FACTORY/atoms.md proof units usable as {{our_proof_atom}}
PRIOR_THREAD:      str|UNKNOWN     # verbatim last exchange (warm/hot only); UNKNOWN forces cold treatment
CHANNEL:           {email|linkedin|sms}   # gates length, formatting, and compliance surface
COMPLIANCE_CTX:    str            # jurisdiction + list type (e.g. cold B2B email → CAN-SPAM: physical address + opt-out required)
SUPPRESSION_REF:   path|UNKNOWN    # do-not-contact / already-in-sequence list to dedupe against
```

Typed outputs (write to `07-copy/`):

```
PIECE:             md file per PIECE_TYPE (schema in H2)
SLOT_LEDGER:       07-copy/_slot-ledger.md   # every {{slot}} → the held fact + its SYNTHESIS/atom citation (per reader)
PREDICATE_REPORT:  a passed/failed line per H6 predicate, appended to the piece footer
ATOMS:             phrase/objection/conversion atoms → FACTORY/atoms.md (H3 Capture)
```

## H2 · Artifact specs + acceptance checklists

Every piece is measurable. Word budgets are ceilings, CTA count is exact, personalization slots are verified against the ledger.

1. **`net-new-outreach.md`** — 3–5 touches. Full per-touch grammar (purpose, 2 subject-line patterns, body skeleton, CTA-ladder position, spacing, stop conditions) in `references/sequence-blueprints.md`. Body budget: **≤120 words cold, ≤160 warm.** Exactly **one CTA per touch.** First line is the reader's tell, never our name (cold). Personalization slots `{{their_tell}} {{our_proof_atom}} {{cta}}` — every one filled from the ledger or the touch does not ship.
2. **`post-meeting-advance.md`** — recap (decisions · owners · dates) + one advance up the CTA ladder (look → call → pilot → sign). References the meeting verbatim; zero re-introduction.
3. **`dormant-revival.md`** — keyed to a **NEW tell** surfaced since the thread died. Opens on that tell, not on the silence. "Just checking in" is a refusal condition (H9).
4. **`renewal-winback.md`** — period value delivered (dashboard-sourced, cited) → what changed → the renewal/return step with honest expiry.
5. **`expansion.md`** — champion-momentum pattern: individual win → organizational standard; fragmentation named as the counter-risk (`references/voice-matrices.md`).
6. **`one-pager.md`** — the sign-here bijection in prose: situation (their numbers) → what we do → proof → pricing shape → next step. Printable; sourced footnotes.
7. **`case-atoms.md`** — reusable proof units (grammar below). Mint once, reuse across decks/proposals/outreach.
8. **`qbr-narrative.md`** — numbers vs. commitments (dashboard-sourced), underperformance stated **plainly and first**, the fix, expansion path traced to fresh tells.

**Case-atom grammar** (every atom): `situation · action · measured cited result · 1-sentence rendering · 1-paragraph rendering`. The result carries `[source · yyyy-mm-dd]`. The 1-sentence rendering is the `{{our_proof_atom}}` slot fill for outreach.

**Acceptance checklist (all must pass before a piece ships):**
- [ ] Body within word budget for CHANNEL + WARMTH.
- [ ] Exactly one CTA; next step + date explicit; expiry honest (no fake urgency).
- [ ] Every `{{slot}}` resolved in `_slot-ledger.md` to a held fact + citation; zero unfilled or invented slots.
- [ ] Name-swap test passes (H6): swap the reader's company name and the piece must break.
- [ ] Warmth × appetite cell of `references/voice-matrices.md` honored (lexicon scan clean).
- [ ] COMPLIANCE_CTX satisfied for the channel (opt-out + identity where required).
- [ ] Reader not on SUPPRESSION_REF; not duplicated across a concurrent sequence.
- [ ] Stage-3b corrections applied before send (`../forge/references/evidence-rules.md` §5).

## H3 · Loop — Frame → Do → Review → Capture

- **Frame.** Read SYNTHESIS_REF (never the raw dossier — one-directional flow). Select the blueprint for PIECE_TYPE. Select the voice matrix cell = WARMTH × CHANGE_APPETITE. Confirm PRIOR_THREAD is verbatim (warm/hot) or downgrade to cold. Check SUPPRESSION_REF.
- **Do.** For each slot in the blueprint, find the held fact and record it in `_slot-ledger.md` with its citation *before* writing the sentence. Fill the skeleton. If a slot has no held fact, either cut the sentence or convert it to an honest question — never invent to complete it.
- **Review.** Run the H6 predicate battery; write the PREDICATE_REPORT. Route objections through `references/objection-protocol.md`. Hand off to Stage-3b.
- **Capture.** Mint atoms to `FACTORY/atoms.md` (via `mint-atoms`): **phrase atoms** (a line that moved or that fell flat, with which reader-role), **objection patterns** (objection → what it meant → the evidence route that answered it), **sequence-conversion notes** (which touch/subject variant replied, per warmth). A run that mints no atom did not complete.

## H4 · Scale — copy for N readers

- **Blueprints are shared, fills are private.** The blueprint file is identical across clients; each reader gets its own `_slot-ledger.md` block. One reader's tells never bleed into another's copy.
- **Batch generation, per-reader verification.** Generate the batch from one blueprint, then run H6 predicates **per reader** — the name-swap test especially catches slots that silently fell back to generic filler across the batch.
- **Suppression + dedupe discipline.** Before generating, diff the target list against SUPPRESSION_REF and against every other live sequence; a reader appears in at most one active sequence. Log removals.
- **Fan-out.** One subagent per reader (or per small batch), context-complete prompt = blueprint + that reader's SYNTHESIS slice + matrix cell. Subagents return the piece + ledger + predicate report; they never invent facts to fill a slot — an unfillable slot comes back flagged.

## H5 · Encoded judgment (references)

Depth lives in three dense references — read the one you need:
- `references/sequence-blueprints.md` — typed blueprints (meta-prompts) for cold/warm/hot × the standard arcs: per-touch purpose, subject-line grammar, body skeleton + slot map, CTA-ladder position, send-spacing, stop conditions, channel adaptations.
- `references/voice-matrices.md` — warmth × appetite as concrete linguistic rules: sentence-length bounds, verb classes, forbidden lexicon, first-line rules, the ~3:1 their-company : self pronoun ratio (cold), the champion-momentum templates.
- `references/objection-protocol.md` — objection taxonomy → what each means beneath → evidence route → response skeleton → honest-unknown branch → disqualifier/stop rules.

## H6 · Checkable predicates

Run every one; record pass/fail in the PREDICATE_REPORT. Any fail blocks the send.
- **Name-swap test:** substitute another company's name/facts. If the piece still reads fine, it is generic — rewrite around the reader's tells. Automated as a batch check in H4.
- **Citation check:** every factual claim traces to SYNTHESIS_REF via the ledger, or it is cut.
- **CTA count:** exactly one. Zero = no ask; two = diluted — both fail.
- **Lexicon scan:** zero forbidden terms (`references/voice-matrices.md`): cutting-edge, seamless, synergy, revolutionize, "just checking in", manufactured urgency.
- **Slot-fill audit:** no unresolved `{{}}` and no slot filled from anything but a held fact.
- **Expiry honesty:** any deadline stated is real.

## H7 · Structure

This SKILL.md is the index and generation procedure; the three `references/` files carry the depth. **Generation procedure:** select blueprint → verify held facts for every slot (write the ledger) → fill → run H6 predicates (name-swap, citation, CTA count, lexicon scan, slot-fill, expiry) → Stage-3b → ship to `07-copy/`.

## H8 · Core invariants

Evidence-or-cut (never invent to fill a slot). Stage-3b before any send. Plain language, no internal machinery client-facing. No fake familiarity — PRIOR_THREAD verbatim or treat as cold. Honest expiry. One-directional flow: SYNTHESIS → copy, never dossier → copy, never number copied piece-to-piece. Refined input ⇒ regenerate the piece, never hand-patch a sent draft (`../forge/references/factory-schema.md` §5).

## H9 · DONE + refusals

**DONE** when: piece(s) exist in `07-copy/` within budget; `_slot-ledger.md` resolves every slot to a cited held fact; all H6 predicates pass; acceptance checklist passes; COMPLIANCE_CTX satisfied; suppression/dedupe applied; Stage-3b block present; ≥1 atom minted.

**Refuse to:** send anything that cannot be personalized from held facts (an unfillable `{{their_tell}}` is a refusal, not a blank); make any claim without SYNTHESIS backing; revive a dormant thread with "just checking in" or any non-tell pretext; fabricate urgency or a false expiry; contact a reader on SUPPRESSION_REF or already in a live sequence; fake prior familiarity when PRIOR_THREAD is UNKNOWN.

## H10 · Self-improvement hooks

Each run records: which subject variant + first line replied vs. died (per warmth/role) → sequence-conversion atoms tune subject-line grammar; which objection recurred and which evidence route answered it → objection-protocol atoms; which phrase moved or fell flat → phrase atoms. Feed corrections through `mint-atoms`; trace each human edit to the slot/rule/matrix cell that allowed it and bump the blueprint. Generalization check: a new phrase/objection pattern must hold for ≥2 readers of the same role before it becomes a shared prior.

