Skip to content

harness rules directory support

Mike Crowe edited this page Jul 3, 2026 · 1 revision

Which harnesses natively read a .agents/rules/ directory

Status: research / unverified first-hand (web search only, not confirmed against a live install) Date: 2026-07-02 Trigger: user has a personal ~/.agents/{skills,commands,rules}/ tree (flat .md files under rules/) and asked which of harnessed's target harnesses (claude, omp, opencode, antigravity, codex) would pick up ~/.agents/rules/ natively, independent of harnessed's own .claude/rules/ recipe-fan mechanism (schema.py rules: field / T10). Method: WebSearch against each vendor's current docs (2026-07-02) — training-data knowledge is stale here (fast-moving space, six months past this assistant's cutoff), so this was verified live rather than answered from memory. Treat as a strong current signal, not gospel — recheck against --help/official docs before depending on it for a real decision.

Result

Harness Native .agents/rules/ support? What it actually reads
antigravity (agy) Yes — directly. Docs describe "workspace rules" living at .agents/rules/*.md (e.g. .agents/rules/code-style.md) — flat markdown files, no wrapper directory needed. agy inspect shows exactly what got loaded. .agents/rules/, AGENTS.md, other .agents/ content
claude (Claude Code) No — has its own, separate convention: .claude/rules/*.md (project-level; a recent fix for symlinked-path loading confirms this is a live, maintained feature, not legacy). This is what harnessed's rules: recipe field (T10) already targets. .claude/rules/, CLAUDE.md
codex (OpenAI) No — single-file hierarchy per directory: AGENTS.override.mdAGENTS.mdTEAM_GUIDE.md.agents.md, plus a global ~/.codex/AGENTS.md. ~/.codex/rules exists but is for execpolicy (command allow/block/prompt policy), not markdown instruction content — easy to confuse with a "rules dir" but it's a different subsystem. AGENTS.md hierarchy, capped at 32 KiB total
opencode (sst) Not by default, but configurable — opencode.json's instructions: array accepts arbitrary glob paths (their own example globs .cursor/rules/*.md), so it could be pointed at .agents/rules/*.md explicitly. AGENTS.md natively; anything else via explicit instructions: config
omp (Oh My Pi) No evidence found — has its own proprietary "TTSR" (time-traveling rules) mechanism plus .omp/settings.yml / ~/.omp/agent/config.yml; nothing in current docs ties it to .agents/rules. omp-native config only

The interesting part

antigravity is the one harness that matches the user's exact directory shape as-is — flat .md files directly under .agents/rules/, no per-rule wrapper directory. Contrast with harnessed's own .claude/rules/ fan-out (synclinks.py), which requires one directory per rule (src.is_dir() check) — a flat file like ~/.agents/rules/coding-principles.md would need wrapping into rules/coding-principles/coding-principles.md to fan through that path. Getting picked up by antigravity natively sidesteps that wrapper requirement entirely, but only for that one harness.

Open questions / not verified

  • Workspace vs. home-dir scope for antigravity. The docs call it "workspace rules," which usually means project-root .agents/rules/, not necessarily a global home-directory default the way ~/.claude/CLAUDE.md is for Claude Code. Unconfirmed whether agy also checks ~/.agents/rules/ as a global fallback. Verify with agy inspect once a real antigravity stack is running (the agent + Dockerfile now exist on feat/agent-antigravity, see catalog/agents/antigravity/).
  • No first-hand confirmation for any of these — this is search-engine-verified against vendor docs, not tested against a live container. Re-verify before it's load-bearing for a real recipe decision.

See also

  • docs/research/home-folder-antigravity-requirements.md — antigravity's history/session storage layout (a different question: state persistence, not instruction-loading).
  • catalog/agents/antigravity/agent.yaml, catalog/base/Dockerfile.harnessed-antigravity — the actual antigravity harness image (fixed 2026-07-02, feat/agent-antigravity).
  • src/harnessed/synclinks.py — harnessed's own .claude/rules/ fan-out mechanism (directory-only entries), the alternative path if you want claude/omp/opencode to see your rules too (they all consume the same shared .claude/ profile per schema.py's harness comment block).

Clone this wiki locally