Wire telemetry preamble into all 10 SKILL.md files + sanitizer allow_patterns
- All 10 SKILL.md files now run version_check + telemetry_init on start - Sanitizer now supports allow_patterns from config (for example emails, docs) - Config updated with safe patterns for documentation content - Fixed example email to use example.com domain
This commit is contained in:
parent
d4c8c21cb3
commit
64d5dd430c
12 changed files with 170 additions and 6 deletions
|
|
@ -12,6 +12,21 @@ description: >-
|
||||||
"expert panel these email variants", "rate this headline", "panel these charts".
|
"expert panel these email variants", "rate this headline", "panel these charts".
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Expert Panel
|
# Expert Panel
|
||||||
|
|
||||||
General-purpose scoring and iterative improvement engine. Auto-assembles the
|
General-purpose scoring and iterative improvement engine. Auto-assembles the
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
# AI Conversion Ops
|
# AI Conversion Ops
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
AI-powered conversion rate optimization: landing page audits, CRO scoring, survey segmentation, and lead magnet generation.
|
AI-powered conversion rate optimization: landing page audits, CRO scoring, survey segmentation, and lead magnet generation.
|
||||||
|
|
||||||
## When to Use
|
## When to Use
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,21 @@ name: finance-ops
|
||||||
description: "AI-powered financial analysis suite. Generates executive CFO briefings from QuickBooks exports (P&L, Balance Sheet, General Ledger, Cash Flow, etc.) with anomaly detection, burn rate, runway analysis, and scenario modeling. Also estimates codebase development costs with organizational overhead and AI ROI analysis. Triggers on: 'CFO briefing', 'financial analysis', 'cost briefing', 'expense review', 'runway analysis', 'burn rate', 'cost estimate', 'how much would this cost to build', 'development cost', 'Claude ROI'."
|
description: "AI-powered financial analysis suite. Generates executive CFO briefings from QuickBooks exports (P&L, Balance Sheet, General Ledger, Cash Flow, etc.) with anomaly detection, burn rate, runway analysis, and scenario modeling. Also estimates codebase development costs with organizational overhead and AI ROI analysis. Triggers on: 'CFO briefing', 'financial analysis', 'cost briefing', 'expense review', 'runway analysis', 'burn rate', 'cost estimate', 'how much would this cost to build', 'development cost', 'Claude ROI'."
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# AI Finance Ops
|
# AI Finance Ops
|
||||||
|
|
||||||
Two tools: CFO Briefing Generator and Codebase Cost Estimator.
|
Two tools: CFO Briefing Generator and Codebase Cost Estimator.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
# Growth Engine
|
# Growth Engine
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
Autonomous growth experimentation framework based on Karpathy's autoresearch pattern applied to marketing. Creates experiments with hypotheses, logs data points, runs statistical analysis (bootstrap CI + Mann-Whitney U), auto-promotes winners to a living playbook, and suggests next experiments. Supports batch mode (up to 10 variants simultaneously).
|
Autonomous growth experimentation framework based on Karpathy's autoresearch pattern applied to marketing. Creates experiments with hypotheses, logs data points, runs statistical analysis (bootstrap CI + Mann-Whitney U), auto-promotes winners to a living playbook, and suggests next experiments. Supports batch mode (up to 10 variants simultaneously).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,21 @@ name: cold-outbound-optimizer
|
||||||
description: Design, analyze, and optimize cold outbound email campaigns for Instantly. Handles end-to-end ICP definition, expert panel scoring (recursive to 90+), sequence copywriting, infrastructure audit, capacity planning, and implementation docs. Use when asked to build cold outbound sequences, optimize cold email, analyze outbound campaigns, build sales sequences, build Instantly sequences, create cold outbound strategies, or design email campaigns. Supports both "start from scratch" and "optimize existing" modes.
|
description: Design, analyze, and optimize cold outbound email campaigns for Instantly. Handles end-to-end ICP definition, expert panel scoring (recursive to 90+), sequence copywriting, infrastructure audit, capacity planning, and implementation docs. Use when asked to build cold outbound sequences, optimize cold email, analyze outbound campaigns, build sales sequences, build Instantly sequences, create cold outbound strategies, or design email campaigns. Supports both "start from scratch" and "optimize existing" modes.
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Cold Outbound Optimizer
|
# Cold Outbound Optimizer
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,21 @@ description: >-
|
||||||
multi-platform content plan.
|
multi-platform content plan.
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Podcast-to-Everything Pipeline
|
# Podcast-to-Everything Pipeline
|
||||||
|
|
||||||
Turns podcast episodes into a full content calendar across every platform.
|
Turns podcast episodes into a full content calendar across every platform.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
# AI Revenue Intelligence
|
# AI Revenue Intelligence
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
AI-powered revenue intelligence: sales call insight extraction, content-to-revenue attribution, and multi-source client reporting.
|
AI-powered revenue intelligence: sales call insight extraction, content-to-revenue attribution, and multi-source client reporting.
|
||||||
|
|
||||||
## When to Use
|
## When to Use
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
# AI Sales Pipeline
|
# AI Sales Pipeline
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
Complete AI-powered sales pipeline automation: website visitor identification → intent scoring → suppression → campaign routing → dead deal resurrection → trigger prospecting → self-learning ICP optimization.
|
Complete AI-powered sales pipeline automation: website visitor identification → intent scoring → suppression → campaign routing → dead deal resurrection → trigger prospecting → self-learning ICP optimization.
|
||||||
|
|
||||||
## When to Use
|
## When to Use
|
||||||
|
|
@ -19,7 +33,7 @@ Use this skill when:
|
||||||
| Script | Purpose | Key Command |
|
| Script | Purpose | Key Command |
|
||||||
|--------|---------|-------------|
|
|--------|---------|-------------|
|
||||||
| `rb2b_webhook_ingest.py` | Webhook server + intent scoring | `python3 rb2b_webhook_ingest.py --serve --port 4100` |
|
| `rb2b_webhook_ingest.py` | Webhook server + intent scoring | `python3 rb2b_webhook_ingest.py --serve --port 4100` |
|
||||||
| `rb2b_suppression_pipeline.py` | 5-layer suppression checks | `python3 rb2b_suppression_pipeline.py --email user@co.com` |
|
| `rb2b_suppression_pipeline.py` | 5-layer suppression checks | `python3 rb2b_suppression_pipeline.py --email user@example.com` |
|
||||||
| `rb2b_instantly_router.py` | Full pipeline: score → suppress → route → enroll | `python3 rb2b_instantly_router.py --serve --port 4100` |
|
| `rb2b_instantly_router.py` | Full pipeline: score → suppress → route → enroll | `python3 rb2b_instantly_router.py --serve --port 4100` |
|
||||||
|
|
||||||
### Deal Intelligence
|
### Deal Intelligence
|
||||||
|
|
|
||||||
|
|
@ -9,13 +9,23 @@
|
||||||
"node_modules",
|
"node_modules",
|
||||||
".git",
|
".git",
|
||||||
"__pycache__",
|
"__pycache__",
|
||||||
".env.example"
|
".env.example",
|
||||||
|
"security/README.md",
|
||||||
|
"security/sanitizer-config.json"
|
||||||
],
|
],
|
||||||
"allow_patterns": [
|
"allow_patterns": [
|
||||||
"api_key=ANTHROPIC_API_KEY",
|
"api_key=ANTHROPIC_API_KEY",
|
||||||
"api_key = get_",
|
"api_key = get_",
|
||||||
"API_KEY=\"your-",
|
"API_KEY=\"your-",
|
||||||
"0123456789"
|
"0123456789",
|
||||||
|
"@example.com",
|
||||||
|
"@acme.com",
|
||||||
|
"@host.com",
|
||||||
|
"(555)",
|
||||||
|
"+1-555",
|
||||||
|
"123-45-6789",
|
||||||
|
"user:pass@",
|
||||||
|
"security@singlegrain.com"
|
||||||
],
|
],
|
||||||
"placeholder_format": "bracket",
|
"placeholder_format": "bracket",
|
||||||
"_comment": "Single Grain removed from blocklist since this is our repo. Fork users should add their own company names."
|
"_comment": "Single Grain removed from blocklist since this is our repo. Fork users should add their own company names."
|
||||||
|
|
|
||||||
|
|
@ -163,11 +163,18 @@ def scan_line(
|
||||||
company_patterns: list[tuple[re.Pattern, str, str]],
|
company_patterns: list[tuple[re.Pattern, str, str]],
|
||||||
person_patterns: list[tuple[re.Pattern, str, str]],
|
person_patterns: list[tuple[re.Pattern, str, str]],
|
||||||
placeholder_format: str,
|
placeholder_format: str,
|
||||||
|
allow_patterns: list[str] | None = None,
|
||||||
) -> list[Finding]:
|
) -> list[Finding]:
|
||||||
"""Return findings for a single line."""
|
"""Return findings for a single line."""
|
||||||
if is_import_line(line):
|
if is_import_line(line):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
|
# Skip lines matching allow_patterns
|
||||||
|
if allow_patterns:
|
||||||
|
for ap in allow_patterns:
|
||||||
|
if ap in line:
|
||||||
|
return []
|
||||||
|
|
||||||
findings: list[Finding] = []
|
findings: list[Finding] = []
|
||||||
|
|
||||||
for label, ph_bracket, ph_redacted, pat in compiled_patterns:
|
for label, ph_bracket, ph_redacted, pat in compiled_patterns:
|
||||||
|
|
@ -257,6 +264,7 @@ def scan_file(
|
||||||
company_pats: list,
|
company_pats: list,
|
||||||
person_pats: list,
|
person_pats: list,
|
||||||
placeholder_format: str,
|
placeholder_format: str,
|
||||||
|
allow_patterns: list[str] | None = None,
|
||||||
) -> list[Finding]:
|
) -> list[Finding]:
|
||||||
try:
|
try:
|
||||||
text = filepath.read_text(errors="replace")
|
text = filepath.read_text(errors="replace")
|
||||||
|
|
@ -267,7 +275,7 @@ def scan_file(
|
||||||
findings = []
|
findings = []
|
||||||
for i, line in enumerate(text.splitlines(), 1):
|
for i, line in enumerate(text.splitlines(), 1):
|
||||||
findings.extend(
|
findings.extend(
|
||||||
scan_line(line, i, compiled, company_pats, person_pats, placeholder_format)
|
scan_line(line, i, compiled, company_pats, person_pats, placeholder_format, allow_patterns)
|
||||||
)
|
)
|
||||||
return findings
|
return findings
|
||||||
|
|
||||||
|
|
@ -278,6 +286,7 @@ def sanitize_file(
|
||||||
company_pats: list,
|
company_pats: list,
|
||||||
person_pats: list,
|
person_pats: list,
|
||||||
placeholder_format: str,
|
placeholder_format: str,
|
||||||
|
allow_patterns: list[str] | None = None,
|
||||||
) -> list[Finding]:
|
) -> list[Finding]:
|
||||||
"""Scan and replace PII in-place. Returns findings for reporting."""
|
"""Scan and replace PII in-place. Returns findings for reporting."""
|
||||||
try:
|
try:
|
||||||
|
|
@ -291,7 +300,7 @@ def sanitize_file(
|
||||||
|
|
||||||
for i, line in enumerate(text.splitlines(), 1):
|
for i, line in enumerate(text.splitlines(), 1):
|
||||||
line_findings = scan_line(
|
line_findings = scan_line(
|
||||||
line, i, compiled, company_pats, person_pats, placeholder_format
|
line, i, compiled, company_pats, person_pats, placeholder_format, allow_patterns
|
||||||
)
|
)
|
||||||
findings.extend(line_findings)
|
findings.extend(line_findings)
|
||||||
|
|
||||||
|
|
@ -412,6 +421,7 @@ Examples:
|
||||||
|
|
||||||
placeholder_format = config.get("placeholder_format", "bracket")
|
placeholder_format = config.get("placeholder_format", "bracket")
|
||||||
skip_paths = set(config.get("skip_paths", [])) | DEFAULT_SKIP_PATHS
|
skip_paths = set(config.get("skip_paths", [])) | DEFAULT_SKIP_PATHS
|
||||||
|
allow_patterns = config.get("allow_patterns", []) or []
|
||||||
|
|
||||||
compiled, company_pats, person_pats = compile_patterns(config)
|
compiled, company_pats, person_pats = compile_patterns(config)
|
||||||
|
|
||||||
|
|
@ -437,7 +447,7 @@ Examples:
|
||||||
|
|
||||||
all_findings: dict[str, list[Finding]] = {}
|
all_findings: dict[str, list[Finding]] = {}
|
||||||
for fp in files:
|
for fp in files:
|
||||||
findings = process_fn(fp, compiled, company_pats, person_pats, placeholder_format)
|
findings = process_fn(fp, compiled, company_pats, person_pats, placeholder_format, allow_patterns)
|
||||||
if findings:
|
if findings:
|
||||||
all_findings[str(fp)] = findings
|
all_findings[str(fp)] = findings
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
# AI SEO Ops
|
# AI SEO Ops
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
AI-powered SEO operations: keyword intelligence, competitor gap analysis, GSC optimization, and trend detection.
|
AI-powered SEO operations: keyword intelligence, competitor gap analysis, GSC optimization, and trend detection.
|
||||||
|
|
||||||
## When to Use
|
## When to Use
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,19 @@
|
||||||
# AI Team Ops
|
# AI Team Ops
|
||||||
|
|
||||||
|
## Preamble (runs on skill start)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Version check (silent if up to date)
|
||||||
|
python3 telemetry/version_check.py 2>/dev/null || true
|
||||||
|
|
||||||
|
# Telemetry opt-in (first run only, then remembers your choice)
|
||||||
|
python3 telemetry/telemetry_init.py 2>/dev/null || true
|
||||||
|
```
|
||||||
|
|
||||||
|
> **Privacy:** This skill logs usage locally to `~/.ai-marketing-skills/analytics/`. Remote telemetry is opt-in only. No code, file paths, or repo content is ever collected. See `telemetry/README.md`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
AI-powered team performance analysis and meeting intelligence: ruthless performance audits using the "Elon Algorithm" + automatic extraction of action items, decisions, and follow-ups from meeting transcripts.
|
AI-powered team performance analysis and meeting intelligence: ruthless performance audits using the "Elon Algorithm" + automatic extraction of action items, decisions, and follow-ups from meeting transcripts.
|
||||||
|
|
||||||
## When to Use
|
## When to Use
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue