{
  "name": "self-promotion",
  "family": "the loop",
  "description": "The build's standing procedure for promoting itself — deciding whether, whom, when, on which channel, and with which artifact to make contact whenever something ships or a reply lands. Governs the allocation, not the copy (outreach-law governs the copy). Load whenever a new article, capability, receipt, resolved defect, or inbound reply changes what the build has to show someone, or when planning any post, email, or paid spend about the build itself.",
  "body": "\n# Self-Promotion\n\nThe build promotes itself the way it does everything else: the decision is computed from recorded inputs, the computation lands on the ledger before the action, and the person selected can open the arithmetic that selected them. This skill governs **whether, whom, when, on which channel, and with which artifact**. It never governs the copy — `outreach-law` owns every sentence of any first contact, and `post-to-x` owns the X voice.\n\nThe machinery this skill drives is documented publicly at https://miscsubjects.com/a/outreach-machinery — discovery, enrichment, verification, scoring, drafting, review, the send gate, tracking, channels, creative generation, the paid rows, and the gap list. Read that page as the capability inventory; read this skill as the decision procedure over it.\n\n## Trigger\n\nLoad when any of these happens:\n\n- something ships — an article, a capability row, a receipt worth showing, a resolved defect, a measurement\n- a reply, opt-out, complaint, or reviewer verdict lands\n- anyone plans a post, email, message, or paid spend about the build\n- a new audience class is proposed, or an existing class's evidence changes\n\n## Resolve in order\n\n1. What shipped, and which audience classes is it actually relevant to? None → stop. No contact happens on zero novelty.\n1. For each moved class: what is now the single strongest artifact to show them — the newest receipt, page, or measurement that speaks to *their* loss?\n1. Does the allocation change? Run it; do not estimate it. The equation and its terms are on the outreach-machinery page; the run writes its full arithmetic to the ledger before anything else may happen.\n1. Is every selected contact permitted? Published organizational address, never contacted before, not suppressed, channel appropriate (cold contact is email only — messaging channels are reply and warm channels; X and Reddit are broadcast and public reply, never cold DM).\n1. Has the owner reviewed the exact body of every first contact to a class? No send without it.\n1. Does the outbound message carry its own selection receipt — the token link that lets the recipient open why they were chosen?\n1. Does it ask the three questions instead of asserting significance?\n1. After anything public: is it signed `— <Model> (<surface>)`?\n\n## Law\n\n- **SP01 · Novelty gates contact** — No new relevant material for a class means no contact with that class. The novelty term can only zero the allocation, never inflate it. The build is structurally incapable of a drip sequence, and any change that would let it run one is a violation, not a feature.\n- **SP02 · The allocation is computed, recorded, then acted on** — Whom to contact, how many, on which channel, with which artifact is the output of the allocation equation, run against stored class rows, written to the ledger as one object (policy version, every input term, the resulting volumes, the selected record ids) before any draft is written. An allocation that cannot be replayed cannot be acted on.\n- **SP03 · Permission is a gate, not a weight** — A published organizational address on a permitted channel, or nothing. Suppressed means never again. One address is contacted at most once without a reply, ever. No purchased lists, no guessed addresses, no cold direct messages on any channel, no scraping behind a login.\n- **SP04 · The recipient can open why** — Every outbound message links the arithmetic that selected its recipient, audience-bound so only they can open it. Class-level allocations are public; a named recipient's record never is.\n- **SP05 · Ask, don't assert** — The message asks the three questions: where is this most commercially valuable and to whom; what is the strongest objection the gauntlet log does not already contain; which of the build's claims about itself do not survive contact with your practice. Significance is theirs to judge, and their answer is recorded, attributed, wherever it lands.\n- **SP06 · Signal moves two things** — What comes back (replies, stops, complaints, reviewer verdicts, traffic, fetches of machine-readable surfaces, paid metrics) updates the class priors AND the gap list. A class that responds through a channel the build lacks turns that absence into a ranked build task. Promotion output steers build input; that edge is the point.\n- **SP07 · Owner review before first contact** — No first contact to any class without the owner having reviewed the exact recipient, subject, and body. The CONFIRM token, the never-twice check, the postal-address and domain-authentication preconditions all stay exactly as the send gate enforces them.\n- **SP08 · Rule changes are versioned and checked for collapse** — Every edit to drafting or allocation rules writes an `outreach_rule_versions` row, and the shape clustering is re-run afterwards. A rule change that collapses the corpus onto one template is reverted, not defended.\n- **SP09 · Sign public work** — Every public post carries `— <Model> (<surface>)` as its last line, inside the channel's length limit.\n- **SP10 · No fabrication anywhere in the loop** — No invented recipients, replies, engagement numbers, or receipts. A channel works when the provider's own identifier says so; a post exists when its status URL resolves. The honest current number (including zero) beats any argument.\n- **SP11 · Paid follows proven** — The paid rows spend nothing on a hypothesis the free lanes have not moved first. Paid delivery enters the allocation as one more channel with a cost term, never as a substitute for having something worth showing.\n\n## After approval, after a send — the standing order\n\n- **SP12 · Peer review before first send** — Before wave-one to any class, the exact draft bodies go to independent model families for KEEP/CHANGE/DELETE review, the receipts are cited in the public record, and convergent findings are applied before staging. Exercised 2026-07-30: three families reviewed five drafts (inv_j9hcpxketv, inv_pu9flpr6d3, inv_8rxiu0po4g), two came back clean, three openers were rewritten to their convergent finding — the opener must observe the recipient, never the recipient's industry.\n- **SP13 · Post-send, five rules, decided in advance** — A reply is recorded, moves the class prior, and is answered by a person. A one-word no writes permanent suppression. No reply earns at most a follow-up, only on positive novelty, three touches ceiling per address, ever. A complaint is a defect against the class and copy shape, not the recipient. Every event updates the allocation inputs on the ledger before the next wave computes.\n- **SP14 · Receipts go back into the article** — Send receipts, reply outcomes, and prior movements are added to /a/outreach-machinery as they happen. The public page tracks the loop's actual state; a page that describes machinery whose live state it hides is marketing, and banned.\n\n## The loop\n\n1. Something ships.\n2. Novelty flips for the classes it is relevant to.\n3. The allocation recomputes and lands on the ledger.\n4. Drafts are written under outreach-law, reviewed by the owner, sent through the gate.\n5. Signal returns and moves the priors and the gap list.\n6. The gap list changes what gets built; what gets built is step 1.\n\nEach hop is a receipt. The build's account of its own promotion is the ledger, not its memory.\n",
  "raw": "---\nname: self-promotion\ndescription: The build's standing procedure for promoting itself — deciding whether, whom, when, on which channel, and with which artifact to make contact whenever something ships or a reply lands. Governs the allocation, not the copy (outreach-law governs the copy). Load whenever a new article, capability, receipt, resolved defect, or inbound reply changes what the build has to show someone, or when planning any post, email, or paid spend about the build itself.\n---\n\n# Self-Promotion\n\nThe build promotes itself the way it does everything else: the decision is computed from recorded inputs, the computation lands on the ledger before the action, and the person selected can open the arithmetic that selected them. This skill governs **whether, whom, when, on which channel, and with which artifact**. It never governs the copy — `outreach-law` owns every sentence of any first contact, and `post-to-x` owns the X voice.\n\nThe machinery this skill drives is documented publicly at https://miscsubjects.com/a/outreach-machinery — discovery, enrichment, verification, scoring, drafting, review, the send gate, tracking, channels, creative generation, the paid rows, and the gap list. Read that page as the capability inventory; read this skill as the decision procedure over it.\n\n## Trigger\n\nLoad when any of these happens:\n\n- something ships — an article, a capability row, a receipt worth showing, a resolved defect, a measurement\n- a reply, opt-out, complaint, or reviewer verdict lands\n- anyone plans a post, email, message, or paid spend about the build\n- a new audience class is proposed, or an existing class's evidence changes\n\n## Resolve in order\n\n1. What shipped, and which audience classes is it actually relevant to? None → stop. No contact happens on zero novelty.\n1. For each moved class: what is now the single strongest artifact to show them — the newest receipt, page, or measurement that speaks to *their* loss?\n1. Does the allocation change? Run it; do not estimate it. The equation and its terms are on the outreach-machinery page; the run writes its full arithmetic to the ledger before anything else may happen.\n1. Is every selected contact permitted? Published organizational address, never contacted before, not suppressed, channel appropriate (cold contact is email only — messaging channels are reply and warm channels; X and Reddit are broadcast and public reply, never cold DM).\n1. Has the owner reviewed the exact body of every first contact to a class? No send without it.\n1. Does the outbound message carry its own selection receipt — the token link that lets the recipient open why they were chosen?\n1. Does it ask the three questions instead of asserting significance?\n1. After anything public: is it signed `— <Model> (<surface>)`?\n\n## Law\n\n- **SP01 · Novelty gates contact** — No new relevant material for a class means no contact with that class. The novelty term can only zero the allocation, never inflate it. The build is structurally incapable of a drip sequence, and any change that would let it run one is a violation, not a feature.\n- **SP02 · The allocation is computed, recorded, then acted on** — Whom to contact, how many, on which channel, with which artifact is the output of the allocation equation, run against stored class rows, written to the ledger as one object (policy version, every input term, the resulting volumes, the selected record ids) before any draft is written. An allocation that cannot be replayed cannot be acted on.\n- **SP03 · Permission is a gate, not a weight** — A published organizational address on a permitted channel, or nothing. Suppressed means never again. One address is contacted at most once without a reply, ever. No purchased lists, no guessed addresses, no cold direct messages on any channel, no scraping behind a login.\n- **SP04 · The recipient can open why** — Every outbound message links the arithmetic that selected its recipient, audience-bound so only they can open it. Class-level allocations are public; a named recipient's record never is.\n- **SP05 · Ask, don't assert** — The message asks the three questions: where is this most commercially valuable and to whom; what is the strongest objection the gauntlet log does not already contain; which of the build's claims about itself do not survive contact with your practice. Significance is theirs to judge, and their answer is recorded, attributed, wherever it lands.\n- **SP06 · Signal moves two things** — What comes back (replies, stops, complaints, reviewer verdicts, traffic, fetches of machine-readable surfaces, paid metrics) updates the class priors AND the gap list. A class that responds through a channel the build lacks turns that absence into a ranked build task. Promotion output steers build input; that edge is the point.\n- **SP07 · Owner review before first contact** — No first contact to any class without the owner having reviewed the exact recipient, subject, and body. The CONFIRM token, the never-twice check, the postal-address and domain-authentication preconditions all stay exactly as the send gate enforces them.\n- **SP08 · Rule changes are versioned and checked for collapse** — Every edit to drafting or allocation rules writes an `outreach_rule_versions` row, and the shape clustering is re-run afterwards. A rule change that collapses the corpus onto one template is reverted, not defended.\n- **SP09 · Sign public work** — Every public post carries `— <Model> (<surface>)` as its last line, inside the channel's length limit.\n- **SP10 · No fabrication anywhere in the loop** — No invented recipients, replies, engagement numbers, or receipts. A channel works when the provider's own identifier says so; a post exists when its status URL resolves. The honest current number (including zero) beats any argument.\n- **SP11 · Paid follows proven** — The paid rows spend nothing on a hypothesis the free lanes have not moved first. Paid delivery enters the allocation as one more channel with a cost term, never as a substitute for having something worth showing.\n\n## After approval, after a send — the standing order\n\n- **SP12 · Peer review before first send** — Before wave-one to any class, the exact draft bodies go to independent model families for KEEP/CHANGE/DELETE review, the receipts are cited in the public record, and convergent findings are applied before staging. Exercised 2026-07-30: three families reviewed five drafts (inv_j9hcpxketv, inv_pu9flpr6d3, inv_8rxiu0po4g), two came back clean, three openers were rewritten to their convergent finding — the opener must observe the recipient, never the recipient's industry.\n- **SP13 · Post-send, five rules, decided in advance** — A reply is recorded, moves the class prior, and is answered by a person. A one-word no writes permanent suppression. No reply earns at most a follow-up, only on positive novelty, three touches ceiling per address, ever. A complaint is a defect against the class and copy shape, not the recipient. Every event updates the allocation inputs on the ledger before the next wave computes.\n- **SP14 · Receipts go back into the article** — Send receipts, reply outcomes, and prior movements are added to /a/outreach-machinery as they happen. The public page tracks the loop's actual state; a page that describes machinery whose live state it hides is marketing, and banned.\n\n## The loop\n\n1. Something ships.\n2. Novelty flips for the classes it is relevant to.\n3. The allocation recomputes and lands on the ledger.\n4. Drafts are written under outreach-law, reviewed by the owner, sent through the gate.\n5. Signal returns and moves the priors and the gap list.\n6. The gap list changes what gets built; what gets built is step 1.\n\nEach hop is a receipt. The build's account of its own promotion is the ledger, not its memory.\n",
  "files": [
    {
      "path": "SKILL.md",
      "bytes": 7876
    }
  ],
  "has_license_file": false,
  "source": {
    "repo": "this build",
    "url": "/a/outreach-machinery",
    "license": "site"
  },
  "prevents": [
    {
      "date": "2026-07-06",
      "failure": "Eleven external emails were sent by the outreach machinery before the confirmation gate existed, and the single-send path recorded no tracking rows — activity a promotion system took that its own records understated. Contact decisions are now computed, recorded on the ledger before the send, and gated on owner review."
    },
    {
      "date": "2026-07-25",
      "failure": "A personalisation rule strict enough to ban every available observation left one legal opener, and 121 drafts converged on the same sentence under the same four-word subject — interchangeable mail produced by ever-stricter rules. Rule changes now version to outreach_rule_versions and re-run the shape clustering to prove no collapse."
    }
  ],
  "canonical_source": ".claude/skills/self-promotion/SKILL.md",
  "sibling": ".agents/skills/self-promotion/SKILL.md"
}