Update to vidIQ
Snapshot Sep 30, 2026 · 23:18 UTC · version 9.0.0
Collection source: not recorded for this historical snapshot. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Supporting file metadata differs
Newly listed paths: agents/openai.yaml. This compares saved file lists, not package contents; a different collection source can change the list.
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Supporting files
[{"relative_path":"references/discovery-evidence.md","size_in_bytes":849},{"relative_path":"references/live-surface-notes.md","size_in_bytes":2014}]
[{"relative_path":"agents/openai.yaml","size_in_bytes":431},{"relative_path":"references/discovery-evidence.md","size_in_bytes":849},{"relative_path":"references/live-surface-notes.md","size_in_bytes":2014}]
Compare saved observations
Download comparison JSONFull technical diff · 1 changed fields
changed /included_files
[
{
"relative_path": "references/discovery-evidence.md",
"size_in_bytes": 849
},
{
"relative_path": "references/live-surface-notes.md",
"size_in_bytes": 2014
}
][
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 431
},
{
"relative_path": "references/discovery-evidence.md",
"size_in_bytes": 849
},
{
"relative_path": "references/live-surface-notes.md",
"size_in_bytes": 2014
}
]Full snapshot data
{
"name": "vidiq-competitor-watchlist",
"description": "Audit an authorized YouTube channel's competitor watchlist, identify direct competitors and format references, discover emerging channels, and propose or execute explicitly approved follow/unfollow changes.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 431
},
{
"relative_path": "references/discovery-evidence.md",
"size_in_bytes": 849
},
{
"relative_path": "references/live-surface-notes.md",
"size_in_bytes": 2014
}
],
"skill_md_contents": "---\nname: vidiq-competitor-watchlist\ndescription: Audit an authorized YouTube channel's competitor watchlist, identify direct competitors and format references, discover emerging channels, and propose or execute explicitly approved follow/unfollow changes.\n---\n\n# vidIQ Competitor Watchlist\n\nRead [Live surface notes](references/live-surface-notes.md) first, even when using only supplied evidence.\n\nAudit or update a watchlist for the intended authorized channel. Research only what the request\nneeds; a recommendation never authorizes a mutation.\n\n## Establish the list and candidate fit\n\n1. Resolve the intended owner with `vidiq_user_channels`, then\n capture `vidiq_list_competitors` for its `youtubeChannelId` as the original canonical-ID set.\n Enrich titles with `vidiq_get_channels_by_ids` only when useful.\n2. Exclude self, known siblings, and unrelated channels from analysis, but present removals as\n recommendations. Unknown ownership/fit is not an automatic removal reason; preserve\n intentional references.\n3. For discovery, `vidiq_similar_channels` takes canonical `channelId` with optional `size` and\n `sort`, or manual `niche` with its declared filters. Do not mix modes or pass `subNiches`.\n Reuse known IDs; resolve manual context through `vidiq_channel_search` only when needed,\n matching the returned canonical ID. Country/format can influence ranking rather than strict\n eligibility, so check actual fit.\n4. Use generic niche `vidiq_channel_search` for broader discovery and `breakoutChannel: true`\n for emerging challengers. Set `subscriberCountMin` only for a requested or justified cohort\n boundary. Disclose it; tiny or nonpositive baselines make growth ratios unreliable.\n5. Read [Discovery evidence](references/discovery-evidence.md) for candidate discovery or\n audience/mechanism pattern claims; individual candidate fit can\n remain tentative. Use semantic mechanism matching where declared.\n6. Verify upload recency only when it affects a recommendation: use `vidiq_channel_search`\n with `channelTitle` and `channelTitleMatch: \"exact\"` when declared, verify the ID, and read\n `lastVideoPublished`. Channel `publishedAt` is creation time. Alternatively, a scoped\n `vidiq_channel_videos` read needs `popular: false` and `videoFormat: long`, `short`, or\n `live`; that format sample cannot prove channel-wide inactivity. Missing dates mean unknown.\n\nClassify useful candidates as direct competitors, format references, or emerging challengers.\nRaw fame or size is insufficient; do not invent audience-overlap or private competitor analytics.\n\n## Propose and execute an exact change\n\n1. Present owner ID, original snapshot, canonical-ID `add`/`remove` sets, rationale, and expected\n final set: `(snapshot - remove) ∪ add`. Deduplicate, prevent overlap, and omit already-present\n additions or absent removals. Map additions to `follow` and removals to `unfollow`.\n An empty diff needs no mutation. Do not invent a watchlist/plan cap.\n2. Obtain approval of the exact owner and add/remove diff.\n3. Immediately before mutation, re-read the list within that approval. Compare canonical-ID sets\n with the original snapshot. If changed, abort, show the concurrent difference, and obtain\n approval for a revised diff. If the read fails, pause.\n4. With unchanged preflight and approval, call `vidiq_update_competitors` once with\n `youtubeChannelId`, `follow`, and `unfollow`. Preserve the response and read back with\n `vidiq_list_competitors`.\n5. Compare actual added/removed and final sets with the approved expectation. Report discrepancies,\n partial updates, or limit failures; never silently repair, roll back, or resubmit. Readback\n detects but cannot prevent a race after preflight because no atomic compare-and-swap is\n declared. If verification fails, label readback unverified and distinguish\n any response-confirmed state.\n\n## Deliver\n\nFor an audit, return the diagnosis and proposed changes. After an approved update, report the\nconfirmed final list or exact verification gap, approval state, and unresolved discrepancies.\nKeep the owner explicit for multi-channel accounts.\n"
}SHA-256: 50926cde661b505188bee5dc1b54559848cd0f4450cdc00fc935100741419caf