# =============================================================================
# config/sources.yaml
# -----------------------------------------------------------------------------
# Feed + search-target catalog for Scout (scripts/scout.py).
#
# WHAT THIS IS:
#   A flat catalog of where to LOOK for new skills / tools / releases that are
#   relevant to KarnelLabs (Unity, Unreal, Claude Code, MCP, game dev, AI tooling).
#   Scout only *enumerates* these targets and scaffolds a daily report. It does
#   NOT itself crawl the web. The actual signal gathering + value judgment is
#   delegated to the 'signalcraft:research' + 'deep-research' skills and to the
#   Hermes automation (see config/scout.yaml -> judgment).
#
# WHO READS IT:
#   - scripts/scout.py            : picks which groups to run (see scout.yaml
#                                   -> source_groups) and lists enabled entries
#                                   into the daily report skeleton.
#   - signalcraft / deep-research : human-or-Hermes driven follow-up that turns
#                                   these URLs/queries into actual findings.
#
# ENTRY SHAPE (every list item, all groups):
#   - name:    short stable identifier (kebab-case), unique within its group.
#     url:     a fetchable URL  (rss / docs / skill_registries / youtube)
#       OR
#     query:   a search query string (github_search and some registries)
#     enabled: true | false   -- Scout skips disabled entries entirely.
#     note:    one-line human reason this target exists / what to expect.
#
# RULES:
#   - URLs here are *placeholders / best-effort* real endpoints. Confirm before
#     trusting; some may move. Nothing here is auto-fetched without human/Hermes.
#   - Stay inside the YAML subset: 2-space indent, block maps/seqs, plain or
#     quoted scalars, empty collections only as inline [] / {}. No anchors.
#   - Add new sources by appending an entry to the right group. Keep names unique.
#   - Do NOT put secrets/tokens here. This file is committed.
# =============================================================================

version: 1
updated: 2026-06-23

# Free-text description surfaced in the daily report header by scout.py.
# (Plain quoted scalar only -- the YAML subset forbids >/| folding.)
purpose: 'Source catalog for the daily Scout pass; signalcraft + deep-research do the analysis.'

# -----------------------------------------------------------------------------
# rss
#   Long-form blogs / news feeds. Best for "what shipped / what changed" signal.
#   Scout lists these; Hermes/deep-research fetch + summarize into 20_Raw_Sources.
# -----------------------------------------------------------------------------
rss:
  - name: unity-blog
    url: 'https://blog.unity.com/feed'
    enabled: true
    note: 'Official Unity blog; engine features, render pipeline, tooling posts.'
  - name: unreal-engine-feed
    url: 'https://www.unrealengine.com/en-US/feed'
    enabled: true
    note: 'Epic / Unreal Engine news + feature announcements.'
  - name: anthropic-news
    url: 'https://www.anthropic.com/news/rss.xml'
    enabled: true
    note: 'Anthropic announcements; model + Claude product news (verify path).'
  - name: gamasutra-gamedeveloper
    url: 'https://www.gamedeveloper.com/rss.xml'
    enabled: true
    note: 'Game Developer (ex-Gamasutra) design/programming/business articles.'
  - name: gamedev-net
    url: 'https://www.gamedev.net/rss/news/'
    enabled: false
    note: 'GameDev.net community news; lower signal, enable if RSS goes thin.'
  - name: hacker-news-frontpage
    url: 'https://hnrss.org/frontpage'
    enabled: false
    note: 'HN firehose; noisy. Enable only when chasing a specific spike.'

# -----------------------------------------------------------------------------
# github_search
#   Search queries (NOT urls) run against GitHub by signalcraft/deep-research.
#   Aimed at discovering Claude Code skills, MCP servers, Unity/Unreal tools.
#   'query' uses GitHub search qualifiers (topic:, language:, stars:, pushed:).
# -----------------------------------------------------------------------------
github_search:
  - name: claude-code-skills
    query: 'topic:claude-code skill in:name,description,readme pushed:>2026-01-01'
    enabled: true
    note: 'Find published Claude Code skills; primary registry-growth source.'
  - name: mcp-servers
    query: 'topic:mcp OR topic:model-context-protocol server stars:>20'
    enabled: true
    note: 'Model Context Protocol servers; candidate MCP integrations.'
  - name: unity-mcp-tools
    query: 'unity mcp in:name,description language:C# stars:>10'
    enabled: true
    note: 'Unity-side MCP bridges/editor tools; overlaps karnellabs-unity-mcp.'
  - name: unreal-mcp-tools
    query: 'unreal mcp in:name,description stars:>5'
    enabled: true
    note: 'Unreal MCP / editor automation; engine=unreal candidates.'
  - name: unity-editor-tooling
    query: 'topic:unity-editor topic:tooling pushed:>2026-03-01'
    enabled: true
    note: 'General Unity editor tooling; absorb-or-track candidates.'
  - name: game-ai-agents
    query: 'game agent llm in:name,description stars:>30 pushed:>2026-01-01'
    enabled: false
    note: 'LLM agents for games; broad/noisy, enable for focused sweeps.'
  - name: gamedev-skill-packs
    query: 'topic:gamedev topic:claude skill'
    enabled: true
    note: 'Game-dev oriented skill packs; map against approved game skills.'

