Better Harness turns project and session evidence into loop-level insights, prioritized improvements, and verifiable next steps—inside the coding agent you already use.
> /plugin marketplace add QoderAI/better-harness> /plugin install better-harness@better-harness
Repo: QoderAI/better-harness
What's inside
Analyze and improve your coding workflow with: Claude Code, Codex Desktop, Codex CLI, Qoder Desktop/CLI, Cursor, or GitHub Copilot CLI.
Choose the host you already use to get its exact installation, verification, invocation, and report-output steps. Better Harness does not use one universal entrypoint across every host.
This README shows inline setup for the most common hosts. Additional supported hosts (Qwen Code, Pi, Kimi Code, WorkBuddy, and Grok) keep their steps and boundaries in the installation guide and the public Host Adapter Matrix; see More adapters. README placement is a display choice, not a support-level claim.
Better Harness scopes behavior claims to relevant Task Episodes and the surrounding project mechanisms. Qoder and Cursor produce host-native Canvas reports; Claude Code, Codex, Qwen Code, GitHub Copilot, and Kimi Code produce self-contained HTML with paired Markdown. Missing or partial evidence remains explicit. See the Host Adapter Matrix for current coverage and output differences.
The report keeps missing evidence explicit and turns supported gaps into prioritized findings with an impact, expected output, scoped repair, and acceptance checks.
After you have comparable reports over time, the history view shows how the five Agent Work Loop dimensions move:
The static final frame summarizes historical Harness reports. It shows recorded trends, not causal proof of improvement. See how the demo was recorded.
AI coding agents change code fast, but the workflow around them is often the weak point:
Reviewing only the final diff misses these system-level problems. Better Harness analyzes the workflow around the diff: it gathers project evidence (and session evidence where supported), evaluates five connected dimensions, and turns concrete gaps into prioritized findings — each tied to its evidence, expected outcome, repair boundary, and validation route, so a team can improve one issue at a time.
Better Harness uses a feedforward-and-feedback loop that combines guidance available before work starts with signals available after the agent acts:
AGENTS.md, specs, Skills, and acceptance criteria
steer the agent before it acts.Across that loop, it evaluates five parts of delivery — the Agent Work Loop:
| Dimension | The question it answers | Backed by |
|---|---|---|
| Task Understanding | Does the agent know the goal and what "done" means? | Rules, AGENTS.md, specs, DESIGN.md |
| Controlled Execution | Is the work on supported, repeatable paths? | Skills, commands, MCP tools, sandbox boundaries |
| Change Validation | Is there evidence the change actually works? | Tests, lint, Hooks, observable diagnostics |
| Reliable Delivery | Does AI speed bypass quality checks or acceptance? | Human review, approvals, CI/CD, recovery paths |
| Learning Capture | Does the next task benefit from this one? | Loop Discovery, reusable SDLC Skills, Memory |
Running /better-harness establishes a task-bounded baseline and, depending on
the host, produces a visual report, a Markdown report, or both. The report
combines the five-part overview, prioritized findings, detected agent assets,
and an evidence brief. Each finding includes a repair action that drafts a
scoped fix plan for review.
Better Harness is deliberately honest: unobserved behavior stays explicit instead of becoming an unsupported score or claim. Passing a current check proves that the intervention was exercised; only a comparable later result can prove that the loop improved.
Better Harness opens three connected layers, not only a slash-command prompt:
/better-harness workflow, evidence
collectors, analyzers, renderers, and thin
host adapters.The three layers share the same boundary: configured assets can establish that a mechanism exists, but only linked task evidence can establish that it was used or improved an outcome.
The architecture keeps the three evidence domains independent until unified analysis by the lead agent. Every result retains a visible evidence source, owner, and validation route.
Installation differs by coding agent. Install Better Harness separately for each host, except that Qoder CLI can use the version bundled with Qoder Desktop. After installing or updating a plugin, start a new session or task so the host reloads its plugin inventory.
Register this repository as a Claude Code marketplace:
/plugin marketplace add QoderAI/better-harness
Then install Better Harness:
/plugin install better-harness@better-harness
Verify discovery from the shell:
claude plugin details better-harness@better-harness
The details should include Skills (1) better-harness. Then start a new Claude
session in the repository you want to analyze and run the report prompt:
/better-harness analyze this project's AI coding workflow and generate an evidence-backed report
Claude Code defaults to a self-contained report.html with paired report.md
and findings.json under the repository's .claude/better-harness report root.
Ask for inline or no-files output to keep the result in chat only. Workspace-
matching local Claude sessions are included when available; missing evidence
stays explicit rather than being inferred.
@better-harness analyze this project's AI coding workflow and generate an evidence-backed report
Use https://github.com/QoderAI/better-harness.git with Git ref main.

