skos-taxonomy
Design, apply, and maintain SKOS taxonomies for joelclaw agent workflows. Use when defining concept schemes, classifying agent inputs/outputs, mapping to external vocabularies, or integrating taxonomy metadata with Typesense retrieval.
What this skill does
# SKOS Taxonomist
Design operational taxonomies with SKOS so Panda and all sub-agents classify work consistently, retrieve better context, and avoid tag soup.
This skill is for execution, not theory: define concepts, classify agent data, validate constraints, and wire taxonomy fields into Typesense.
## When to Use
Use this skill when any request involves:
- "taxonomy", "SKOS", "controlled vocabulary", "concept scheme"
- classifying agent interactions, runs, docs, memory, events, or tasks
- designing or revising `concept_ids` / `primary_concept_id` contracts
- mapping joelclaw concepts to another vocabulary
- deciding whether SKOS is needed or a simpler tag model is enough
## Primary Outcomes
1. A versioned SKOS concept scheme with stable concept URIs.
2. Agent-classification rules that produce deterministic concept metadata.
3. Typesense field mappings that support lexical, faceted, and hybrid retrieval.
4. Governance rules for candidate concepts, alias drift, deprecation, and mappings.
## Non-Negotiable SKOS Rules (Normative)
Follow these in every scheme:
1. `skos:Concept` and `skos:ConceptScheme` are distinct classes.
2. `skos:broader` is **not** transitive; use transitive super-property semantics (`skos:broaderTransitive`) for closure queries.
3. `skos:prefLabel` max one value per language tag for a resource.
4. `skos:prefLabel`, `skos:altLabel`, and `skos:hiddenLabel` are pairwise disjoint for the same resource+language form.
5. `skos:related` is disjoint with `skos:broaderTransitive`.
6. Mapping relations are for cross-scheme linking. `skos:exactMatch` is transitive and should be used sparingly.
7. `skos:closeMatch` is intentionally non-transitive.
8. `skos:Collection` / `skos:OrderedCollection` are for grouping; they are disjoint with `skos:Concept`.
If any of these fail, stop and fix data before rollout.
## JoelClaw Operational Scheme (Workload v1)
Define a dedicated scheme for workload classification:
- Scheme URI: `joelclaw:scheme:workload:v1`
- Taxonomy version string: `workload-v1`
- Concept URI pattern: `joelclaw:concept:<top-level>[:<subconcept>]`
- Notation style: upper snake or dotted operational codes (stable and immutable)
### Top-Level Concepts (Required)
| Notation | URI | Purpose |
|---|---|---|
| `PLATFORM` | `joelclaw:concept:platform` | Runtime/platform infrastructure and hosting substrate |
| `INTEGRATION` | `joelclaw:concept:integration` | External system connections, APIs, webhooks, adapters |
| `TOOLING` | `joelclaw:concept:tooling` | CLI/dev tooling, operator commands, local automation |
| `PIPELINE` | `joelclaw:concept:pipeline` | Inngest/event workflows, ingestion and processing chains |
| `BUILD` | `joelclaw:concept:build` | Code implementation, tests, CI/CD, packaging |
| `KNOWLEDGE` | `joelclaw:concept:knowledge` | Docs, memory, taxonomy, retrieval context |
| `COMMS` | `joelclaw:concept:comms` | Messaging channels, notifications, agent/user communication |
| `OBSERVE` | `joelclaw:concept:observe` | OTEL/logging/metrics/diagnostics/reliability telemetry |
| `META` | `joelclaw:concept:meta` | Governance, ADRs, policies, lifecycle and process controls |
### Core Turtle Skeleton
```turtle
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix jcw: <joelclaw:> .
jcw:scheme:workload:v1 a skos:ConceptScheme ;
skos:prefLabel "JoelClaw Workload Taxonomy v1"@en ;
skos:definition "Operational workload taxonomy for Panda and sub-agents."@en ;
skos:hasTopConcept
jcw:concept:platform,
jcw:concept:integration,
jcw:concept:tooling,
jcw:concept:pipeline,
jcw:concept:build,
jcw:concept:knowledge,
jcw:concept:comms,
jcw:concept:observe,
jcw:concept:meta .
jcw:concept:pipeline a skos:Concept ;
skos:inScheme jcw:scheme:workload:v1 ;
skos:topConceptOf jcw:scheme:workload:v1 ;
skos:notation "PIPELINE" ;
skos:prefLabel "Pipeline"@en ;
skos:altLabel "workflow"@en, "event flow"@en ;
skos:definition "Durable event-driven processing sequences."@en ;
skos:scopeNote "Use for Inngest functions, ingest chains, and orchestration logic."@en ;
skos:narrower jcw:concept:pipeline:ingest, jcw:concept:pipeline:enrichment ;
skos:related jcw:concept:observe, jcw:concept:build .
```
## Agent Classification Contract
Every sub-agent output that can be stored/retrieved must emit:
- `primary_concept_id` (single canonical concept URI)
- `concept_ids` (ordered list: primary first, then secondary)
- `taxonomy_version`
- `concept_source` (`rules|llm|backfill|manual|fallback`)
- `classification_confidence` (0-1 float, optional but recommended)
Recommended envelope:
```json
{
"primary_concept_id": "joelclaw:concept:pipeline:ingest",
"concept_ids": [
"joelclaw:concept:pipeline:ingest",
"joelclaw:concept:knowledge",
"joelclaw:concept:observe"
],
"taxonomy_version": "workload-v1",
"concept_source": "rules",
"classification_confidence": 0.88
}
```
### Classification Procedure
1. Normalize candidate labels (`trim`, lowercase, slugify, punctuation collapse).
2. Match against `prefLabel`, then `altLabel`, then `hiddenLabel` alias tables.
3. Disambiguate using `scopeNote` and neighboring concepts (`broader`, `related`).
4. Emit one primary concept plus optional secondary concepts.
5. If unresolved, map to a controlled fallback concept and log unmapped labels.
6. Emit OTEL metadata for mapping diagnostics (`mapped_count`, `unmapped_count`, `taxonomy_version`).
## SKOS-XL (When Labels Need First-Class Metadata)
Use SKOS-XL only when label objects need metadata or relationships:
- acronym/abbreviation management with provenance
- per-label source attribution
- multilingual/transliteration workflows with label-level auditing
- label-to-label relationships (deprecated term -> replacement term)
If labels are plain synonyms only, stay with core SKOS labels.
### SKOS-XL Example
```turtle
@prefix skosxl: <http://www.w3.org/2008/05/skos-xl#> .
@prefix jcw: <joelclaw:> .
jcw:label:comms:imessage a skosxl:Label ;
skosxl:literalForm "iMessage"@en .
jcw:concept:comms:imessage skosxl:altLabel jcw:label:comms:imessage .
```
## Mapping to External Vocabularies
Use mapping properties across schemes, not inside one scheme:
- `skos:exactMatch`: interchangeable meaning (rare, high bar)
- `skos:closeMatch`: near-equivalent, safe default for most interop
- `skos:broadMatch` / `skos:narrowMatch`: granularity mismatch
- `skos:relatedMatch`: associative cross-scheme link
### Internal Cross-Scheme Example (Workload -> Existing Docs Scheme)
```turtle
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix jcw: <joelclaw:> .
@prefix jcd: <jc:> .
jcw:concept:build skos:closeMatch jcd:docs:programming .
jcw:concept:observe skos:broadMatch jcd:docs:operations .
jcw:concept:knowledge skos:relatedMatch jcd:docs:education .
```
Mapping guardrails:
1. Start with `closeMatch`; escalate to `exactMatch` only with explicit review.
2. Do not chain `exactMatch` blindly across multiple schemes.
3. Review inferred collisions caused by transitive/symmetric mapping behavior.
## Collections and Ordered Collections
Use collections for non-hierarchical grouping:
- `skos:Collection` for thematic bundles (example: all communication channels)
- `skos:OrderedCollection` for deterministic sequences (example: escalation stages)
Do not encode hierarchy with collections. Use `broader`/`narrower` for taxonomy structure.
```turtle
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix jcw: <joelclaw:> .
jcw:collection:comms-channels a skos:Collection ;
skos:prefLabel "Comms channels"@en ;
skos:member
jcw:concept:comms:telegram,
jcw:concept:comms:slack,
jcw:concept:comms:imessage .
```
## URI and Notation Policy (`joelclaw:`)
1. URI local parts are lowercase kebab or colon-separated operational paths.
2. `skos:notation` is immutable once released.
3. Never repurpose a concept URI. Deprecate old URI and add mappings.
4. Keep human names in labels, not in IDs.
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.