| name | harness-quality |
| description | Phase skill: run all quality checks — typecheck, tests, lint, format |
| user-invocable | false |
Purpose
Ensure the codebase passes all static and dynamic quality checks before verification.
Steps
-
Type checking:
pnpm turbo typecheck
Fix any type errors before proceeding.
-
Full test suite:
pnpm turbo test
All tests must pass — both new and existing. If any fail, fix them.
-
Linting:
pnpm --filter web lint
Fix any lint errors. Note: only apps/web has ESLint configured currently.
-
Formatting (once Prettier is configured):
pnpm prettier --check "apps/**/*.{ts,tsx}" "packages/**/*.ts"
If files are unformatted, run pnpm prettier --write on the changed files only.
-
Record to conversation file:
-
Insert before the ## Harness Issues marker in .harness/conversations/<task-id>.md (use Edit tool with ## Harness Issues as the anchor — do NOT literally append, that would land below the issues section):
## Quality
**Typecheck:** pass/fail
**Tests:** X passed, Y failed
**Lint:** pass/fail
**Format:** pass/fail
**Pre-existing issues noted:** <list any errors in files you didn't touch>
-
If you hit friction (broken pre-existing checks blocking you, flaky tests, slow checks), append an entry to the literal end of the file — it will land inside the ## Harness Issues section since that section is last.
Checklist
Escalation
- If a pre-existing test is failing (not caused by your changes), note it and proceed — don't fix unrelated test failures
- If type errors are in code you didn't change, note and proceed
- If stuck on a quality issue after 2 fix attempts → surface to human