Skip to content
Back to skills

Harness

ASecurity

How to use and extend the oh-my-matrix development harness. Run the gates locally before pushing, locate each config, add a new gate, and follow the commit convention. Use when onboarding to OMM, running checks before a push, or adding/modifying a quality gate. Triggers: 'run the harness', 'pnpm check', 'pnpm verify', 'add a lint rule', 'add a gate', 'how do gates work', 'commit format', 'harness'.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
ai-agentsbashnodegit

Works with

  • cli
  • mcp

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 29, 2026

npx -y skills add TeFuirnever/oh-my-matrix --skill harness --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Harness?

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

Security grade badge for Harness
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tefuirnever-harness/badge)](https://www.skillsdirectory.com/skills/tefuirnever-harness)

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: harness
description: "How to use and extend the oh-my-matrix development harness. Run the gates locally before pushing, locate each config, add a new gate, and follow the commit convention. Use when onboarding to OMM, running checks before a push, or adding/modifying a quality gate. Triggers: 'run the harness', 'pnpm check', 'pnpm verify', 'add a lint rule', 'add a gate', 'how do gates work', 'commit format', 'harness'."
---

# OMM Development Harness

The harness guards TS source, docs, and commit messages. **Every gate runs identically locally and in CI** — `pnpm check` / `pnpm verify` mirror the pipeline, so what passes on your laptop passes in GitHub Actions.

Design rationale: [docs/design/dev-harness.md](../../docs/design/dev-harness.md). PR lifecycle: the [`work-with-pr`](../work-with-pr/SKILL.md) skill.

## The commands

```bash
pnpm check   # lint (eslint) + markdownlint + typecheck   ← static gates
pnpm verify      # check + pnpm -r test + pnpm docs:build     ← full local CI mirror
pnpm lint    # eslint .
pnpm lint:md # markdownlint-cli2 (all .md, archive excluded)
pnpm typecheck # pnpm -r typecheck (tsc --noEmit per package)
pnpm -r test # vitest run across all workspaces
```

Run `pnpm verify` before pushing. CI (`.github/workflows/ci.yml`) splits these into `lint` / `typecheck` / `commitlint` / `test` jobs with concurrency cancellation and per-job summaries.

## Where things live

| Concern | File |
|---|---|
| ESLint (flat, TS-aware) | `eslint.config.mjs` |
| Markdownlint (lenient prose) | `.markdownlint-cli2.jsonc` |
| Commitlint (Conventional Commits) | `commitlint.config.mjs` |
| Node version | `.nvmrc` (20), `package.json` `engines.node` |
| Local `commit-msg` hook | `package.json` `simple-git-hooks` → installed via `prepare` |
| CI pipeline | `.github/workflows/ci.yml` |
| Docs build / deploy | `.github/workflows/docs.yml` |
| Repo MCPs | `.mcp.json` (codegraph) |

## Commits

Conventional Commits, enforced both by a local `commit-msg` hook (installed on `pnpm install`) and a CI job:

```
feat: …  fix: …  docs: …  style: …  refactor: …  perf: …  test: …  chore: …  ci: …  build: …  revert: …
```

Header ≤ 100 chars. (Full set documented in `CONTRIBUTING.md` §6.)

## Adding a gate

1. Add the script to root `package.json` `scripts` (and any needed devDependency).
2. Fold it into `check` (static) or `ci` (full mirror) so it runs locally the same way CI does.
3. Add the matching step in `.github/workflows/ci.yml` (reuse the lint/typecheck job shape: checkout → pnpm setup → node 20 + cache → `pnpm install --frozen-lockfile` → your command → summary step).
4. If it has a config file, add it to the table above.

Keep gates right-sized: OMM is a small, docs-first repo. Don't add a gate that churns existing docs/source to pass — match the established style instead (see how markdownlint's stylistic rules were relaxed and `no-explicit-any` is a non-blocking `warn`).

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…