Skip to content
Back to skills

Orchestrate:Tests

ASecurity

Add test infrastructure and initial test coverage to a target repo

  • 299 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 20, 2026
testingpythongobashnodetestingrefactoringgitapidatabasesecurity

Works with

  • api

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add rossoctl/rossoctl --skill orchestrate:tests --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Orchestrate:Tests?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Orchestrate:Tests
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rossoctl-orchestrate-tests/badge)](https://www.skillsdirectory.com/skills/rossoctl-orchestrate-tests)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: orchestrate:tests
description: Add test infrastructure and initial test coverage to a target repo
---

```mermaid
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:plan` identifies 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:

```bash
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 fixtures
- `tests/__init__.py` — package marker
- `pyproject.toml` — add `[tool.pytest.ini_options]` with `testpaths = ["tests"]`

### Go

- `*_test.go` files alongside source
- `testdata/` for fixtures
- `internal/testutil/` for shared helpers

### Node

- `jest.config.ts` or `vitest.config.ts` at root
- `__tests__/` directory or `*.test.ts` alongside source

### Ansible

- `molecule/default/` with `molecule.yml`, `converge.yml`, `verify.yml`

## Step 3: Identify Critical Paths

From the scan report, find highest-impact areas:

1. **API endpoints** — HTTP handlers, REST routes
2. **Core logic** — main algorithms, data transformations
3. **Integration points** — database, external APIs
4. **Config parsing** — loading, validation, defaults
5. **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)

1. **Arrange** — set up test data
2. **Act** — call function under test
3. **Assert** — verify with specific assertions

## Step 5: Branch and PR

```bash
git -C .repos/<target> checkout -b orchestrate/tests
```

### PR size check

```bash
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 tests
- `tdd:ci` — workflow for iterating on CI test failures

### Commit and push

```bash
git -C .repos/<target> add -A
```

```bash
git -C .repos/<target> commit -s -m "feat: add test infrastructure and initial test coverage"
```

```bash
git -C .repos/<target> push -u origin orchestrate/tests
```

## Update Phase Status

Set tests to `complete` in phase-status.md.

## Related Skills

- `orchestrate` — Parent router
- `orchestrate:precommit` — Previous phase (linting foundation)
- `orchestrate:plan` — Defines test phase tasks
- `orchestrate:ci` — Next phase (automates running these tests)
- `test:write` — Detailed test writing guide
- `tdd:ci` — CI-driven TDD workflow

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.