name: orchestrate:tests description: Add test infrastructure and initial test coverage to a target repo
flowchart TD
START(["/orchestrate:tests"]) --> READ["Read plan"]:::orch
READ --> DETECT["Detect test framework"]:::orch
DETECT --> CONFIG["Create test config"]:::orch
CONFIG --> CRITICAL["Identify critical paths"]:::orch
CRITICAL --> WRITE["Write initial tests"]:::orch
WRITE --> BRANCH["Create branch"]:::orch
BRANCH --> SIZE{Under 700 lines?}
SIZE -->|Yes| PR["Commit + open PR"]:::orch
SIZE -->|No| SPLIT["Split into sub-PRs"]:::orch
SPLIT --> PR
PR --> DONE([Phase complete])
classDef orch fill:#FF9800,stroke:#333,color:white
Follow this diagram as the workflow.
Orchestrate: Tests
Add test infrastructure and initial test coverage. This is Phase 3 and produces PR #2. Tests come before CI and security — good test coverage is a safety net for the code refactoring that security/quality fixes require.
When to Use
- After
orchestrate:planidentifies tests as a needed phase - After precommit phase (linting is the foundation)
Prerequisites
- Plan exists with tests phase
- Target repo in
.repos/<target>/
Step 1: Detect Test Framework
| Marker | Language | Framework | Assertion |
|---|---|---|---|
pyproject.toml |
Python | pytest | built-in assert |
go.mod |
Go | testing (stdlib) | testify |
package.json |
Node | jest or vitest | built-in expect |
requirements.yml |
Ansible | molecule | testinfra |
Check existing tests:
find .repos/<target> -type f \( -name "test_*.py" -o -name "*_test.go" -o -name "*.test.*" \) 2>/dev/null
Step 2: Create Test Configuration
Python
tests/conftest.py— shared fixturestests/__init__.py— package markerpyproject.toml— add[tool.pytest.ini_options]withtestpaths = ["tests"]
Go
*_test.gofiles alongside sourcetestdata/for fixturesinternal/testutil/for shared helpers
Node
jest.config.tsorvitest.config.tsat root__tests__/directory or*.test.tsalongside source
Ansible
molecule/default/withmolecule.yml,converge.yml,verify.yml
Step 3: Identify Critical Paths
From the scan report, find highest-impact areas:
- API endpoints — HTTP handlers, REST routes
- Core logic — main algorithms, data transformations
- Integration points — database, external APIs
- Config parsing — loading, validation, defaults
- Error handling — paths affecting users or data
Prioritize smoke tests across areas over exhaustive coverage of one area.
Step 4: Write Initial Tests
Strategy
- Start with smoke tests (happy path)
- Add edge cases for most critical functions
- Target 5-15 test functions
- Do not aim for 100% coverage
- Each test must be independent
Test naming
| Language | Convention | Example |
|---|---|---|
| Python | test_<what>_<condition> |
test_create_user_returns_201 |
| Go | Test<What><Condition> |
TestCreateUserReturns201 |
| Node | describe/it blocks |
it('returns 201 when creating user') |
Test structure (AAA)
- Arrange — set up test data
- Act — call function under test
- Assert — verify with specific assertions
Step 5: Branch and PR
git -C .repos/<target> checkout -b orchestrate/tests
PR size check
git -C .repos/<target> diff --stat | tail -1
If over 700 lines, split: framework setup in PR #3a, tests in PR #3b.
Skills to push alongside
test:write— guide for writing new teststdd:ci— workflow for iterating on CI test failures
Commit and push
git -C .repos/<target> add -A
git -C .repos/<target> commit -s -m "feat: add test infrastructure and initial test coverage"
git -C .repos/<target> push -u origin orchestrate/tests
Update Phase Status
Set tests to complete in phase-status.md.
Related Skills
orchestrate— Parent routerorchestrate:precommit— Previous phase (linting foundation)orchestrate:plan— Defines test phase tasksorchestrate:ci— Next phase (automates running these tests)test:write— Detailed test writing guidetdd:ci— CI-driven TDD workflow