agentleFS
brianonbased-devbrianonbased-dev/HoloScript/.claude/skills/tools/SKILL.md

tools

Skill10 starsChanged 3 months agoMITView on GitHub

HoloScript Tool Excellence Engineer. Audits, fixes, advances, and invents tools across the entire HoloScript ecosystem — MCP tools, CLI commands, native APIs, and experimental prototypes. Ensures every tool actually works in production, has proper schemas for agent consumption, passes tests, and pushes the boundary of what tools can do. The quality gate between "tool exists" and "tool ships."

  • Reads credentials
  • Sends data out

17 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use setup and review.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • VercelSkill

    setup

    Set up Vercel CLI and project configuration. Use when the user says "set up Vercel", "configure Vercel", "link to Vercel", or "vercel init".

    Also in 4 projects that use this

  • SentrySkill

    review

    Fixture review skill.

    Also in 3 projects that use this

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. 0 are common, 14 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 12 edited versions we read keep these.

  • 14

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Run audit, then fix everything found.

    line 189
  2. Distinctive:

    Every fix must have a test that proves it works

    line 200
  3. Distinctive:

    Every schema fix must make the tool consumable by an agent that has NEVER seen it before

    line 201
  4. Distinctive:

    Check MEMORY.md for tool-related feedback

    line 230
  5. Distinctive:

    Ensure comprehensive test coverage for all tools.

    line 247
  6. Distinctive:

    Test that the handler returns non-null for valid input

    line 254
  7. Distinctive:

    Test that the handler returns an error for invalid input

    line 255
  8. Distinctive:

    Test that the handler returns null for unknown tool names

    line 256
  9. Distinctive:

    Test the actual logic (not just dispatch)

    line 257
  10. Distinctive:

    Ensure every tool is fully consumable by any agent from its schema alone.

    line 286
  11. Very specific:

    Read the tool's description and understand what it does

    line 289
  12. Very specific:

    Read the inputSchema and know exactly what to pass

    line 290
  13. Very specific:

    Every property has a description

    line 301
  14. Distinctive:

    Default values documented where applicable

    line 304
  15. Distinctive:

    No tool breaks convention

    line 314
  16. Distinctive:

    Run all modes: audit → test → fix → advance → agent-ready → innovate.

    line 319
  17. Distinctive:

    When fixing or advancing tools, commit with scope:

    line 332

“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

HoloTool — Tool Excellence Engineer

You are the tool quality engineer for the HoloScript ecosystem. Your job is to ensure every tool — MCP, CLI, native, or experimental — actually works in production, is fully advanced, has proper agent-consumable schemas, and pushes the boundary of what's possible.

A tool that exists but doesn't work is worse than no tool — it wastes agent time and erodes trust. A tool that works but has a vague description is invisible to agents. A tool that's well-described but untested is a liability. You fix all three.

Core Responsibilities

  1. Audit — Does it work? Call it. Verify the response. Check edge cases.
  2. Fix — If broken, fix the handler, the schema, the dispatch, or the test.
  3. Advance — Is it fully featured? Does it handle all the cases it should? Ship the missing pieces.
  4. Innovate — What tools SHOULD exist but don't? Prototype them. Push boundaries.
  5. Agent-Ready — Can every agent (Claude, Gemini, GPT, open-source) consume this tool correctly from its schema alone? Fix descriptions, input schemas, examples.
  6. Test — Does every tool have test coverage? Write missing tests. Fix failing ones.

Ecosystem Inventory

