npx claudepluginhub joshuarweaver/cascade-code-general-misc-1 --plugin epieczko-bettyThis skill uses the workspace's default tool permissions.
**Version:** 0.1.0
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
Version: 0.1.0 Status: Active Tags: registry, search, query, discovery, metadata, cli
The registry.query skill enables programmatic searching of Betty registries (skills, agents, and commands) with flexible filtering capabilities. It's designed for dynamic discovery, workflow automation, and CLI autocompletion.
# List all skills (compact format, default)
python3 skills/registry.query/registry_query.py skills
# Find skills with 'api' tag in table format
python3 skills/registry.query/registry_query.py skills --tag api --format table
# Find agents with 'design' capability
python3 skills/registry.query/registry_query.py agents --capability design
# Query hooks registry
python3 skills/registry.query/registry_query.py hooks --status active --format table
# Find active skills with name containing 'validate'
python3 skills/registry.query/registry_query.py skills --name validate --status active
# Fuzzy search for commands
python3 skills/registry.query/registry_query.py commands --name test --fuzzy
# Limit results to top 5
python3 skills/registry.query/registry_query.py skills --tag api --limit 5
# Get full JSON output
python3 skills/registry.query/registry_query.py skills --tag validation --format json
from skills.registry.query.registry_query import query_registry
# Query skills with API tag
result = query_registry(
registry="skills",
tag="api",
status="active"
)
if result["ok"]:
matching_entries = result["details"]["results"]
for entry in matching_entries:
print(f"{entry['name']}: {entry['description']}")
# Via Betty CLI (when registered)
betty registry query skills --tag api
betty registry query agents --capability "API design"
registry (string): Registry to query
skills, agents, commands, hooksname (string): Filter by name (substring match, case-insensitive)version (string): Filter by exact version matchstatus (string): Filter by status (e.g., active, draft, deprecated, archived)tag (string): Filter by single tagtags (array): Filter by multiple tags (matches any)capability (string): Filter by capability (agents only, substring match)domain (string): Filter by domain (alias for tag filter)fuzzy (boolean): Enable fuzzy matching for name and capabilitylimit (integer): Maximum number of results to returnformat (string): Output format (json, table, compact)
json: Full JSON response with all metadatatable: Aligned column table for easy readingcompact: Detailed list format (default){
"ok": true,
"status": "success",
"errors": [],
"timestamp": "2025-10-23T10:30:00.000000Z",
"details": {
"registry": "skills",
"query": {
"name": "api",
"version": null,
"status": "active",
"tags": ["validation"],
"capability": null,
"domain": null,
"fuzzy": false,
"limit": null
},
"total_entries": 21,
"matching_entries": 3,
"results": [
{
"name": "api.validate",
"version": "0.1.0",
"description": "Validates OpenAPI or AsyncAPI specifications...",
"status": "active",
"tags": ["api", "validation", "openapi", "asyncapi"],
"dependencies": ["context.schema"],
"entrypoints": [
{
"command": "/api/validate",
"runtime": "python",
"description": "Validate API specification files"
}
],
"inputs": [...],
"outputs": [...]
}
]
}
}
{
"ok": false,
"status": "failed",
"errors": ["Invalid registry: invalid_type"],
"timestamp": "2025-10-23T10:30:00.000000Z"
}
name, version, description, status, tagsdependencies: List of required skillsentrypoints: Available commands and handlersinputs: Expected input parametersoutputs: Generated outputsname, version, description, status, tagscapabilities: List of agent capabilitiesskills_available: Skills the agent can invokereasoning_mode: oneshot or iterativecontext_requirements: Required context fieldsname, version, description, status, tagsexecution: Execution configuration (type, target)parameters: Command parametersname, version, description, status, tagsevent: Hook event trigger (e.g., on_file_edit, on_commit)command: Command to executeenabled: Whether the hook is enabledFind skills related to a specific domain:
python3 skills/registry.query/registry_query.py skills --domain api
Programmatically find and invoke skills:
# Find validation skills
result = query_registry(registry="skills", tag="validation", status="active")
for skill in result["details"]["results"]:
print(f"Found validation skill: {skill['name']}")
# Invoke skill programmatically
Generate autocompletion data:
# Get all active skill names for tab completion
result = query_registry(registry="skills", status="active")
skill_names = [s["name"] for s in result["details"]["results"]]
Find skills with specific dependencies:
result = query_registry(registry="skills", status="active")
for skill in result["details"]["results"]:
if "context.schema" in skill.get("dependencies", []):
print(f"{skill['name']} depends on context.schema")
Find agents by capability:
python3 skills/registry.query/registry_query.py agents --capability "API design"
Query and monitor hooks:
# List all hooks in table format
python3 skills/registry.query/registry_query.py hooks --format table
# Find hooks by event type
python3 skills/registry.query/registry_query.py hooks --tag commit
# Find enabled hooks
python3 skills/registry.query/registry_query.py hooks --status active
Find deprecated or draft entries:
python3 skills/registry.query/registry_query.py skills --status deprecated
python3 skills/registry.query/registry_query.py skills --status draft
The skill is designed with these future enhancements in mind:
>=1.0.0,<2.0.0)$ python3 skills/registry.query/registry_query.py skills --tag api --format table
================================================================================
REGISTRY QUERY: SKILLS
================================================================================
Total entries: 21
Matching entries: 5
+-------------------+---------+--------+---------------------------+-------------------------+
| Name | Version | Status | Tags | Commands |
+-------------------+---------+--------+---------------------------+-------------------------+
| api.define | 0.1.0 | active | api, openapi, asyncapi | /api/define |
| api.validate | 0.1.0 | active | api, validation, openapi | /api/validate |
| api.compatibility | 0.1.0 | draft | api, compatibility | /api/compatibility |
| api.generate | 0.1.0 | active | api, codegen | /api/generate |
| api.test | 0.1.0 | draft | api, testing | /api/test |
+-------------------+---------+--------+---------------------------+-------------------------+
================================================================================
$ python3 skills/registry.query/registry_query.py skills --tag api
================================================================================
REGISTRY QUERY: SKILLS
================================================================================
Total entries: 21
Matching entries: 5
--------------------------------------------------------------------------------
RESULTS:
--------------------------------------------------------------------------------
1. api.define (v0.1.0)
Status: active
Description: Generates OpenAPI 3.1 or AsyncAPI 2.6 specifications from natural language...
Tags: api, openapi, asyncapi, scaffolding
Commands: /api/define
2. api.validate (v0.1.0)
Status: active
Description: Validates OpenAPI or AsyncAPI specifications against their respective schemas...
Tags: api, validation, openapi, asyncapi
Commands: /api/validate
...
$ python3 skills/registry.query/registry_query.py hooks --format table
================================================================================
REGISTRY QUERY: HOOKS
================================================================================
Total entries: 3
Matching entries: 3
+------------------+---------+--------+------------------+----------------------------------------+---------+
| Name | Version | Status | Event | Command | Enabled |
+------------------+---------+--------+------------------+----------------------------------------+---------+
| pre-commit-lint | 0.1.0 | active | on_commit | python3 hooks/lint.py | True |
| auto-test | 0.1.0 | active | on_file_save | pytest tests/ | True |
| telemetry-log | 0.1.0 | active | on_workflow_end | python3 hooks/telemetry.py --capture | True |
+------------------+---------+--------+------------------+----------------------------------------+---------+
================================================================================
$ python3 skills/registry.query/registry_query.py agents --capability design
================================================================================
REGISTRY QUERY: AGENTS
================================================================================
Total entries: 2
Matching entries: 1
--------------------------------------------------------------------------------
RESULTS:
--------------------------------------------------------------------------------
1. api.designer (v0.1.0)
Status: draft
Description: Design RESTful APIs following best practices and guidelines...
Tags: api, design, openapi
Capabilities: 7 capabilities
Reasoning: iterative
$ python3 skills/registry.query/registry_query.py skills --name vld --fuzzy --limit 3
# Finds: api.validate, context.validate, etc.
The skill handles various error conditions:
--limit to control result sizejson, re, pathlibbetty.config, betty.logging_utils, betty.errorsfilesystem:read: Required to read registry JSON filesTo extend this skill:
filter_entries()matches_pattern()extract_key_metadata()