Docs/Skills and code/Top-level code
config-cricket.js
Mentioned on: page 02
import path from "node:path";
const root = process.cwd();
export const config = {
projectName: "YouTube Ecosystem Intelligence",
dbPath: path.join(root, "data", "cricket-ecosystem.db"),
seedPath: path.join(root, "seeds", "topics.json"),
discoverySeedPath: path.join(root, "seeds", "discovery-v2.json"),
youtube: {
resultsPerSearch: 30
},
viewer: {
port: 3000
},
// Change this section to investigate another ecosystem.
ecosystem: {
name: "cricket",
description:
"The global cricket ecosystem: playing and coaching, match coverage, analysis, statistics, history, players, teams, domestic and international competitions, leagues, tactics, and cricket culture.",
includeTerms: [
"cricket",
"cricket analysis",
"cricket match analysis",
"cricket tactics",
"cricket strategy",
"cricket explained",
"cricket highlights",
"cricket news",
"cricket commentary",
"cricket podcast",
"cricket history",
"cricket records",
"cricket statistics",
"cricket facts",
"cricket stories",
"cricket documentary",
"cricket debate",
"cricket opinion",
"cricket reaction",
"cricket predictions",
"cricket coaching",
"cricket batting tips",
"cricket bowling tips",
"cricket fielding drills",
"fast bowling technique",
"spin bowling technique",
"batting technique",
"wicketkeeping drills",
"Test cricket",
"One Day International cricket",
"ODI cricket",
"T20 cricket",
"women's cricket",
"international cricket",
"domestic cricket",
"Indian cricket",
"England cricket",
"Australian cricket",
"Pakistan cricket",
"New Zealand cricket",
"South Africa cricket",
"West Indies cricket",
"Sri Lanka cricket",
"Bangladesh cricket",
"Afghanistan cricket",
"Nepal cricket",
"associate cricket",
"IPL cricket",
"Big Bash League cricket",
"Pakistan Super League cricket",
"The Hundred cricket",
"County Championship cricket",
"Ranji Trophy cricket",
"cricket leagues",
"cricket players",
"cricket teams",
"cricket grounds",
"cricket equipment"
],
// Use exclusions to reduce obvious search noise, not to define the ecosystem
// so narrowly that related or emerging cricket formats disappear.
excludeTerms: [
"football highlights",
"soccer highlights",
"basketball highlights",
"tennis highlights",
"cricket betting tips",
"cricket betting odds",
"online casino",
"casino gambling"
],
adjacentTerms: [
"sports analytics",
"sports journalism",
"sports documentary",
"sports history",
"sports business",
"sports broadcasting",
"sports coaching",
"athlete training",
"sports science",
"sports psychology",
"stadium culture",
"sports equipment reviews",
"fantasy sports",
"sports gaming"
],
// Optional manual starting points. Keep empty for a more discovery-led run.
// Add entries as { handle: "ChannelHandle", name: "Channel Name" } if useful.
referenceChannels: [],
discovery: {
topicSeeds: [
"how cricket tactics work explained",
"why great cricket innings succeeded",
"cricket bowling plans and field settings",
"cricket batting technique breakdown",
"greatest Test cricket matches explained",
"historic cricket series and rivalries",
"cricket statistics and records explained",
"how cricket rules and umpiring decisions work",
"cricket captaincy and tactical decisions",
"how fast bowlers generate pace and movement",
"how spin bowlers deceive batters",
"T20 batting strategies and innovation",
"ODI cricket strategy and innings construction",
"Test match strategy across five days",
"women's cricket analysis and history",
"domestic cricket and emerging players",
"cricket league business and team building",
"cricket player careers and turning points",
"cricket controversies and disputed decisions",
"underrated cricket players and performances",
"cricket coaching drills for beginners",
"cricket fielding technique and athleticism",
"cricket pitch conditions and their tactical effects",
"cricket team selection and squad strategy",
"how cricket teams develop young players",
"cricket content creators and match analysis formats"
],
adjacentSeeds: [
{
label: "sports analytics",
query: "sports analytics explained using cricket examples"
},
{
label: "sports science",
query: "sports science biomechanics training for cricket players"
},
{
label: "sports psychology",
query: "sports psychology pressure decision making cricket"
},
{
label: "sports business",
query: "cricket league economics broadcasting sponsorship team business"
},
{
label: "sports history",
query: "sports history documentaries cricket and global sport"
},
{
label: "sports journalism",
query: "cricket journalism long form sports reporting analysis"
},
{
label: "sports equipment",
query: "cricket bats balls protective equipment reviews testing"
},
{
label: "fantasy sports",
query: "cricket fantasy strategy player statistics analysis"
}
]
}
},
qualification: {
promptVersion: "cricket-ecosystem-qualification-v1.0",
minimumConfidenceToQualify: 0.58,
llm: {
batchSize: 8,
maxVideoTitles: 20,
descriptionChars: 1800,
retryMissingIndividually: true
},
classification: {
labels: ["core", "adjacent", "unknown", "irrelevant"],
core: {
definition:
"Cricket is the channel's primary editorial subject, supported by recurring content rather than isolated mentions.",
includeWhen: [
"A substantial share of recurring uploads directly concerns cricket matches, players, teams, competitions, tactics, statistics, history, news, commentary, coaching, or cricket culture.",
"The channel has a recognizable cricket-focused editorial identity, even if it also covers other sports or general entertainment.",
"The channel description and multiple representative video titles support the classification."
],
doNotInferFrom: [
"A single cricket-related upload on an otherwise unrelated channel",
"A cricket keyword in a title without supporting channel-level evidence",
"General sports content with no meaningful recurring cricket coverage",
"A cricket game or simulation channel unless its recurring content is meaningfully part of the defined cricket ecosystem"
]
},
adjacent: {
definition:
"Cricket is a meaningful recurring component, or the channel offers directly relevant skills, context, or analysis, but cricket is not clearly its primary subject.",
includeWhen: [
"A broader sports channel regularly covers cricket alongside other sports.",
"A channel about sports analytics, coaching, biomechanics, psychology, journalism, business, or history provides substantial cricket-relevant material.",
"A broader channel covers cricket equipment, fantasy strategy, cricket gaming, or sports culture in a recurring and substantive way."
],
doNotInferFrom: [
"A generic sports channel with no concrete cricket evidence",
"A one-off cricket video in an otherwise unrelated channel",
"A keyword match without evidence of recurring relevance"
]
},
unknown: {
definition:
"Available evidence is insufficient, contradictory, sparse, or too ambiguous for a defensible classification.",
includeWhen: [
"The description is missing or generic and representative titles do not establish recurring subject matter.",
"Evidence is mixed or too sparse to distinguish cricket focus from broader sports coverage.",
"Only a small, stale, or potentially biased sample is available."
]
},
irrelevant: {
definition:
"The channel's evidenced primary subject is outside the cricket ecosystem and there is no meaningful recurring cricket-related content.",
includeWhen: [
"The channel description and representative titles clearly point to another subject.",
"Cricket-related words are incidental, misleading, or refer to unrelated meanings."
]
}
}
},
queueScoring: {
version: "channel-queues-v6-cricket-ecosystem",
minimumCoverageForSupported: 70,
breakout: {
minVideosForScore: 5,
fullSampleConfidenceVideos: 20,
smallChannelSubscriberPrior: 1000,
minimumAgeDaysForAgeAdjustedViews: 30
},
ranking: {
coreBeforeAdjacent: true,
minimumQualificationConfidence: 0.58,
minimumConfidenceForSupported: 0.75,
unknownChannelsRequireQualification: true,
missingEvidenceIsNull: true
}
},
discovery: {
resultsPerQuery: 25,
delayMs: 350,
maxHypothesesPerRoute: 4,
routes: {
A: { label: "channel-led", maxQueries: 6 },
B: { label: "video-led", maxQueries: 6 },
C: { label: "topic-led", maxQueries: 8 },
D: { label: "adjacent-ecosystem", maxQueries: 7 }
},
llm: {
enabledByDefault: false,
batchSize: 1
}
},
stage1_5: {
popularVideos: 20,
newestVideos: 20,
maxChannelPages: 5,
youtubeCachePath: path.join(root, "data", "youtube-cache"),
requestDelayMs: 250
}
};
Shown as it is in the repository at build time (2026-11-03); the home directory appears as <home>. If this page and the file differ, the file is right. Back to the catalogue.