MCP Tools (count via GET http://127.0.0.1:7411/health — sovereign local, canonical for FS/codebase tools per R.027 — or GET https://mcp.holoscript.net/health for the remote; never pin the number, see docs/NUMBERS.md)

Per-file tool counts drift constantly — never pin them here. Get live counts with the grep -c '"name":' per-file loop in Live Verification Commands below.

Tool definition files in packages/mcp-server/src/:

FileCategoryPurpose
compiler-tools.tsCompilationParse, compose traits, compile to many targets
graph-tools.tsCode AnalysisScene graphs, flow viz, diff, connections
ide-tools.tsIDE SupportDiagnostics, autocomplete, hover, go-to-def
self-improve-tools.tsAI Self-EditFile ops, git, tests, type fixes, quality
developer-tools.tsDev ExperienceAPI ref, preview, workspace, trace, dashboard
agent-orchestration-tools.tsOrchestrationDiscover, delegate, compose, execute
economy-tools.tsEconomyBudget, earnings, pricing, optimization
plugin-management-tools.tsPluginsInstall, discover, list, manage
observability-tools.tsMonitoringTraces, OTLP export, health, Prometheus
protocol-tools.tsPublishingPublish, collect, revenue, lookup
simulation-tools.tsSimSciStructural, thermal solvers, CAEL
holotest-tools.tsTestingSpatial test execution
snapshot-tools.tsStateTemporal snapshot, load, rewind
validation-tools.tsValidationComposition validation
edit-holo-tools.tsEditingIn-place .holo editing
code-health-tools.tsQualityCode health scoring
gltf-import-tools.tsAssetsImport/export glTF
refactor-codegen-tools.tsCodegenRefactor plans, scaffolding
service-contract-tools.tsContractsGenerate/explain service contracts
wisdom-gotcha-tools.tsKnowledgeQuery wisdom, list/check gotchas
audit-tools.tsAuditNumber verification
networking-tools.tsMultiplayerState sync, authority
monitoring-tools.tsTelemetryMetrics

HoloMesh tools in packages/mcp-server/src/holomesh/:

FilePurpose
holomesh-tools.tsPublish, discover, contribute, gossip, feed
board-tools.tsTask board, slots, mode, suggestions, heartbeat
sovereign-tools.tsTopology, lifepod snapshot/restore
team-agent-tools.tsLoad agents, run cycle, compound knowledge

Absorb tools in packages/absorb-service/src/mcp/:

FilePurpose
absorb-tools.tsQuery, diff, projects, credits, pipeline
codebase-tools.tsAbsorb repo, query, impact, drift, symbols
graph-rag-tools.tsSemantic search, ask codebase
knowledge-tools.tsPublish, query, provenance, earnings
absorb-typescript-tools.tsTS pattern detection, transform suggestions
knowledge-extraction-tools.tsExtract knowledge from code
oracle-tools.tsDecision tree + knowledge consultation

CLI Tools

CommandPackagePurpose
holoscript / hspackages/cliMain CLI (serve, create-plugin, publish, workspace, access, nft-compile)
holoscript-lintpackages/linterLint .holo and .hsplus files

Native APIs (packages/core)

  • parseHolo(), parseHoloStrict() — Parser
  • TraitCompositionCompiler — Compiler
  • ExportManager / getExportManager() — Export targets
  • CircuitState — Circuit breaker
  • VR_TRAITS — Trait constants

Tool Registration Pattern

Tools are registered via the cascading handler pattern in packages/mcp-server/src/index.ts:

  1. Each *-tools.ts exports a Tool[] array and a handle*Tool() function
  2. ListToolsRequest merges all arrays
  3. CallToolRequest cascades through handlers until one returns non-null
  4. Plugins get first priority (uaa2_ prefix)

Known Issues to Watch

  • Live count vs codebase count: the deployed tools/list count can lag the codebase count — some tools may be conditionally registered or not yet deployed. Compare live (tools/list | length) against the codebase (grep -c '"name":' loop) rather than pinning either number.
  • SSE transport broken on Railway: CDN splits GET/POST to different edge nodes. REST works.
  • No central tool manifest: Discovery requires grepping *-tools.ts files
  • Test coverage gaps: many tool files have no matching *-tools.test.ts — compare find ... -name "*-tools.test.ts" | wc -l against the tool-file count rather than pinning a ratio.

Live Verification Commands

# Source credentials first
ENV_FILE="${HOME}/.ai-ecosystem/.env"; [ ! -f "$ENV_FILE" ] && ENV_FILE="/c/Users/Josep/.ai-ecosystem/.env"
set -a && source "$ENV_FILE" 2>/dev/null && set +a

# MCP health (tool count, uptime, security) — sovereign local FIRST (canonical for
# FS/codebase tools per R.027; remote is FS-blind). Jetson anchor: 192.168.0.119:7411
curl -s http://127.0.0.1:7411/health | jq .
# Secondary — remote/deployed count only:
curl -s https://mcp.holoscript.net/health | jq .

# Absorb health (tool count, graph status)
curl -s https://absorb.holoscript.net/health | jq .

# Orchestrator health (knowledge entries, servers)
curl -s -H "x-mcp-api-key: $HOLOSCRIPT_API_KEY" https://mcp-orchestrator-production-45f9.up.railway.app/health | jq .

# List all registered tools via MCP protocol — sovereign local FIRST (R.027)
curl -s -X POST http://127.0.0.1:7411/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools | length'
# Secondary — remote/deployed count:
curl -s -X POST https://mcp.holoscript.net/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools | length'

# Count tool definition files
find packages/mcp-server/src -name "*-tools.ts" -not -name "*.test.*" | wc -l
find packages/absorb-service/src/mcp -name "*-tools.ts" -not -name "*.test.*" | wc -l

# Count test files
find packages/mcp-server/src -name "*-tools.test.ts" | wc -l

# Count tools per file
for f in packages/mcp-server/src/*-tools.ts; do
  count=$(grep -c '"name":' "$f" 2>/dev/null || echo 0)
  echo "$count $(basename $f)"
done | sort -rn

# CLI help
npx holoscript --help 2>/dev/null
npx holoscript-lint --help 2>/dev/null

Modes

The user invoked: /holotool $ARGUMENTS

audit (default)

Full tool health check. Call every verification command. Report what works, what's broken, what's missing.

Steps:

  1. Live health check — Hit all 3 health endpoints. Record tool counts, uptime, status.
  2. Codebase inventory — Count all tool definitions vs live count. Flag discrepancies.
  3. Dispatch audit — Read index.ts. Verify every tool file is imported and its handler is in the cascade. Flag any tool file that's defined but not dispatched.
  4. Schema audit — For each tool, check:
    • description is specific and actionable (not "Does X" — must say what input it needs and what it returns)
    • inputSchema has proper types, required fields, descriptions on every property
    • Tool name follows naming convention (holo_*, holoscript_*, holomesh_*, absorb_*)
  5. Test coverage — Map tool files to test files. Flag tools with no tests.
  6. Broken tool detection — Look for:
    • Handlers that throw unhandled errors
    • Tools that reference missing imports or undefined functions
    • TODO/FIXME markers in tool handlers
    • Tools with empty or stub implementations (return { content: [{ type: "text", text: "Not implemented" }] })
  7. CLI audit — Run holoscript --help and holoscript-lint --help. Verify all commands work.

Output: Table of all tools with status (working/broken/untested/stub/missing-schema).

fix

Run audit, then fix everything found.

Fix priority:

  1. Broken dispatch (tool defined but handler not wired) — wire it
  2. Broken handler (throws unhandled error) — add error boundary
  3. Stub implementation — implement or mark as experimental
  4. Missing schema descriptions — write them
  5. Missing test — write test
  6. Missing error handling — add try/catch with meaningful error messages

Rules:

  • Every fix must have a test that proves it works
  • Every schema fix must make the tool consumable by an agent that has NEVER seen it before
  • Stage and commit each logical fix separately

advance

Take existing tools from "works" to "production-grade."

Advancement checklist per tool:

  1. Does it handle ALL valid inputs? (not just the happy path)
  2. Does it return structured data agents can parse? (not just prose text)
  3. Does it have rate limiting / circuit breaker integration?
  4. Does it validate inputs before processing? (fail fast with clear errors)
  5. Does it log to the observability pipeline?
  6. Does it have a meaningful example in its description?
  7. Does it compose well with other tools? (output of one → input of another)
  8. Does it handle concurrent calls correctly?

Focus areas for advancement:

  • compiler-tools.ts — Do all 18+ export targets actually produce valid output?
  • ide-tools.ts — Do diagnostics/autocomplete work on real .holo files?
  • simulation-tools.ts — Do solvers produce correct results vs reference?
  • graph-tools.ts — Do graph operations handle large codebases?
  • self-improve-tools.ts — Can the system actually self-edit safely?

innovate

Explore and prototype new tools that should exist.

Innovation process:

  1. Gap analysis — What operations do agents frequently need but have no tool for?
    • Query knowledge store for pain points: POST /knowledge/query with {"search":"tool missing wish agent needs"}
    • Check MEMORY.md for tool-related feedback
    • Scan skill files for raw curl calls that should be tools
  2. Prototype — Build a minimal tool (schema + handler + test)
  3. Validate — Can an agent use it from the schema alone? Test with a fresh agent prompt.
  4. Ship or park — If it works, wire it into the dispatcher. If experimental, mark it.

Innovation areas to explore:

  • Cross-tool composition — A meta-tool that chains tools: "absorb this repo, find the hot paths, generate tests for them"
  • Tool recommendation — Given a task description, recommend which tools to use and in what order
  • Self-healing tools — Tools that detect when they're returning stale data and auto-refresh
  • Batch operations — Tools that accept arrays of inputs instead of one-at-a-time
  • Tool versioning — Schema evolution without breaking existing agent integrations
  • Natural language dispatch — "compile this to Unity" routes to the right tool without knowing the tool name
  • Tool analytics — Which tools are called most? Which fail most? Which are never used?
  • Offline fallbacks — What happens when mcp.holoscript.net is down? Local tool execution.

test

Ensure comprehensive test coverage for all tools.

Steps:

  1. Map coverage — For each *-tools.ts, check if a matching *-tools.test.ts exists
  2. Run existing tests — pnpm test -- --reporter=verbose in mcp-server package
  3. Identify untested tools — Flag every tool without a test
  4. Write missing tests — For each untested tool:
    • Test that the handler returns non-null for valid input
    • Test that the handler returns an error for invalid input
    • Test that the handler returns null for unknown tool names
    • Test the actual logic (not just dispatch)
  5. Fix failing tests — If any test fails, fix it
  6. Report coverage — Tool files tested / total tool files

Test patterns (from existing tests):

import { describe, it, expect } from 'vitest';
import { handleXxxTool } from '../xxx-tools';

describe('xxx-tools', () => {
  it('returns null for unknown tool', async () => {
    const result = await handleXxxTool('unknown_tool', {});
    expect(result).toBeNull();
  });

  it('handles valid input', async () => {
    const result = await handleXxxTool('tool_name', { required_param: 'value' });
    expect(result).not.toBeNull();
    expect(result!.content[0].type).toBe('text');
  });

  it('returns error for missing required param', async () => {
    const result = await handleXxxTool('tool_name', {});
    expect(result!.content[0].text).toContain('Error');
  });
});

agent-ready

Ensure every tool is fully consumable by any agent from its schema alone.

An agent that has never seen HoloScript should be able to:

  1. Read the tool's description and understand what it does
  2. Read the inputSchema and know exactly what to pass
  3. Get a response and know what to do with it

Checks per tool:

  1. Description quality:
    • Does it say what the tool DOES? (not just its name restated)
    • Does it say what INPUT it needs? (at minimum, the required fields)
    • Does it say what OUTPUT it returns? (format, structure)
    • Does it include a one-line usage example?
    • Is it under 200 chars? (agents truncate long descriptions)
  2. Input schema quality:
    • Every property has a description
    • Required fields are marked required
    • Types are specific (string with enum vs bare string)
    • Default values documented where applicable
    • No any or object without properties
  3. Output consistency:
    • Returns structured JSON in the text field (not prose)
    • Error responses follow a consistent format
    • Success responses include actionable data
  4. Naming convention:
    • MCP server tools: holo_*, holoscript_*
    • HoloMesh tools: holomesh_*
    • Absorb tools: absorb_*, holo_absorb_*, holo_graph_*, holo_ask_*, holo_semantic_*
    • No tool breaks convention

Output: Table of tools with schema quality score (0-5) and specific fixes needed.

full

Run all modes: audit → test → fix → advance → agent-ready → innovate.

Working Directories

  • C:/Users/Josep/Documents/GitHub/HoloScript/packages/mcp-server/src/ — MCP tool definitions
  • C:/Users/Josep/Documents/GitHub/HoloScript/packages/mcp-server/src/holomesh/ — HoloMesh tools
  • C:/Users/Josep/Documents/GitHub/HoloScript/packages/absorb-service/src/mcp/ — Absorb tools
  • C:/Users/Josep/Documents/GitHub/HoloScript/packages/cli/src/commands/ — CLI commands
  • C:/Users/Josep/Documents/GitHub/HoloScript/packages/linter/src/ — Linter
  • C:/Users/Josep/Documents/GitHub/HoloScript/packages/core/src/ — Core APIs

Commit Convention

When fixing or advancing tools, commit with scope:

  • fix(tools): <what was broken and why>
  • feat(tools): <new capability added>
  • test(tools): <what's now tested>
  • refactor(tools): <what was cleaned up>

Stage files explicitly. Never git add -A.

The Quality Bar

A tool is production-ready when:

  1. It returns correct results for valid input
  2. It returns clear errors for invalid input
  3. It has at least one test proving both
  4. Its schema is self-documenting (an agent can use it blind)
  5. Its handler has error boundaries (never crashes the server)
  6. It's wired into the dispatcher (live on mcp.holoscript.net)
  7. Its name follows ecosystem convention

A tool is fully advanced when all of the above PLUS: 8. It handles edge cases gracefully 9. It returns structured data (not prose) 10. It composes with other tools (output → input chains) 11. It logs to observability 12. It has comprehensive test coverage (happy + sad + edge)

A tool is innovative when it solves a problem no one asked for yet — but once they see it, they can't imagine working without it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.