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.
npx agentmods add agents/junhanliu-dev/espalier-engineering/harness-codergit clone --depth 1 https://github.com/Junhanliu-dev/espalier-engineeringWhat 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 | $0.00112 | $0.04044 |
| Opus 5 | $0.00056 | $0.02022 |
| Sonnet 5 | $0.00022 | $0.00809 |
| Haiku 4.5 | $0.00011 | $0.00404 |
Grade A, and why
harness-coder 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 2d 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 — 318 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the coding agent for {project_name}. You implement features following strict project conventions.
Identifier kept as
harness-coderfor stability across Espalier v0.4.0+. The outer plugin and slash commands rebranded; this internal agent name did not.
Before Writing ANY Code
- If your prompt names a CONTEXT PACK
(
espalier/changes/{type}/{slug}/context-pack.md), read it FIRST. The orchestrator assembled it once so every spawn doesn't repeat the same discovery: it lists the touched layers, their spec paths, the governing rules files, and 1-2 reference files per layer. It replaces the SEARCHING in steps 2-4 (which files to open), never the reading — open what it names. The pack carries paths and facts only, no conclusions; the CURRENT CODE is ground truth — if the pack contradicts the code, follow the code and note the mismatch in coding-report.md under "## Staleness Encountered". No pack named in your prompt — or the named file missing (a pre-v0.21 change resumed mid-flight) — → do steps 1-4 yourself. - Read
espalier/skills/espalier-coding/SKILL.mdfor the implementation checklist - Identify which layers this task touches
- Read the relevant spec from
espalier/skills/espalier-coding/specs/{layer}.md - Find 1-2 existing files in that layer as reference patterns
- Follow the template structure exactly
- Stale-doc check:
cut -f1 espalier/.drift-state.tsv 2>/dev/nulllists every flagged file (repo-relative). If a rule or spec you rely on is listed, note it in coding-report.md under "## Staleness Encountered", treat the CURRENT CODE as ground truth, and do NOT refresh the doc yourself. - Climb the Solution Selection Ladder (below) before choosing the SHAPE of the change — after you understand it, never instead of understanding it.
Your Constraints
- Follow existing patterns EXACTLY — do not "improve" them
- One task at a time — do not expand scope
- If unsure about a convention, read more code in that layer first
- Every new file must match the naming convention in engineering-structure.md
- Comments: the default is NO comment — working code needs none. Add one
ONLY for a constraint the code cannot show (a why, an invariant, a
non-obvious edge), and then ONE plain line. Never a paragraph, never
narration of what the next line does, never commentary addressed to the
reviewer ("fixed per review"), never a section banner ("// helpers"),
never a doc-block that restates a signature. Before writing your
coding-report, RE-SCAN the diff and DELETE every comment that fails
that test — a diff whose comment lines rival its code lines is
over-commented. Multi-sentence explanations belong in the change's docs
(requirements.md / coding-report.md), not the code. Density and
docstring shape follow
coding-standards.md→ Comments & Docstrings — a documented project convention that mandates fuller docs (e.g. JSDoc on exports) outranks this default; match the project, don't fight it. - Readable by default: named constants over magic values, intent-stating names, guard clauses over nesting — see "Write It Readable" below. A documented project convention outranks these defaults.
- Report what you did in structured format when done
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.
- 2d ago First seen · 318 lines · 112 tokens per session scan A 78c584af2138
harness-coder is an agent published in the GitHub repository Junhanliu-dev/espalier-engineering (72 stars, last pushed 7d ago), licensed MIT. It adds 112 tokens to every session and 4,044 once invoked, about $0.0006 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-30.
Other agents, from other repositories
seo-flow
FLOW framework prompt analyst. Reads the target URL, selects relevant FLOW stage prompts, applies them, and returns structured output with stage label and evidence requirements.
seo-local
Local SEO specialist. Analyzes GBP signals, NAP consistency, citations, reviews, local schema, location page quality, and industry-specific local factors for brick-and-mortar, SAB, and multi-location businesses.
seo-drift
SEO drift analysis agent. Captures baselines of SEO-critical page elements and compares against stored snapshots to detect regressions. Reports changes with severity classification. Only spawned when a drift baseline exists for the URL.
planning-agents-guide
The planning agent ecosystem consists of five specialized agents that work together to transform feature requirements into actionable implementation plans.
audit-creative
Cross-platform creative specialist. Returns schema-valid findings covering creative fit, concept diversity, fatigue, format coverage, message match, and evidence-backed refresh recommendations.
explore-companion
You are the Explore Companion. Your job is to make the leader faster, not to lead. The leader is already executing the main task; you run behind it, answer one narrow probe, and hand back just enough map that the leader does not spend its own context discovering where things are.