peec-agent
Orchestrator for the 5 Peec AI growth skills (peec-setup, peec-content-intel, peec-cluster, peec-outreach, peec-report). Reads project state and last…
End-to-end Peec AI project setup — competitor discovery from real AI chats, customer-journey prompt design across Awareness → Consideration → Decision → Retention, topic/tag taxonomy, GSC-based keyword mapping, forum pain-point mining (Reddit, Gutefrage, t3n, OMR), and a
$ npx -y skills add AntonioBlago/peec-ai-skills --skill peec-setup --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/peec-setupContext preview
The summary Claude sees to decide when to auto-load this skill.
End-to-end Peec AI project setup — competitor discovery from real AI chats, customer-journey prompt design across Awareness → Consideration → Decision → Retention, topic/tag taxonomy, GSC-based keyword mapping, forum pain-point mining (Reddit, Gutefrage, t3n, OMR), and a
name: peec-setup description: End-to-end Peec AI project setup — competitor discovery from real AI chats, customer-journey prompt design across Awareness → Consideration → Decision → Retention, topic/tag taxonomy, GSC-based keyword mapping, forum pain-point mining (Reddit, Gutefrage, t3n, OMR), and a categorized executable backlog. Use when the user wants to set up, restructure, or audit a Peec AI project for their own brand or a client. 9 phases, full funnel coverage, real buyer language. user-invocable: true
Take a Peec AI project from empty (or broken) to operator-ready: correct competitors, full-funnel prompts, coherent taxonomy, GSC keyword mapping, forum-mined buyer language, and a categorized executable backlog the client can run for the next 2 weeks.
**Resolving language/country at start:** 1. If state file exists with these fields → use them, skip the question. 2. Else if user passed them as arguments → use those. 3. Else infer from `own_domain` TLD (`.de` → DE/de, `.at` → AT/de, `.ch` → CH/de + ask de/fr, `.com` → ASK). 4. Else ASK the user **once** before Phase 1: "Target country (ISO, e.g. DE)? Prompt language (ISO, e.g. de)?". Persist the answer in state.
Never silently default to `EN`/`en` when the project has no signal — this corrupts every downstream skill.
A setup report with: before/after counts, funnel distribution (e.g. 5/5/5/5), the single **hero prompt** to win first, the refresh timeline (24h for fresh data), a categorized P0/P1/P2 backlog, and any user-preference memories saved. No dashboards.
This skill **owns** the setup state file. See [`_shared/SETUP_STATE.md`](../_shared/SETUP_STATE.md) for the full schema and protocol.
All other skills in this repo refuse to run without this file — never bootstrap a setup from inside another skill.
---
Always runs first. Cheap (single file read + at most one parallel Peec read in brownfield case). Determines whether the rest of the run is needed at all.
1. Read <project>/growth_loop/setup_state.json
2. If state file MISSING:
2a. Live-detect Peec content (parallel reads):
list_brands(project)
list_prompts(project, limit=5)
list_topics(project)
list_tags(project)
2b. If Peec is empty (≤2 brands AND ≤4 prompts AND ≤0 topics):
→ mode = full (greenfield — proceed to Phase 1)
2c. If Peec is populated (≥3 brands OR ≥5 prompts OR ≥1 topic):
→ mode = import (brownfield — see "Import mode" below)
3. If state file PRESENT, branch on `completed_at`:
< 30 days ago → mode = skip (show summary, ASK user before continuing)
30–90 days ago → mode = audit (live-diff snapshot, only redo drifted phases)
> 90 days ago → mode = full (warn: stale)
4. If user passed an explicit `scope`, that wins over auto-detection.
5. Print one line:
"Setup state: <found|missing|imported> · age: N days · mode: <full|import|audit|partial|skip>"Per [`_shared/SETUP_STATE.md` §`import` mode](../_shared/SETUP_STATE.md), this mode reconstructs `setup_state.json` from live Peec data without re-doing discovery.
1. Show user one line:
"Detected existing Peec setup: <N> brands, <M> prompts, <T> topics, <G> tags."
2. ASK three things at once (single user turn):
- "Import this as the setup state, or run full setup from scratch? [import/full]"
- "Target country (ISO, e.g. DE)?"
- "Prompt language (ISO, e.g. de)?"
3. If user picks `import`:
a. Infer completed_at (NEVER default to now silently):
read created_at from list_brands + list_prompts;
completed_at = min(created_at across first 5 brands AND first 5 prompts)
If unavailable → list_chats(limit=1, sort=asc).timestamp
If still unavailable → ASK user one bucket question
("when did you set this up? [today/past month/past quarter/past year/older]")
and map to a date.
b. Build state object:
phases_completed = inferred from non-empty buckets (brands≥3 → +competitors; etc.)
snapshot = the counts just read
completed_at = inferred per (a) above
imported_at = now (UTC)
last_audit_at = now
hero_prompt_id = null
target_country, prompt_language = from user answers in step 2
notes = "imported from existing PeecProduction-tested Claude Code skills for Peec AI — the brand-visibility tracking platform for LLM-powered search (ChatGPT, Perplexity, Google AI Overviews, Gemini).
Repo: AntonioBlago/peec-ai-skills
Orchestrator for the 5 Peec AI growth skills (peec-setup, peec-content-intel, peec-cluster, peec-outreach, peec-report). Reads project state and last…
Read-only health check for an existing Peec AI project. In one pass produces (1) a setup-quality audit (red flags from the structural setup — wrong…
Turns a Peec AI prompt set into strategic content zones — not keyword groups. Groups prompts by buyer intent + funnel stage + visibility gap + shared demand…
Content-intelligence workflow that turns a Peec AI visibility gap into a publish-ready content brief. Combines Peec (prompt visibility, source URLs, scraped…
Cross-project pattern layer for the Peec AI growth loop. After any Peec skill completes (or after peec-report closes a cycle), extract 1–3 concrete patterns…
Turns Peec AI's get_actions recommendations + forum/UGC discovery into a prioritized outreach pipeline with pitch templates, contact extraction, status…