Agent skill
consume-music
Search and annotate music from ingested YouTube history. Uses Horus Music Taxonomy (HMT) for bridge-based memory integration. Enables episodic associations linking music to lore events.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/consume-music
Metadata
Additional technical details for this skill
- short description
- Consume music - search, HMT taxonomy, episodic lore links
SKILL.md
Consume Music Skill
Search and annotate ingested music using Horus Music Taxonomy (HMT). Works with content already processed by /ingest-yt-history.
Quick Start
cd .pi/skills/consume-music
# Sync from ingest-yt-history
./run.sh sync
# Search music by title/artist
./run.sh search "Chelsea Wolfe"
# Find music matching a bridge attribute
./run.sh find --bridge Fragility
# Find music for a lore episode
./run.sh episode "Siege of Terra"
# Find music for a scene description
./run.sh scene "The Imperial Fists prepare for the final defense"
# Add a note to a track
./run.sh note --track <track_id> --note "Perfect for Webway collapse scene"
# Sync HMT tags to /memory
./run.sh memory-sync
Commands
Sync from Ingest
./run.sh sync [--ingest-root ~/.pi/ingest-yt-history]
Imports music entries from /ingest-yt-history and extracts HMT taxonomy tags.
Search Music
./run.sh search <query> [--artist <name>] [--domain <genre>] [--limit <n>]
Search music by title, artist, or domain (genre).
Find by Bridge
./run.sh find --bridge <attribute> [--limit <n>]
Find music matching a Federated Taxonomy bridge attribute:
Precision- Technical, polyrhythmic (Iron Warriors aesthetic)Resilience- Triumphant, enduring (Imperial Fists aesthetic)Fragility- Delicate, breaking (Webway aesthetic)Corruption- Distorted, industrial (Chaos aesthetic)Loyalty- Ceremonial, sacred (Oaths of Moment)Stealth- Ambient, drone (Alpha Legion aesthetic)
Find for Episode
./run.sh episode <episode_name> [--limit <n>]
Find music matching a lore episode:
Siege_of_Terra- Resilience bridgeDavin_Corruption- Corruption bridgeWebway_Collapse- Fragility bridgeMournival_Oath- Loyalty bridgeIron_Cage- Precision bridgeSanguinius_Fall- Fragility bridge
Find for Scene
./run.sh scene "<description>" [--limit <n>]
Find music matching a scene description. Uses HMT verifier to score candidates.
Add Note
./run.sh note --track <track_id> --note <text> [--agent <agent_id>]
Add a Horus note to a music track.
Sync to Memory
./run.sh memory-sync [--force]
Sync music entries with HMT taxonomy tags to /memory:
- category:
music - collection_tags:
{domain, thematic_weight, function} - bridge_attributes:
[Resilience, Fragility, ...] - tactical_tags:
[Score, Recall, ...]
Build Profile
./run.sh profile [--output <file>]
Build taste profile with:
top_bridge_attributes: Most frequent bridgestop_domains: Most frequent genrestop_artists: Most played artistsepisodic_associations: Which episodes have strong music associations
Memory + Taxonomy Integration
Follows the canonical create-context/memory_integration.py pattern with graceful degradation.
Pre-hook: recall_prior_annotations(query, k=5)
- Recalls prior music annotations before search to surface previously tagged tracks
- Wired into
search.pyto inform search results with memory context - Enables cumulative taste profile building across sessions
Post-hook: learn_annotation(track_title, artist, annotation, hmt_tags, persona_id)
- Stores track annotation (title, artist, HMT tags, bridge attributes)
- Stores persona taste association when persona_id is provided
- Tags:
["consume_music", persona_id] + bridges + hmt_tags[:3] - Wired into
notes.py(on note add) andingest_bridge.py(on sync)
Bridge Keywords (keyword fallback, tuned for music)
| Bridge | Keywords |
|---|---|
| Precision | rhythm, tempo, technique, polyrhythm, algorithmic, technical |
| Resilience | resolution, harmony, triumphant, enduring, crescendo, epic |
| Fragility | dissonance, distortion, delicate, acoustic, breaking, ethereal |
| Corruption | noise, industrial, harsh, chaos, warp, distorted |
| Loyalty | ceremonial, choral, sacred, devotion, oath |
| Stealth | ambient, drone, minimalist, atmospheric, subtle |
| Transcendence | post-rock, shoegaze, expansive, reverb, layered |
| Defiance | aggressive, rebellion, punk, thrash, rage |
Graceful Degradation
- Uses
try/except ImportErrorat every hook callsite - Falls back to keyword-based bridge extraction when taxonomy module unavailable
- All hooks are no-ops when
common.memory_clientis not importable
Data Storage
| Data | Location |
|---|---|
| Music registry | ~/.pi/consume-music/registry.json |
| Notes | ~/.pi/consume-music/notes/<agent_id>/notes.jsonl |
| Profile | ~/.pi/consume-music/profile.json |
| HMT cache | ~/.pi/consume-music/hmt_cache.json |
Integration with /memory
Music entries are stored in /memory with full HMT taxonomy:
./memory/run.sh learn \
--problem "Music: Chelsea Wolfe - Carrion Flowers" \
--solution "Dark folk/doom. Bridge: Fragility. Episode: Webway_Collapse, Sanguinius_Fall" \
--category music \
--tags chelsea_wolfe,dark_folk,doom,fragility,webway
Querying from /memory
After sync, Horus can recall music via:
# By bridge attribute
/memory recall --bridge Resilience --collection music
# By episode
/memory recall --episode "Siege of Terra" --collection music
# By mood for scene
/memory recall --scene "battle preparation" --collection music
Horus Music Taxonomy (HMT)
Located at: /home/graham/workspace/experiments/memory/persona/bridge/horus_music_taxonomy.py
Tier 0: Bridge Attributes (cross-collection)
| Bridge | Lore Connection | Music Indicators |
|---|---|---|
| Precision | Iron Warriors, Perturabo | polyrhythm, technical, algorithmic |
| Resilience | Imperial Fists, Dorn | crescendo, triumphant, enduring |
| Fragility | Webway, Magnus's Folly | delicate, acoustic, breaking |
| Corruption | Warp, Chaos, Davin | distorted, industrial, harsh |
| Loyalty | Oaths of Moment, Loken | ceremonial, choral, sacred |
| Stealth | Alpha Legion, Alpharius | ambient, drone, minimalist |
Tier 1: Tactical Tags
| Tag | Use |
|---|---|
| Score | Movie/story soundtrack |
| Recall | Trigger memory/association |
| Amplify | Intensify existing emotion |
| Contrast | Emotional counterpoint |
| Immerse | Create atmosphere |
| Signal | Mark narrative transition |
Tier 3: Collection Tags
- Function: Battle, Mourning, Triumph, Contemplation, Corruption, Resilience
- Domain: Orchestral_Epic, Dark_Folk, Doom_Metal, Progressive_Metal, Atmospheric_Ambient
- Thematic: Melancholic, Epic, Ominous, Brutal, Ethereal, Tragic
File Structure
| File | Purpose |
|---|---|
SKILL.md |
This file |
run.sh |
Execution entry point |
sanity.sh |
Health check |
__init__.py |
Package marker |
search.py |
Music search with memory pre-hook |
list.py |
List music catalog |
notes.py |
Add/list notes with memory post-hook |
ingest_bridge.py |
Sync from ingest-yt-history with memory post-hook |
memory_integration.py |
Memory + Taxonomy hooks (pre/post) |
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?