← Back to brief

reference close loop skills

memory · reference_close_loop_skills.md

What these skills do (together)

Closes the prospecting loop end-to-end at the close-and-after side:


Deal closes-won
  ↓
[12:00pm] close-to-onboarding-handoff
  → Word doc to Rachel + draft email + HS proposal + handoffs ledger entry
  ↓
[12:15pm] deal-postmortem-capture (if won OR lost)
  → 5-min capture template surfaces in QB → Joseph answers → ledger + project_postmortems.md
  ↓
[90 days later, Sundays] referral-watchdog
  → eligible-owners detected → drafts referral ask → PWA queue → live-ea sends Mon-Wed
  ↓
Owner replies with referral name+email
  ↓
Live-EA triages inbound → lead-enrichment → SmartLead/postcard pickup → DISCOVERY (loop closed)

Every deal-state transition (close-won, close-lost, 90d-onboarded) now has a system response. None of these used to happen automatically.

File map

SkillHelperSPEC
close-to-onboarding-handoff~/Library/Application Support/SkyRun/handoff_builder.py (python-docx)~/.claude/scheduled-tasks/close-to-onboarding-handoff/SPEC.md
deal-postmortem-capture~/Library/Application Support/SkyRun/postmortem_ledger.py~/.claude/scheduled-tasks/deal-postmortem-capture/SPEC.md
referral-watchdog~/Library/Application Support/SkyRun/referral_eligibility.py~/.claude/scheduled-tasks/referral-watchdog/SPEC.md
State files:

Output dirs:

close-to-onboarding-handoff — Gap D

Trigger: HS deal stage flip to closedwon (compared against KG snapshot)
Cadence: daily 12pm MDT
Output:

Doc sections: Owner / Property / Agreement / Verbal commits / Walkthrough highlights / Special considerations / Next-steps for ops / Provenance.

deal-postmortem-capture — Gap E.1

Trigger: HS deal stage flip to closedwon OR closedlost (compared against ledger)
Cadence: daily 12:15pm MDT
Output:

Capture questions: what worked / what killed it (depending on outcome); top 3 objections; decision drivers; would do again; would change; lessons for scoring model; comparable deal.

Downstream: postmortems.jsonl is labeled training data for predictive scoring v2 (deferred until 50+ records).

referral-watchdog — Gap E.2

Trigger: owners 90+ days post-onboarded passing eligibility filter
Cadence: Sundays 8pm MDT (Joseph reviews Monday; live-ea sends Mon-Wed for best response timing)
Eligibility (per helper):

Output:

Voice: Joseph's calibrated direct + collaborative. Frame as favor not transaction. One specific data point if Track-backed. Low-pressure close.

Hard rules across all three

Loop closure (end-to-end)


[1] Discovery        — property-scout (weekly Mon 6am)
[2] Enrichment       — daily-beenverified-enrichment (daily 6am)
[3] Outreach
    a. SmartLead     — campaigns active (3)
    b. Postcards     — postcard-ledger (Mondays 10am)
[4] Bounce handling  — smartlead-bounce-handler (daily 11am)
[5] Engagement       — live-ea (every 20 min biz hours) + transcript-scan (3x daily) + commitment-tracker (daily 8:30am)
[6] Stall detection  — stalled-deal-watchdog (weekdays 8am)
[7] Walkthrough      — transcript-scan captures + skyrun-builder builds deliverables on-demand
[8] Close            — HS state machine
[9] Onboarding       — close-to-onboarding-handoff (daily 12pm)
[10] Postmortem      — deal-postmortem-capture (daily 12:15pm)
[11] Referral        — referral-watchdog (Sundays 8pm)
                       ↓
                       New prospect intros → step 1

Plus the always-on layers: nightly-consolidation (11pm), daily-data-quality-check (7am), gmail-deep-scan (4x daily), system-hygiene (hourly), SkyRun QB (every 30 min), quarterly-backup (Q1/Q2/Q3/Q4).

Manual operation

bash

Handoff status

python3 "$HOME/Library/Application Support/SkyRun/referral_eligibility.py" handoffs-list

Postmortem status + pending

python3 "$HOME/Library/Application Support/SkyRun/postmortem_ledger.py" status python3 "$HOME/Library/Application Support/SkyRun/postmortem_ledger.py" pending

Postmortem manual append

python3 "$HOME/Library/Application Support/SkyRun/postmortem_ledger.py" append --json /path/to/record.json

Referral eligibility

python3 "$HOME/Library/Application Support/SkyRun/referral_eligibility.py" compute-eligible python3 "$HOME/Library/Application Support/SkyRun/referral_eligibility.py" status python3 "$HOME/Library/Application Support/SkyRun/referral_eligibility.py" asks-recent --days 180

Tuning notes

After 5 handoffs: Rachel-feedback rate (does she ask for additions to future docs?) → fold into template.

After 10 postmortems: capture rate (% within 7d), stub-fallback rate (target <10%); recurring objections inform outreach copy.

After 50 postmortems: build predictive scoring v2 — labels = won/lost, features = KG attributes; deploy as SCORE_V2 column.

After 10 referral asks: reply rate (target >40%); conversion to actual referral name+email shared (target >15%).

After 30 referral asks: A/B test variants (with-data-point vs without; Mon vs Wed send) for conversion lift.

Phase 2 (adam-bd)

All three skills scaffold into bootstrap-package skills-skeleton/_DISABLED/ with operator-namespaced paths. Activate per market when adam-bd has 5+ closed deals to capture/onboard.

Origin

Built 2026-04-27 as Gaps D + E closure in the prospecting-loop walkthrough. Last builds in the close-loop series. Together with stalled-deal-watchdog (cadence), commitment-tracker (self-promises), postcard-ledger (postcard outreach), and smartlead-bounce-handler (deliverability), the prospecting loop is now fully closed end-to-end.