skill-taxonomy: 69-Skill Organization + Discovery System
Status: Stepping Stone 🌉
Information Energy: 0.90 (High aspiration, partial implementation)
Trit Assignment: -1 (Validator - Ensures skill registry consistency)
GF(3) Color: 🔵 #0000CD (Deep Blue - Cold validator)
Purpose
Provide a centralized registry and discovery system for all 69 ASI skills. Like npm, pip, and Hackage, this skill enables:
- Skill Discovery: Search and find skills by name, keyword, category
- Skill Registry: Metadata about all 69 skills (name, version, description, keywords, trit)
- Dependency Management: Track skill dependencies and GF(3) balance
- Installation: Load skills from registry into Duck framework
Architecture
asi-skills/skill-registry/
├── registry.bb # Core registry data structure
├── search.bb # Full-text search + ranking
├── discover.bb # CLI discovery commands
├── metadata.bb # Skill metadata parser
└── SKILL.md # This file
Data Structure
Adapted from npm package.json:
{:skill-taxonomy
{:name "skill-taxonomy"
:version "1.0.0"
:description "69-skill organization + discovery"
:keywords ["registry" "discovery" "metadata" "search"]
:author {:name "bmorphism" :email "core@plurigrid.ai"}
:trit -1 ; Validator
:color "#0000CD"
:category "meta"
:depends-on ["gf3-conservation"
"acsets"
"gay-integration"]
:homepage "https://github.com/plurigrid/asi-skills"
:repository "github:plurigrid/asi-skills"
:license "MIT"}}
Each skill in the registry contains:
| Field | Type | Example |
|---|---|---|
name |
String | "skill-taxonomy" |
version |
Semver | "1.0.0" |
description |
String | "69-skill organization" |
keywords |
Array | ["registry", "discovery"] |
trit |
Int ∈ {-1,0,+1} | -1 |
color |
Hex | "#0000CD" |
category |
String | "meta" \ |
completion |
Float [0,1] | 0.0 (sad) to 1.0 (bloomed) |
ie-score |
Float [0,1] | Information energy |
depends-on |
Array | ["gf3-conservation", ...] |
authors |
Array | [{name, email}] |
homepage |
URL | "" |
repository |
URL | "github:plurigrid/asi-skills" |
license |
SPDX | "MIT" |
Discovery Patterns
Pattern 1: Search by Name
(search-skills "gay" {:type :starts-with})
→ ["gay-mcp", "gay-julia", "gay-color-chain", ...]
Pattern 2: Search by Keyword
(search-skills "coordination" {:type :keyword})
→ ["triadic-coordination", "agent-o-rama", "world-hopping", ...]
Pattern 3: Search by Trit
(search-skills {:trit -1})
→ 10 validator skills
Pattern 4: Search by Category
(search-skills {:category "foundation"})
→ ["gay-mcp", "acsets", "gay-julia", "autopoiesis"]
Pattern 5: Search by Completion Status
(search-skills {:completion {:min 0.8}})
→ Only "blossoming" skills (10 skills)
(search-skills {:completion {:max 0.2}})
→ Only "sad state" skills (30 skills)
Implementation Strategy
Stage 1: Core Registry (Today)
Create in-memory registry with all 69 skills + metadata:
; duck/asi-skills/skill-taxonomy/registry.bb
(def SKILL_REGISTRY
{
:gay-mcp {:name "gay-mcp" :trit +1 :completion 0.95 :ie 0.10}
:acsets {:name "acsets" :trit 0 :completion 0.92 :ie 0.12}
; ... all 69 skills
})
Stage 2: Search Engine (Next)
Implement full-text search with keyword indexing:
; duck/asi-skills/skill-taxonomy/search.bb
(defn build-search-index [registry]
{:name-index (build-trie registry)
:keyword-index (build-inverted-index registry)
:category-index (group-by :category registry)})
Stage 3: CLI Integration (Following)
Expose via Duck pre-hook:
duck search "triadic"
→ Results ranked by relevance, completion, trit balance
duck registry-info skill-taxonomy
→ Full metadata for one skill
Stage 4: API Endpoint (Future)
REST API for external access (integrate with code-codex):
GET /api/skills → All 69 skills
GET /api/skills?q=gay → Search results
GET /api/skills/:name → Single skill metadata
POST /api/skills/:name/rate → Community ratings
GF(3) Integration
The registry itself must maintain GF(3) balance:
(defn verify-registry-balance [registry]
(let [trits (map :trit (vals registry))
sum (reduce + trits)]
(assert (= (mod sum 3) 0)
(str "GF(3) violation: sum=" sum))))
For 69 skills to balance:
- 23 validators (-1): sum = -23
- 23 coordinators (0): sum = 0
- 23 generators (+1): sum = +23
- Total: 0 ✓
Deployment
Local Development
just skill-taxonomy-test # Run search tests
just skill-taxonomy-index # Build search indexes
Duck Integration
# Pre-hook loads registry
just duck-propagate
# Use in interactions
duck search "polymorphism"
Cloud Deployment
# Push to plurigrid/asi-skills
git add duck/asi-skills/skill-taxonomy/
git commit -m "Implement skill-taxonomy discovery system"
git push origin main
Example: Finding Skills by Information Energy
; Find top 10 highest-IE (saddest) skills
(top-skills registry :ie-score 10)
→ [{:name "skill-taxonomy" :ie 0.90}
{:name "llms-txt-discovery" :ie 0.90}
{:name "polyglot-orchestration" :ie 0.76}
...]
; Find well-implemented skills to learn from
(top-skills registry :completion 10)
→ [{:name "gay-integration" :completion 0.95}
{:name "acsets" :completion 0.92}
...]
Success Metrics
| Metric | Target | Status |
|---|---|---|
| Registry size | 69 skills | ⏳ Pending |
| Search latency | < 10ms | ⏳ Pending |
| Coverage | All skills discoverable | ⏳ Pending |
| GF(3) balance | sum ≡ 0 (mod 3) | ⏳ Pending |
| Integration | Works with Duck pre-hook | ⏳ Pending |
Related Skills
Dependencies:
gf3-conservation- Validate registry GF(3) balanceacsets- Algebraic structure for registrygay-integration- Color coding for skills
Dependents:
llms-txt-discovery- Uses registry for documentation indexingskill-dispatch- Uses registry to load skillsworld-hopping- Explores skill possibility space via registry
References
- npm registry: https://registry.npmjs.org/
- Hackage API: https://hackage.haskell.org/api
- PyPI JSON API: https://pypi.org/pypi/
- AlphaGo style ranking: ELO + information geometry
Status: 😢 SAD STATE → 🌉 STEPPING STONE
Next: Implement in duck/asi-skills/skill-taxonomy/registry.bb
Owner: bmorphism + ai-skill-generator
Created: 2026-01-04