kai-sdr-reply-triage — Reply Loop

SkillDocs & knowledge

Triage SDR replies and turn inbound responses into safe next actions, CRM handoff notes, suppression updates, objection responses, referrals, and meeting prep triggers. Use when "SDR reply", "triage replies", "outbound replies", "interested reply", "objection reply", "not interested", "unsubscribe", "wrong person", "bounce", "sales follow-up", "booked meeting", or any request to classify and respond to sales development replies.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the kai-sdr-reply-triage — Reply Loop skill

What this skill tells your AI

The instructions your AI receives, as published by cgallic/kai-cmo-harness in harness/skills/kai-sdr-reply-triage/SKILL.md and read by ahel’s review.

Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.

Objective

Every inbound reply ends up as a triage record that names exactly one category, the consent and suppression consequence, the next safe action with an owner, and — only where it is allowed — a drafted response. The record makes the state change explicit: what this reply did to consent, suppression, routing, meeting status, objection state, and CRM state.

The risk this skill exists to remove is a reply that gets answered when it should have been suppressed, escalated, or left alone.

Done when

Work type internal-research — floor E2/C2/O0 (harness/eco-floors.yaml). The triage record itself never leaves the workspace.

  • E2 — the reply record exists at its package path and satisfies harness/skill-contracts/sdr-reply-triage.yaml.
  • C2banned_word_check passes; category, risk tier, suppression action, and evidence fields are all populated.
  • O0 — no outcome obligation on the record.

Sending the drafted response is separate work at the cold-email floor E5/C4/O3: provider send receipt plus suppression-list reconciliation, and CAN-SPAM/GDPR/CASL identity, opt-out, and consent basis verified before send.

Constraints

  • Missing context means a hold, not a draft. Without sender identity, suppression list, message history, and source evidence for the contact, write a triage hold note instead of a send-ready response.
  • Honor opt-outs immediately. Suppress globally; draft nothing beyond an opt-out confirmation where one is required.
  • Do not argue with complaints. Stop the sequence, suppress, route to a human owner.
  • Do not reply to bounces. Mark the contact path invalid and block follow-up on that address.
  • No invented context — no prior relationship, no new claims without evidence.
  • Sensitive, legal, or regulated replies do not get routed without human review.
  • No CRM mutation. Notes, tasks, and field changes are proposals.
  • Under 120 words unless the user asks for a longer sales response. One CTA, one next action.
  • Memory candidates carry a Do not promote until condition and stay unpromoted until it is met.

Categories — classify exactly one primary:

CategoryAction
interestedPrepare meeting handoff and short response. Trigger /kai-sales-meeting-prep.
objectionIdentify objection type and draft one respectful response.
referralCapture referred person, source, and permission trail.
not_nowDraft low-pressure close and future reminder task.
wrong_personAsk for routing only when appropriate. Do not pressure.
opt_outSuppress globally. Do not draft further outreach except opt-out confirmation if required.
bounceMark invalid contact path and block follow-up on that address.
complaintStop sequence, suppress, and route to human owner.
unsubscribe_confirmedRecord suppression and no further action.
needs_human_reviewUse for legal, regulated, sensitive, hostile, ambiguous, or high-value replies.

Context

NeedLoad
Record structure, required fields, gate thresholdsharness/skill-contracts/sdr-reply-triage.yaml
Package schema, ledger status values, memory ledgerharness/skill-contracts/sdr-package.yaml
Opt-out, sender identity, consent, suppression lawharness/references/cold-email-rules.md
Account row, contact row, source evidence, message history, suppression stateworkspace/sdr-operator/<package-slug>/
Booked meeting or buying conversation follow-on/kai-sales-meeting-prep

Output goes to workspace/sdr-operator/<package-slug>/replies/<reply-id>.md. Same path as v1 — downstream tooling does not branch on version.

Trigger /kai-sales-meeting-prep when the reply implies a meeting, demo, call, referral intro, or buying conversation.

Escalate when

  • The reply is legal, regulated, sensitive, hostile, ambiguous, or high-value — category needs_human_review, no draft.
  • Consent basis or suppression state for the contact cannot be established.
  • The reply disputes a claim made in the original outbound message.
  • The safe next action requires a live send, CRM mutation, or calendar action and no approver is named.
  • Reply content contradicts the source evidence the account was built on.

Signals

GitHub stars
47
Forks
6
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
kai-sdr-reply-triage
Source
github.com/cgallic/kai-cmo-harness