Docs/Skills and code/Top-level code
config.js
Mentioned on: page 02
import path from "node:path";
const root = process.cwd();
export const config = {
projectName: "YouTube Ecosystem Intelligence",
// Keep this database separate from art, cricket, geopolitics, business, and science.
dbPath: path.join(root, "data", "crochet-ecosystem.db"),
seedPath: path.join(root, "seeds", "topics.json"),
discoverySeedPath: path.join(root, "seeds", "discovery-v2.json"),
youtube: {
resultsPerSearch: 30
},
viewer: {
port: 3000
},
ecosystem: {
name: "crochet",
description:
"The YouTube ecosystem for crochet and crochet making: crochet tutorials and teaching, stitch and technique instruction, pattern walkthroughs and crochet-alongs, amigurumi, garments and accessories, blankets and home decor, granny squares and motifs, crochet design and pattern designers, yarn and hook reviews, crochet businesses and craft fairs, and the community of makers who crochet and share their projects. The focus is on channels that teach, demonstrate, design, review, or document crochet for beginners and experienced makers.",
includeTerms: [
"crochet tutorial",
"crochet for beginners",
"learn to crochet",
"crochet stitches",
"crochet pattern",
"free crochet pattern",
"crochet along",
"crochet amigurumi",
"amigurumi tutorial",
"crochet granny square",
"crochet blanket",
"crochet cardigan",
"crochet sweater",
"crochet top",
"crochet bag",
"crochet hat",
"crochet beanie",
"crochet scarf",
"crochet toys",
"crochet plushies",
"crochet flowers",
"crochet home decor",
"crochet basket",
"crochet bikini",
"crochet for kids",
"left handed crochet",
"tunisian crochet",
"filet crochet",
"tapestry crochet",
"corner to corner crochet",
"crochet joining motifs",
"crochet design",
"crochet pattern designer",
"crochet vlog",
"crochet yarn review",
"crochet hook review",
"crochet business",
"crochet craft fair",
"knit and crochet podcast",
"crochet tips and tricks"
],
// These are discovery hints and false-positive areas, not automatic
// exclusion rules. Qualification should use the channel's actual content.
excludeTerms: [
"knitting-only channel with no crochet",
"general entertainment with no craft focus",
"gaming walkthrough",
"music-only channel",
"movie recap",
"reaction videos with no crafting",
"unrelated shopping haul",
"product promotion with no crochet demonstration",
"crochet used only as a hashtag or keyword stuffing",
"AI-generated slideshow with no real crochet work"
],
adjacentTerms: [
"knitting tutorial",
"knitting patterns",
"machine knitting",
"weaving",
"macrame",
"embroidery",
"cross stitch",
"sewing",
"quilting",
"yarn crafts",
"fiber arts",
"spinning and dyeing yarn",
"craft vlog",
"handmade business",
"diy home decor",
"needlework",
"plushie making",
"fashion diy"
],
// Optional review anchors only. Discovery does not depend on these.
referenceChannels: [],
discovery: {
topicSeeds: [
"crochet tutorial for complete beginners step by step",
"how to crochet basic stitches single double treble",
"crochet amigurumi tutorial making stuffed toys",
"crochet granny square tutorial and joining",
"crochet blanket tutorial and crochet along",
"crochet cardigan and sweater pattern tutorial",
"crochet top and summer wear tutorial",
"crochet bag and tote tutorial",
"crochet hat beanie and scarf tutorial",
"crochet flowers and decor tutorial",
"left handed crochet tutorials",
"tunisian crochet tutorial",
"crochet pattern designer sharing free patterns",
"crochet vlog weekly makes and wips",
"crochet yarn and hook review",
"crochet for kids and baby clothes tutorial",
"crochet small business selling handmade items",
"advanced crochet techniques tapestry filet and colorwork",
"how to read crochet patterns and charts",
"crochet tips fixing mistakes and gauge"
],
adjacentSeeds: [
{
label: "knitting",
query: "knitting tutorial and patterns for beginners"
},
{
label: "macrame and weaving",
query: "macrame and weaving tutorial handmade decor"
},
{
label: "embroidery and needlework",
query: "embroidery and cross stitch tutorial"
},
{
label: "sewing and fashion diy",
query: "sewing handmade clothes diy tutorial"
},
{
label: "yarn and fiber arts",
query: "yarn dyeing spinning and fiber arts"
},
{
label: "craft business",
query: "handmade craft business selling at markets and online"
},
{
label: "craft vlog",
query: "craft vlog knitting crochet sewing weekly projects"
},
{
label: "plushie and toy making",
query: "handmade plushie and toy making tutorial"
}
]
}
},
qualification: {
promptVersion: "crochet-ecosystem-qualification-v1.0",
minimumConfidenceToQualify: 0.58,
llm: {
batchSize: 16,
maxVideoTitles: 14,
descriptionChars: 1600,
retryMissingIndividually: true
},
classification: {
labels: ["core", "adjacent", "unknown", "irrelevant"],
core: {
definition:
"Crochet (teaching, patterns, making, designing, reviewing, or documenting crochet projects) is a primary recurring editorial subject. The channel may focus on one crochet niche (e.g. amigurumi, garments, blankets) or crochet broadly.",
includeWhen: [
"Multiple representative videos are crochet tutorials, pattern walkthroughs, crochet-alongs, or demonstrations of crochet stitches and techniques.",
"The channel has a recognizable crochet teacher, crochet designer, crochet maker, or crochet vlogger identity.",
"A pattern designer, yarn shop, or craft business regularly publishes substantive crochet videos.",
"A maker documents crochet projects, WIPs, hauls, or reviews of yarn and hooks as a recurring subject.",
"A channel covering both crochet and knitting where crochet is a major recurring share."
],
doNotInferFrom: [
"A channel name containing 'crochet' without supporting video evidence.",
"A single crochet video on an otherwise unrelated channel.",
"Crochet hashtags or keywords in titles of otherwise unrelated or low-effort content.",
"A channel's popularity or subscriber count alone."
]
},
adjacent: {
definition:
"The channel has meaningful recurring overlap with crochet, but crochet is not clearly its primary editorial identity.",
includeWhen: [
"Knitting, macrame, weaving, embroidery, sewing, or other fiber and craft content with occasional crochet.",
"A broader craft, DIY, or handmade-business channel with substantial recurring yarn-craft content.",
"Yarn dyeing, spinning, or fiber-art channels that serve crocheters as part of their audience.",
"A craft vlogger who sometimes crochets among several crafts."
],
doNotInferFrom: [
"A generic DIY or lifestyle channel with no concrete recurring yarn-craft evidence.",
"A one-off craft video on an otherwise unrelated channel."
]
},
unknown: {
definition:
"The available evidence is sparse, ambiguous, contradictory, or insufficient to establish recurring relevance to crochet.",
includeWhen: [
"The description is missing or generic and representative titles do not establish the channel's focus.",
"Only one or two potentially unrepresentative videos are available.",
"The channel mixes crochet with unrelated topics and the balance cannot yet be established.",
"The channel may be relevant, but the evidence does not support a confident core or adjacent classification."
]
},
irrelevant: {
definition:
"The channel's evidenced primary subject has no meaningful recurring connection to crochet or the configured adjacent crafts.",
includeWhen: [
"The description and representative titles consistently establish an unrelated primary subject.",
"Crochet-related words are incidental, used in unrelated meanings, or appear only in isolated uploads.",
"The channel consists primarily of unrelated entertainment, music, gaming, gossip, or promotion with no meaningful crochet content."
]
}
}
},
queueScoring: {
version: "channel-queues-v6-crochet-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-generated discovery queries remain opt-in.
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.