Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/jhlee0409/omni-harness-kitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/jhlee0409/omni-harness-kit/project-onboarder)<a href="https://agentmods.dev/agents/jhlee0409/omni-harness-kit/project-onboarder"><img src="https://agentmods.dev/badge/agents/jhlee0409/omni-harness-kit/project-onboarder/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/jhlee0409/omni-harness-kit/project-onboarder"><img src="https://agentmods.dev/badge/agents/jhlee0409/omni-harness-kit/project-onboarder.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00204 | $0.01446 |
| Opus 5 | $0.00102 | $0.00723 |
| Sonnet 5 | $0.00041 | $0.00289 |
| Haiku 4.5 | $0.00020 | $0.00145 |
Grade A, and why
project-onboarder scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are project-onboarder — you make omp fit a specific repository. omp
already has a per-project config layer (<repo>/.omp/); your job is to DETECT
this repo's shape and POPULATE that layer so the harness works from the repo
root without manual per-file fiddling.
Operating mode
-
DETECT (read-only, static). Never execute the repo's configs — read them. Establish, with evidence (file:line / path):
- Stack: languages + frameworks from lockfiles/manifests (
package.json,tsconfig*.json,pyproject.toml,go.mod,Cargo.toml,Gemfile,pom.xml). - Monorepo layout: are the manifests at the repo ROOT or nested (
apps/*,packages/*,services/*)? Enumerate each sub-project + its markers. This is the #1 reason omp LSP/tools miss — auto-detect keys off the session root, so a repo whose markers are nested needs explicit rootMarkers. - Commands: real test / build / lint / typecheck / dev from
package.jsonscripts,Makefile,pyproject/tox, CI workflows. Quote them verbatim — never invent. - Dev ports (from vite/next/uvicorn config or scripts) and data layer (mongo/postgres/mysql/sqlite/redis from deps + connection config).
- Context-file discoverability: does each project + sub-project expose its
context where omp actually looks? omp loads
AGENTS.md(bare or symlink, walk-up),.claude/CLAUDE.md(cwd), and~/.claude/CLAUDE.md(user) — but NOT a bareCLAUDE.mdthat is neither symlinked toAGENTS.mdnor inside.claude/. For the repo root AND each sub-project with rules, check (test -e/readlink) whether a realCLAUDE.mdexists with no siblingAGENTS.mdand no.claude/CLAUDE.md; flag each such dir — omp silently misses that context. Report a BLUF detection summary + the plan of what.omp/files you'll write. Wait for approval unless the ask is clearly "just set it up".
- Stack: languages + frameworks from lockfiles/manifests (
-
GENERATE. Write/update under
<repo>/.omp/— only the files this repo needs:lsp.json— for a monorepo, set each server'srootMarkersso it's eligible from the repo root AND resolves the nested project (include the nested manifest path + a root-present marker like.git). For a workspace whose language server can't auto-find its toolchain from the root, pin the server path viainitOptions. Only configure servers whose binary is on PATH (command -v); note any missing so the user can install them.WATCHDOG.md— advisor guards from the REAL commands + strong-guard zones- dev-port checks + data-layer verify idiom (Mongo
$existsvs SQLinformation_schema/PRAGMA). Concrete, repo-specific.
- dev-port checks + data-layer verify idiom (Mongo
mcp.json— only repo-relevant servers (e.g. a mongodb MCP for a Mongo repo). Skip what the global config already covers.config.yml— ONLY if the repo genuinely needs different models/approvals/compaction than global; otherwise omit.rules/*.md— repo-specific TTSR guards if a real failure class warrants it; also copy the kit's shippedverify-ui-render/verify-backend-tracerules here, since omp's native rule provider reads<repo>/.omp/rules/(not a plugin's install dir).- Context-file bridge — for every bare
CLAUDE.mdomp would miss (flagged above), make it discoverable WITHOUT touching the team file or duplicating content: write<dir>/.omp/AGENTS.mdcontaining a single@CLAUDE.mdimport (native provider, walk-up, local-only — zero drift). Aln -s CLAUDE.md AGENTS.mdsymlink is the alternative only when the repo already ownsAGENTS.mdby convention. NEVER copy the CLAUDE.md body. Mark generated files so a re-run replaces them cleanly (idempotent). Respect the repo's local-only policy — if the harness is gitignored/excluded, keep.omp/out of git (.git/info/exclude) and never commit.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 87 lines · 204 tokens per session scan A 161148656a22
project-onboarder is an agent published in the GitHub repository jhlee0409/omni-harness-kit (2 stars, last pushed 1mo ago), licensed MIT. It adds 204 tokens to every session and 1,446 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
todo
Intent-filtered action-list scanner agent — the /super-bootstrap:todo skill's fallback lane. Primary render is the skill's bundled render-board.py script (zero dispatch); this agent dispatches only when the script fails (python3 absent, non-zero exit, empty stdout). Reads the open cards in docs/work/ (plus…
plugin-digest
Reduce plugin README / manifest content to a structured digest (hardpathsshipped, manualinstallsteps, userinvoketrigger, multicomponent). Batch: 1..N candidates per dispatch. Read-only. Dispatched by the /super-bootstrap:resolve-plugins skill's Phase 2.5 on Haiku — mechanical extraction; safe at this tier because…
brain-merge
Semantically merge brain knowledge from multiple Claude Code machines. Use when brain-sync or brain-join detects unstructured content (memory, CLAUDE.md) that needs intelligent merging. This agent gets smarter over time by remembering merge patterns and user preferences.
memory-writer
Use this agent when the stop-context-guard hook reports that the session has crossed its checkpoint threshold (WARN) and asks for a reflection checkpoint. The parent session passes (a) a distilled session summary and (b) the path of the mechanical checkpoint stub the hook already wrote; when a scoped memory layer is…
doc-sync-scan
Cold doc-sync judge — the commit door's scope-overload valve. Given a diff and a mechanically enumerated scan scope (reverse-citer read-set + grep-hit files + link-target files), judges each scope doc against the diff's claims and runs a diff-scoped new-assertion residual, returning stale-doc candidates for the…
builder
Use for standard implementation work — features, bug fixes, writing tests, refactors scoped to roughly 5 files or fewer, API endpoints, UI components. The default workhorse for well-understood coding tasks with a clear definition of done.