Add the repository source:
codex plugin marketplace add \
'https://github.com/QoderAI/better-harness.git' \
--ref main
Then inspect and install Better Harness:
codex plugin list --marketplace better-harness
codex plugin add better-harness@better-harness
Start a new Codex task in the repository you want to analyze and run the report prompt:
$better-harness:better-harness analyze this project's AI coding workflow and generate an evidence-backed report
Use the repository URL with marketplace add, not a raw marketplace.json
URL. Current Codex builds use plugin add and --marketplace; examples that
use plugin install or --source target a different CLI contract.
Better Harness is built into the Qoder desktop app, so no Marketplace or local plugin installation is required there. Choose either entry point:
From a session: Open the repository you want to analyze, start a new session, and run the report prompt:
/better-harness analyze this project's AI coding workflow and generate an evidence-backed report
From Quest (Qoder 1.18.0+): Open Quest, then select Better Harness (Beta) from the left sidebar.
If Qoder Desktop is installed, Better Harness is already available in Qoder CLI. No marketplace or plugin installation is required. Start a new Qoder CLI session in the repository you want to analyze and run the report prompt:
/better-harness analyze this project's AI coding workflow and generate an evidence-backed report
Only when using Qoder CLI without Qoder Desktop, inspect the current manual installation disposition before following Qoder's native marketplace flow:
better-harness plugin plan install --host qoder --surface cli --scope user
The planner does not emit the older install syntax because the current native help and this repository's historical documentation disagree. After a manual installation, verify only the currently observed inventory command:
qodercli plugin list
better-harness plugin verify --host qoder --surface cli
Then start a new Qoder CLI session before using /better-harness.
The Cursor plugin is not published to the marketplace. The repository carries
the source-local manifest, but the current local Cursor help does not verify the
historical --plugin-dir contract. Better Harness therefore reports the
installation plan as unavailable instead of emitting that command:
git clone https://github.com/QoderAI/better-harness.git
better-harness plugin plan install --host cursor --surface agent --scope session
Cursor session evidence is supported through workspace-matched transcripts,
metadata, and audit logs. A session that was loaded through a separately
verified native route can be checked with better-harness plugin verify --host cursor --surface agent; partial or unavailable coverage remains explicit.
Register this repository as a Copilot plugin marketplace, then install Better Harness:
copilot plugin marketplace add QoderAI/better-harness
copilot plugin install better-harness@better-harness
Verify that the Skill loaded:
copilot plugin list
Prefer marketplace installs. Direct repository, URL, and local-path installs are deprecated in Copilot CLI.
Copilot session evidence is supported through workspace-matched Copilot CLI
transcripts under ~/.copilot/session-state/. Copilot records no per-response
token usage, and VS Code Copilot Chat has no supported durable transcript; both
remain explicit evidence boundaries.
The standalone CLI can inspect local Better Harness installation evidence for every host without contacting a registry or changing host configuration:
better-harness plugin status --host all
better-harness doctor --platform all
Build a host-specific install, update, or removal plan before using that host's native UI or CLI. Plans preserve native steps as typed argv data for deliberate external execution; the human view does not turn them into shell command strings, and Better Harness does not execute them:
better-harness plugin plan install --host qwen --surface cli --scope user
better-harness plugin verify --host qwen --surface cli
Host differences remain explicit. Qoder Desktop is bundled, Cursor is session-only while its native command contract is being reconciled, Pi lifecycle commands without current native evidence remain manual or unavailable, and WorkBuddy has no managed Better Harness plugin lifecycle surface.
Beyond the hosts above, Better Harness also supports Qwen Code, Pi, Kimi Code, WorkBuddy, and Grok. Their exact install, invocation, and evidence boundaries live in the docs so this README stays focused:
qwen extensions install QoderAI/better-harness).pi install <source> or pi -e <source>)..kimi-plugin/plugin.json plugin install).Each produces a self-contained report.html with paired report.md and
findings.json; missing or partial session evidence stays explicit.
Development requires Node.js >=22.20.0 <25.0.0 and npm
>=10.9.3 <12.0.0 on Windows, macOS, or Linux.
npm ci
npm test
npm run pack:verify
Build the source-local Codex plugin artifact with:
node scripts/packaging/build-host-plugin.mjs
The validated artifact is written to dist/plugins/better-harness.
From the same source checkout, inspect repository evidence without reading local sessions:
node scripts/better-harness.mjs report --no-sessions
From a source checkout, npm run preview -- --open serves a bundled fixture.
Canvas preview requires an installed Qoder runtime, or an explicit
--sdk-media/--sdk-root path. It listens on 127.0.0.1 by default and is a
local inspection tool, not an authenticated sharing service.
You do not need to understand the whole runtime to contribute. Start with the smallest surface that matches the improvement you want to make:
| What you can contribute | Start here | Example contribution |
|---|---|---|
| Workflow guidance and engineering practices | skills/ or references/ | Add sourced guidance for a language, framework, review pattern, or recurring agent workflow. |
| Evaluation models and executable analysis | models/ or scripts/ | Add an evidence-backed evaluation lens, detector, or agent-friendly analysis command with fixtures and tests. |
| Delivery controls and host support | hooks/ or the new Coding Agent guide | Add a narrow lifecycle check or document and validate evidence support for another Coding Agent host. |
| Reports and visual language | templates/reporting/ or templates/style/ | Add a report mode, reusable reporting contract, or directive-only visual style with validation evidence. |
| Examples and operating models | case-studies/ | Share a redacted, evidence-bounded example of how a team applies Agent Work Loop analysis and delivery practices. |
To get started:
Not sure where an idea belongs? Open an issue before building a new top-level surface or changing a public report, schema, packaging, or compatibility contract.
Better Harness is licensed under the MIT License.
.agents/
skills/
change-traceability-review/
references/
commit-contract.md
evidence-commands.md
mode-rules.md
reporting.md
spec-contract.md
SKILL.md
harness-skill-creator/
references/
bootstrap-patterns.md
SKILL.md
README.md
skill-review/
references/
audit-checklist.md
inspection-commands.md
reference-patterns.md
SKILL.md
triangulate-spec-review/
references/
review-loop.md
scripts/
run-triad-review.mjs
SKILL.md
.claude-plugin/
marketplace.json
plugin.json
.codex-plugin/
plugin.json
.cursor-plugin/
marketplace.json
plugin.json
.editorconfig
.gitattributes
.github/
CODEOWNERS
dependabot.yml
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
plugin/
marketplace.json
plugin.json
pull_request_template.md
workflows/
ci.yml
pages.yml
release.yml
.gitignore
.kimi-plugin/
plugin.json
.nvmrc
.qoder-plugin/
plugin.json
.tool-versions
AGENTS.md
assets/
agent-work-loop-en.svg
better-harness-architecture-en.svg
browser-verify-loop-en.svg
demo/
better-harness-findings-report.png
better-harness-report.html
twenty-history.gif
twenty-history.png
install/
codex-add-marketplace.jpg
case-studies/
agent-customize/
agents-md-good-examples.md
bug-diagnosis-skills/
diagnose-backend-bug/
agents/
openai.yaml
SKILL.md
reproduce-frontend-bug/
agents/
openai.yaml
SKILL.md
factory/
model/
factory-readiness.md
project-harness/
browser-verify-loop.md
design-md-complete-example.md
project-capability-artifact-examples.md
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
dev/
html-preview.mjs
terminal-demo/
play-better-harness-history.mjs
README.md
docs/
.gitignore
adapters/
contributing-new-coding-agent.md
README.md
adrs/
developer-experience-system.md
directory-structure.md
README.md
ARCHITECTURE.md
better-harness-doc-links.mmd
blog/
2026-07-30-better-harness-in-qoder.md
2026-07-30-better-harness-is-now-open-source.md
authors.yml
community.md
concepts.md
docs/
concepts/
agent-work-loop.md
findings-and-evidence.md
glossary.md
hosts/
adapter-matrix.md
contributing-new-coding-agent.md
installation.mdx
introduction.md
reference/
architecture.md
troubleshooting.md
your-first-report.md
docusaurus.config.js
glossary.md
i18n/
zh-Hans/
code.json
docusaurus-plugin-content-docs/
current/
current.json
concepts/
agent-work-loop.md
findings-and-evidence.md
glossary.md
hosts/
adapter-matrix.md
contributing-new-coding-agent.md
installation.mdx
introduction.md
reference/
architecture.md
troubleshooting.md
your-first-report.md
docusaurus-theme-classic/
footer.json
navbar.json
package-lock.json
package.json
scripts/
sync-assets.mjs
sidebars.js
specs/
2026-07-16-open-source-baseline.md
2026-07-17-canvas-preview-distribution.md
2026-07-20-scripts-directory-cleanup.md
2026-07-20-terminal-history-demo.md
2026-07-21-scripts-refactor-contracts.md
2026-07-21-tighten-loop-discovery-evidence.md
2026-07-22-restore-memory-duplicate-review.md
2026-07-23-better-harness-runtime-parity.md
2026-07-23-session-analysis-claude-cursor-providers.md
2026-07-24-better-harness-evidence-domain-alignment.md
2026-07-24-better-harness-user-support-tracks.md
2026-07-24-pre-public-identity-cleanup.md
2026-07-25-monorepo-workspace-support.md
2026-07-27-claude-agent-customize-provider.md
2026-07-27-claude-durable-html-default.md
2026-07-27-cursor-session-analysis-parity.md
2026-07-27-pre-public-package-consistency.md
2026-07-27-public-repository-import.md
2026-07-27-remove-configurable-core-boundary.md
2026-07-28-a04-agent-customize-help-only.md
2026-07-28-a06-support-declaration-consistency.md
2026-07-28-codex-report-actions.md
2026-07-28-docusaurus-site-demo-pages.md
2026-07-29-11-18-review-boundary-hardening.md
2026-07-29-copilot-host-support.md
2026-07-29-qwen-extension-context-file.md
2026-07-30-core-change-watch-profile-and-current-paths.md
2026-07-30-english-blog-launch.md
2026-07-30-html-cjk-line-breaking.md
2026-07-30-html-dimension-progressbar-semantics.md
2026-07-30-html-finding-fix-callback.md
2026-07-30-html-summaryfacts-episode-coverage.md
2026-07-30-kimi-host-support.md
2026-07-30-manual-direct-fix-routing.md
2026-07-30-new-coding-agent-contribution-guide.md
2026-07-30-pages-dx-recovery-accessibility.md
2026-07-30-pi-host-support.md
2026-07-30-project-output-home-resolution.md
2026-07-30-routing-workbuddy-host.md
2026-07-30-search-landing-activation.md
2026-07-30-session-population-binding.md
2026-07-30-supported-host-entrypoints.md
2026-07-30-u-01-cursor-plugin-id-matching.md
2026-07-30-workbuddy-host-adapter.md
2026-07-31-33-describe-leaf-command-paths.md
2026-07-31-37-leaf-command-help.md
2026-07-31-agent-work-loop-insights-positioning.md
2026-07-31-better-harness-plugin-lifecycle.md
2026-07-31-developer-experience-system.md
2026-07-31-docs-seo-index-hygiene.md
2026-07-31-ha02-provider-aware-checkup-plan.md
2026-07-31-preserve-frozen-session-workspace-binding.md
2026-07-31-security-reliability-boundaries.md
2026-07-31-session-analysis-shim-dedupe.md
2026-07-31-windows-file-identity.md
2026-08-01-34-session-population-topology-binding.md
2026-08-01-41-claude-transcript-dir-dot-slug.md
2026-08-01-42-claude-config-root-asset-inventory.md
2026-08-01-cursor-canvas-report.md
2026-08-01-html-finding-fix-recording.md
2026-08-01-html-usage-activity-date-alignment.md
2026-08-01-lc05-native-learning-candidate-mining.md
2026-08-01-native-learning-review-determinism-fix.md
2026-08-01-root-cli-machine-failure-contract.md
2026-08-02-contained-structural-symlinks.md
2026-08-02-grok-host-adapter.md
2026-08-02-harness-component-snapshot-v1.md
2026-08-02-native-learning-report-integration.md
2026-08-03-asset-route-selection-freshness.md
2026-08-03-host-capability-registry.md
2026-08-04-agent-verify-loop-cross-stack.md
2026-08-04-agent-verify-loop-reference.md
2026-08-04-async-report-validation-reads.md
2026-08-04-bootstrap-reference-domain.md
2026-08-04-cross-repo-workspace-topology.md
2026-08-04-drive-plane-selection.md
2026-08-04-skill-evaluation-execution.md
2026-08-04-verification-environment-design.md
2026-08-04-verify-intent-and-repair-loop.md
src/
css/
custom.css
pages/
index.js
index.module.css
theme/
BlogListPage/
index.js
StructuredData/
index.js
Root.js
static/
img/
favicon.svg
hooks/
git-scripts/
blast-radius/
blast-radius.mjs
analysis.mjs
config.mjs
core.mjs
git.mjs
graph.mjs
hook.mjs
languages/
go.mjs
index.mjs
javascript-like.mjs
python.mjs
parser.mjs
utils.mjs
commit-count.mjs
mapping-gate.mjs
test-mapping/
core.mjs
policy.mjs
resolvers/
go.mjs
index.mjs
java.mjs
python.mjs
hooks.json.template
review-trigger/
README.md
LICENSE
models/
agent-work-loop-rationale.md
agent-work-loop.md
harness-engineering.md
routing.md
software-fluency.md
package-lock.json
package.json
prompts/
better-harness.md
qwen-extension.json
README.md
README.zh-CN.md
references/
agent-customize/
agent-hooks.md
agents-md-review.md
custom-agents-review.md
global-assets.md
hooks-review.md
knowledge-assets-review.md
mcp-review.md
memory-review.md
platforms/
claude.md
codex.md
copilot.md
kimi.md
pi.md
qoder.md
qwen.md
workbuddy.md
README.md
routing.md
skill-discovery.md
skill-eval.md
skill-review.md
bootstrap/
examples/
backend-service-spec.md
frontend-web-spec.md
mobile-app-spec.md
README.md
README.md
spec-structure.md
loop-engineering/
automation-readiness.md
demand-source-analysis.md
learning-loop-patterns.md
learning-loop-research-basis.md
loop-blueprint.md
loop-discovery.md
loop-primitives.md
loop-spec-card.md
loop-state-ledger.md
patterns/
event-response.md
goal-completion.md
proactive-discovery.md
README.md
scheduled-inspection.md
system-improvement.md
README.md
project-harness/
agent-verify-loop.md
core-change-watch.md
design-md-contract.md
friendly-cli.md
git-hooks.md
observability.md
project-overlays.md
README.md
recovery-evidence.md
review-trigger.md
sensitive-code.md
sensitive-write-boundary.md
ui-and-system-drivers.md
verification-environment.md
README.md
session-evidence/
README.md
session-insights-report.md
session-usage-efficiency.md
sessions-diagnostics.md
tool-runtimes/
node-runtime-discovery.md
roadmap.md
scripts/
agent-customize/
cli.mjs
constants.mjs
core/
items.mjs
index.mjs
inventory.mjs
providers/
claude.mjs
codex.mjs
copilot.mjs
cursor.mjs
grok.mjs
index.mjs
kimi.mjs
pi.mjs
qoder.mjs
qwen.mjs
workbuddy.mjs
storage.mjs
agent-guardrails/
install-secret-guard.mjs
platforms.mjs
secret-scan.mjs
agent-lint/
cli.mjs
hook-review.mjs
host-instructions.mjs
... 393 moreFAQ
better-harness is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes better-harness. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.