Monorepo unit test writer
Skill dayvisonassis/sdd-skills/skills/monorepo-unit-test-writer
Plans and implements unit tests for any PABX monorepo app EXCEPT apps/backend and apps/frontend — auto-detecting the stack (node-express, node-worker, or python-fastapi) and applying stack-specific patterns. Runs interactively (3 phases with an approval checkpoint) when a user calls directly, or autonomously (no pause) when dispatched by implement-feature/evaluator. Also runs in correction mode to fix a specific failing test flagged by the evaluator. Enforces PABX rules (mock-before-import, Promise.all() mocks, GPU/torch mocks, English-only, batches). Never modifies production code.From its SKILL.md
npx -y skills add dayvisonassis/sdd-skills --skill monorepo-unit-test-writerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- skips confirmationTells the agent to proceed without asking first, 2 times: "skip the checkpoint — auto-accept and implement. Never pause." and 1 more.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.1 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Monorepo Unit Test Writer (PABX)
Plan and implement fast, isolated unit tests for PABX monorepo apps across multiple stacks. Never modifies production code — if a test fails, only the test is adjusted.
Project scope: PABX monorepo apps other than
apps/backend/apps/frontend(those useunit-test-writer). All hard rules (stack detection, node-express/worker patterns, Python GPU/torch mocking, file locations, test infrastructure, execution) are inreferences/pabx-rules.md— read it before writing. Generic SDD flow docs:https://github.com/dayvisonassis/sdd-skills/blob/main/docs/GUIA_DO_WORKFLOW.md.
Scope: any apps/{app} except backend/frontend. Stacks: node-express, node-worker, python-fastapi.
INPUT
target_file(required) andapp_name(required).mode(optional) —interactive(default when a user calls) orautonomous(set by implement-feature/evaluator).test_file_path/focus_areas/batch_size(optional).test_catalog_path(optional) — Test Catalog entry to accelerate Phase 1.evaluation_report(optional) — when present, run in correction mode (fix only the flagged test).
OUTPUT
- New/expanded unit tests in the stack's location (
__tests__/unit/**/*.test.tsortests/test_*.py), following PABX rules. - A
.unit-test.mdchecklist (planning may be Portuguese; all test code is English). - Any missing test infrastructure created (
jest.config.ts/conftest.py) when needed. - Per-batch execution confirmation and final coverage summary. Production code untouched.
Invocation Modes
Interactive (default): full 3-phase process, stop at the Phase 2 checkpoint for approval.
Autonomous (dispatched): same phases, skip the checkpoint — auto-accept and implement. Never pause.
Correction mode (evaluator, kind:test): an evaluation_report is provided. Fix only the
flagged test (smallest footprint) so it conforms to the detected stack's PABX rules and passes;
do not touch production code or unrelated tests. Return control to the evaluator.
EXECUTION STEPS (3 Phases)
Phase 1 — Analysis & Planning
- Detect the stack (
references/pabx-rules.mddetection table). - If
test_catalog_pathgiven, read the entry and validate against source. - Study existing tests in the app for patterns.
- Read the target file fully; map functionalities, dependencies, code paths.
- Identify external deps to mock (DB, HTTP, queues, caches, SDKs, filesystem, GPU/ML).
- Map scenarios (success, error, edge, boundary). Verify test infrastructure; note what must be set up.
Phase 2 — Checklist Creation
Create a .unit-test.md checklist by stack + source type (controller/service/model/util,
worker agent/trigger/AGI/job, FastAPI app/service — see references/pabx-rules.md).
- Interactive: ask the coverage checkpoint questions → WAIT for approval.
- Autonomous / correction: skip the checkpoint; proceed.
Phase 3 — Batch Implementation
GROUP into batches of 5–10 → set up missing infra if needed → IMPLEMENT applying stack rules (mock-before-import, Promise.all() pattern, torch mock before app import) → EXECUTE (Node: milliseconds; Python: < 1s) → UPDATE checklist → REPEAT. In correction mode, implement only the corrected test(s).
RULES
Always:
- Detect the stack first; follow
references/pabx-rules.mdfor that stack. - Node:
importnotrequire;jest.mock()before import;jest.clearAllMocks()inbeforeEach; correctPromise.all()mock pattern. - Python: mock GPU/ML (
torch,whisperx,TTS) viasys.modulesBEFORE any app import;@pytest.mark.asynciofor async;TestClientfor routes;conftest.pyfixtures. - Write ALL test content in English; independent, deterministic, fast tests. Set up missing infra.
- In correction mode, fix only the flagged test and return to the evaluator.
Never:
- Modify production code. Use real DB/HTTP/queue/filesystem/GPU. Write Portuguese in tests.
- Import Python app modules before mocking GPU/ML. Use
require()in TS. Pause in autonomous/correction mode.
Edge Cases
- Missing
jest.config/conftest.py: create it before writing tests. - Python app imports torch at module level: mock via
sys.modulesfirst or tests try real model loading (minutes / OOM). - Route files (node-express): integration-only — no unit tests.
- App is
apps/backendorapps/frontend: out of scope — useunit-test-writerinstead.
What ships with it: 1 file
4.6 KB alongside SKILL.md
references/
- pabx-rules.md4.6 KB