AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Content Report

skill-cgallic-kai-cmo-harness-content-report · by cgallic

Pull performance data for published content across every surface — LinkedIn, Dev.to, Google Search Console, GA4, and AI citation tracking (Perplexity, Anthropic, OpenAI). Grades each piece as winner, average, or underperformer and surfaces whether an AI search engine has cited it.

— No reviews yet
0 installs
28 views
0.0% view→install

Install

$ agentstack add skill-cgallic-kai-cmo-harness-content-report

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-cgallic-kai-cmo-harness-content-report)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Content Report? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

/content-report — The Analytics Lead

Pull performance data for your published content. Cross-references Google Search Console (position, CTR), GA4 (session duration), platform-native stats (LinkedIn impressions, Dev.to views), and AI citation checks (Perplexity, Anthropic, OpenAI web search) to grade each piece.

Preamble

source "$(dirname "$0")/../lib/preamble.sh"

Arguments

Optional:

  • --site: Filter by site key (e.g., kaicalls, connorgallic, meetkai)
  • --all: Show all published content (default if no args)

Example: /content-report --site kaicalls Example: /content-report

The Skill

Step 1: Refresh Data

Before the report, refresh the data sources you care about. Skip any step where you don't have the API key.

# Dev.to — requires DEVTO_API_KEY (https://dev.to/settings/extensions)
python3 -m scripts.content.tracker_cli pull-devto

# AI citations — requires at least one of PERPLEXITY_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY
python3 -m scripts.content.tracker_cli citations

# LinkedIn is manual — record per article (interactive):
python3 -m scripts.content.tracker_cli linkedin --id  --interactive
# Or non-interactive:
python3 -m scripts.content.tracker_cli linkedin --id  \
    --url https://linkedin.com/pulse/... \
    --impressions 1850 --reactions 34 --comments 7 --reshares 2 --dms 3

Step 2: Load Enriched Report

python3 -m scripts.content.tracker_cli report --format json

If no published content is found, tell the user: "No published content in the log. Content is logged automatically when it passes /content-gate."

Step 3: Display Performance Overview

Present the data:

CONTENT PERFORMANCE REPORT
══════════════════════════════════════════

Total pieces: {N}
  Winners:         {green} {count} ({pct}%)
  Average:         {yellow} {count} ({pct}%)
  Underperformers: {red} {count} ({pct}%)
  Pending ( --interactive` to record them."
- **Missing citation checks**: "N tracked articles have no `citations-targets.json` entries. Use `kai-tracker targets --id  --add-query '...'` to configure."
- **No recent content**: "No content published in the last 14 days. Run `/content-ideas` for topic suggestions."

## Data Sources Behind This Skill

| Source | Where it lives | Refreshed by |
|--------|---------------|--------------|
| Publish log | `~/.kai-marketing/content-log.jsonl` | `/content-gate` passes it through on publish |
| Platform metrics (Dev.to, LinkedIn) | `~/.kai-marketing/metrics/{id}.json` | `kai-tracker pull-devto` / `kai-tracker linkedin` |
| AI citation events | `~/.kai-marketing/citations/{id}.jsonl` | `kai-tracker citations` (cron-compatible) |
| Citation targets | `~/.kai-marketing/citations-targets.json` | `kai-tracker targets --id  --add-query '...'` |
| GSC + GA4 grading | Live API calls via `scripts/self_improvement/performance_check.py` | Invoked automatically by `kai-tracker report` |

## Environment Variables

| Variable | Required for | How to get it |
|----------|--------------|---------------|
| `DEVTO_API_KEY` | Dev.to stat pulls | https://dev.to/settings/extensions |
| `PERPLEXITY_API_KEY` | Perplexity citation checks | https://www.perplexity.ai/settings/api |
| `ANTHROPIC_API_KEY` | Claude web-search citation checks | Console API key (already required by the harness) |
| `OPENAI_API_KEY` | OpenAI web-search citation checks | Existing harness API key |

If a key is missing, the corresponding check is skipped with a warning — the report still runs with whatever data is available.

## Error Handling

- **No content log**: Direct to `/content-write` to publish first piece
- **GSC/GA4 API unavailable**: Show content log with platform/citation data, note "Search surface performance unavailable — showing platform metrics only"
- **All AI citation providers missing keys**: Skip Step 1's citations call, note in the report "Citation tracking unavailable — set at least one of PERPLEXITY_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY"

## Chain State

**Reads from:** `~/.kai-marketing/content-log.jsonl`, `~/.kai-marketing/metrics/`, `~/.kai-marketing/citations/`
**Feeds into:** `/content-retro` (weekly pattern analysis, now including citation patterns)

## Scheduling

Recommended cadence for a solo operator:
- **On publish**: `/content-gate` writes to the log automatically
- **Weekly**: `kai-tracker pull-devto` + `kai-tracker citations` (put in cron or weekly heartbeat)
- **Per LinkedIn post, 24h + 7d after publish**: `kai-tracker linkedin --id  --interactive`
- **30 days after publish**: the existing performance_check cron handles GSC + GA4 automatically

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [cgallic](https://github.com/cgallic)
- **Source:** [cgallic/kai-cmo-harness](https://github.com/cgallic/kai-cmo-harness)
- **License:** MIT
- **Homepage:** https://meetkai.xyz

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.