Marketing · Step
Reply reader
Sorts replies and updates each person.
What it does
One step of the Write outreach playbook. Goose runs it when you ask for the playbook.
The skill file
What your AI app reads when it runs this skill.
reply-reader
Reads: the replies the marketer pasted or uploaded; research/audience/ledger.csv; the pack the replies answer (outreach/<D>-<slug>/pack.md); ../write-outreach/references/replies-and-objections.md.
Does:
- For each reply: the category (
interested · send-info · question · timing · using-rival · price · wrong-person · not-interested · how-did-you-get-this · no-show · stop · angry · out-of-office · bounce), which touch it answered, and the person's exact words that matter (an objection, a pain phrase, a named rival, a date). - Match to the ledger row by email, then profile URL, then name + root domain (outcomes-ledger's keys). Unmatched replies are shown back, never guessed onto a row — a
stop,angryorbouncefrom an unknown address gets a suppression-only row holding just itskey_hash, the reason and the date (outcomes-ledger § Suppression without personal data); keeping the raw address needs the marketer's yes. The matched rows'sequence_idtells which pack the replies belong to. - The status it gives (replies-and-objections.md table):
replied,meeting,not-a-fit,unsubscribed,do-not-contact,bounced— andrecontact_afterfortiming.stop,angryandbounceare permanent suppressions. - One reply → hand back for the draft answer. A batch → counts by category, by touch and by segment for reading-results.md.
- Pain phrases worth keeping → a request line in this pack's
results-working.md(Quote needed: for research-audience · <phrase, segment, date> · return to: outreach/<D>-<slug>/results-working.md), with no name or email. Unnamed referrals →Find needed:lines there too.
Writes: the ledger through the outcomes-ledger skill (../outcomes-ledger/SKILL.md) (entity: person, statuses only from the replies the marketer gave — never inferred), and the category counts.
Rules: never mark anyone contacted or replied on inference; never draft a pitch to a stop or angry reply; no names, emails or reply text in the brand brain — counts and anonymised phrases only.

