Not in the top 1,000 by GitHub stars
markfulton/ai-employees
Open source AI Employees. 8 scheduled business roles, 60 routines, on Claude Code and 10 other harnesses. They drive your browser the way you do and improve every run. You own the files.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
employees/ad-manager-employee/routines/ads-account-intake/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/ad-manager-employee/routines/ads-account-read/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/ad-manager-employee/routines/ads-build-desk/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/ad-manager-employee/routines/ads-change-list/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/ad-manager-employee/routines/ads-creative-retro/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/ad-manager-employee/routines/ads-creative-studio/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/ad-manager-employee/routines/ads-desk-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-charter-and-fleet-audit/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-decision-brief/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-decision-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-fault-dossier/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-fleet-reconcile/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-market-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/chief-of-staff/routines/cos-metrics-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-churn-watch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-deflection-desk/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-desk-intake/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-desk-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-inbox-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-reply-desk/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-satisfaction-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/customer-satisfaction-employee/routines/csat-taxonomy-refresh/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-board-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-icp-refresh/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-intake-and-dashboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-launch-step-runner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-outreach-queue/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-paid-and-tracking-guard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-scoreboard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/gtm-engineer/routines/gtm-signal-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-desk-setup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-desk-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-first-touch-drafts/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-followup-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-pipeline-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-prospect-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/sales-employee/routines/sales-qualification-refresh/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-answer-visibility/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-calendar-refill/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-draft-run/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-index-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-intake-and-map/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-publish-run/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-rank-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/seo-employee/routines/seo-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-calendar-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-draft-queue/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-engagement-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-intake-and-voice/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-material-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-performance-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/social-media-employee/routines/soc-publish-run/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-dependency-run/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-fix-runner/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-guardrail-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-inventory-refresh/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-platform-guard/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-site-sweep/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-standup/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
employees/web-dev-employee/routines/web-weekly-report/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
skills/hire/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Network or broad shell
020feb3d74d9 → 2cdd34e1f0d7
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 020feb3d74d9
No earlier version was observed for comparison.
Verified commit 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577
git clone --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git .hotskills/markfulton-ai-employees && git -C .hotskills/markfulton-ai-employees checkout --detach 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577
# Copy each selected skill directory from .hotskills/markfulton-ai-employees into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/markfulton/ai-employees.git .hotskills/markfulton-ai-employees && git -C .hotskills/markfulton-ai-employees checkout --detach 2cdd34e1f0d7bfa5b9dfadecf3d72b525fbb1577
# Copy each selected skill directory from .hotskills/markfulton-ai-employees into .agents/skills/<skill-name>/Heat
7.6- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- ads-account-intake
employees/ad-manager-employee/routines/ads-account-intake - ads-account-read
employees/ad-manager-employee/routines/ads-account-read - ads-build-desk
employees/ad-manager-employee/routines/ads-build-desk - ads-change-list
employees/ad-manager-employee/routines/ads-change-list - ads-creative-retro
employees/ad-manager-employee/routines/ads-creative-retro - ads-creative-studio
employees/ad-manager-employee/routines/ads-creative-studio - ads-desk-standup
employees/ad-manager-employee/routines/ads-desk-standup - cos-charter-and-fleet-audit
employees/chief-of-staff/routines/cos-charter-and-fleet-audit - cos-decision-brief
employees/chief-of-staff/routines/cos-decision-brief - cos-decision-review
employees/chief-of-staff/routines/cos-decision-review - cos-fault-dossier
employees/chief-of-staff/routines/cos-fault-dossier - cos-fleet-reconcile
employees/chief-of-staff/routines/cos-fleet-reconcile - cos-market-sweep
employees/chief-of-staff/routines/cos-market-sweep - cos-metrics-review
employees/chief-of-staff/routines/cos-metrics-review - csat-churn-watch
employees/customer-satisfaction-employee/routines/csat-churn-watch - csat-deflection-desk
employees/customer-satisfaction-employee/routines/csat-deflection-desk - csat-desk-intake
employees/customer-satisfaction-employee/routines/csat-desk-intake - csat-desk-standup
employees/customer-satisfaction-employee/routines/csat-desk-standup - csat-inbox-sweep
employees/customer-satisfaction-employee/routines/csat-inbox-sweep - csat-reply-desk
employees/customer-satisfaction-employee/routines/csat-reply-desk - csat-satisfaction-report
employees/customer-satisfaction-employee/routines/csat-satisfaction-report - csat-taxonomy-refresh
employees/customer-satisfaction-employee/routines/csat-taxonomy-refresh - gtm-board-standup
employees/gtm-engineer/routines/gtm-board-standup - gtm-icp-refresh
employees/gtm-engineer/routines/gtm-icp-refresh - gtm-intake-and-dashboard
employees/gtm-engineer/routines/gtm-intake-and-dashboard - gtm-launch-step-runner
employees/gtm-engineer/routines/gtm-launch-step-runner - gtm-outreach-queue
employees/gtm-engineer/routines/gtm-outreach-queue - gtm-paid-and-tracking-guard
employees/gtm-engineer/routines/gtm-paid-and-tracking-guard - gtm-scoreboard
employees/gtm-engineer/routines/gtm-scoreboard - gtm-signal-sweep
employees/gtm-engineer/routines/gtm-signal-sweep - sales-desk-setup
employees/sales-employee/routines/sales-desk-setup - sales-desk-standup
employees/sales-employee/routines/sales-desk-standup - sales-first-touch-drafts
employees/sales-employee/routines/sales-first-touch-drafts - sales-followup-sweep
employees/sales-employee/routines/sales-followup-sweep - sales-pipeline-review
employees/sales-employee/routines/sales-pipeline-review - sales-prospect-sweep
employees/sales-employee/routines/sales-prospect-sweep - sales-qualification-refresh
employees/sales-employee/routines/sales-qualification-refresh - seo-answer-visibility
employees/seo-employee/routines/seo-answer-visibility - seo-calendar-refill
employees/seo-employee/routines/seo-calendar-refill - seo-draft-run
employees/seo-employee/routines/seo-draft-run - seo-index-sweep
employees/seo-employee/routines/seo-index-sweep - seo-intake-and-map
employees/seo-employee/routines/seo-intake-and-map - seo-publish-run
employees/seo-employee/routines/seo-publish-run - seo-rank-review
employees/seo-employee/routines/seo-rank-review - seo-standup
employees/seo-employee/routines/seo-standup - soc-calendar-standup
employees/social-media-employee/routines/soc-calendar-standup - soc-draft-queue
employees/social-media-employee/routines/soc-draft-queue - soc-engagement-sweep
employees/social-media-employee/routines/soc-engagement-sweep - soc-intake-and-voice
employees/social-media-employee/routines/soc-intake-and-voice - soc-material-sweep
employees/social-media-employee/routines/soc-material-sweep - soc-performance-review
employees/social-media-employee/routines/soc-performance-review - soc-publish-run
employees/social-media-employee/routines/soc-publish-run - web-dependency-run
employees/web-dev-employee/routines/web-dependency-run - web-fix-runner
employees/web-dev-employee/routines/web-fix-runner - web-guardrail-review
employees/web-dev-employee/routines/web-guardrail-review - web-inventory-refresh
employees/web-dev-employee/routines/web-inventory-refresh - web-platform-guard
employees/web-dev-employee/routines/web-platform-guard - web-site-sweep
employees/web-dev-employee/routines/web-site-sweep - web-standup
employees/web-dev-employee/routines/web-standup - web-weekly-report
employees/web-dev-employee/routines/web-weekly-report - hire
skills/hire
How it works
ads-account-intake
When your agent uses it
Runs once by hand on the first day and once a month after that. On the first run it researches the business from its own public surfaces before asking anything, reads the account structure once, writes the plan folder, seeds the board, creates the creative doctrine, builds the dashboard, and registers the recurring jobs. It asks about exactly two things, the monthly ceiling and the daily cap, because those are the two numbers that decide how much money can leave. On every monthly run it re reads the evidence, corrects what the ledgers prove wrong, and reconciles drift.
What it loads into context
Frontmatter
130 tokensAlways available to the agent
SKILL.md
23,294 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Step 0. The five opening lines, before anything else
- Step 1. Decide which run this is
- Step A1. Ground the run
- Step A2. Build the tree
- Step A3. Read what is already here
- Step A4. Research before you ask anything
- Step A5. Ask only what research could not settle
- Step A6. Write the plan files and the doctrine
- Step A7. Seed the board
- Step A8. Build the dashboard
- Step A9. Reconcile the schedule and register the jobs
- Step A10. Close the first run
- Step B1. Read the evidence
- Step B2. Apply what the evidence says
- Step B3. Drift, reconciled
- Step B3a. The kit itself: a newer version, and a fix worth sending back
- Step B4. Close the monthly pass
- Files, stated once
- What it reports
- Failure behaviour
- Idempotency
- Browser recipes this routine uses
- Handoffs
- Improving this routine
- The one push
- Corrections
Files
../../../../.claude-plugin/marketplace.jsonasset815 bytes../../../../.claude-plugin/marketplace.jsonasset815 bytes../../../../.claude-plugin/marketplace.jsonasset815 bytes../../../../.claude-plugin/plugin.jsonasset1,007 bytes../../../../.claude-plugin/plugin.jsonasset1,007 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytesSKILL.mdcore99,061 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Account intake
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-account-intake`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-account-intake.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the ad manager for this business. This routine is where the system gets its facts.
Everything the other six routines do is downstream of the files you write here. The read routine navigates the accounts you named. The change list ranks against the ceiling you recorded. The studio produces from the positioning you wrote. The retrospective rewrites the doctrine you created. The standup counts against the working days you set.
**The plan folder is the product. The dashboard is how the member looks at it.**View the complete source on GitHubads-account-read
When your agent uses it
Weekdays. The only routine in this kit that opens a screen inside an account that can spend, and everything it does there is read. It confirms the primary conversion event still fired inside the read window before it trusts any other figure, then reads yesterday's spend, delivery, and result rows at account, campaign, ad set, and creative level and appends one row per object per day to the daily metrics ledger with the screen, the date range, and the read date beside every figure. It creates nothing, saves nothing, activates nothing, and spends nothing, unless you released the channel.
What it loads into context
Frontmatter
133 tokensAlways available to the agent
SKILL.md
19,450 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Resolve the two things the whole run depends on
- Step 3. The conversion event check, which runs before you trust any other figure
- Step 4. Read the structure before you read the numbers
- Step 5. Read yesterday, one row per object per day
- Step 6. The guardrail read
- Step 7. Pacing, and closing the browser phase
- Step 8. The findings ledger
- Step 9. Cards into the inbox
- Step 10. Recipes, and the two push cases you own
- Step 11. The invariant, then exactly one run record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore82,863 bytesSKILL.mdcore82,863 bytesSKILL.mdcore82,863 bytesSKILL.mdcore82,863 bytesSKILL.mdcore82,863 bytesSKILL.mdcore82,863 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Account read
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-account-read`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-account-read.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the reader. One run, one job: come back with numbers that are worth something.
Every other routine in this kit spends its whole existence on figures you appended. The change list ranks them. The studio decides what has decayed from them. The retrospective rewrites its own doctrine on them. The standup puts them in front of the member with their coffee. **A wrong number here is not a wrong number here. It is a wrong campaign next week, paid for with the member's money.**
So the craft in this file is not decoration. Verify the query before every figure. Read verdicts off a capture rather than off page text. Never write a figure you did not read on a screen this run. Those three rules are the difference between a ledger and a rumour.View the complete source on GitHubads-build-desk
When your agent uses it
Weekdays. Works the next ready card on the board, one card per run, and assembles what it needs as a complete local file ready to paste: a campaign build sheet, a negative keyword file, a conversion action specification, an audience definition, or an upload packet. The whole step happens in a text editor until you release the ad account in RELEASES.md, and then Step 6a publishes the approved package through a connection you already have and writes a receipt for every id the platform returns.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
19,536 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Pick the card
- Step 3. The board write, made safe
- Step 4. Assemble the sheet
- Step 5. Maintenance form
- Step 6. The browser step, taken only when Step 4.6 asked for it
- Step 6a. Production publication, taken only where `RELEASES.md` names this ad account
- Step 7. Verify the only thing there is to verify
- Step 8. File one card, append one ledger row, close your own
- Step 9. The invariant, then exactly one run record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytesSKILL.mdcore81,885 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Build desk
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-build-desk`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-build-desk.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the desk that turns a decision into a document somebody can execute.
One card per run. You read what it asks for, you assemble the whole thing as a local file, you verify your own artifact by reading it back off disk, and you file one card that tells the member the exact screen and the exact values. **Then you stop.** The object comes into existence when a human presses a control, and that human is not you.
**Behave as though you will not be there when they paste it, because you will not.** Every value has to be unambiguous on the page, with nothing left to infer, nothing left to look up, and no marker anybody has to translate.View the complete source on GitHubads-change-list
When your agent uses it
Weekly, on a Friday, read only everywhere. Scores the week from the daily metrics ledger alone, with the screen and the date range beside every number, then writes the ranked paste ready list of what to change in the account next week. Each line names one change, the exact screen, the current value, the proposed value, and the evidence row it came from. It proposes no change it cannot source, it names no action it took because it takes none, and it spends only where you released it.
What it loads into context
Frontmatter
116 tokensAlways available to the agent
SKILL.md
17,493 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Fix the scoring window before you count anything
- Step 3. Build the working table
- Step 4. Score what moved, and what the applied changes actually did
- Step 5. Rank the changes
- Step 6. The landing page check, taken only when Step 5 asked for it
- Step 7. Source the numbers you are about to publish
- Step 8. Write the change list
- Step 9. File the cards and the ledger rows
- Step 10. Archive, state, lock, record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytesSKILL.mdcore72,153 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Weekly change list
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-change-list`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-change-list.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the Friday reviewer. One run, one file, and it is the file this Employee is judged on.
`changes/change-list-YYYY-Www.md` is the ranked, paste ready list of what to change in the account next week. Every line names one change, the exact screen it is made on, the current value, the proposed value, and the evidence row it came from. **A member should be able to work that file top to bottom with the account open in another tab and never once have to ask what a line means or where a number came from.**
You are its only writer. Nothing else in this kit proposes a change.View the complete source on GitHubads-creative-retro
When your agent uses it
Monthly, on the last weekday. Folds a month of the creative ledger against the daily metrics ledger to score angle, format, hook, and offer framing rather than individual files, tests every line currently in the creative doctrine against what the month actually measured, and rewrites the doctrine where the evidence disagrees with the assumption. It records the fatigue curve it observed, retires what has not earned, and changes nothing where the month holds too few rows to tell one angle from another.
What it loads into context
Frontmatter
113 tokensAlways available to the agent
SKILL.md
17,221 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Fix what will not parse, before you judge anything
- Step 3. The evidence table, one row per category value
- Step 4. Decide what changes
- Step 5. The landing page check, capped and skippable
- Step 6. Rewrite the doctrine
- Step 7. Source the numbers you are about to publish
- Step 8. File a card, but only where a decision needs the member's hand
- Step 9. State, lock, record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytesSKILL.mdcore71,360 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Creative retrospective
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-creative-retro`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-creative-retro.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the analyst for the standing rules. Once a month you answer the question the weekly change list never asks: **are we making the right kind of work at all.**
`ads-change-list` answers "which object do I change this week". You answer a slower question, and you answer it by folding a month of evidence into four categories that survive across sets: **angle, format, hook, and offer framing.** Individual files are not the unit. A file is a thing that ran for three weeks and stopped working. An angle is a thing that either earns on this account or does not.
**The deliverable is `creative/doctrine.md` as it stands when you finish**, plus the lines in `plan/CHANGELOG.md` that say what moved and what moved it. The evidence table is how you get there, not what you hand over. **An evidence table nobody acted on is half a run, and a rewrite with no evidence path beside it is an opinion.**View the complete source on GitHubads-creative-studio
When your agent uses it
Weekdays. Produces one creative set per run against evidence rather than taste, reading the standing doctrine for the angles currently earning and the metrics ledger for what has decayed. It writes the images and the exact strings into a dated local set folder with the destination screen named, files one card, and uploads nothing to any account. It never opens an account screen, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
110 tokensAlways available to the agent
SKILL.md
18,033 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Decide whether to produce at all, and against what
- Step 3. The slot list
- Step 4. Write the copy
- Step 5. The browser step, taken only when Step 4.4 asked for it
- Step 6. The images
- Step 7. Write the manifest, verify it, and file one card
- Step 8. Archive
- Step 9. The invariant, then exactly one run record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytesSKILL.mdcore75,265 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Creative studio
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-creative-studio`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-creative-studio.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You make the work. One set per run, produced against evidence rather than taste.
Two files decide what you produce and neither of them is your opinion. `creative/doctrine.md` says which angles are currently earning, and it was rewritten last month by the retrospective against a month of measured rows. `metrics/daily.jsonl` says which creatives have decayed, at the level of the individual creative, with the screen and the date range beside every figure. **You read both before you write a single string.**
Three more files decide what may honestly be said. `plan/positioning.md` for the angle, `plan/voice.md` for the register, and `plan/proof-inventory.md` for every claim, number, name, and quote. A claim that is not in the inventory does not go in the ad, and **you do not add it to the inventory**, because you are not one of its two named appenders.View the complete source on GitHubads-desk-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every run record, folds the metrics, change, and creative ledgers, turns yesterday's ticks into facts a machine can count, folds the card inbox, rewrites the board, and writes the short morning brief the member opens first. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
95 tokensAlways available to the agent
SKILL.md
19,406 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you read at the top of every run, and the precedence order
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold every ledger once, in memory, and rewrite none of them
- Step 3. Reconcile the marks. This is the step the rest of the kit cannot do without
- Step 4. Fold the card inbox
- Step 5. Compute readiness and pick what today is for
- Step 6. Write the board, JSON first
- Step 7. Retire what is resolved, and neutralise nothing else
- Step 8. Write the brief
- Step 9. Write `ads-latest.md`
- Step 9a. Write `operating-summary.md`
- Step 10. The archive sweep, which never blocks the brief
- Step 11. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytesSKILL.mdcore80,207 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Desk standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«ADS_ROOT»/scripts/guard.mjs" ads-desk-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/ads-desk-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for this account. Your job this run is one thing: read what every other routine and the member did since you last ran, turn their marks into facts a machine can count, rewrite the board so it is true, and write one short brief that says what today is for.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, you still write the brief, and the brief says plainly what you did not reach.
You are the only writer of `brief-latest.md`, `briefs/brief-YYYY-MM-DD.md`, `ads-latest.md`, `board/board.json`, and `board/LAUNCH-BOARD.md`. You are the only reader of `board/inbox.jsonl`.View the complete source on GitHubcos-charter-and-fleet-audit
When your agent uses it
Runs once by hand on the first day and once a month after that. On the first run it researches the business from its own public presence, writes the charter with a source and a date beside every conclusion, discovers the AI Employees actually installed on this machine within a bounded search, writes the map every other routine in this kit reads, seeds the priorities and the watchlist once, builds the fleet dashboard, and registers this Employee's own seven jobs. On every monthly run it re-runs discovery and reconciles the map against what is really there. It never writes into another Employee's folder, never registers a job it does not own, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
168 tokensAlways available to the agent
SKILL.md
22,363 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines
- Step 1. Decide which run this is
- Step A1. Ground the run
- Step A2. Build the tree
- Step A3. Read what is already here
- Step A4. Research the business before you ask anything
- Step A5. Ask only what research could not settle
- Step A6. Discover the fleet, and never be told it
- Step A7. Write the rest of the charter, and seed the two files you seed once
- Step A8. Build the fleet dashboard
- Step A9. Reconcile this kit's schedule and register its seven jobs
- Step A10. Close the first run
- Step B1. Read the evidence
- Step B2. Re-run discovery and reconcile the map
- Step B3. Drift on this kit's own schedule, reconciled
- Step B4. Apply what the evidence says to the charter
- Step B4a. The kit itself: a newer version, and a fix worth sending back
- Step B5. Close the monthly pass
- What it reports
- Failure behaviour
- Browser recipes this routine uses
- Idempotency
- Handoffs
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytesSKILL.mdcore94,015 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Charter and fleet audit
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-charter-and-fleet-audit`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-charter-and-fleet-audit.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the routine that gives this Employee its facts. Everything the other six do is downstream of the files you write here.
The reconcile walks the roots you discovered. The metrics review scores against the map you wrote. The market sweep works the watchlist you seeded. The decision brief argues against the priorities and the constraints you recorded. **Get the map wrong and the fleet reconcile raises a silent stop against a cadence nobody runs, every morning, until somebody notices.**
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, including its `## Corrections`, the `## Corrections` at the foot of this file, and the member's own workspace rule file. Where this file and `CONTRACT.md` disagree, the contract wins. Where the contract and the member's workspace rule file disagree, the member's file wins. Where any table anywhere in this kit and `SCHEDULE.md` disagree about a time, `SCHEDULE.md` wins.View the complete source on GitHubcos-decision-brief
When your agent uses it
Weekly, file work only, no browser at all. Reads everything the week produced, picks exactly three moves, and argues both sides of each one before the member reads a word of it, with every clause carrying a number or an observation from a file it names. It argues against its own top recommendation last, records a predicted effect and the metric that would show it so the monthly review can score it, and files each move onto the register. It sends only where you released the channel, spends only where you released it, never deploys, and never touches a credential.
What it loads into context
Frontmatter
131 tokensAlways available to the agent
SKILL.md
12,767 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Read the week, and fold the last quarter of decisions
- Step 3. Build the candidate moves, then apply the four refusals
- Step 4. Argue each move, both sides, with a citation in every clause
- Step 5. Argue against your own top move, last
- Step 6. Write the file
- Step 7. Append `proposed` to the ledger
- Step 8. File each move onto the register
- Step 9. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore53,954 bytesSKILL.mdcore53,954 bytesSKILL.mdcore53,954 bytesSKILL.mdcore53,954 bytesSKILL.mdcore53,954 bytesSKILL.mdcore53,954 bytesSKILL.mdcore53,954 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Decision brief
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-decision-brief`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-decision-brief.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the counsel for «BUSINESS NAME». Four other routines spent the week producing evidence. Your job at the end of it is to say what to do about it, three times, with both sides written out, and then to argue against your own best idea.
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**Three moves is the product, and the argument against is what makes it worth reading.** A brief with three recommendations and no counterweight is a brief the member either follows or ignores. A brief that has already tried to break its own top move is one they can actually decide with, because the work of finding the hole has been done and shown.View the complete source on GitHubcos-decision-review
When your agent uses it
Monthly, on the last weekday, file work only, no browser at all. Folds the decision ledger, scores this Employee's own judgement against the metric files that measured it rather than against its own predictions, appends one outcome line per closed decision, retires a move proposed three times and never accepted, and rewrites the priorities where the evidence disagrees with them. It refuses to publish a calibration figure on too few closed decisions, changes nothing outside its own folder, proposes nothing to anybody, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
136 tokensAlways available to the agent
SKILL.md
13,084 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold the ledger and fix the review window
- Step 3. Score whether each accepted decision was actually done
- Step 4. Score whether the done decisions actually worked
- Step 5. Retire what has been proposed three times and never accepted
- Step 6. Rewrite the priorities, from the second month onward
- Step 7. The calibration figure, and when you refuse to write one
- Step 8. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytesSKILL.mdcore55,563 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Decision review
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-decision-review`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-decision-review.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the auditor of this Employee's own advice. Every Friday for a month, `cos-decision-brief` told the member what to do and predicted what would happen. **You are the only routine on this machine that can tell them whether any of it was any good.**
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**Scoring your own judgement is the product, and the honesty of the scoring is the whole of its value.** A review that grades generously is worse than no review, because it produces a number the member trusts and it produces it forever.View the complete source on GitHubcos-fault-dossier
When your agent uses it
Weekdays, file work only, no browser at all. Takes the single highest ranked open fault on the fleet and turns it into something the member can act on in a minute: the fault in one sentence, the first record that shows it, what changed around that date, three ranked causes each with its evidence line, what the failure has cost, and one paste ready correction line with the exact path it belongs in. It reads other Employees strictly read only, writes nothing outside its own folder, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
137 tokensAlways available to the agent
SKILL.md
14,441 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Pick exactly one fault
- Step 3. Read that Employee's own files, strictly read only
- Step 4. Three candidate causes, ranked, each with its evidence line
- Step 5. What the failure has cost, per run, in outputs that stopped arriving
- Step 6. Write the correction line
- Step 7. Write the dossier
- Step 8. The closing path, when a fault has cleared
- Step 9. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Delivery fault diagnosis
- Corrections
Files
SKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytesSKILL.mdcore61,703 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Fault dossier
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-fault-dossier`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-fault-dossier.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the diagnostician for «BUSINESS NAME». This morning `cos-fleet-reconcile` told the member that something on their fleet has stopped. Your job this afternoon is to turn that alarm into a page they can act on in a minute.
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**One fault per run, and the dossier is the deliverable.** Not a list of everything wrong. Not a survey. One fault, worked properly, with a whole run's budget behind it, ending in a line the member pastes.View the complete source on GitHubcos-fleet-reconcile
When your agent uses it
Weekdays, file work only, no browser at all. Walks every AI Employee installed on this machine, reads each one's own run log strictly read only, classifies every routine as running, stopped loudly, stopped silently, or paused, ages the faults, folds the decision register, and writes the one short brief the member opens first. It never writes into another Employee's folder, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
23,951 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fix the reconcile window before you count anything
- Step 3. Walk the fleet, strictly read only
- Step 4. Classify every routine into exactly one of four states
- Step 5. Raise, age, and close the faults
- Step 6. Fold the inbox and re-render the register
- Step 7. Decide what goes in front of the member
- Step 8. Write the brief
- Step 9. Write `cos-latest.md`
- Step 10. The archive sweep, which never blocks the brief
- Step 11. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
- Delivery health reconciliation
- Corrections
Files
SKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytesSKILL.mdcore100,362 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Fleet reconcile
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-fleet-reconcile`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-fleet-reconcile.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for «BUSINESS NAME». Every other AI Employee on this machine worked yesterday, or did not. Your job this run is to find out which, turn what you find into something a machine can count, and write one short page that says what today is for.
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the fleet, you still write the brief, and the brief names in one line exactly which Employee roots you did not reach.View the complete source on GitHubcos-market-sweep
When your agent uses it
Weekly, heavy browser lane, read only toward the world with no exception. Works the surfaces on its own watchlist through one contiguous browser phase, captures one dated observation per real change with a verbatim quote and the exact URL, refuses to report any change against a surface it has no baseline for, and writes one capped weekly page. It types nothing that changes anything, takes no action on LinkedIn ever, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
15,455 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. The watchlist, and the order you work it
- Step 3. Take the lane, get a browser, open one tab
- Step 4. The sweep, surface by surface
- Step 5. Classify what you found, and refuse to inflate it
- Step 6. Write the week's file
- Step 7. The watchlist, which you own from the second month
- Step 8. State, lock, record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Browser recipes
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytesSKILL.mdcore65,799 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Market sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-market-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-market-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the outside eye for «BUSINESS NAME». Every other routine in this kit reads files this machine produced. This one is the only routine that looks at the world, and everything it says has to survive somebody clicking the link.
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The weekly file is the only thing this run has to produce.** A surface that would not answer is a line in that file. A surface behind a login wall is a line in that file. A week where three of eight surfaces answered is a real week's report, and it is worth far more than a page that fills its gaps with what a page probably said.View the complete source on GitHubcos-metrics-review
When your agent uses it
Weekly, conditional browser lane, read only everywhere. Scores the fleet and the business for the week with a source beside every single number and no number anywhere without one, cites the Employee that owns a metric rather than recomputing it, refuses a rate below the floor, and writes one capped weekly page. It opens a browser only where the metric map names a live screen, never writes into another Employee's folder, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
16,048 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Fix the scoring window before you count anything
- Step 3. Read the fleet, strictly read only
- Step 4. Read the metric map and decide whether this run needs a browser
- Step 5. The browser phase, only where the map named a screen
- Step 6. Score what moved, and refuse the rest
- Step 7. Source the numbers you are about to publish
- Step 8. Write the page
- Step 9. What you route, and what you do not
- Step 10. State, lock, record
- The rule about numbers
- Failure behaviour
- Browser recipes, on the runs that take a lane
- Idempotency, all of it in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Delivery versus business results
- Corrections
Files
SKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytesSKILL.mdcore67,121 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Metrics review
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«COS_ROOT»/scripts/guard.mjs" cos-metrics-review`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/cos-metrics-review.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the scorekeeper for «BUSINESS NAME». Once a week you answer one question in a form the member can check: what did this machine actually produce, and what did the business actually do.
Read `«COS_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The weekly page is the only thing this run has to produce**, and the guarantee that makes it worth opening is one column. Every figure on it carries the file or the screen it was read from. **A figure with an empty Source cell does not reach the page at all**, however true it looks and however much it would improve the story.View the complete source on GitHubcsat-churn-watch
When your agent uses it
Weekdays, conditional browser lane. Reads the ticket ledger and the account, billing, and usage surfaces the member named, and decides which paying customers are about to leave. Every flag is a dossier carrying the trip wires that fired, the exact evidence behind each one, that account's whole history, and one suggested save with its cost and the screen it happens on. It reads billing screens and touches no control on them: a refund, a credit, a plan change, and a cancellation are named and never made.
What it loads into context
Frontmatter
120 tokensAlways available to the agent
SKILL.md
14,222 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- A flag is never a bare score, and this is why
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight, state, and the inputs
- Step 2. The guard that stops this routine lying about a quiet week
- Step 3. The trip wires, run on the file side first
- Step 4. The account, billing, and usage read, only for accounts already tripped
- Step 5. Write the dossier
- Step 6. The ledger line
- Step 7. The card
- Step 8. Clear what receded, write the digest, release
- Step 9. The invariant, then one run record
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore58,410 bytesSKILL.mdcore58,410 bytesSKILL.mdcore58,410 bytesSKILL.mdcore58,410 bytesSKILL.mdcore58,410 bytesSKILL.mdcore58,410 bytesSKILL.mdcore58,410 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Churn watch
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-churn-watch`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-churn-watch.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the retention analyst for this business. Once a day you answer a question nobody else in this kit asks: which of the people already paying is about to stop.
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«CSAT_ROOT»/ROLE.md`, `«CSAT_ROOT»/CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The deliverable is a dossier a human can act on in four minutes.** Not a score, not a list, not a percentage. One file per account, carrying what fired, what the evidence was, what that customer has been through with this business, and one thing the member can do today with its cost written next to it.View the complete source on GitHubcsat-deflection-desk
When your agent uses it
Weekly on a Wednesday, light browser lane. Turns the questions that keep coming back into the answer that only has to be written once. It reads the ticket ledger over the recurrence window, finds every theme that crossed its threshold, checks the member's own help center and the existing macros for an answer that already covers it, and writes a reusable macro and a help article draft for every theme that has neither. It publishes only where you released the channel an article, never edits a live help center page, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
138 tokensAlways available to the agent
SKILL.md
13,253 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The self audit, stated up front because it is what makes this routine honest
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight, state, and the inputs
- Step 2. The guard that stops this routine writing an answer to a question nobody asked
- Step 3. Count the themes, and decide which crossed the line
- Step 4. Check whether the answer already exists, in the two cheapest places first
- Step 5. The help center check, capped and skippable
- Step 6. The self audit, which runs every week whatever else happens
- Step 7. Write the two files
- Step 8. Cards, the changelog, and release
- Step 9. The invariant, then one run record
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore55,279 bytesSKILL.mdcore55,279 bytesSKILL.mdcore55,279 bytesSKILL.mdcore55,279 bytesSKILL.mdcore55,279 bytesSKILL.mdcore55,279 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Deflection desk
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-deflection-desk`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-deflection-desk.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the reason month three is cheaper than week one.
Every other routine in this kit answers the ticket in front of it. You are the only one that asks why the same ticket keeps arriving, and then does the one thing that makes it stop: write the answer down properly, once, in two places. A macro so the reply desk answers the next one in seconds, and a help article draft so the one after that never writes in at all.
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«CSAT_ROOT»/ROLE.md`, `«CSAT_ROOT»/CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.View the complete source on GitHubcsat-desk-intake
When your agent uses it
Runs once by hand on the first day and once a month after that, light browser lane. On the first run it researches the business from its own published surfaces before asking anything, writes the strategy folder, creates the ledgers, seeds the opening cards, builds the single page dashboard, reconciles the schedule table, and registers the eight recurring jobs. On every monthly run it re-reads a month of the kit's own evidence, applies what changed, adds a tab for a channel that gained volume, rebuilds, and reconciles every registered job against the table. It holds every outbound action unless you released the channel, and it never enters a credential.
What it loads into context
Frontmatter
149 tokensAlways available to the agent
SKILL.md
24,817 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines
- Step 1. Decide which run this is
- Step A1. Ground the run
- Step A2. Build the tree
- Step A3. Read what is already here
- Step A4. Research the business before you ask anything
- Step A5. Test every channel before you write it down
- Step A6. Ask only what research could not settle
- Step A7. Write the strategy files
- Step A8. Seed the cards
- Step A9. Build the desk dashboard
- Step A10. Reconcile the schedule and register the jobs
- Step A11. The one handover, and why it is here
- Step A12. Close the first run
- Step B1. Read the evidence
- Step B2. Apply what the evidence says
- Step B3. Drift, reconciled
- Step B3a. The kit itself: a newer version, and a fix worth sending back
- Step B4. Close the monthly pass
- State files
- Idempotency
- Browser recipes this routine uses
- What it reports
- Failure behaviour
- Handoffs
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytesSKILL.mdcore104,695 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Desk intake and dashboard
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-desk-intake`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-desk-intake.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the person who sets up this support desk, and this routine is where the system gets its facts.
Everything the other seven routines do is downstream of the files you write here. The sweep reads the channels you found. The reply desk speaks in the voice you recorded and works inside the limits you wrote down. The churn watch measures a save against your policy file. The Friday report counts themes you defined. The taxonomy refresh inherits your first taxonomy and spends the next year correcting it.
**The strategy folder is the product. The dashboard is how the member looks at it.**View the complete source on GitHubcsat-desk-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every ledger, every queue file, and every run record since its cursor, turns the member's ticks into replied lines and closed cards, computes the first response and time to resolution clocks the Friday report is built from, folds the card inbox, re-renders the desk board, and writes the short morning brief the member opens first. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
115 tokensAlways available to the agent
SKILL.md
19,679 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. The opening line that replaces the whole brief
- Step 3. Fold every ledger once, in memory, and rewrite none of them
- Step 4. Reconcile the marks. This is the step the rest of the kit cannot do without
- Step 5. Compute the clocks. Every number in the Friday report is derived from this step
- Step 6. Fold the card inbox
- Step 7. Compute readiness, then write the board
- Step 8. Retire what is resolved, and neutralise nothing else
- Step 9. Write the brief
- Step 10. Write `csat-latest.md`
- Step 11. The archive sweep, which never blocks the brief
- Step 12. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytesSKILL.mdcore81,249 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Desk standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-desk-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-desk-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for this support desk. Your job this run is one thing: read what every other routine and the member did since you last ran, turn their marks into facts a machine can count, rewrite the board so it is true, and write one short brief that says what today is for.
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, you still write the brief, and the brief says what you did not get to.View the complete source on GitHubcsat-inbox-sweep
When your agent uses it
Weekdays, heavy browser lane. Reads every support channel named in strategy/channels.md, meaning the mailbox, the helpdesk queue, the review and rating listings, the marketplace pages, and the forums where the member's products are discussed, and captures every new or changed item as one dated, sourced, severity graded line on the ticket ledger. It replies to nothing, reacts to nothing, marks nothing read or resolved, and takes no action of any kind on LinkedIn. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
130 tokensAlways available to the agent
SKILL.md
17,010 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. The channels, and the one field you fill in yourself
- Step 3. The browser, the mutex, the tab, and your state file
- Step 4. Fold the ledger and build the dedupe truth
- Step 5. The sweep
- Step 6. Turn a read item into a ticket
- Step 7. Redaction, which happens at the moment of capture and never later
- Step 8. Write the ledger line
- Step 9. File only work, which runs even when the browser did not
- Step 10. The invariant, then one run record
- Idempotency, in one place
- Failure behaviour: what stops, and what carries on
- Browser recipes
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore72,061 bytesSKILL.mdcore72,061 bytesSKILL.mdcore72,061 bytesSKILL.mdcore72,061 bytesSKILL.mdcore72,061 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Inbox and review sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-inbox-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-inbox-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the intake desk for this business. Your job this run: read every surface where a customer can say something about this product, capture what they actually said, grade how much it matters, and put it on the ledger so that by the time the member finishes their coffee the reply desk has real tickets to answer and the churn watch has real evidence to read.
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«CSAT_ROOT»/ROLE.md`, `«CSAT_ROOT»/CAPABILITIES.md`, your own row in `«CSAT_ROOT»/SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The deliverable is a ticket line a machine can act on.** A line is complete when it carries a deterministic `ticket_id`, the customer's own words as they wrote them, the URL you read them on, the date the customer wrote them, the channel, the account or reviewer name exactly as the page showed it, a theme id from `strategy/themes.md`, and a severity with the rules that produced it. Twelve of those, each traceable to a page you loaded this run, is a finished run. A ledger full of counts nobody can open is not intake, and the honest thing to do with that outcome is say so in the run record rather than report a ticket count that reads like work.View the complete source on GitHubcsat-reply-desk
When your agent uses it
Weekdays, conditional browser lane. Selects from the ticket ledger hardest first, meaning by severity and then by age within severity, and writes each customer a reply into a dated queue file the member reads, edits, and sends by hand. Where the right answer is a refund, a credit, a plan change, or a cancellation, it names the remedy, the exact amount, and the exact screen, and leaves the granting to the member. It sends only where you released the channel, never posts, never resolves a ticket, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
136 tokensAlways available to the agent
SKILL.md
17,194 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- Why this routine is written more tightly than an outreach drafter
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines. Do these before anything else
- Step 1. Read state, read strategy, fold the ledger
- Step 2. Select, hardest first, and that ordering is the whole routine
- Step 3. Decide the browser plan for this run, once
- Step 4. Enrichment, bounded, read only, and only where the ticket is thin
- Step 5. Write each draft, and let the script judge it before anything lands
- Step 6. When the right answer is money
- Step 7. The community queue, which is a different job
- Step 8. The entry shape, and the two lines that are machine parsed
- Step 9. Helpdesk draft mode, which ships off
- Step 10. Ledger housekeeping, then release
- Step 11. The invariant, then one run record
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore71,990 bytesSKILL.mdcore71,990 bytesSKILL.mdcore71,990 bytesSKILL.mdcore71,990 bytesSKILL.mdcore71,990 bytesSKILL.mdcore71,990 bytesSKILL.mdcore71,990 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Reply desk
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-reply-desk`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-reply-desk.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the drafter for this support desk. Your job this run: work out who is waiting and how badly, write each of them an answer worth sending, put it in a queue file, and stop. The member is the sender on every message that leaves this machine.
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«CSAT_ROOT»/ROLE.md`, `«CSAT_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The text is the deliverable.** A queue file on disk with four honest replies in it, the hardest four, is a finished run. A run that spends its budget polishing the easy ones and leaves the angry paying customer unanswered has failed at the only thing that distinguishes this routine from a template.View the complete source on GitHubcsat-satisfaction-report
When your agent uses it
Weekly on a Friday, conditional browser lane. Scores the week from the ledgers with a source beside every number and an estimate nowhere, reads the review and rating movement off the member's own listing screens, replays the browser flows the weekday routines depend on, and names the one product change that would have removed the most tickets this week. It sends only where you released the channel, never posts, never resolves anything, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
113 tokensAlways available to the agent
SKILL.md
18,534 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The two things that make this report worth opening
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight, state, and the inputs
- Step 2. Fix the scoring window before you count anything
- Step 3. Build the working table
- Step 4. The browser phase: the listing screens, then the recipe replay
- Step 5. Score what moved
- Step 6. Name the one product change
- Step 7. Source the numbers you are about to publish
- Step 8. Write the report
- Step 9. File exactly two cards
- Step 10. State, the invariant, and one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytesSKILL.mdcore78,035 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Satisfaction report
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-satisfaction-report`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-satisfaction-report.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the Friday scorer for this support desk. Every other routine in this kit works a ticket, a customer, or a question. You are the only one that steps back and asks what the whole week actually cost, and then says the one thing that would make next week cheaper.
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«CSAT_ROOT»/ROLE.md`, `«CSAT_ROOT»/CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The headline deliverable is one named product change.** Not the numbers table. The table is what justifies the change, and the change is what the member is paying for. A Friday that produces a beautiful table and no named change has produced a report nobody acts on, and a report nobody acts on is a report nobody opens after the third week.View the complete source on GitHubcsat-taxonomy-refresh
When your agent uses it
Monthly on the last weekday, light browser lane. Re-tests every theme and every severity rule against a month of real ticket evidence and rewrites strategy/themes.md wherever the evidence disagrees with the assumption. It merges two themes the evidence shows are one, splits a theme whose tickets have two different answers, retires a theme with no volume, creates a theme for a cluster that kept landing unclassified, and rewrites a severity rule wherever the outcomes contradict it. Theme ids are never reused and never renumbered. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
137 tokensAlways available to the agent
SKILL.md
17,064 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The thing this routine exists to find
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight, state, and the evidence window
- Step 2. Repair, then the guard that stops you judging a month nobody swept
- Step 3. The three questions, theme by theme
- Step 4. The unclassified pile
- Step 5. The evidence read, capped and skippable
- Step 6. Rewrite `strategy/themes.md`
- Step 7. Cards into the inbox
- Step 8. Write state, release, then one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytesSKILL.mdcore71,472 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Taxonomy refresh
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«CSAT_ROOT»/scripts/guard.mjs" csat-taxonomy-refresh`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/csat-taxonomy-refresh.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the routine that stops this support desk from spending a year filing tickets into categories somebody guessed at on the first afternoon.
`csat-desk-intake` wrote the first taxonomy from a crawl and twenty complaints it read in public. It was the best available answer on day one and it is wrong in at least two places. **You own `strategy/themes.md` from the second month, and once a month you find out exactly where.**
Read `«CSAT_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«CSAT_ROOT»/ROLE.md`, `«CSAT_ROOT»/CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.View the complete source on GitHubgtm-board-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every ledger, queue file, and run record, turns yesterday's ticks into sent dates and closed cards, folds the card inbox, rewrites the launch board, and writes the short morning brief the member opens first. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
18,093 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold every ledger once, in memory, and rewrite none of them
- Step 3. Reconcile the marks. This is the step the rest of the kit cannot do without
- Step 4. Fold the card inbox
- Step 5. Compute readiness and pick what today is for
- Step 6. Write the board, JSON first
- Step 7. Retire what is resolved, and neutralise nothing else
- Step 8. Write the brief
- Step 9. Write `gtm-latest.md`
- Step 10. The archive sweep, which never blocks the brief
- Step 11. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Corrections
- Your extra duty: reporting what changed
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
Files
SKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytesSKILL.mdcore74,218 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Board standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-board-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-board-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for «BUSINESS NAME». Your job this run is one thing: read what every other routine and the member did since you last ran, turn their marks into facts a machine can count, rewrite the board so it is true, and write one short brief that says what today is for.
Read `«GTM_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, you still write the brief, and the brief says what you did not get to.View the complete source on GitHubgtm-icp-refresh
When your agent uses it
Monthly, on the last weekday. Re-tests every segment in strategy/icp.md against the evidence in this kit's own ledgers, then rewrites the targeting itself where the evidence disagrees with the assumption the segment was written on. It records every change in strategy/CHANGELOG.md. It sends only where you released the channel, never re-queues anyone, never edits the contacted ledger, and never writes a number it did not read out of a named file.
What it loads into context
Frontmatter
111 tokensAlways available to the agent
SKILL.md
15,086 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What this routine is, and what it is not
- What you own, with no approval ritual of any kind
- The boundaries, drawn precisely
- Step 0. The five opening lines, before anything else
- Step 1. Read the inputs
- Step 2. Fix what will not parse, before you judge anything
- Step 3. The evidence table, one row per segment
- Step 4. The gathering place check, capped and skippable
- Step 5. Rewrite `strategy/icp.md`
- Step 6. The proof inventory, and the trap inside it
- Step 7. Cards into the inbox
- Step 8. Write state, release the lock, append the record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- How this hands off
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytesSKILL.mdcore62,618 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# ICP refresh
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-icp-refresh`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-icp-refresh.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the targeting analyst for this business. Once a month you answer the one question the weekly scoreboard never asks: are we still aiming at the right people at all.
**The deliverable is `strategy/icp.md` as it stands when you finish**, plus the lines in `strategy/CHANGELOG.md` that say what moved and what moved it. The evidence table is how you get there, not what you hand over. An evidence table nobody acted on is half a run, and a rewrite with no ledger path beside it is an opinion.
Read `«GTM_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. It is the spine. Where anything below and the contract disagree, the contract wins. Where the contract and the member's own workspace rule file disagree, the member's file wins. Read the `## Corrections` at the bottom of this file too, and treat every line in it as binding.View the complete source on GitHubgtm-intake-and-dashboard
When your agent uses it
Runs once by hand on the first day and once a month after that. On the first run it researches the business from its own public surfaces before asking anything, writes the strategy folder, seeds the launch board, builds the tailored command center, reconciles the schedule table, and registers the recurring jobs. On every monthly run it re-reads the evidence the kit produced, applies what changed, reconciles drift, and rebuilds. It holds every outbound action unless you released the channel, and it never enters a credential.
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
23,109 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Reading order, every run
- Step 0. The five opening lines
- Step 1. Decide which run this is
- Step A1. Ground the run
- Step A2. Build the tree
- Step A3. Read what is already here
- Step A4. Research the business before you ask anything
- Step A5. Ask only what research could not settle
- Step A6. Write the strategy files
- Step A7. Seed the board
- Step A8. Build the command center
- Step A9. Reconcile the schedule and register the jobs
- Step A10. Close the first run
- Step B1. Read the evidence
- Step B2. Apply what the evidence says
- Step B3. Drift, reconciled
- Step B3a. The kit itself: a newer version, and a fix worth sending back
- Step B4. Close the monthly pass
- State files
- Idempotency
- Browser recipes this routine uses
- What it reports
- Failure behaviour
- Handoffs
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytesSKILL.mdcore97,002 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Intake and dashboard
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-intake-and-dashboard`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-intake-and-dashboard.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the GTM engineer for this business. This routine is where the system gets its facts.
Everything the other seven routines do is downstream of the files you write here. The sweep aims at the segments you wrote. The queue speaks in the voice you wrote. The scoreboard counts the event you named. The step runner fills the forms you found.
**The strategy folder is the product. The dashboard is how the member looks at it.**View the complete source on GitHubgtm-launch-step-runner
When your agent uses it
Weekdays, browser only when the card needs one. Takes the next ready cards off the launch board and does the work each one names: stages copy into the dashboard, fills a directory or press form and leaves it open in its tab, verifies a setup, packages a handoff, or researches its own next targets. It ticks its own card the moment it has verified the file that closes it. It submits only where you released the channel, sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
128 tokensAlways available to the agent
SKILL.md
20,228 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines. Do these before anything else
- Step 1. Read what you need, once
- Step 2. The browser mutex
- Step 3. The board is the ledger
- Step 4. Build this run's work queue
- Step 5. Execute the card. Six types, and nothing outside them
- Step 6. Research your own next targets
- Step 7. When a page does not behave
- Step 8. Verify, then tick your own card
- Step 9. Write the form queue file
- Step 10. The invariant, then one run record
- Failure behaviour
- Idempotency, in one place
- When you learn something, write it down
- How this hands off
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytesSKILL.mdcore84,147 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Launch step runner
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-launch-step-runner`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-launch-step-runner.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the operator for «BUSINESS NAME». Your job this run: take the ready cards off the launch board, do the work each one names, leave the artifact where the card points at it, tick the cards whose evidence is a file you can read back, and record honestly what you did and what stopped you.
Read `«GTM_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«GTM_ROOT»/ROLE.md` and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The one line that governs this routine: you produce the artifact, the member produces the outcome.** You write the copy, you fill the form, you package the handoff, you verify the setting. The click that makes something public is theirs, always, with no exception anywhere in this file.View the complete source on GitHubgtm-outreach-queue
When your agent uses it
Weekdays. Turns the contactable people in the signal ledger into today's due first touches and follow ups, written into dated queue files the member reads, edits, and sends by hand, and optionally into the member's own mailbox as unsent drafts. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
85 tokensAlways available to the agent
SKILL.md
17,578 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines. Do these before anything else
- Step 1. Read state, read strategy, fold the ledgers
- Step 2. Derive the sequence, sweep what went stale, and select today's contacts
- Step 3. Enrichment, bounded, read only, and only where the row is thin
- Step 4. Choose the framework, and refuse to repeat yourself
- Step 5. Write each draft, and let the script judge it before anything lands
- Step 6. The DM queue
- Step 7. Mailbox draft mode, which ships off
- Step 8. Ledger housekeeping, then release
- Step 9. The report, and the rule about numbers
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- How this hands off
- Idempotency, in one place
- When you learn something, fix the file
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytesSKILL.mdcore73,772 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Outreach queue
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-outreach-queue`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-outreach-queue.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the outbound drafter for «BUSINESS NAME». Your job this run: work out who is due today, write each person the next touch in their sequence, put it in a queue file, and stop. The member is the sender on every message that leaves this machine.
Read `«GTM_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«GTM_ROOT»/ROLE.md`, `«GTM_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The text is the deliverable.** A queue file on disk with three honest drafts in it is a finished run. A run that spends its budget chasing a link, an enrichment, or a better subject line and writes nothing is not. Where something is missing, draft without it and say which one in the run record.View the complete source on GitHubgtm-paid-and-tracking-guard
When your agent uses it
Weekly. Audits the paid and measurement setup the member already has by reading it, then assembles the parts that are missing as local files: campaign structure, ad copy, negative keyword seeds, and conversion tracking specifications, each one complete and ready to paste. It creates nothing in an account, saves nothing, activates nothing, and spends nothing, unless you released the channel. This is where the spend stop lives.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
22,666 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you own, and the one boundary
- Your file map
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Resolve the three things the whole run depends on
- Step 3. Decide this run's mode
- Step 4. The conversion event check
- Step 5. The tracking template check
- Step 6. The guardrail sweep
- Step 7. The budget and spend guard
- Step 8. Conversion tracking, specified when there is nothing to check
- Step 9. Negative keywords
- Step 10. The campaign build sheet
- Step 11. The findings ledger
- Step 12. Cards into the inbox
- Step 13. Recipes
- Step 14. The Ad Manager handoff
- Step 15. Write state, release the lock, append the record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytesSKILL.mdcore95,797 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Paid and tracking guard
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-paid-and-tracking-guard`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-paid-and-tracking-guard.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the paid and tracking guard. Two jobs, one run.
**You audit what exists.** The primary conversion event, the tracking template, the targeting guardrails, and the money. You audit by reading. Every drift you find becomes a named finding with an age and a card the member can close.
**You assemble what does not exist.** Campaign structure, ad copy, negative keyword seeds, and conversion tracking specifications. You write all of it into files under `«GTM_ROOT»/paid/`, complete and ready to paste, and the member creates the object.View the complete source on GitHubgtm-scoreboard
When your agent uses it
Weekly, on a Friday, read only everywhere. Scores the week from the ledgers with a source beside every number, replays the browser flows the other routines depend on, names one thing to kill and one thing to scale, and files both as cards. It sends only where you released the channel, spends only where you released it, never touches a credential, and never writes a number it did not measure.
What it loads into context
Frontmatter
98 tokensAlways available to the agent
SKILL.md
17,788 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Fix the scoring window before you count anything
- Step 3. Read the ledgers and build the working table
- Step 4. The browser phase: read screens, then the recipe replay
- Step 5. Score what moved
- Step 6. Name one kill and one scale
- Step 7. Source the numbers you are about to publish
- Step 8. Write the scoreboard
- Step 9. File the cards
- Step 10. Strategy and schedule: what you change, and what you route
- Step 11. Archive sweep
- Step 12. State, lock, record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- How this hands off
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytesSKILL.mdcore73,047 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Scoreboard
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-scoreboard`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-scoreboard.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the Friday reviewer for «BUSINESS NAME». One run, four jobs: score the week from the ledgers, replay the browser flows the other routines depend on, name one thing to kill and one thing to scale, and file both as cards so Monday's board carries them.
Read `«GTM_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«GTM_ROOT»/ROLE.md` and the `## Corrections` at the bottom of this file. Where anything below and the contract disagree, the contract wins. Where the contract and the member's own workspace rule file disagree, the member's file wins.
**The scoreboard file is the only thing this run has to produce.** The read screens, the recipe replay, and the archive sweep are enrichments, each with its own cap. Any of them can be skipped this week, named in one line, and picked up next Friday. The scoreboard itself cannot wait, because the numbers it would have carried are gone by the following Friday: `last_values` holds only what was actually measured, and an unmeasured week leaves a hole nothing can fill in afterwards.View the complete source on GitHubgtm-signal-sweep
When your agent uses it
Weekdays, heavy browser lane. Reads the member's own signal sources and saved searches, captures dated buying signals together with the contactable people attached to them, and appends both to the ledgers the outreach queue reads. Read only on every people surface, LinkedIn included. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
91 tokensAlways available to the agent
SKILL.md
16,003 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Segments, sources, and the two fields you fill in yourself
- Step 3. The browser, the mutex, the tab, and your state file
- Step 4. Fold the ledgers and build the dedupe truth
- Step 5. What counts as a signal, and how strong it is
- Step 6. The sweep
- Step 7. Turn a read item into a person and a signal
- Step 8. File only work, which runs even when the browser did not
- Step 9. The invariant, then one run record
- Idempotency, in one place
- Failure behaviour: what stops, and what carries on
- Browser recipes
- How this hands off
- When you learn something, fix the file
- Corrections
- Improving this routine
- The one push
Files
SKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytesSKILL.mdcore66,764 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Signal sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«GTM_ROOT»/scripts/guard.mjs" gtm-signal-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/gtm-signal-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the signal desk for «BUSINESS NAME». Your job this run: read the sources this business's buyers actually publish a dated trigger on, capture the people behind those triggers, and append both to the ledgers so that tomorrow morning the outreach queue has a real person to write to and a true reason to write.
Read `«GTM_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«GTM_ROOT»/ROLE.md`, `«GTM_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The deliverable is a contactable row with a dated reason attached to it.** A row is contactable when it carries a `contact_id`, a name you read on a page, a company, and at least one of `email` or `linkedin_url` that you also read on a page this run. Six of those, each with a sourced signal, is a finished run. A ledger full of company names nobody can write to has produced nothing the queue can draw from, and the honest thing to do with that outcome is say so in the run record rather than report a signal count that reads like work.View the complete source on GitHubsales-desk-setup
When your agent uses it
Runs once by hand on the first day and once a month after that, on the first weekday, light browser lane. On the first run it researches the business from its own public surfaces before asking anything, writes the strategy folder, seeds the pipeline, reconciles the schedule table, and registers the recurring jobs. On every monthly run it re-reads the evidence the kit produced, applies what changed to the files it owns, and carries every member written setting across verbatim. It holds every outbound action unless you released the channel, and it never enters a credential.
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
21,282 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Reading order, every run
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Decide which run this is
- Step A1. Ground the run
- Step A2. Build the tree
- Step A3. Read what is already here
- Step A4. Research the business before you ask anything
- Step A5. Ask only what research could not settle
- Step A6. Write the strategy files
- Step A7. Seed the pipeline
- Step A8. Detect the siblings, reconcile the schedule, register the jobs
- Step A9. Close the first run
- Step B1. Read the evidence
- Step B2. Apply what the evidence says
- Step B3. Drift, reconciled
- Step B3a. The kit itself: a newer version, and a fix worth sending back
- Step B4. Close the monthly pass
- The invariant, checked before anything is recorded
- Release the lock
- Then append exactly one run record
- The status vocabulary, closed at eight
- State files
- What this routine reports
- Failure behaviour
- Browser recipes this routine uses
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytesSKILL.mdcore90,137 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Desk setup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-desk-setup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-desk-setup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the sales engineer for this business. This routine is where the system gets its facts.
Everything the other six routines do is downstream of the files you write here. The sweep aims at the segments you wrote and scores against the tests you wrote. The drafting routines speak in the voice you wrote and pick from the library you wrote. The review counts what the ledgers hold. The refresh takes two of your files over from month two and rewrites them on evidence you never had.
**The strategy folder is the product.** Six correct files leave the other six routines with everything they need to run tomorrow. A file written on values you guessed at repeats the guess every morning, in the member's own copy, where they will not notice it until somebody replies to it.View the complete source on GitHubsales-desk-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every ledger, queue file, and run record written since its own cursors, turns the member's ticks into sent rows and closed cards, folds the card inbox, re-renders the pipeline board, and writes the short morning brief the member opens first. It names the veto window every day. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
107 tokensAlways available to the agent
SKILL.md
19,704 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold every ledger once, in memory, and rewrite none of them
- Step 3. Reconcile the marks. This is the step the rest of the kit cannot do without
- Step 4. Fold the card inbox
- Step 5. Compute readiness and pick what today is for
- Step 6. Write the pipeline, JSON first
- Step 7. Retire what is resolved, and neutralise nothing else
- Step 8. Write the brief
- Step 9. Write `sales-latest.md`
- Step 10. The archive sweep, which never blocks the brief
- Step 11. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytesSKILL.mdcore81,083 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Desk standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-desk-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-desk-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for «BUSINESS NAME». Your job this run is one thing: read what every other routine and the member did since you last ran, turn their marks into facts a machine can count, rewrite the pipeline so it is true, and write one short brief that says what today is for.
Read `«SALES_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, **you still write the brief, and the brief says what you did not reach.** A morning with no brief is the single failure mode this routine exists to prevent.View the complete source on GitHubsales-first-touch-drafts
When your agent uses it
Weekdays, heavy browser lane. Selects the qualified people who have never been written to, drafts each one a first touch into a dated queue file the member reads, and composes each passing draft into the member's own mailbox as an unsent draft. It verifies by the Drafts count and never by a toast. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
17,231 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Read state, read strategy, fold the ledgers
- Step 3. Derive the sequence, build the do not touch set, and select
- Step 4. Choose the framework, and refuse to repeat yourself
- Step 5. Write each draft, let the judge decide, then append in this order
- Step 6. The mailbox phase
- Step 7. Ledger housekeeping, then release
- Step 8. The invariant, then exactly one run record
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore72,706 bytesSKILL.mdcore72,706 bytesSKILL.mdcore72,706 bytesSKILL.mdcore72,706 bytesSKILL.mdcore72,706 bytesSKILL.mdcore72,706 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# First touch drafts
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-first-touch-drafts`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-first-touch-drafts.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the first touch drafter for «BUSINESS NAME». Your job this run: take the people who were qualified this week and have never been written to, write each one a first message, put it in a queue file, and leave it in the member's Drafts folder unsent. The member is the sender on every message that leaves this machine.
Read `«SALES_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SALES_ROOT»/ROLE.md`, `«SALES_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The deliverable is two things and the order between them is not negotiable: the queue entry on disk first, the unsent draft in the mailbox second.** A queue file with four honest drafts in it is a finished run even when the browser never attaches. A mailbox draft composed for somebody whose queue entry was never written is a message the member can send with nothing in the ledger to explain it. Write the file, then compose.View the complete source on GitHubsales-followup-sweep
When your agent uses it
Weekdays, heavy browser lane, two halves in one run. First it reads the member's own mailbox for replies on the threads the ledger says were sent and records them. Only then does it work out who is due a follow up, write each one into a dated queue file, and compose it into the mailbox as an unsent draft. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
103 tokensAlways available to the agent
SKILL.md
17,288 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Read state, read strategy, fold the ledgers
- Step 3. Half one, the reply search. This runs first and nothing reorders it
- Step 4. Half two, derive the sequence, sweep what went stale, and select
- Step 5. Write each follow up, and let the script judge it before anything lands
- Step 6. The mailbox compose phase
- Step 7. File one card per reply
- Step 8. Ledger housekeeping, then release
- Step 9. The invariant, then exactly one run record
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore71,802 bytesSKILL.mdcore71,802 bytesSKILL.mdcore71,802 bytesSKILL.mdcore71,802 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Follow up sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-followup-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-followup-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the follow up desk for «BUSINESS NAME». Your job this run has two halves and **the order between them is not negotiable**: read the replies first, then draft the follow ups.
Drafting a second message to somebody who already answered is the worst thing this Employee can do. It tells the person nobody read their reply, it tells them the messages were never from a human, and no amount of tidying afterwards recovers it. So the reply search runs first, every run, and the drafting half selects from a ledger the reply search has already updated.
Read `«SALES_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SALES_ROOT»/ROLE.md`, `«SALES_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.View the complete source on GitHubsales-pipeline-review
When your agent uses it
Weekly, on a Friday, read only everywhere. Scores the week from the ledgers with a source path beside every number, replays the browser flows the other routines depend on, names one thing to kill and one thing to scale, and files both as cards. It sends only where you released the channel, spends only where you released it, never touches a credential, and never writes a number it did not count out of a named file this run.
What it loads into context
Frontmatter
106 tokensAlways available to the agent
SKILL.md
18,536 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Fix the scoring window before you count anything
- Step 3. Read the ledgers and build the working table
- Step 4. The browser phase: the weekly replay
- Step 5. Score what moved
- Step 6. Name one kill and one scale
- Step 7. Source the numbers you are about to publish
- Step 8. Write the review
- Step 9. File the cards
- Step 10. Strategy and schedule: what you change, and what you route
- Step 11. Archive sweep, state, lock, record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytesSKILL.mdcore77,055 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Pipeline review
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-pipeline-review`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-pipeline-review.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the Friday reviewer for «BUSINESS NAME». One run, four jobs: score the week from the ledgers, replay the browser flows the other routines depend on, name one thing to kill and one thing to scale, and file both as cards so Monday's board carries them.
Read `«SALES_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SALES_ROOT»/ROLE.md`, `«SALES_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the bottom of this file. Where anything below and the contract disagree, the contract wins. Where the contract and the member's own workspace rule file disagree, the member's file wins.
**The review file is the only thing this run has to produce, and the arithmetic is the deliverable.** The recipe replay and the archive sweep are enrichments, each with its own cap. Either can be skipped this week, named in one line, and picked up next Friday. **With no browser at all this run still produces the whole scoreboard**, because every number on it is counted out of a file inside `«SALES_ROOT»`. The review itself cannot wait, because the numbers it would have carried are gone by the following Friday: `last_values` holds only what was actually measured, and an unmeasured week leaves a hole nothing can fill in afterwards.View the complete source on GitHubsales-prospect-sweep
When your agent uses it
Weekdays, heavy browser lane. Reads the member's own saved searches and the named sources for one buyer segment, captures candidate accounts together with the contactable people attached to them, scores every row against the named tests in the qualification file, and writes each one with the evidence that qualified it. Read only on every people surface, LinkedIn included. It holds every outbound action unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
104 tokensAlways available to the agent
SKILL.md
17,758 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. One segment, its sources, and the tests you will score against
- Step 3. The browser, the mutex, the tab, and your state file
- Step 4. Fold the ledgers and build the dedupe truth
- Step 5. What qualifies, what disqualifies, and what the evidence has to be
- Step 6. The sweep
- Step 7. Turn a read row into a person, a verdict, and a ledger line
- Step 8. File only work, which runs even when the browser did not
- Step 9. The invariant, then exactly one run record
- Idempotency, in one place
- Failure behaviour: what stops, and what carries on
- Browser recipes
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytesSKILL.mdcore74,996 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Prospect sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-prospect-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-prospect-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the prospect desk for «BUSINESS NAME». Your job this run: read the places this business's buyers actually appear, capture the people behind those accounts, test each one against the qualification file, and write the row with its reasoning attached, so that later this morning the drafting routine has a real person to write to and a stated reason why that person was chosen.
Read `«SALES_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SALES_ROOT»/ROLE.md`, `«SALES_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The deliverable is a contactable row with its qualification reasoning attached.** A row is contactable when it carries a `contact_id`, a name you read on a page, a company, a role you read on a page, and at least one of `email` or `linkedin_url` that you also read on a page this run. It is qualified when the tests it passed are named on the row, the verbatim string that carried it is on the row, and the source URL and the date are on the row. Six of those is a finished run.View the complete source on GitHubsales-qualification-refresh
When your agent uses it
Monthly, on the last weekday, light browser lane. Re-tests every named qualification test and every buyer segment against a month of this kit's own ledger evidence, then rewrites both files itself where the evidence disagrees with the assumption they were written on. It records every change in strategy/CHANGELOG.md with the ledger path that justified it. It sends only where you released the channel, never re-queues anyone, never edits the contacted ledger, and never writes a number it did not count out of a named file.
What it loads into context
Frontmatter
120 tokensAlways available to the agent
SKILL.md
18,633 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The boundaries, drawn precisely
- Step 0. The five opening lines, before anything else
- Step 1. Preflight, then read the inputs
- Step 2. Fix what will not parse, before you judge anything
- Step 3. The evidence table
- Step 4. The gathering place check, capped and skippable
- Step 5. Rewrite `strategy/qualification.md`
- Step 6. Rewrite `strategy/buyer.md`
- Step 7. The proof inventory, and the trap inside it
- Step 8. Cards into the inbox
- Step 9. Write state, release the lock, append the record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytesSKILL.mdcore77,632 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Qualification refresh
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SALES_ROOT»/scripts/guard.mjs" sales-qualification-refresh`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/sales-qualification-refresh.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the targeting analyst for this business. Once a month you answer the one question the weekly review never asks: **is this desk qualifying the right people at all.**
The Friday review answers "which thing do I stop and which do I do more of this week". You answer a slower and more uncomfortable question. A desk can draft, send, and follow up flawlessly for a month and reach nobody who was ever going to buy, and every number on every weekly page will look like a process problem. The only thing that separates the two is the evidence table you build here, which joins the tests a person passed to whether that person eventually answered.
**The deliverable is `strategy/qualification.md` and `strategy/buyer.md` as they stand when you finish**, plus the lines in `strategy/CHANGELOG.md` that say what moved and what moved it. The evidence table is how you get there, not what you hand over. An evidence table nobody acted on is half a run, and a rewrite with no ledger path beside it is an opinion.View the complete source on GitHubseo-answer-visibility
When your agent uses it
Observe answer visibility for approved buyer questions, audit discoverability and file evidence-backed improvement cards.
What it loads into context
Frontmatter
33 tokensAlways available to the agent
SKILL.md
1,625 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- 0. Begin a recoverable run
- 1. Check eligibility and factual consistency
- 2. Sample actual answers
- 3. Turn gaps into useful work
- 4. Write the report and close
- Native Generative AI integration
- Corrections
Files
SKILL.mdcore8,309 bytesSKILL.mdcore8,309 bytesSKILL.mdcore8,309 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Answer visibility
Run `node scripts/guard.mjs seo-answer-visibility --json` first. A non-run verdict has already been recorded; exit without reading the rest of the kit. For a run verdict read CONTRACT.md, ROLE.md, CAPABILITIES.md, AEO-PLAYBOOK.md and your SCHEDULE.md row in full. This routine inherits every contract guard, status, state schema, mutex rule and output writer boundary. Never infer a time, budget or cadence from this document.
## 0. Begin a recoverable run
Read your row and compute its period key using the contract rules and local clock. Read `state/seo-answer-visibility.json`. Apply the contract's once-per-period check and atomic state update, recording `last_period`, `started`, the run id and progress before external work. A real guard run returns an atomic claim. Preserve its token and apply WORK-CYCLE.md recovery rules; an inspection with --no-record reserves nothing. Use the established mutex/stale-lock rules before browser work, and release only the lock you own on every exit. Do not modify another routine's state, schedule or active lock.
Resolve capabilities live. Prefer a confirmed connected read route, then an approved browser session, then a dated member-supplied observation. CAPABILITIES.md is the only vendor-to-capability map. No connector purchase, install, account creation, authentication or credential entry. An unavailable route is an explicit gap, not zero visibility. Read-only observation includes submitting the approved public buyer question to an existing authorized search/chat surface; never include private client notes, secrets or unpublished strategy in that question. Do not use a route whose use requires accepting terms or an unapproved paid action.View the complete source on GitHubseo-calendar-refill
When your agent uses it
Weekly, browser only when a source refuses to be fetched. Counts unpublished calendar entries per property by folding the published ledger against the calendar, and where every property is above its runway threshold it records the counts and exits, which is the normal run. Where a property is low it researches the next block from rank evidence, the topic map, and live result sets, refuses any keyword already targeted, and appends fully specified entries after the last existing block. It is the only writer of the calendar and it never modifies, reorders, or renumbers an existing entry.
What it loads into context
Frontmatter
128 tokensAlways available to the agent
SKILL.md
13,605 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Read the fuel gauge on every property, every run
- Step 3. The decision, and the exit that is a successful run
- Step 4. Read the evidence before you research anything
- Step 5. Research the block, from evidence rather than invention
- Step 6. Reading a source, and the one place a browser appears
- Step 7. Write the entries
- Step 8. Append the block, and touch nothing that is already there
- Step 9. File what the refill found
- Step 10. The invariant, then one run record
- The rule about numbers
- Failure behaviour
- Idempotency, in one place
- When you learn something, write it down
- How this hands off
- Improving this routine
- The one push
- Native Generative AI integration
- Corrections
- SEO/AEO work
Files
SKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytesSKILL.mdcore59,579 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Calendar refill
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-calendar-refill`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-calendar-refill.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the editorial planner for «BUSINESS NAME». Every weekday, `seo-draft-run` takes the next unpublished entry off a calendar and turns it into an article. That calendar is a fuel gauge with a slow leak. Your job this run: read the gauge on every property, and refill any that is running low with entries specified well enough that a writer never has to invent anything.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `standards/PUBLISH-STANDARD.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins. Where this file and `standards/PUBLISH-STANDARD.md` disagree about research or source verification, **the standard wins**, because it is the one place those rules live.
**Most runs of this routine do nothing, and that is correct.** A week where every property is comfortably above its runway threshold ends with a count per property and an exit. Refilling a calendar that does not need it produces thirty entries researched against this month's evidence that will be written four months from now against different evidence, and it pushes the entries that were already there further down a queue that is taken in order.View the complete source on GitHubseo-draft-run
When your agent uses it
Weekdays, browser only when a source refuses to be fetched. Works the single card the standup marked next: reads the shared publishing standard and the card's specification, pulls the live result set for the primary keyword, reads the pages currently ranking, writes the body, the metadata, the internal links and the outbound authority links, generates and compresses a hero, and leaves a complete draft folder with one ready line. It never opens a publishing surface, never touches a live property, and never touches a credential.
What it loads into context
Frontmatter
119 tokensAlways available to the agent
SKILL.md
17,450 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Take the card, and only that card
- Step 3. Read the card's specification, and never improvise one
- Step 4. Fix the source set before you spend a search call
- Step 5. Pull the live result set, then read what ranks
- Step 6. Write the internal competitor note, and make it invisible in the article
- Step 7. Write the draft
- Step 8. The authority links, which are required and which you verify
- Step 9. The hero, bounded at one regeneration and one ceiling
- Step 10. Alt text, which is a keyword string and not a description
- Step 11. The judge, then the ledger line
- Step 12. Research your own next findings, with whatever budget is left
- Step 13. The invariant, then one run record
- The rule about numbers
- Failure behaviour
- Idempotency, in one place
- When you learn something, write it down
- How this hands off
- Improving this routine
- The one push
- Corrections
- SEO/AEO work
Files
SKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytesSKILL.mdcore74,449 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Draft run
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-draft-run`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-draft-run.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the writer for «BUSINESS NAME». Your job this run: take the one card the morning standup marked `next`, research what currently ranks for its keyword, and leave a draft on disk that is better than every page you read. One card, one draft, one line in the ledger.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `standards/PUBLISH-STANDARD.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins. Where this file and `standards/PUBLISH-STANDARD.md` disagree about research, authority links, heroes, alt text, or the report, **the standard wins**, because it is the one place those rules live and five routines read it.
**The line that governs this routine: you produce the draft, `seo-publish-run` produces the article.** You never open a publishing surface, never sign in to a property, never press a control that makes anything live, and never edit a page that is already published. A draft folder complete on disk with a `ready` line beside it is the whole deliverable, and it is a deliverable that survives a signed out session, a busy browser, and a machine with no browser control at all.View the complete source on GitHubseo-index-sweep
When your agent uses it
Weekly, browser heavy. Unions every sitemap each property declares without a browser, builds the candidate set from URLs not already in the indexing ledger, then drives the member's own search performance console to inspect each candidate and request indexing inside an account wide allowance. Spends what is left on sitemap health, which is unmetered. It inspects, requests, and views or submits sitemaps inside that console and does nothing else there, ever, and it never removes a sitemap.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
14,120 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Union every sitemap, without a browser
- Step 3. Build the candidate set and the stalled list, still without a browser
- Step 4. Budget the allowance before you open anything
- Step 5. Open the console, and take the lock
- Step 6. Per property: resolve the identifier, then inspect and request
- Step 7. When the allowance is refused, stop requesting everywhere
- Step 8. The one bounded second request
- Step 9. Sitemap health, which is unmetered and which you own
- Step 10. File what the sweep found
- Step 11. Close the browser phase
- Step 12. The invariant, then one run record
- What this routine reports
- Failure behaviour
- Idempotency, in one place
- When you learn something, write it down
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore61,456 bytesSKILL.mdcore61,456 bytesSKILL.mdcore61,456 bytesSKILL.mdcore61,456 bytesSKILL.mdcore61,456 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Index sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-index-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-index-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the discovery engine for «BUSINESS NAME». A new article can sit undiscovered for weeks if a search engine is left to find it alone. Your job this run: find every published URL that has never had a request spent on it, ask for each one inside the allowance, and keep every declared sitemap fresh, which costs nothing and is where most of the leverage actually is.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `recipes/BROWSER-RECIPES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**Two thirds of this run needs no browser at all.** The sitemaps are fetched, the candidate set is built, the stalled list is assembled, and the allowance is budgeted before a single page opens. That ordering is deliberate: a run that cannot reach the console still produces a candidate count, a stalled count, and an honest report of which sitemaps are declared where.View the complete source on GitHubseo-intake-and-map
When your agent uses it
Monthly, browser conditional. On its first run it discovers the member's properties from the sites they name, writes the three strategy files, creates every ledger and folder the kit reads, files the opening cards, and registers the eight scheduled jobs. Every month after that it re-reads the evidence rather than its own previous conclusions, rebuilds the topic map and the internal link map, corrects any property fact it can prove wrong, and records every change with the path of the evidence that forced it. It holds publishing and spending unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
134 tokensAlways available to the agent
SKILL.md
22,267 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Decide which run this is, and take the one branch
- Step 3. First run: the working folder, and the one input this routine takes
- Step 4. First run: discover the properties from evidence, not from questions
- Step 5. First run: write `strategy/properties.md`
- Step 6. First run: research the business, then seed `strategy/topic-map.md`
- Step 7. First run: seed `strategy/voice.md`
- Step 8. First run: create the ledgers, the folders, and the member owned files
- Step 9. First run: file the opening cards
- Step 10. Register the eight jobs, or verify the eight that exist
- Step 11. Monthly: fold a month of evidence
- Step 12. Monthly: rebuild the topic map
- Step 13. Monthly: rebuild the internal link map
- Step 14. Monthly: correct the property facts you can prove wrong
- Step 15. The settings the member typed, carried across verbatim
- Step 16. The lane collision check, and the one schedule change you own
- Step 16c. The kit itself: a newer version, and a fix worth sending back
- Step 17. Write the changelog, close the browser phase, and update state
- Step 18. The invariant, then one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Idempotency, in one place
- Browser recipes
- How this hands off
- When you learn something, write it down
- Improving this routine
- The one push
- Corrections
- SEO/AEO work
Files
SKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytesSKILL.mdcore95,735 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Intake and topic map
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-intake-and-map`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-intake-and-map.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the routine that makes this Employee exist, and then the one that keeps its picture of the world honest.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `recipes/BROWSER-RECIPES.md`, your own row in `SCHEDULE.md` where one exists, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**You have two jobs and they share almost no procedure.**View the complete source on GitHubseo-publish-run
When your agent uses it
Weekdays, browser only when the property has no publishing route but a screen. Takes the oldest ready draft, resolves its property, and publishes it by that property's own route: a post file plus a registry entry plus a sitemap update plus a build plus a push, or a publishing surface driven through the flow file it owns. It verifies the live URL by loading it, records the published line, and leaves the draft ready on any failure so tomorrow retries it. It publishes one article to one named property and does nothing else outward, ever.
What it loads into context
Frontmatter
124 tokensAlways available to the agent
SKILL.md
16,991 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Take the oldest ready draft
- Step 3. Resolve the property, and the route it needs
- Step 4. Re-check the draft against the standard, on this side of the fence
- Step 5. The two routes, and which parts are common to both
- Step 6. The repository route
- Step 7. The surface route
- Step 8. Verify the live URL, because the editor's saved state is not the article
- Step 9. The ledgers, in this order
- Step 10. File what the live page taught you
- Step 11. The invariant, then one run record
- The rule about numbers
- Failure behaviour
- Idempotency, in one place
- When you learn something, write it down
- How this hands off
- Improving this routine
- The one push
- Corrections
- SEO/AEO work
Files
SKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytesSKILL.mdcore73,032 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Publish run
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-publish-run`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-publish-run.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the publisher for «BUSINESS NAME». Your job this run: take the oldest draft that is ready, put it on the property it was written for, confirm it is actually live by loading it, and write the one line that proves it. One draft, one article, one line.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `standards/PUBLISH-STANDARD.md`, `recipes/BROWSER-RECIPES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**This is the only routine in this kit that presses a control which makes something live, and the permission is narrow, named, and conditional.** Read the next section in full before you open anything. Everything about the trust in this Employee sits in the exact shape of that permission, and a routine that widens it by one control has broken the product rather than improved it.View the complete source on GitHubseo-rank-review
When your agent uses it
Weekly, browser heavy, read only on every screen. Fixes a scoring window that neither double counts nor loses an hour, reads the member's search performance console and analytics property, verifies each range actually applied before reading a figure, reconciles every number against what this Employee published, writes the week's scoreboard and the short rolling state file every other routine reads, and files what it found as cards rather than doing the work itself. It types nothing on any screen, changes no setting, publishes nothing, and never touches a credential.
What it loads into context
Frontmatter
120 tokensAlways available to the agent
SKILL.md
18,283 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fix the scoring window before you open anything
- Step 3. Fold the ledgers and build the set you are entitled to measure
- Step 4. Take the browser, open your tab, and learn or load the flow
- Step 5. Per screen: set the range, then prove the range took
- Step 6. Read the search performance figures
- Step 7. Read the analytics figures
- Step 8. Read the page indexing state
- Step 9. Reconcile against what this Employee published, and classify
- Step 10. Write the scoreboard
- Step 11. Write `tracking/rank-latest.md`
- Step 12. File the findings as cards, and do none of the work
- Step 13. Archive, which never blocks the two files
- Step 14. Close the browser phase
- Step 15. The invariant, then one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Idempotency, in one place
- Browser recipes
- How this hands off
- When you learn something, write it down
- Improving this routine
- The one push
- Native Generative AI integration
- Corrections
- SEO/AEO work
Files
SKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytesSKILL.mdcore79,223 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Rank review
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-rank-review`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-rank-review.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the measurement desk for «BUSINESS NAME». Your job this run: read what the member's own screens say happened, join it to what this Employee actually published, classify every article by a fixed rule rather than by a feeling, and turn the result into cards the rest of the kit can work on Monday.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, `recipes/BROWSER-RECIPES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**You are the only routine in this kit that produces a verdict.** Every other routine reports what it did. You are the one that says whether it worked, and five routines change their behaviour on the strength of what you write. `seo-calendar-refill` leans its whole next block on which clusters you found earning. `seo-draft-run` takes its refresh specification from the gaps you record. `seo-standup` orders its precedence on the week you stamp. `seo-intake-and-map` retires a cluster on your evidence. `seo-index-sweep` stops spending allowance on a URL you classified. A number you got wrong here is a month of work aimed at the wrong thing, and nothing downstream will catch it.View the complete source on GitHubseo-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every run record since it last ran, folds the published, draft, indexing, and rank ledgers, folds the card inbox into the work board, marks the single card the draft run works today, and writes the short morning brief the member opens first. It holds publishing and spending unless you released the channel, and it never touches a credential.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
19,639 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold every ledger once, in memory, and rewrite none of them
- Step 3. Verify against the record, never against a screen
- Step 4. Fold the card inbox
- Step 5. Promote the calendar, then mark exactly one card `next`
- Step 6. Write the board, JSON first
- Step 7. Retire what is resolved, and neutralise nothing else
- Step 8. Write the brief
- Step 9. Write `seo-latest.md`
- Step 10. The archive sweep, which never blocks the brief
- Step 11. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, write it down
- Your extra duty: reporting what changed
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
- Native Generative AI integration
- Corrections
- SEO/AEO work
Files
SKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytesSKILL.mdcore82,505 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Morning standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SEO_ROOT»/scripts/guard.mjs" seo-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/seo-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for «BUSINESS NAME». Your job this run is one thing: read what every other routine and the member did since you last ran, turn their records into facts a machine can count, rewrite the work board so it is true, and write one short brief that says what today is for.
Read `«SEO_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, you still write the brief, and the brief says what you did not get to.View the complete source on GitHubsoc-calendar-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every ledger, queue file, and run record, turns yesterday's ticks into facts a machine can count, folds the slot inbox, rewrites the content calendar, and writes the one short brief the member opens first. Its most important line names which slots publish today and how to stop them. It publishes only where you released the channel, never replies, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
112 tokensAlways available to the agent
SKILL.md
18,732 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files, exactly as the file map gives them
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold every ledger once, in memory, and rewrite none of them
- Step 3. Reconcile the marks. This is the step the rest of the kit cannot do without
- Step 4. Fold the slot inbox
- Step 5. Write the calendar, JSON first
- Step 6. Retire what is resolved, and neutralise nothing else
- Step 7. Write the brief
- Step 8. Write `soc-latest.md`
- Step 9. The archive sweep, which never blocks the brief
- Step 10. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- The browser, and why this routine has none
- Idempotency, in one place
- What this routine never does, restated because it is the whole trust model
- How this hands off
- When you learn something, fix the file
- Your extra duty: reporting what changed
- Your extra duty: news about the kit itself
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytesSKILL.mdcore78,059 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Calendar standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-calendar-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-calendar-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler for «BUSINESS NAME». Your job this run is one thing: read what every other routine and the member did since you last ran, turn their marks into facts a machine can count, rewrite the calendar so it is true, and write one short brief that says what today is for and how to stop it.
Read `«SOC_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, you still write the brief, and the brief says what you did not get to.View the complete source on GitHubsoc-draft-queue
When your agent uses it
Weekdays, browser only where a link genuinely needs verifying. Writes tomorrow's slots, one draft per due slot per destination, from the voice file, the drafting standards, and the dated material captured this morning. It rotates the post framework so no skeleton repeats, enforces the plain text and character budget rules the platforms actually impose, and judges every candidate before it lands. It publishes only where you released the channel, never schedules, never replies, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
118 tokensAlways available to the agent
SKILL.md
16,123 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines. Do these before anything else
- Step 1. Read state, read the standards, fold the ledgers
- Step 2. Select the slots
- Step 3. Select the material
- Step 4. Choose the framework, and refuse to repeat yourself
- Step 5. Platform mechanics, which are hard rules and not preferences
- Step 6. Write each draft, and let the script judge it before anything lands
- Step 7. Artwork, bounded and optional
- Step 8. Ledger housekeeping, then release
- Step 9. The report, and the rule about numbers
- Failure behaviour: what stops, and what carries on
- Browser recipes this routine uses
- Idempotency, in one place
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytesSKILL.mdcore68,248 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Draft queue
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-draft-queue`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-draft-queue.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the writer for «BUSINESS NAME». Your job this run: for every slot due tomorrow, write one post that a specific person would stop scrolling for, put it in a file the member can read and hold, and stop.
Read `«SOC_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SOC_ROOT»/ROLE.md`, `«SOC_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The text is the deliverable.** A queue file on disk with three honest drafts in it is a finished run. A run that spends its budget chasing a better image, a better link, or a better opening line and writes nothing is not. Where something is missing, draft without it and say which one in the run record.View the complete source on GitHubsoc-engagement-sweep
When your agent uses it
Weekdays, heavy browser lane. Opens the member's own signed in profile, post, and notification surfaces for every platform in the channel plan, confirms that everything published since the last run is genuinely live, reads the counts attached to each post, captures every comment, mention, quote, reply, and inbound message into a queue the member answers by hand, and drafts a suggested reply for each one. Read only everywhere and totally read only on LinkedIn. It sends only where you released the channel, never replies, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
132 tokensAlways available to the agent
SKILL.md
15,318 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. The channel plan, and folding the ledgers
- Step 3. The browser, the mutex, the tab, and your state file
- Step 4. Phase one, liveness. Prove the post exists
- Step 5. Phase two, the counts
- Step 6. Phase three, inbound, and the reply queue
- Step 7. File only work, which runs even when the browser did not
- Step 8. The invariant, then one run record
- Idempotency, in one place
- Failure behaviour: what stops, and what carries on
- Browser recipes
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore64,811 bytesSKILL.mdcore64,811 bytesSKILL.mdcore64,811 bytesSKILL.mdcore64,811 bytesSKILL.mdcore64,811 bytesSKILL.mdcore64,811 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Engagement sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-engagement-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-engagement-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the listening desk for «BUSINESS NAME». Your job this run: prove that what this Employee published is actually on the internet, read the numbers attached to it, and bring back everything a human said to this account since yesterday, each one with a reply already drafted and checked so the member can answer in the time it takes to paste.
Read `«SOC_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SOC_ROOT»/ROLE.md`, `«SOC_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The deliverable is two things and they are both proofs.** The first is a `live-confirmed` or `live-missing` line on `posts/posts.jsonl` for every post published since your last run. The second is `queue/YYYY-MM-DD-replies.md`, one entry per human who said something, each carrying the permalink, their words as you read them, and a suggested reply that has already passed the copy check.View the complete source on GitHubsoc-intake-and-voice
When your agent uses it
Runs once by hand on the first day and once a month after that. On the first run it researches the business from its own public surfaces, reads the member's own already published posts, and builds the voice file from real samples rather than from an idea of a voice, then writes the plan, creates the proof inventory, seeds the opening slots, and registers the recurring jobs. On every monthly run it re reads the evidence the kit produced and rebuilds only what the evidence contradicts. It publishes only where you released the channel, never replies, spends only where you released it, and it never enters a credential.
What it loads into context
Frontmatter
141 tokensAlways available to the agent
SKILL.md
21,892 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Reading order, every run
- Step 0. The five opening lines
- Step 1. Decide which run this is
- Step A1. Ground the run
- Step A2. Build the tree
- Step A3. Read what is already here
- Step A4. Research the business before you ask anything
- Step A5. Build the voice file from real samples
- Step A6. Write the rest of the plan
- Step A7. Seed the opening slots
- Step A8. Ask only what research could not settle
- Step A9. Reconcile the schedule and register the jobs
- Step A10. Close the first run
- Step B1. Read the evidence
- Step B2. Apply what the evidence says
- Step B3. Drift, reconciled
- Step B3a. The kit itself: a newer version, and a fix worth sending back
- Step B4. Close the monthly pass
- Your files
- Idempotency
- Browser recipes this routine uses
- What it reports
- Failure behaviour
- Handoffs
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytesSKILL.mdcore93,385 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Intake and voice
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-intake-and-voice`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-intake-and-voice.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the setup for this Employee. This routine is where the system gets its voice and its facts.
Everything the other six routines do is downstream of the files you write here. The draft queue speaks in the voice you wrote. The material sweep reads the sources you found. The publish run reaches only the destinations the member wrote into the file you created. The review cuts by the pillars you named.
**The voice file is the product.** The plan matters, the schedule matters, the seeded slots matter. But a member can fix a wrong pillar in one line and will never fix a voice that sounds like a competent stranger, because they will not be able to say what is wrong with it. They will just quietly stop letting it publish.View the complete source on GitHubsoc-material-sweep
When your agent uses it
Weekdays, heavy browser lane. Captures the dated raw material tomorrow's drafts are built from, out of the member's own shipped work, their own site and changelog, their own signed in saved searches, and the places their audience already is. Every line carries a source URL read this run, a date, a verbatim quote, and an expiry. It invents nothing, it is read only everywhere and totally read only on LinkedIn, and it sends only where you released the channel, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
16,220 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- The rules that do not bend
- Step 0. The five opening lines
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. The source list, and the one field you fill in yourself
- Step 3. Fold the ledger, and build the dedupe truth
- Step 4. Read the sources
- Step 5. Turn a read item into a material line
- Step 6. The judge
- Step 7. File only work, which runs even when the browser did not
- Step 8. The invariant, then one run record
- Idempotency, in one place
- Failure behaviour: what stops, and what carries on
- Browser recipes
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytesSKILL.mdcore68,419 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Material sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-material-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-material-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the notebook for «BUSINESS NAME». Your job this run: come back with things that are specific, dated, and true, so that tomorrow's drafts have something to say instead of an opinion to express.
Read `«SOC_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SOC_ROOT»/ROLE.md`, `«SOC_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**This routine is the difference between a feed that reads as a builder showing work and a feed that reads as machine output.** That difference is not in the writing. It is here, upstream of the writing, in whether the draft queue has a specific true thing to open with tomorrow morning. A post that says "shipping consistently compounds" was written by something with nothing to say. A post that says "the migration took four attempts and the third one is the one that taught me the thing" was written by somebody who did the work, and the only reason a routine can write the second kind is that a run like this one wrote the detail down with its date and its source beside it.View the complete source on GitHubsoc-performance-review
When your agent uses it
Weekly, on a Friday, read only everywhere. Scores the week from the kit's own ledgers with a source path beside every number, cuts it by platform, framework, pillar, slot time, and post length, rewrites the drafting standards from that evidence and from nothing else, replays the browser flows the other routines depend on, and files exactly one thing to stop and one to do more of. It publishes only where you released the channel, never replies, spends only where you released it, never touches a credential, and never writes a number it did not measure.
What it loads into context
Frontmatter
130 tokensAlways available to the agent
SKILL.md
19,246 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Fix the scoring window before you count anything
- Step 3. Read the ledgers and build the working table
- Step 4. The five cuts
- Step 5. Score what moved
- Step 6. The browser phase: read screens, then the recipe replay
- Step 7. Rewrite the drafting standards
- Step 8. Source the numbers you are about to publish
- Step 9. Write the scorecard
- Step 10. Name one stop and one do more of, and file both
- Step 11. Archive sweep
- Step 12. State, lock, record
- What this routine reports
- Failure behaviour
- Idempotency, all of it in one place
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytesSKILL.mdcore79,666 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Performance review
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-performance-review`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-performance-review.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the Friday reviewer for «BUSINESS NAME». One run, four jobs: score the week from the ledgers, rewrite the drafting standards from what the numbers actually say, replay the browser flows the other routines depend on, and file one thing to stop and one thing to do more of so Monday's calendar carries them.
Read `«SOC_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SOC_ROOT»/ROLE.md` and the `## Corrections` at the bottom of this file. Where anything below and the contract disagree, the contract wins. Where the contract and the member's own workspace rule file disagree, the member's file wins.
**Two files are the only things this run has to produce**, and they are the scorecard and the drafting standards. The read screens, the recipe replay, and the archive sweep are enrichments, each with its own cap. Any of them can be skipped this week, named in one line, and picked up next Friday. The scorecard itself cannot wait, because the numbers it would have carried are gone by the following Friday: `last_values` holds only what was actually measured, and an unmeasured week leaves a hole nothing can fill in afterwards.View the complete source on GitHubsoc-publish-run
When your agent uses it
Weekdays, light browser lane. The one routine in this kit with an outward surface. Takes the slots that are due today, whose drafts were written yesterday and passed the copy check, whose hold box is not ticked, and whose destination the member wrote into the publish allow list themselves, and hands each one to the channel the member configured. It records a receipt the instant each slot lands. It never drives a browser control to publish, never replies, sends only where you released the channel a message, spends only where you released it, and never touches a credential.
What it loads into context
Frontmatter
129 tokensAlways available to the agent
SKILL.md
15,632 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Step 0. The five opening lines. Do these before anything else
- Step 1. Read what you need, once
- Step 2. Fold the ledger and build the duplicate guard
- Step 3. The four conditions, and nothing outside them
- Step 4. Order the work, and set the guard before you touch a channel
- Step 5. The handover
- Step 6. Read the permalink back
- Step 7. State, and what you leave behind
- Step 8. The invariant, then one run record
- Failure behaviour
- Idempotency, in one place
- Browser recipes this routine uses
- How this hands off
- When you learn something, write it down
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore66,985 bytesSKILL.mdcore66,985 bytesSKILL.mdcore66,985 bytesSKILL.mdcore66,985 bytesSKILL.mdcore66,985 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Publish run
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«SOC_ROOT»/scripts/guard.mjs" soc-publish-run`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/soc-publish-run.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the sanctioned autonomous finish for «BUSINESS NAME». Everything else this Employee does produces a file. This is the one routine that produces a post on the internet, and every part of it is bounded for exactly that reason.
Read `«SOC_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `«SOC_ROOT»/ROLE.md`, `«SOC_ROOT»/CAPABILITIES.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The one line that governs this routine: you hand copy to a channel the member configured, and you hand nothing anywhere else.** You do not open a composer. You do not click Post. You do not reply to anybody, message anybody, or comment anywhere. The only browser page you open all morning is a permalink you read to prove the thing you sent is the thing that arrived.View the complete source on GitHubweb-dependency-run
When your agent uses it
Weekly. Works dependency and supply chain debt one project at a time, sorting every candidate into patch and lockfile only, minor, and anything major or breaking. It bumps the first class on a branch behind that project's own gate and pushes it for the member to merge. It holds the other two with a reason and a card carrying the evidence, so the member decides rather than being handed a red build.
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
13,625 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Build the project order
- Step 3. Read the project before you classify anything
- Step 4. Get the two lists, and sort every candidate into three classes
- Step 5. Stage class one, run the gate, and let it decide
- Step 6. Hold class two and class three, with the evidence attached
- Step 7. Close out: state, lock, record
- The rule about numbers
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytesSKILL.mdcore57,042 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Dependency run
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-dependency-run`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-dependency-run.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You work the dependency debt across every project in the inventory, one project per unit of work, in the priority order last Friday's report set. **The output is a branch the member merges and a list of held packages with the evidence attached. It is never a red build handed over as a favour.**
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins. **And where this file and the project's own rule file or docs folder disagree, the project wins**, because a project's rule file is the written record of somebody having been wrong in that repository before.
**One branch per project, at most.** Not one per package, not one per advisory. A member reviewing dependency work reviews it as a batch or they do not review it at all, and eleven branches for eleven patch releases is eleven reviews nobody will do.View the complete source on GitHubweb-fix-runner
When your agent uses it
Weekdays. Takes the one card the standup marked next and turns it into a reviewable change on a branch, never a deployment. It reads the project's own rules and docs first, makes the smallest change the card describes, runs that project's own gate, writes a change brief with the rollback in one line, and pushes the branch for the member to merge. It never merges, never deploys, never applies a migration, and never rotates a key.
What it loads into context
Frontmatter
108 tokensAlways available to the agent
SKILL.md
16,192 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Take exactly one card
- Step 3. Read the project before you read the card again
- Step 4. Decide the shape of this run
- Step 5. Read the evidence, then make the smallest change that satisfies the card
- Step 6. Run that project's own gate, and let it decide
- Step 7. Commit, brief, push
- Step 8. Write your own card fields, and nothing else
- Step 9. The console form, on the runs that need one
- Step 10. The invariant, release the lock, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Idempotency, in one place
- Browser recipes, by name
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore67,045 bytesSKILL.mdcore67,045 bytesSKILL.mdcore67,045 bytesSKILL.mdcore67,045 bytesSKILL.mdcore67,045 bytesSKILL.mdcore67,045 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Fix runner
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-fix-runner`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-fix-runner.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You turn one card into one reviewable change. That is the whole job, and the noun matters more than anything else in this file: **the output is a change the member can read and merge, never a change that reached production by your hand.**
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins. **And where this file and the project's own rule file or docs folder disagree, the project wins.** That is not politeness. A project's rule file is the accumulated result of somebody being wrong in that repository before, and your instinct about their codebase is worth less than their own written record of it.
**One card per run.** Not two because the first was small, not three because the budget held. The member reviews what you produce, and a review queue that grows faster than they can read it is a queue they stop reading, at which point this Employee has stopped producing anything at all.View the complete source on GitHubweb-guardrail-review
When your agent uses it
Monthly, file work only, no browser at all. Re-reads a month of real change outcomes and rewrites the file that decides what the fix runner may change without asking first. A class the member merged unchanged repeatedly widens by exactly one step. A class they edited, closed unmerged, or that regressed narrows immediately. It never touches the outer boundary, which no volume of evidence can widen.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
12,386 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one thing that is never tuneable
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fix the evidence window, and decide whether the month is thin
- Step 3. Compute the five counts, per fix class
- Step 4. Decide what moves, and in which direction
- Step 5. Rewrite the file, whole, from the evidence
- Step 6. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Idempotency, in one place
- The browser, and why this routine has none
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore52,064 bytesSKILL.mdcore52,064 bytesSKILL.mdcore52,064 bytesSKILL.mdcore52,064 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Guardrail review
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-guardrail-review`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-guardrail-review.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You own `policy/safe-fix-rules.md` from the first run of `web-inventory-refresh` onward, and it is the only file you write that anything else acts on. **It decides what `web-fix-runner` may change without filing a question first, and you rewrite it once a month from what the member actually did with the changes it drafted.**
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**This is not an opinion pass.** You do not decide what feels safe. You count what the member merged, what they edited on the way in, what they closed without merging, what failed its own gate, and what closed an incident that came back. Those five counts, per fix class, are the whole input. **A widening is the member's own evidence, not the agent's judgement**, and that distinction is the reason this routine is allowed to exist at all.View the complete source on GitHubweb-inventory-refresh
When your agent uses it
Monthly, and on its first run it is the whole setup, launched by hand. It discovers what the member actually runs by walking their code roots and reading the registrar, the host, and the hosted database, then writes the inventory, the domains file, the starting budgets, and the opening safe fix rules, seeds the board, builds the dashboard, and registers one scheduled job per routine. It creates no account, buys nothing, and provisions nothing.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
16,111 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The two guardrails, and the one question
- Your files
- Step 0. The five opening lines
- Step 1. Preflight, and which run this is
- Step A1. Ground the run, and ask the one question
- Step A2. Build the tree
- Step A3. Walk the code roots
- Step A4. Read the three provider surfaces
- Step A5. Write the inventory
- Step A6. Write the starting policy
- Step A7. Seed the board
- Step A8. Build the dashboard
- Step A9. Reconcile the schedule and register the jobs
- Step A10. Close the first run
- Step B1. Read the same evidence again
- Step B2. Apply what changed, and carry the member's words across
- Step B3. Schedule drift, and the rebuild
- Step B3a. The kit itself: a newer version, and a fix worth sending back
- Write state, release the lock, append the record
- The rule about numbers
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore68,020 bytesSKILL.mdcore68,020 bytesSKILL.mdcore68,020 bytesSKILL.mdcore68,020 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Inventory refresh
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-inventory-refresh`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-inventory-refresh.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the routine that knows what the member actually runs. Every other routine in this Employee reads what you write, so **a value you guessed is a value seven routines will act on for a month.**
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**You discover before you ask.** The member's repositories carry their own remotes, branches, manifests, build commands, rule files, and docs. Their provider accounts carry the hostnames, the environments, the log surfaces, and the expiry dates. Almost everything this Employee needs is already written down somewhere the member does not have to type it again. **You ask for exactly one value**, and only because no amount of reading can settle it: the working root path.View the complete source on GitHubweb-platform-guard
When your agent uses it
Weekly. Confirms that the registrar, the host, and the hosted database still match what the inventory says, in one read only pass per project, and names every drift with the exact screen, the exact current value, and the exact intended value. It records that a variable exists and never its value, it fixes nothing inside an account, it buys nothing in any state, and it never rotates a key.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
15,142 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- The one line that governs this whole file
- The two guardrails, and where they bite on this surface
- What else you own, with no approval ritual
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight and the inputs
- Step 2. Build the pass plan
- Step 3. Take the lane, open your own tab
- Step 4. The registrar
- Step 5. The host
- Step 6. The hosted database
- Step 7. Repair what drifted in your own flows
- Step 8. The expiry ladder, which is the one finding with a deadline
- Step 9. The findings ledger, then the cards
- Step 10. Write state, release the lock, append the record
- What this routine reports, and what it refuses to
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore64,325 bytesSKILL.mdcore64,325 bytesSKILL.mdcore64,325 bytesSKILL.mdcore64,325 bytesSKILL.mdcore64,325 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Platform guard
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-platform-guard`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-platform-guard.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the weekly reconciliation between what the inventory says the member's projects run on and what the three provider surfaces actually show. **You find drift and you name it. You do not close it.**
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The essential output is the finding list.** One real drift named, with the setting, the recorded value, the observed value, and the screen they sit on, is a finished pass. Nothing you could have changed in an account is worth one control pressed in it.View the complete source on GitHubweb-site-sweep
When your agent uses it
Weekdays. Checks every project in the inventory from the outside, records one dated observation per project, then reads the production log surfaces since its own cursor and groups every error into a fingerprint so a hundred sightings are one incident. It appends the health ledgers, writes the health digest, and cards the incidents that clear the threshold. It changes nothing, deploys nothing, and never rotates a key.
What it loads into context
Frontmatter
96 tokensAlways available to the agent
SKILL.md
16,437 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Build the run plan from the inventory, and nothing else
- Step 3. Take the lane, open your own tab
- Step 4. Reachability, per declared path, probe first
- Step 5. The render, the console, the sample, and the build identifier
- Step 6. The log read, bounded at both ends
- Step 7. Repair what drifted, and learn what was never written down
- Step 8. Write the ledgers and the digest
- Step 9. Cards into the inbox
- Step 10. The archive sweep, which never blocks the digest
- Step 11. The invariant, release the lock, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Idempotency, in one place
- Browser recipes, by name
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore68,761 bytesSKILL.mdcore68,761 bytesSKILL.mdcore68,761 bytesSKILL.mdcore68,761 bytesSKILL.mdcore68,761 bytesSKILL.mdcore68,761 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Site sweep
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-site-sweep`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-site-sweep.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the first routine of the day and the only one that ever reads a raw production log line. Your job is to find out what is actually true about the member's live projects this morning, write it down as counted facts, and hand the rest of the kit an incident list that is short enough to act on.
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The essential output is one dated observation per project and a grouped incident list.** A run that reached four projects out of six and wrote four honest observations has produced something. A run that reached all six and wrote a number it did not measure has produced worse than nothing, because everything downstream trusts your ledgers.View the complete source on GitHubweb-standup
When your agent uses it
Weekdays, file work only, no browser at all. Reads every ledger and run record since its cursor, resolves which drafted changes actually merged by reading the commit graph rather than a dashboard, closes and reopens incidents on that evidence, folds the card inbox, re-renders the review board, and writes the short morning brief the member opens first. It never merges, never deploys, and never touches a credential.
What it loads into context
Frontmatter
99 tokensAlways available to the agent
SKILL.md
18,092 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines. Do these before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fold every ledger once, in memory, and rewrite none of them
- Step 3. Resolve every drafted change against the commit graph
- Step 4. Reconcile the incidents, which is a fold and never a status
- Step 5. Reconcile the board, fold the inbox, and pick what today is for
- Step 6. Write the board, JSON first
- Step 7. Retire what is resolved, then write the brief
- Step 8. Write `web-latest.md`
- Step 9. The archive sweep, which never blocks the brief
- Step 10. The invariant, then exactly one run record
- The rule about numbers
- Failure behaviour: what stops, and what carries on
- Idempotency, in one place
- The browser, and why this routine has none
- How this hands off
- When you learn something, fix the file
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytesSKILL.mdcore75,282 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Triage standup
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-standup`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-standup.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are the morning reconciler. Your job this run is one thing: read what every other routine and the member did since you last ran, turn their marks into facts a machine can count, rewrite the board so it is true, and write one short brief that says what today is for.
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
**The brief is the product.** Everything else in this run exists so that `brief-latest.md` is true when the member reads it with their first coffee. If the budget runs out halfway through the reconciliation, you still write the brief, and the brief says what you did not get to. **A morning with no brief is the single failure this routine exists to prevent.**View the complete source on GitHubweb-weekly-report
When your agent uses it
Weekly. Scores the week from the ledgers with a source path beside every number and never writes a number it did not count in a file this run. It names exactly two things and files both as cards, the one fix worth doing next week and the one thing to stop, and it replays every learned browser flow once, read only, so a drifted selector is found on a Friday rather than on a Tuesday morning a routine needed it.
What it loads into context
Frontmatter
105 tokensAlways available to the agent
SKILL.md
12,946 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Shared work cycle
- What you own, and the two guardrails
- Your files
- Step 0. The five opening lines, before anything else
- Step 1. Preflight. Cheap checks, each with a stated consequence
- Step 2. Fix the scoring window before you count anything
- Step 3. Fold the ledgers and build the working table
- Step 4. Score the week, with a source path beside every number
- Step 5. Name exactly two things
- Step 6. The replay, read only, under a hard cap
- Step 7. Write the report
- Step 8. Close out: state, lock, record
- The rule about numbers
- Failure behaviour
- Idempotency, all of it in one place
- Browser recipes, by name
- How this hands off
- Improving this routine
- The one push
- Corrections
Files
SKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytesSKILL.mdcore53,818 bytes
Read SKILL.md
## Shared work cycle
After the guard returns `run`, read `WORK-CYCLE.md` and your entry in `work-profile.json`. Apply the contract's work-cycle extension to work selection, scoped blockers, progress evidence and claim recovery. Before closing, write the progress receipt, then the normal run record, then finish the claim with its token. Preserve the remaining budget on a resume. A same-period `run` with a claim overrides only the legacy Step 0.2 exit/reset. All pause, release and browser guards still apply.
# Weekly change report
**Run the guard before you read anything else, this file included past this line.** Through `shell.run`: `node "«WEB_ROOT»/scripts/guard.mjs" web-weekly-report`. It reads `PAUSED`, your row in `SCHEDULE.md`, and `state/web-weekly-report.json`, and prints one verdict. On `skipped-paused`, `skipped-out-of-window`, `skipped-already-ran`, or `failed` it has already appended the run record: exit now and read nothing else. On `run`, carry on. Step 0 below repeats the same checks by hand and they stay, because a harness with no `shell.run` has nothing else to run them with; the guard exists so that a fire that should not run costs cents instead of a full read of the contract.
You are Friday. You read what the week actually produced, you write it down with a source beside every number, and you name two things the member should act on. **Every figure in your report either carries the path of the file you counted it in this run, or it reads `n/a` with the reason. There is no third option and no rounding.**
Read `«WEB_ROOT»/CONTRACT.md` first, every run, including its `## Corrections` section. Then `ROLE.md`, `CAPABILITIES.md`, your own row in `SCHEDULE.md`, and the `## Corrections` at the foot of this file. Where anything below and `CONTRACT.md` disagree, `CONTRACT.md` wins. Where `CONTRACT.md` and the member's own workspace rule file disagree, the member's file wins.
You are the only writer of `reports/report-YYYY-Www.md`. You read every ledger in this kit and you append to none of them, with three exceptions: `board/inbox.jsonl`, `runlog.jsonl`, and your own state file.View the complete source on GitHubhire
When your agent uses it
Hire one of the eight open source AI Employees (GTM Engineer, SEO/AEO, Web Dev, Social Media, Ad Manager, Sales, Customer Satisfaction, Chief of Staff) into a local folder, prove it runs, and hand over its install prompt. Also answers which one to hire first, how a hired employee runs on a schedule, how to direct it, how it improves from corrections, and how to upgrade it. Use when the user says hire an employee, install an AI employee, set up the GTM Engineer, names one of the eight, or asks how AI Employees work. It copies files and runs self tests only. It registers no schedule and sends nothing.
What it loads into context
Frontmatter
143 tokensAlways available to the agent
SKILL.md
2,818 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Pick the employee
- 2. Choose the folder
- 3. Copy it into place
- 4. Read the result
- 5. Hand over
- 6. What to check the next weekday
- 7. Guardrails, said once
- 8. Working with a hired employee
- 9. Close
- Reconciling local improvements
Scripts executed separately
../../installer/cli.mjs
Files
../../installer/cli.mjsruns13,122 bytesSKILL.mdcore12,082 bytesSKILL.mdcore12,082 bytesSKILL.mdcore12,082 bytes
Read SKILL.md
# Hire an AI Employee
An AI Employee is a folder of plain markdown instructions and a few small Node scripts that covers one business role. Each routine in the folder runs on a schedule, on the user's own machine, through the agent they already use, and each weekday it leaves a short brief. The folder is the product. There is no service, no account and no runtime behind it.
Your job here is narrow and the same every time: put one employee folder in the right place, prove it runs, and hand over the install prompt with the path filled in. The install prompt then does the setup, in a fresh session opened in that folder. You do not run the install prompt yourself, you do not register any scheduled job, and you send nothing anywhere.
If the user is asking a question rather than hiring (which one first, how the schedule works, how it improves), answer from sections 1 and 8, then offer to hire.
## 1. Pick the employee
| Slug | Employee | Owns | Routines | Also called |
|---|---|---|---|---|
| `gtm-engineer` | GTM Engineer | Positioning, the launch board, outbound drafts, directory and press forms, the weekly scoreboard | 8 | GTM, go to market, launch, growth |
| `seo-employee` | SEO/AEO Employee | Keyword research, one article a weekday, publishing, indexing, rank review, visibility in AI answers | 8 | SEO, AEO, search, content, blog |View the complete source on GitHubSkills included
- ads-account-intake
- ads-account-read
- ads-build-desk
- ads-change-list
- ads-creative-retro
- ads-creative-studio
- ads-desk-standup
- cos-charter-and-fleet-audit
- cos-decision-brief
- cos-decision-review
- cos-fault-dossier
- cos-fleet-reconcile
- cos-market-sweep
- cos-metrics-review
- csat-churn-watch
- csat-deflection-desk
- csat-desk-intake
- csat-desk-standup
- csat-inbox-sweep
- csat-reply-desk
- csat-satisfaction-report
- csat-taxonomy-refresh
- gtm-board-standup
- gtm-icp-refresh
- gtm-intake-and-dashboard
- gtm-launch-step-runner
- gtm-outreach-queue
- gtm-paid-and-tracking-guard
- gtm-scoreboard
- gtm-signal-sweep
- sales-desk-setup
- sales-desk-standup
- sales-first-touch-drafts
- sales-followup-sweep
- sales-pipeline-review
- sales-prospect-sweep
- sales-qualification-refresh
- seo-answer-visibility
- seo-calendar-refill
- seo-draft-run
- seo-index-sweep
- seo-intake-and-map
- seo-publish-run
- seo-rank-review
- seo-standup
- soc-calendar-standup
- soc-draft-queue
- soc-engagement-sweep
- soc-intake-and-voice
- soc-material-sweep
- soc-performance-review
- soc-publish-run
- web-dependency-run
- web-fix-runner
- web-guardrail-review
- web-inventory-refresh
- web-platform-guard
- web-site-sweep
- web-standup
- web-weekly-report
- hire
Repository facts
- License
- MIT
- Created
- Sep 2, 2026
- Last pushed
- Oct 30, 2026
- Forks
- 245
- Open issues
- 3
- Project activity
- Active
Rank over the last 12 weeks
Now #828 · best #828 · up 60 in 30 days
- #950 on Oct 19
- #940 on Oct 20
- #921 on Oct 21
- #874 on Oct 22
- #890 on Oct 23
- #828 since Oct 24
30 earlier periods
- #892 on Aug 30
- #889 on Sep 19
- #905 on Sep 20
- #917 on Sep 21
- #934 on Sep 22
- #924 on Sep 23
- #888 on Sep 24
- #836 on Sep 25
- #861 on Sep 26
- #878 on Sep 27
- #927 on Sep 28
- #953 on Sep 29
- #920 on Sep 30
- #856 on Oct 1
- #873 on Oct 2
- #844 on Oct 3
- #908 on Oct 5
- #898 on Oct 6
- #936 on Oct 7
- #975 on Oct 8
- #935 on Oct 9
- #903 on Oct 10
- #914 on Oct 11
- #934 on Oct 12
- #939 on Oct 13
- #956 on Oct 14
- #942 on Oct 15
- #946 on Oct 16
- #928 on Oct 17
- #908 on Oct 18
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 739 notes
.claude-plugin/marketplace.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/marketplace.json:1Analysis incomplete: Referenced executable target unavailable; not analyzed.claude-plugin/plugin.json:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-intake/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedemployees/ad-manager-employee/routines/ads-account-read/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 191 network referencesin 34 files: soc-intake-and-voice/SKILL.md:349 installer/cli.mjs:60 gtm-launch-step-runner/SKILL.md:423 and 31 more
- No hidden or obfuscated text
- No instruction overrides
- 1 executable scriptin 1 file: installer/cli.mjs:1
- No access to secrets
- No requests to vote in Hot
Show all 192 signals by file
.claude-plugin/marketplace.json
- Network accessline 3
"owner": { "name": "Mark Fulton", "url": "https://github.com/markfulton" - Network accessline 4
"name": "Mark Fulton", "url": "https://github.com/markfulton" }, - Network accessline 5
"url": "https://github.com/markfulton" - Network accessline 17
"name": "Mark Fulton" }, "homepage": "https://club.reinventing.ai/plugin", - Network accessline 18
}, "homepage": "https://club.reinventing.ai/plugin", "repository": "https://github.com/markfulton/ai-employees", - Network accessline 19
"homepage": "https://club.reinventing.ai/plugin", - Network accessline 20
"repository": "https://github.com/markfulton/ai-employees",
.claude-plugin/plugin.json
- Network accessline 6
"author": { "name": "Mark Fulton", "url": "https://github.com/markfulton" - Network accessline 7
"name": "Mark Fulton", "url": "https://github.com/markfulton" }, - Network accessline 8
"url": "https://github.com/markfulton" - Network accessline 9
}, "homepage": "https://club.reinventing.ai/plugin", "repository": "https://github.com/markfulton/ai-employees", - Network accessline 10
"homepage": "https://club.reinventing.ai/plugin", - Network accessline 11
"repository": "https://github.com/markfulton/ai-employees",
employees/ad-manager-employee/routines/ads-account-intake/SKILL.md
- Network accessline 736
1. Read `«ADS_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B3a.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https: - Network accessline 737
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/ad-manager-employee/VERSION` - `https://unpkg.com/ai-employees@latest/employees/ad-man - Network accessline 738
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/ad-manager-employee/VERSION` - Network accessline 739
- `https://unpkg.com/ai-employees@latest/employees/ad-manager-employee/VERSION` - Network accessline 778
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/ad-manager-employee/routines/ads-desk-standup/SKILL.md
- Network accessline 522
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=ad-manager-employee)
employees/chief-of-staff/routines/cos-charter-and-fleet-audit/SKILL.md
- Network accessline 536
## «surface-id»: «name» - url: https://«the entry point» - Network accessline 537
- url: https://«the entry point» - Network accessline 825
1. Read `«COS_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B4a.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https: - Network accessline 826
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/chief-of-staff/VERSION` - `https://unpkg.com/ai-employees@latest/employees/chief-of-st - Network accessline 827
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/chief-of-staff/VERSION` - Network accessline 828
- `https://unpkg.com/ai-employees@latest/employees/chief-of-staff/VERSION` - Network accessline 867
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/chief-of-staff/routines/cos-fleet-reconcile/SKILL.md
- Network accessline 640
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=chief-of-staff)
employees/chief-of-staff/routines/cos-market-sweep/SKILL.md
employees/customer-satisfaction-employee/routines/csat-deflection-desk/SKILL.md
- Network accessline 195
"cards_filed": [], "help_center_index": {"checked_on": "2026-03-04", "pages": [{"title": "«as read»", "url": "https://«url»"}]} - Network accessline 196
"help_center_index": {"checked_on": "2026-03-04", "pages": [{"title": "«as read»", "url": "https://«url»"}]} } - Network accessline 197
"pages": [{"title": "«as read»", "url": "https://«url»"}]} - Network accessline 362
helpdesk:corvid:t-4478 [tickets/tickets.jsonl] facts checked against: strategy/product.md, read 2026-03-11 links to: https://«the help center page, where one exists» - Network accessline 364
links to: https://«the help center page, where one exists» - Network accessline 406
status: draft, not published publish to: the help center, the Billing section, as a new page https://«the help center's billing section URL» - Network accessline 407
publish to: the help center, the Billing section, as a new page https://«the help center's billing section URL» built from: helpdesk:acme-co:t-4455, helpdesk:beta-ltd:t-4460, review:mreid:r-8821, - Network accessline 408
https://«the help center's billing section URL» - Network accessline 472
"artifact": "help/help-billing-confusion.md", "status": "todo", "blocker": "", "done": false, "done_on": null, "next": false, "worked": [], "notes": [], "url": "https://«the help center section URL»", "channel": "help", "theme": "bill - Network accessline 474
"url": "https://«the help center section URL»", "channel": "help", "theme": "billing-confusion"}}
employees/customer-satisfaction-employee/routines/csat-desk-intake/SKILL.md
- Network accessline 419
## store-reviews: The app store listing channel: review url: https://«the listing URL» - Network accessline 420
channel: review url: https://«the listing URL» login state: public - Network accessline 421
url: https://«the listing URL» - Network accessline 895
1. Read `«CSAT_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B3a.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https - Network accessline 896
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/customer-satisfaction-employee/VERSION` - `https://unpkg.com/ai-employees@latest/emplo - Network accessline 897
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/customer-satisfaction-employee/VERSION` - Network accessline 898
- `https://unpkg.com/ai-employees@latest/employees/customer-satisfaction-employee/VERSION` - Network accessline 937
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/customer-satisfaction-employee/routines/csat-desk-standup/SKILL.md
- Network accessline 563
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=customer-satisfaction-employee)
employees/customer-satisfaction-employee/routines/csat-inbox-sweep/SKILL.md
- Network accessline 396
{"ticket_id":"store-reviews:jparker:r-88213","revision":1, "channel":"review","source":"store-reviews", "source_url":"https://«page read this run»", - Network accessline 397
"channel":"review","source":"store-reviews", "source_url":"https://«page read this run»", "account":"«name exactly as the page shows it»","account_slug":"jparker", - Network accessline 398
"source_url":"https://«page read this run»",
employees/gtm-engineer/routines/gtm-board-standup/SKILL.md
- Network accessline 459
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=gtm-engineer)
employees/gtm-engineer/routines/gtm-intake-and-dashboard/SKILL.md
- Network accessline 796
1. Read `«GTM_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B3a.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https: - Network accessline 797
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/gtm-engineer/VERSION` - `https://unpkg.com/ai-employees@latest/employees/gtm-engineer/ - Network accessline 798
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/gtm-engineer/VERSION` - Network accessline 799
- `https://unpkg.com/ai-employees@latest/employees/gtm-engineer/VERSION` - Network accessline 838
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/gtm-engineer/routines/gtm-launch-step-runner/SKILL.md
- Network accessline 423
{"flow": "«outlet slug»", "owner": "gtm-launch-step-runner", "url": "https://«submission URL»", - Network accessline 424
"owner": "gtm-launch-step-runner", "url": "https://«submission URL»", "version": "2026-03-05", - Network accessline 425
"url": "https://«submission URL»", - Network accessline 432
{"name": "Tagline", "cap": 120, "required": true}, {"name": "Description", "cap": 600, "required": false, "surface": "rich-text"}], "steps": [{"n": 1, "action": "navigate", "target": "https://«submission URL»", "expect_text": " - Network accessline 433
{"name": "Description", "cap": 600, "required": false, "surface": "rich-text"}], "steps": [{"n": 1, "action": "navigate", "target": "https://«submission URL»", "expect_text": "Submit your product"}, {"n": 2, "action": "read", "t - Network accessline 434
"steps": [{"n": 1, "action": "navigate", "target": "https://«submission URL»", "expect_text": "Submit your product"}, - Network accessline 547
"notes": [], "field_spec": {}, "url": "https://«submission URL»", - Network accessline 548
"field_spec": {}, "url": "https://«submission URL»", "channel": "directory", - Network accessline 549
"url": "https://«submission URL»", - Network accessline 622
- outlet: «outlet name» - channel: directory - url: https://«submission URL» - Network accessline 623
- channel: directory - url: https://«submission URL» - required fields still empty: «field», «field» - Network accessline 624
- url: https://«submission URL»
employees/gtm-engineer/routines/gtm-signal-sweep/SKILL.md
- Network accessline 373
{"signal_id":"careers-acme:acme-co:hiring:job-88213", "contact_id":"c-0142","first":"«first name as read»","name":"«name as read»", "company":"Acme Co","account_url":"https://«account URL»", - Network accessline 374
"contact_id":"c-0142","first":"«first name as read»","name":"«name as read»", "company":"Acme Co","account_url":"https://«account URL»", "email":"«address or null»","linkedin_url":"«profile URL or null»", - Network accessline 375
"company":"Acme Co","account_url":"https://«account URL»", - Network accessline 376
"email":"«address or null»","linkedin_url":"«profile URL or null»", "segment":"segment-2","campaign":"«campaign slug»", "signal_type":"hiring","source":"careers-acme","source_url":"https://«page read this run»", - Network accessline 377
"segment":"segment-2","campaign":"«campaign slug»", "signal_type":"hiring","source":"careers-acme","source_url":"https://«page read this run»", "observed_on":"YYYY-MM-DD","event_date":"YYYY-MM-DD", - Network accessline 378
"signal_type":"hiring","source":"careers-acme","source_url":"https://«page read this run»",
employees/sales-employee/routines/sales-desk-setup/SKILL.md
- Network accessline 689
1. Read `«SALES_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B3a.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `http - Network accessline 690
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/sales-employee/VERSION` - `https://unpkg.com/ai-employees@latest/employees/sales-emplo - Network accessline 691
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/sales-employee/VERSION` - Network accessline 692
- `https://unpkg.com/ai-employees@latest/employees/sales-employee/VERSION` - Network accessline 731
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/sales-employee/routines/sales-desk-standup/SKILL.md
- Network accessline 511
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=sales-employee)
employees/sales-employee/routines/sales-prospect-sweep/SKILL.md
- Network accessline 255
"next_contact_number": 143, "sources": { "ops-directory": {"segment": "segment-2", "url": "https://«URL»", - Network accessline 256
"sources": { "ops-directory": {"segment": "segment-2", "url": "https://«URL»", "last_item_id": "row-88213", "page_cursor": 1, - Network accessline 257
"ops-directory": {"segment": "segment-2", "url": "https://«URL»", - Network accessline 427
{"prospect_id":"ops-directory:acme-co:jordan-reyes", "contact_id":"c-0142","first":"«first name as read»","name":"«name as read»", "company":"Acme Co","account_url":"https://«account URL»", - Network accessline 428
"contact_id":"c-0142","first":"«first name as read»","name":"«name as read»", "company":"Acme Co","account_url":"https://«account URL»", "role":"«job title as read»","industry":"«industry as read»", - Network accessline 429
"company":"Acme Co","account_url":"https://«account URL»", - Network accessline 431
"email":"«address or null»","linkedin_url":"«profile URL or null»", "segment":"segment-2","campaign":"«campaign slug»", "source":"ops-directory","source_url":"https://«page read this run»", - Network accessline 432
"segment":"segment-2","campaign":"«campaign slug»", "source":"ops-directory","source_url":"https://«page read this run»", "read_on":"YYYY-MM-DD","expires_on":"YYYY-MM-DD", - Network accessline 433
"source":"ops-directory","source_url":"https://«page read this run»",
employees/seo-employee/routines/seo-draft-run/SKILL.md
- Network accessline 380
"hero_encoded_chars": 21840, "internal_links": ["/blog/«sibling slug»", "/«property page»"], "authority_links": [{"url": "https://«source»", "anchor": "«descriptive anchor»", "checked": "2026-03-04"}], - Network accessline 381
"internal_links": ["/blog/«sibling slug»", "/«property page»"], "authority_links": [{"url": "https://«source»", "anchor": "«descriptive anchor»", "checked": "2026-03-04"}], "registry_fields": {}, - Network accessline 382
"authority_links": [{"url": "https://«source»", "anchor": "«descriptive anchor»", "checked": "2026-03-04"}], - Network accessline 383
"registry_fields": {}, "sources_read": ["https://«page»"], "drafted_on": "2026-03-04"} - Network accessline 384
"sources_read": ["https://«page»"],
employees/seo-employee/routines/seo-index-sweep/SKILL.md
- Network accessline 371
{"url":"https://«property»/blog/domain-pricing-compared","property":"«property id»", - Network accessline 414
{"url":"https://«property»/blog/«slug»","property":"«property id»", - Network accessline 492
"start":"2026-03-10T11:00:12+07:00","end":"2026-03-10T11:39:44+07:00", "status":"partial", "outputs":["index/requests.jsonl (+9 requested, +14 already-indexed, +2 re-requested)","sitemaps (3 resubmitted, oldest last read 2026-02-19)","boa - Network accessline 493
"status":"partial", "outputs":["index/requests.jsonl (+9 requested, +14 already-indexed, +2 re-requested)","sitemaps (3 resubmitted, oldest last read 2026-02-19)","board/inbox.jsonl (+2 cards)"], "blockers":["«property» is not held in the - Network accessline 494
"outputs":["index/requests.jsonl (+9 requested, +14 already-indexed, +2 re-requested)","sitemaps (3 resubmitted, oldest last read 2026-02-19)","board/inbox.jsonl (+2 cards)"],
employees/seo-employee/routines/seo-intake-and-map/SKILL.md
- Network accessline 731
1. Read `«SEO_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to 16c.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https: - Network accessline 732
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/seo-employee/VERSION` - `https://unpkg.com/ai-employees@latest/employees/seo-employee/ - Network accessline 733
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/seo-employee/VERSION` - Network accessline 734
- `https://unpkg.com/ai-employees@latest/employees/seo-employee/VERSION` - Network accessline 773
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/seo-employee/routines/seo-publish-run/SKILL.md
- Network accessline 368
{"flow": "publish-«property»", "owner": "seo-publish-run", "url": "https://«the composer entry screen»", - Network accessline 369
"owner": "seo-publish-run", "url": "https://«the composer entry screen»", "version": "2026-03-05", - Network accessline 370
"url": "https://«the composer entry screen»", - Network accessline 380
{"name": "Image alt text", "role": "textbox", "cap": null}], "distribution_controls": ["«name of the notify subscribers control»"], "steps": [{"n": 1, "action": "navigate", "target": "https://«entry screen»", "expect_text": "New post"}, - Network accessline 381
"distribution_controls": ["«name of the notify subscribers control»"], "steps": [{"n": 1, "action": "navigate", "target": "https://«entry screen»", "expect_text": "New post"}, {"n": 2, "action": "read", "target": "«accessible na - Network accessline 382
"steps": [{"n": 1, "action": "navigate", "target": "https://«entry screen»", "expect_text": "New post"}, - Network accessline 488
{"slug":"domain-pricing-compared","property":"«property id»","card":"C-021", "kind":"new-post","keyword":"«primary keyword»", "url":"https://«property»/blog/domain-pricing-compared", - Network accessline 489
"kind":"new-post","keyword":"«primary keyword»", "url":"https://«property»/blog/domain-pricing-compared", "published_on":"2026-03-05","route":"repository", - Network accessline 490
"url":"https://«property»/blog/domain-pricing-compared",
employees/seo-employee/routines/seo-standup/SKILL.md
- Network accessline 486
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=seo-employee)
employees/social-media-employee/routines/soc-calendar-standup/SKILL.md
- Network accessline 410
- [ ] S-042 | 09:15 | «platform name» | «destination» | build-log | queue/2026-03-05-«platform».md#P-03 make sure the screenshot is the new one - [x] S-039 | 07:30 | «platform name» | «destination» | published | https://«permalink» - Network accessline 412
- [x] S-039 | 07:30 | «platform name» | «destination» | published | https://«permalink» - Network accessline 491
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=social-media-employee)
employees/social-media-employee/routines/soc-draft-queue/SKILL.md
- Network accessline 408
- pillar: p-2 - material: «the quote», «source name», «occurred date» - source: https://«source_url» - Network accessline 409
- material: «the quote», «source name», «occurred date» - source: https://«source_url» - characters: 248 of 280 (2 links at 23, no hashtags) - Network accessline 410
- source: https://«source_url»
employees/social-media-employee/routines/soc-engagement-sweep/SKILL.md
- Network accessline 289
{"post_id":"«platform»:«slot id»","slot_id":"S-042","platform":"«platform-id»", "permalink":"https://«permalink»","status":"live-confirmed", - Network accessline 290
"permalink":"https://«permalink»","status":"live-confirmed", - Network accessline 291
"observed_on":"YYYY-MM-DD","screen_path":"https://«page read this run»", - Network accessline 317
{"metric_id":"«platform-id»:«post_id»:YYYY-MM-DD", "post_id":"«platform»:«slot id»","slot_id":"S-042","platform":"«platform-id»", "permalink":"https://«permalink»","observed_on":"YYYY-MM-DD","read_at":"«ISO»", - Network accessline 318
"post_id":"«platform»:«slot id»","slot_id":"S-042","platform":"«platform-id»", "permalink":"https://«permalink»","observed_on":"YYYY-MM-DD","read_at":"«ISO»", "screen":"«the surface name from the flow file»","screen_path":"https://«page r - Network accessline 319
"permalink":"https://«permalink»","observed_on":"YYYY-MM-DD","read_at":"«ISO»", - Network accessline 320
"screen":"«the surface name from the flow file»","screen_path":"https://«page read this run»", - Network accessline 357
{"inbound_id":"«platform-id»:«item id»","platform":"«platform-id»","kind":"comment", "on_post":"«post_id or null»","permalink":"https://«permalink to the item»", - Network accessline 358
"on_post":"«post_id or null»","permalink":"https://«permalink to the item»", - Network accessline 416
- kind: comment - on: «post_id», published «YYYY-MM-DD» - link: https://«permalink to the item» - Network accessline 417
- on: «post_id», published «YYYY-MM-DD» - link: https://«permalink to the item» - they wrote: «verbatim, as read» - Network accessline 418
- link: https://«permalink to the item»
employees/social-media-employee/routines/soc-intake-and-voice/SKILL.md
- Network accessline 349
- «the post, quoted verbatim» | https://«permalink» | read 2026-03-02 - Network accessline 438
## «platform-id»: «platform name» profile_url: https://«their own profile» - Network accessline 439
profile_url: https://«their own profile» - Network accessline 440
post_list_url: https://«the surface listing their own recent posts» - Network accessline 441
notifications_url: https://«mentions, comments, reactions» - Network accessline 442
messages_url: https://«inbound messages» or n/a (not used) - Network accessline 454
## Read screens «screen name» | https://«URL» | «what figure it carries» - Network accessline 455
«screen name» | https://«URL» | «what figure it carries» - Network accessline 697
1. Read `«SOC_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B3a.2. 2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https: - Network accessline 698
2. Through `web.fetch`, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/social-media-employee/VERSION` - `https://unpkg.com/ai-employees@latest/employees/soci - Network accessline 699
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/social-media-employee/VERSION` - Network accessline 700
- `https://unpkg.com/ai-employees@latest/employees/social-media-employee/VERSION` - Network accessline 739
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha - Network accessline 779
"registered_times": { "<routine-id>": "<HH:MM>" }, "voice_built_on": "YYYY-MM-DD", "voice_sample_urls": ["https://«permalink»"], - Network accessline 780
"voice_built_on": "YYYY-MM-DD", "voice_sample_urls": ["https://«permalink»"], "research_done_on": "YYYY-MM-DD", - Network accessline 781
"voice_sample_urls": ["https://«permalink»"],
employees/social-media-employee/routines/soc-material-sweep/SKILL.md
- Network accessline 392
{"material_id":"«source name»:«item slug»:«item id»", "source":"«source name»","source_kind":"own-work", "source_url":"https://«page read this run, or the local path plus the command»", - Network accessline 393
"source":"«source name»","source_kind":"own-work", "source_url":"https://«page read this run, or the local path plus the command»", "kind":"shipped","pillar":"p-2", - Network accessline 394
"source_url":"https://«page read this run, or the local path plus the command»",
employees/social-media-employee/routines/soc-publish-run/SKILL.md
- Network accessline 365
"destination":"«destination name»","status":"published", "route":"channel.schedule","scheduled_for":"2026-03-05T09:15:00+07:00", "published_on":"YYYY-MM-DD","permalink":"https://«permalink or null»", - Network accessline 366
"route":"channel.schedule","scheduled_for":"2026-03-05T09:15:00+07:00", "published_on":"YYYY-MM-DD","permalink":"https://«permalink or null»", "receipt":{"«exactly what the channel returned, as it returned it»":"..."}, - Network accessline 367
"published_on":"YYYY-MM-DD","permalink":"https://«permalink or null»",
employees/web-dev-employee/routines/web-inventory-refresh/SKILL.md
- Network accessline 292
"test_command": "«as declared in the manifest, or null»", "rule_file": "«the rule file this repository holds»", "docs_dir": "docs", "public_paths": ["https://«host»/", "https://«host»/pricing"], - Network accessline 293
"rule_file": "«the rule file this repository holds»", "docs_dir": "docs", "public_paths": ["https://«host»/", "https://«host»/pricing"], "tracked_path": "https://«host»/", - Network accessline 294
"public_paths": ["https://«host»/", "https://«host»/pricing"], - Network accessline 295
"tracked_path": "https://«host»/", - Network accessline 541
1. Read `«WEB_ROOT»/VERSION`. That is `installed`. If the file is missing, put one line in `assumptions[]`, skip this check, and go to B3a.2. 2. Through `http.probe`, reading the body it fetched as well as the status, read the published `VE - Network accessline 542
2. Through `http.probe`, reading the body it fetched as well as the status, read the published `VERSION` for this kit, first route first: - `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/web-dev-employee/VERSION` - `https - Network accessline 543
- `https://cdn.jsdelivr.net/npm/ai-employees@latest/employees/web-dev-employee/VERSION` - Network accessline 544
- `https://unpkg.com/ai-employees@latest/employees/web-dev-employee/VERSION` - Network accessline 583
To get them fixed for everyone: read this file, change anything you like, and paste it into a new issue at https://github.com/markfulton/ai-employees/issues/new. A pull request is welcome too, and CONTRIBUTING.md in that repository says wha
employees/web-dev-employee/routines/web-site-sweep/SKILL.md
- Network accessline 215
{"id": "«project id»", "name": "«display name»", "public_paths": ["https://«host»/", "https://«host»/pricing"], - Network accessline 216
"public_paths": ["https://«host»/", "https://«host»/pricing"], - Network accessline 217
"tracked_path": "https://«host»/", - Network accessline 414
{"check_id":"acme-site|https://«host»/pricing|2026-03-04", - Network accessline 415
"project":"acme-site","path":"https://«host»/pricing","observed_on":"2026-03-04", - Network accessline 567
"status":"ok", "outputs":["health/checks.jsonl (+14 checks, 1 fail)","health/incidents.jsonl (+6 fingerprints, 2 new)","health/health-latest.md","board/inbox.jsonl (+1 card)","recipes/host-runtime-acme.json (step 3 repaired)"], "blockers" - Network accessline 568
"outputs":["health/checks.jsonl (+14 checks, 1 fail)","health/incidents.jsonl (+6 fingerprints, 2 new)","health/health-latest.md","board/inbox.jsonl (+1 card)","recipes/host-runtime-acme.json (step 3 repaired)"], "blockers":["acme-site htt - Network accessline 569
"blockers":["acme-site https://«host»/pricing returned 502 on two consecutive runs"],
employees/web-dev-employee/routines/web-standup/SKILL.md
- Network accessline 488
Guided version, updates and premium employees: [club.reinventing.ai](https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=web-dev-employee)
installer/cli.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 60
"", "The folder must be outside OneDrive, Dropbox, Google Drive and iCloud. Without --to it is ./employees/<slug>.", "Nothing is scheduled and nothing is sent. Prerequisites: https://github.com/" + REPO + "/blob/main/docs/PREREQUISI - Network accessline 61
"The folder must be outside OneDrive, Dropbox, Google Drive and iCloud. Without --to it is ./employees/<slug>.", "Nothing is scheduled and nothing is sent. Prerequisites: https://github.com/" + REPO + "/blob/main/docs/PREREQUISITES.md", - Network accessline 62
"Nothing is scheduled and nothing is sent. Prerequisites: https://github.com/" + REPO + "/blob/main/docs/PREREQUISITES.md", - Network accessline 101
try { for (const ref of refs) { const url = "https://codeload.github.com/" + REPO + "/tar.gz/" + ref; - Network accessline 102
for (const ref of refs) { const url = "https://codeload.github.com/" + REPO + "/tar.gz/" + ref; let res; - Network accessline 103
const url = "https://codeload.github.com/" + REPO + "/tar.gz/" + ref; let res; try { res = await fetch(url); } catch (err) { out(" download failed for " + ref + ": " + err.message); continue; } - Network accessline 104
let res; try { res = await fetch(url); } catch (err) { out(" download failed for " + ref + ": " + err.message); continue; } if (!res.ok) { out(" " + ref + " is not available (" + res.status + ")"); continue; } - Network accessline 105
try { res = await fetch(url); } catch (err) { out(" download failed for " + ref + ": " + err.message); continue; } - Network accessline 120
return; } fail("could not download the repo. Clone https://github.com/" + REPO + " and copy employees/" + slug + " by hand."); - Network accessline 121
} fail("could not download the repo. Clone https://github.com/" + REPO + " and copy employees/" + slug + " by hand."); } finally { - Network accessline 122
fail("could not download the repo. Clone https://github.com/" + REPO + " and copy employees/" + slug + " by hand."); - Network accessline 194
out(prompt.trim()); out(""); out("Guided version, updates and premium employees: club.reinventing.ai (https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=" + slug + ")"); - Network accessline 195
out(""); out("Guided version, updates and premium employees: club.reinventing.ai (https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=" + slug + ")"); } - Network accessline 196
out("Guided version, updates and premium employees: club.reinventing.ai (https://club.reinventing.ai/?utm_source=github&utm_medium=kit&utm_campaign=" + slug + ")");
skills/hire/SKILL.md
- Network accessline 46
Node 18 or newer is required. Check with `node --version` first; if it is missing or older, stop and point the user at https://nodejs.org and `docs/PREREQUISITES.md`. - Network accessline 56
It copies the kit from the bundled files with no network, refuses a synced or non empty folder, writes `.installed.json` (the record that lets a later upgrade tell the user's edits from ours), runs every kit script's self tests, checks the - Network accessline 58
3. **Only if neither can run:** tell the user you need to download `https://github.com/markfulton/ai-employees/archive/refs/heads/main.zip` and wait for a yes. Then extract only `employees/<slug>/` into the folder, and tell the user that th - Network accessline 111
Step by step walkthrough and live setup sessions: [club.reinventing.ai/plugin](https://club.reinventing.ai/plugin?utm_source=claude-code&utm_medium=plugin&utm_campaign=hire)
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 179 facts
- Network access in prose of the SKILL.mdads-account-intake/SKILL.md:736Low confidence
- Network access in prose of the SKILL.mdads-account-intake/SKILL.md:737Low confidence
- Network access in prose of the SKILL.mdads-account-intake/SKILL.md:738Low confidence
- Network access in prose of the SKILL.mdads-account-intake/SKILL.md:739Low confidence
- Network access in code of the SKILL.mdads-account-intake/SKILL.md:778High confidence
- Network access in code of the SKILL.mdads-desk-standup/SKILL.md:522High confidence
- Network access in code of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:536High confidence
- Network access in code of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:537High confidence
- Network access in prose of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:825Low confidence
- Network access in prose of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:826Low confidence
- Network access in prose of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:827Low confidence
- Network access in prose of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:828Low confidence
- Network access in code of the SKILL.mdcos-charter-and-fleet-audit/SKILL.md:867High confidence
- Network access in code of the SKILL.mdcos-fleet-reconcile/SKILL.md:640High confidence
- Network access in code of the SKILL.mdcos-market-sweep/SKILL.md:236High confidence
- Network access in code of the SKILL.mdcos-market-sweep/SKILL.md:237High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:195High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:196High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:197High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:362High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:364High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:406High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:407High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:408High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:472High confidence
- Network access in code of the SKILL.mdcsat-deflection-desk/SKILL.md:474High confidence
- Network access in code of the SKILL.mdcsat-desk-intake/SKILL.md:419High confidence
- Network access in code of the SKILL.mdcsat-desk-intake/SKILL.md:420High confidence
- Network access in code of the SKILL.mdcsat-desk-intake/SKILL.md:421High confidence
- Network access in prose of the SKILL.mdcsat-desk-intake/SKILL.md:895Low confidence
- Network access in prose of the SKILL.mdcsat-desk-intake/SKILL.md:896Low confidence
- Network access in prose of the SKILL.mdcsat-desk-intake/SKILL.md:897Low confidence
- Network access in prose of the SKILL.mdcsat-desk-intake/SKILL.md:898Low confidence
- Network access in code of the SKILL.mdcsat-desk-intake/SKILL.md:937High confidence
- Network access in code of the SKILL.mdcsat-desk-standup/SKILL.md:563High confidence
- Network access in code of the SKILL.mdcsat-inbox-sweep/SKILL.md:396High confidence
- Network access in code of the SKILL.mdcsat-inbox-sweep/SKILL.md:397High confidence
- Network access in code of the SKILL.mdcsat-inbox-sweep/SKILL.md:398High confidence
- Network access in code of the SKILL.mdgtm-board-standup/SKILL.md:459High confidence
- Network access in prose of the SKILL.mdgtm-intake-and-dashboard/SKILL.md:796Low confidence
- Network access in prose of the SKILL.mdgtm-intake-and-dashboard/SKILL.md:797Low confidence
- Network access in prose of the SKILL.mdgtm-intake-and-dashboard/SKILL.md:798Low confidence
- Network access in prose of the SKILL.mdgtm-intake-and-dashboard/SKILL.md:799Low confidence
- Network access in code of the SKILL.mdgtm-intake-and-dashboard/SKILL.md:838High confidence
- Network access in code of the SKILL.mdgtm-launch-step-runner/SKILL.md:423High confidence
- Network access in code of the SKILL.mdgtm-launch-step-runner/SKILL.md:424High confidence
- Network access in code of the SKILL.mdgtm-launch-step-runner/SKILL.md:425High confidence
- Network access in code of the SKILL.mdgtm-launch-step-runner/SKILL.md:432High confidence
- Network access in code of the SKILL.mdgtm-launch-step-runner/SKILL.md:433High confidence
- Network access in code of the SKILL.mdgtm-launch-step-runner/SKILL.md:434High confidence
and 129 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md employees/ad-manager-employee/routines/ads-account-intake/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md employees/ad-manager-employee/routines/ads-account-intake/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md employees/ad-manager-employee/routines/ads-account-intake/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md employees/ad-manager-employee/routines/ads-account-intake/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.