Research platform
Turns the operator's own platform evidence — owned analytics, public metrics, manual exports, and prior eval outcomes — into a sourced per-platform evidence base across X, LinkedIn, TikTok, YouTube, and Instagram, every metric tagged to its source and freshness. Use to ground social / SEO / short-form decisions in measured reality before briefing. Not for discovering what's working in the wild (use research-shortform) or market sizing (use research-market); for audience research, see research-icp.From its SKILL.md
npx -y skills add hungv47/meta-skills --skill research-platformAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.6 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it
Platform Evidence Research — Orchestrator
Pipeline skill — turns owned-account analytics (engagement, follower growth, per-post performance) into a sourced per-platform evidence base that social, SEO, short-form, and evaluation skills consume to ground recommendations in measured reality instead of intuition. Operates on the operator's own accounts (not market trends).
Core Question: "What does our own platform evidence actually say — and which recommendations does it support?"
Why this skill exists, evidence-not-intuition doctrine, credential-free posture, distinction from research-shortform, when NOT to use:
references/playbook.md[PLAYBOOK].
Critical Gates — Read First
Non-negotiable before dispatching any agent (5 evidence-source types + thresholds: references/evidence-protocol.md [PROCEDURE]):
- No invented metrics. Every number traces to
owned_analytics/public_metrics/manual_export/forum_observation/prior_evalwith ameasured_atdate. Unsourced = fabricated. - Source-type labeled per datum. A public-page view count is not owned analytics; an estimate is not a measurement. Never present a guess or benchmark as instrumented owned data.
- Evidence availability is platform-specific — declare it honestly. Each per-platform section declares RICH / MODERATE / CONSTRAINED. TikTok and Instagram default CONSTRAINED — never invent retention-curve or demographic depth a platform doesn't expose.
- Missing evidence is a gap, never a fabrication. Platform with no evidence →
NO_EVIDENCEflag + "what to export" note. All platforms empty →NEEDS_CONTEXT. - Metrics decay — two freshness windows.
metrics_window_date(30d refresh / 60d warn) governs performance numbers;algorithm_context_date(90d refresh / 180d warn) governs platform-mechanic context. Stale evidence is flagged, never silently aged.
Quality Gate
Critic verifies before delivery (all 5 PASS required, max 2 rewrite cycles; full rubrics in references/scoring-rubrics.md):
- Every metric traces to a tagged evidence source with
measured_at - Every datum labeled
owned_analytics/public_metrics/manual_export/forum_observation/prior_eval— no blank, no public/benchmark mislabeled as owned - Every per-platform section declares MEASURED / PARTIAL / NO_EVIDENCE matching its actual evidence count + source mix
- Every recommendation names platform, evidence source, freshness window, confidence — generic fails
-
NO_EVIDENCEplatforms carry no recommendations — only a "what to export" gap note
Before Starting
Per references/_shared/before-starting-check.md [PLAYBOOK]:
- Mode resolution per
references/_shared/mode-resolver.md.--fastcollapses to single-pass intake + synthesis with critic skipped — but the 5 Critical Gates STILL enforce (safety supersedes--fast). Cold Start still fires when platform scope or account ownership is unresolved. Session execution profile (single-vs-multi): inherit perreferences/_shared/execution-policy.md. - Read
implementation-roadmap/canonical-paths.mdif present — verify output path. - Read
.forsvn/index/manifest.json— check for priorplatform-evidenceartifact (warm-start) and for.forsvn/loops/*/evals/artifacts (aprior_evalsource the operator may not have mentioned). - Run Pre-Dispatch per
references/procedures/pre-dispatch.md[PROCEDURE] — needed dimensions, evidence-intake prompt, warm/cold start, write-back map.
| Artifact | Source | Required? |
|---|---|---|
.forsvn/loops/*/evals/*.md | run-pipeline / evaluate-* | Optional — becomes a prior_eval evidence source |
research/icp-research.md | research-icp | Optional — audience grounding for reading segments |
Artifact Contract
- Path:
docs/forsvn/artifacts/research-research-platform-<YYYY-MM-DD>-<slug>.md(flat v2 grammar; one artifact per account scope + platform set) - Lifecycle:
pipeline(regenerable, point-in-time; refresh governed by the two freshness windows). Evidence is re-measured on re-run, never amended in place. - Frontmatter fields:
skill,type,status,date,stack(=research),review_surface(=md),account_scope,platforms_analyzed,metrics_window_date,algorithm_context_date,evidence_sources_logged,coverage_per_platform. Full schema:references/format-conventions.md[PROCEDURE]. v2 baseline:references/_shared/artifact-contract-template.md. - Required body sections (cross-stack contract, in order): TL;DR · Evidence Base · Per-Platform Evidence · Cross-Platform Comparison · Recommendations · Missing Evidence & How to Close It · Open Risks & Caveats · What This Evidence Doesn't Cover
- Side effects (on PASS or done_with_concerns): write artifact → run
bun scripts/manifest-sync.ts→ experience write-back (account scope + platforms →docs/forsvn/experience/content.md). - Consumed by:
write-social,optimize-seo,research-shortform,evaluate-content,evaluate-shortform,publish-social— each reads Per-Platform Evidence + Recommendations to ground decisions in measured performance. - Cross-stack OUTPUT contract: frontmatter schema + 8 body sections + per-datum source-type tags + MEASURED / PARTIAL / NO_EVIDENCE flag + recommendation 4-part attribution (platform / source / window / confidence) are load-bearing — schema changes require atomic update of consumers.
Agent Manifest
5 agents across 2 layers (evidence-intake × N + benchmark in parallel; synthesis → recommendation → critic sequential). Full table + dispatch sequence + --fast behavior: references/agent-manifest.md [PROCEDURE]. Mechanics (spawn, critic routing, single-agent fallback, chain position, skill deference): references/procedures/dispatch-mechanics.md [PROCEDURE].
Single route — full Layer 1 + Layer 2 sequence runs every time. Evidence depth varies by what the operator supplies, not by route choice.
Anti-Patterns
references/anti-patterns.md [ANTI-PATTERN] — fabricated metrics, source-type laundering, fake precision on CONSTRAINED platforms, coverage-flag inflation, generic recommendations, stale-evidence masking, critic-loop overrun, cross-stack contract drift. Re-read before any output ships.
Durable Rules (protected)
<!-- SLOW_UPDATE_START --> <!-- No pinned rules yet. Populate via the slow-update workflow (see references/slow-update-fence.md). Each pinned rule must (a) be procedural not instance-specific, (b) be earned from a regression or critic-flagged failure, (c) cite the artifact / decision record that justified pinning. --> <!-- SLOW_UPDATE_END -->Completion Status
Skill returns one of:
- DONE — all 5 critic rubrics PASS within ≤2 cycles; every in-scope platform carries a coverage flag (MEASURED, PARTIAL, or honest NO_EVIDENCE).
- DONE_WITH_CONCERNS — critic loop cap reached; remaining failures are surfaceable as warnings (e.g., one platform PARTIAL, one source past freshness). Concerns pinned at the top of the artifact.
- BLOCKED — WebSearch / WebFetch blocked when a benchmark pull was required; or supplied exports unreadable. State what's needed.
- NEEDS_CONTEXT — no evidence supplied for any platform and none retrievable; recommend what to export and which
evaluate-*loop could feedprior_evaldata.
Next Step
After delivery: feed Per-Platform Evidence + Recommendations into write-social / optimize-seo / research-shortform / evaluate-content / evaluate-shortform / publish-social. Refresh when metrics_window_date > 30d or algorithm_context_date > 90d.
Worked Example
Full run — 3-platform evidence base with mixed coverage flags traced through the critic gate: references/examples/platform-evidence-walkthrough.md [EXAMPLE].
References
references/playbook.md,evidence-protocol.md,format-conventions.md,scoring-rubrics.md,anti-patterns.mdreferences/agent-manifest.md,references/procedures/{pre-dispatch, dispatch-mechanics}.mdreferences/_shared/{before-starting-check, mode-resolver, pre-dispatch-protocol, confidence-labeling}.mdreferences/platforms/— per-platform evidence schemas (x, linkedin, tiktok, youtube, instagram): availability tier, exposed metrics, definitions- 5 sub-agents in
agents/;critic-agent.mdholds the canonical 5-rubric gate research-skills/CLAUDE.md— stack conventions (Pre-Dispatch, Complexity Routing, Multi-Agent)
What ships with it: 35 files
297.5 KB alongside SKILL.md, 5 of them executable
agents/
- benchmark-agent.md7.0 KB
- critic-agent.md8.3 KB
- evidence-intake-agent.md9.1 KB
- recommendation-agent.md8.1 KB
- synthesis-agent.md8.5 KB
- _template.md2.6 KB
references/
- agent-manifest.md2.4 KB
- anti-patterns.md5.9 KB
- evidence-protocol.md7.0 KB
- examples/platform-evidence-walkthrough.md5.4 KB
- format-conventions.md4.1 KB
- platforms/instagram.md4.2 KB
- platforms/linkedin.md3.8 KB
- platforms/_template.md2.3 KB
- platforms/tiktok.md3.9 KB
- platforms/x.md3.8 KB
- platforms/youtube.md4.0 KB
- playbook.md8.6 KB
- procedures/dispatch-mechanics.md5.6 KB
- procedures/pre-dispatch.md6.3 KB
- scoring-rubrics.md5.7 KB
- _shared/artifact-contract-template.md28.8 KB
- _shared/before-starting-check.md9.8 KB
- _shared/confidence-labeling.md6.0 KB
- _shared/execution-policy.md7.0 KB
- _shared/manifest-spec.md29.2 KB
- _shared/meter-instrumentation.md5.0 KB
- _shared/mode-resolver.md11.0 KB
- _shared/pre-dispatch-protocol.md20.2 KB
scripts/
- bootstrap-experience.tsruns3.6 KB
- forsvn-hosted.tsruns4.3 KB
- lib/hosted-api.tsruns8.7 KB
- lib/path-parser.tsruns11.6 KB
- manifest-sync.tsruns33.1 KB
- routing.yaml2.6 KB