Claude-skill-registry execution-module-contract
Update src/vibe_piper/execution.py safely in a strict-typed uv repo (keep types/tests/tools in sync).
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/execution-module-contract" ~/.claude/skills/majiayu000-claude-skill-registry-execution-module-contract && rm -rf "$T"
manifest:
skills/data/execution-module-contract/SKILL.mdsource content
<!-- BEGIN:compound:skill-managed -->
Purpose
Make changes to the execution layer without breaking type contracts or downstream call sites.
When To Use
- You modify
.src/vibe_piper/execution.py - You add or change execution-related types in
.src/vibe_piper/types.py
Checklist
- Identify the public contract:
- Entry points/functions/classes that callers import.
- Any result/plan/config types used across modules.
- Keep types in lockstep:
- Add/update the corresponding Protocols/type aliases/dataclasses in
.src/vibe_piper/types.py - Prefer
for value objects.@dataclass(frozen=True) - Avoid widening types (e.g., introducing
) in public APIs.Any
- Add/update the corresponding Protocols/type aliases/dataclasses in
- Error handling hygiene:
- Use explicit exception types with a clear
pattern.msg = "..."; raise ... - Re-raise with context using
when converting exceptions.raise ... from e
- Use explicit exception types with a clear
- Downstream safety sweep:
- Search the repo for usages of the changed symbols and update call sites.
- If you rename a public symbol, prefer an explicit rename across the codebase.
- Verification (uv-first):
uv run ruff format src testsuv run ruff check src testsuv run mypy srcuv run pytest -m "not integration"
Manual notes
This section is preserved when the skill is updated. Put human notes, caveats, and exceptions here.