A Claude Code bootstrap and agent management toolkit for setting up AI-assisted development projects with hooks, rules, agents, and developer settings management
ve-kit exposes 8 tools with inconsistent quality. Tool naming follows verb_noun patterns (agent-model-tier, doctor.sh, extract-hooks, init.sh, merge-user-settings), which is good. However, descriptions vary widely in clarity and actionability. Most critically, input schemas are either missing entirely or inferred from docstrings rather than formally registered. The agent-model-tier tools have detailed docstrings but no visible JSON Schema definitions in the MCP registration layer. Parameters like 'tiers' (set[int] | None) and 'mode' (str) are documented in prose but lack formal type constraints, enums, or validation rules. Error handling is documented in code comments but not surfaced to the LLM. Output schemas are completely undocumented, agents cannot predict what these tools return. The extract-hooks and init.sh tools accept multiple parameters but lack descriptions for several (e.g., VE_KIT_COMMIT, min_hooks). Overall, this reads as a well-engineered internal script suite, not an LLM-ready tool interface.
Apply model and effort tier assignments from the manifest to agent files, with support for preferred/fallback modes and partial tier-based restores
Verify that every agent file's model and effort fields match the manifest's declared mode assignment, with optional tier filtering for partial restores
Display the current model+effort tier assignment mode, when it was set, reason for the assignment, when restore is planned, agent count, and live tier distribution on disk
Verify that the ve-kit's hooks are actually armed and registered in the project, running all test suites and reporting installation status
Compare the doctor.sh hook roster with the hooks 01-BOOTSTRAP.md ships, verifying both directions and that every hook's test suite is present
Extract hook scripts and test suites from 01-BOOTSTRAP.md fenced blocks into a project's .claude/hooks/ directory, with optional settings.json registration
One-command staging for ve-kit bootstrap: clones ve-kit into .ve-kit/, writes the Claude Code prompt, and prints next steps
No formal JSON Schema definitions visible for any tool. Parameters documented in prose (e.g., 'tiers: set[int] | None') but not as JSON Schema with type, enum, or constraint declarations. LLMs cannot validate inputs or understand constraints from prose alone.
Output schemas completely undocumented. Agents cannot predict what these tools return (e.g., does 'agent-model-tier status' return a dict, a string, structured JSON?). This forces LLMs to guess and wastes tokens on trial-and-error.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Merge project's per-developer Claude Code settings into ~/.claude/settings.json, backing up existing file and applying template defaults
Several parameters lack descriptions entirely. 'VE_KIT_COMMIT' in init.sh has no description. 'min_hooks' and 'min_suites' in extract-hooks lack clarity on why an LLM would set them.
Error handling is documented in code comments (e.g., 'FAIL-LOUD CONTRACT' in agent-model-tier.py) but not surfaced to the LLM. Agents cannot see exit codes, error categories, or recovery guidance. Errors like 'manifest agent with no file on disk → error, exit 2' are invisible to the tool caller.
Tool names use hyphens (agent-model-tier, doctor.sh) which are unconventional in LLM tool naming. Standard practice is snake_case (agent_model_tier_status, doctor_check). Hyphens may confuse LLM tokenizers and make tool selection less reliable.