# -----------------------------------------------------------------------------
# skill_registries
#   Curated indexes of skills/plugins. Mix of fetchable urls and search queries.
#   Highest-value group for the dedup pipeline: these are pre-filtered skills.
# -----------------------------------------------------------------------------
skill_registries:
  - name: ui-skills-registry
    url: 'https://ui-skills.dev/registry.json'
    enabled: true
    note: 'ui-skills registry (UI component skill index); category=ui sources.'
  - name: skills-sh-search
    query: 'unity OR unreal OR mcp OR game-dev'
    enabled: true
    note: 'skills.sh search across engines; broad skill discovery surface.'
  - name: skills-sh-claude-code
    query: 'claude-code'
    enabled: true
    note: 'skills.sh slice for Claude Code skills specifically.'
  - name: awesome-claude-skills
    url: 'https://raw.githubusercontent.com/awesome-claude/skills/main/README.md'
    enabled: false
    note: 'Community awesome-list mirror; enable if maintained (verify repo).'
  - name: anthropic-skill-gallery
    url: 'https://docs.claude.com/skills/gallery'
    enabled: true
    note: 'First-party skill gallery; authoritative baseline to dedup against.'

# -----------------------------------------------------------------------------
# youtube
#   Channels / transcript sources. URLs are channel or playlist placeholders;
#   transcript pulls are done downstream (deep-research / Hermes), never inline.
# -----------------------------------------------------------------------------
youtube:
  - name: unity-official-channel
    url: 'https://www.youtube.com/@unity'
    enabled: true
    note: 'Unity official; talks/feature walkthroughs -> 20_Raw_Sources/videos.'
  - name: unreal-engine-channel
    url: 'https://www.youtube.com/@UnrealEngine'
    enabled: true
    note: 'Unreal Engine official channel; release + feature deep dives.'
  - name: anthropic-channel
    url: 'https://www.youtube.com/@anthropic-ai'
    enabled: false
    note: 'Anthropic channel; sparse, enable around model/Claude Code launches.'
  - name: gdc-talks
    url: 'https://www.youtube.com/@Gdconf'
    enabled: false
    note: 'GDC talks; high value but seasonal, enable around conference dumps.'

# -----------------------------------------------------------------------------
# docs
#   Authoritative changelogs / release notes. Lowest noise, highest trust.
#   These drive "did X version change something we depend on?" signal.
# -----------------------------------------------------------------------------
docs:
  - name: unity-release-notes
    url: 'https://unity.com/releases/editor/whats-new'
    enabled: true
    note: 'Unity editor release notes; track LTS + tech-stream feature deltas.'
  - name: unity-lts-archive
    url: 'https://unity.com/releases/editor/archive'
    enabled: false
    note: 'Older Unity release archive; enable when auditing an upgrade path.'
  - name: unreal-release-notes
    url: 'https://docs.unrealengine.com/en-US/unreal-engine-release-notes/'
    enabled: true
    note: 'Unreal Engine release notes; engine=unreal feature/breaking changes.'
  - name: claude-code-changelog
    url: 'https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md'
    enabled: true
    note: 'Claude Code CHANGELOG; new CLI/skill/MCP capabilities to absorb.'
  - name: anthropic-api-changelog
    url: 'https://docs.claude.com/en/api/changelog'
    enabled: true
    note: 'Anthropic API changelog; model ids, params, tool-use changes.'
  - name: mcp-spec-changelog
    url: 'https://modelcontextprotocol.io/specification/changelog'
    enabled: true
    note: 'MCP specification changelog; protocol-level shifts for our servers.'
