build-test-verify
Use this skill when asked to build the project, run tests, lint the code, or verify that the TTA.dev platform is stable before committing.
SKILL.md.claude/skills/build-test-verify/SKILL.md
GitHubBuild, Test, and Verify (TTA.dev)
Validate code changes to ensure they meet quality standards before committing.
Process
Execute the following steps in order. Do not skip steps.
Orient (before writing any code): query CGC for the target.
mcp__codegraphcontext__find_code — search for the target function/class mcp__codegraphcontext__analyze_code_relationships — callers, dependencies mcp__codegraphcontext__calculate_cyclomatic_complexity — risk levelIf CGC is unavailable, note it and proceed. Do not block on CGC absence.
Format: Apply Ruff formatting (100-char line length).
uv run ruff format .Lint: Run Ruff linter with auto-fix.
uv run ruff check . --fixType Check: Run Pyright in basic mode.
uvx pyright ttadev/Run Tests: Execute the pytest suite (100% coverage required for new code).
uv run pytest -v --tb=short -m "not integration and not slow and not external"Full coverage (when adding new code):
uv run pytest --cov=ttadev --cov-report=htmlValidate in E2B (when adding or changing Python code): run the tests identified in the Orient step inside a clean E2B sandbox.
from ttadev.primitives.integrations.e2b_primitive import CodeExecutionPrimitive from ttadev.primitives.core.base import WorkflowContext async with CodeExecutionPrimitive() as executor: result = await executor.execute({ "code": "import subprocess; r = subprocess.run(['python', '-m', 'pytest', '<test_file>', '-v', '--tb=short'], capture_output=True, text=True); print(r.stdout); print(r.stderr)" }, WorkflowContext(workflow_id="validate")) # Check result["success"] and result["output"] for PASSED/FAILEDIf E2B is unavailable, fall back to local pytest and note the deviation.
Retain: after a successful commit, call
mcp__hindsight__retainwith bank_idtta-devdocumenting any decision, pattern, or failure from this task.
Common Issues
- Type errors: Ensure all new functions have strict type annotations (
str | None, notOptional[str]). - Test failures: Fix the implementation, never comment out tests. Follow the AAA pattern (Arrange-Act-Assert).
- Import errors: All primitives imports must use
from ttadev.primitives.X— neverfrom primitives.X. - Quarantined tests: Tests marked
@pytest.mark.quarantineare auto-skipped unless selected with-m quarantine.
Deep Reference
For full testing patterns, markers, CI pipeline details, and MockPrimitive API, see
docs/agent-guides/testing-architecture.md.