Unison Development
- Uses
software-developmentskill. - Use the Unison MCP server commands for all operations.
Core Principles
- ALWAYS work in branches - create one with an appropriate name
- NEVER run UCM commands on the command line — use MCP tools only (exception: branch creation)
- NEVER use scratch.u files — use MCP tools directly
- Code is stored by the UCM, NOT Git — NEVER suggest git commits for code changes
- NEVER use commit-commands — Unison code is managed by UCM
- Always use fully qualified names when writing code
- Use the MCP tools to explore the codebase before writing code
Branch Creation (MANDATORY FIRST STEP)
Before making any code changes, create a branch with the MCP server tool.
Use descriptive branch names like extract-domain-service or fix-login-bug.
Workflow
- Explore: Use
view-definitions,search-definitions-by-name,list-project-definitionsto understand existing code - Typecheck: Use
mcp__unison__typecheck-codeto validate code before updating - Update: Use
mcp__unison__update-definitionsto apply changes directly to the codebase - Test: Use
mcp__unison__run-teststo verify changes
Handling Typecheck Errors During Update
When update-definitions returns affected definitions that no longer typecheck:
-- The definitions below no longer typecheck with the changes above.
-- Please fix the errors and try `update` again.
CRITICAL:
- The MCP server creates a temporary branch with affected code in
sourceCodeUpdates - Fix ALL affected definitions and include them in the next
update-definitionscall - DO NOT omit functions — they will be removed from codebase
- Include all fixes in a single
update-definitionscall
Modifying Abilities
When modifying abilities, include all affected dependents in the same update:
- View the ability and its
defaulthandler - Use
list-definition-dependentsto find all callers - Update the ability AND all dependents together in one
update-definitionscall
Success Criteria
- All code typechecks successfully via MCP tools
- Tests pass via
mcp__unison__run-tests - Fully qualified names used throughout
Converted and distributed by TomeVault — claim your Tome and manage your conversions.