Skip to content

Sources & Confidence

The harness claims across this site are not equally well-sourced, and the difference matters when you are deciding how much to rely on one. Supporting evidence is recorded in .research/agentic-configuration-standards/ and .research/mcp-canonical-location/ in the repository.

ClaimConfidenceBasis
Codex, Copilot CLI, and Cursor skill discovery pathsHighprimary vendor documentation
Claude Code reads neither canonical formatHighprimary vendor documentation, plus an independent bug report at user scope
Frontmatter field originsHighprimary vendor documentation
Devin Desktop skill paths and the rebrandHighofficial vendor announcement and documentation
Antigravity and VS Code skill pathsHigh / Mediumprimary vendor documentation
Gemini CLI reads .agents/skills at both scopesHighthe Gemini CLI discovery source, corroborated by its documentation
Gemini CLI context.fileNameMediumproject documentation, partly an issue thread
JSON comment tolerance in .gemini/settings.json and .claude/settings.jsonHighthe Gemini CLI loader source, and Claude Code documentation plus an open request for JSONC support
Cursor’s Agent-mode-only AGENTS.md supportMediumsecondary comparisons, not primary Cursor documentation
AGENTS.md context cost and length guidanceLowpractitioner analysis and reported measurements, no vendor specification
Claude Code skill runtime fields, and their turn-scopingHighprimary vendor documentation
user-invocable and disable-model-invocation being independentHighprimary vendor documentation, including the vendor’s own comparison table
A missing description falling back to the body’s first paragraphHighprimary vendor documentation
commands/ being merged into skills rather than deprecatedHighprimary vendor documentation
What an agent definition can express that a skill cannotHighprimary vendor documentation
Claude Code skill arguments, and the fields the spec rejectsHighprimary vendor documentation
Codex skills having no argument mechanismHighabsence from the vendor page that supersedes custom prompts
Plugin dependencies installed for an npm source but not a git sourceLowdirect observation of local installs, no vendor specification
Cursor rule selection via globs / description / neitherHighprimary vendor documentation
Copilot applyTo path-specific instructionsHighprimary vendor documentation
Nested AGENTS.md resolution (nearest-file-wins)Highagents.md body copy and FAQ, primary
Claude Code concatenating every discovered CLAUDE.mdHighClaude Code memory documentation, primary
Nested-resolution semantics beyond precedenceLowunratified v1.1 proposal, no maintainer response
A standard local-override file (AGENTS.local.md)Lowabsent from the standard; three open issues, two candidate names
MCP configuration having a cross-harness mapping that is not losslessHighprimary vendor documentation per host, plus inspection of the published agent-install registry
Per-harness project-scope MCP files, keys, and formatsHighprimary vendor documentation per host
No standard naming an MCP configuration locationHighthe MCP specification’s silence, plus the open standards-track proposals themselves
The .agents/mcp.json proposal being unaffiliated and unadoptedMediumthe draft’s own site; nothing establishes that anyone reads it

The claim that Cursor’s Agent mode reads AGENTS.md while Chat and Composer do not comes from third-party comparisons rather than Cursor’s own documentation.

It is consequential: a repository standardizing on AGENTS.md alone would lose instructions in two of three Cursor surfaces. Verify it against Cursor’s documentation before relying on it. See Cursor.

Two claims about instruction files are left unstated rather than guessed:

  • whether Devin Desktop reads AGENTS.md,
  • whether Antigravity reads AGENTS.md.

Both vendors document skills without addressing repository instructions. Their rows in Harness Differences say “not established” for that column rather than assuming either way.

The two standards disagree about a missing description

Section titled “The two standards disagree about a missing description”

Claude Code documents that an omitted description “uses the first paragraph of markdown content.” The Agent Skills client-implementation guide prescribes the opposite: a missing or empty description means the skill is skipped.

Both are primary and both are current, so the disagreement is real rather than a sourcing gap. A skill relying on either behavior is not portable, which is why Direct Invocation Skill requires an explicit marker string rather than an absent field.

Harness settings files are documented only where verified

Section titled “Harness settings files are documented only where verified”

This site does not carry a table of per-harness settings files (.claude/settings.json, .cursor/permissions.json, ~/.codex/config.toml, and peers) covering tool permissions, hooks, and environment defaults. The readily available sourcing for several of those rows is third-party blog posts rather than vendor documentation, and this project does not publish harness claims at that confidence. Adding the table is a research task rather than an editing one.

What is documented is what has been verified and what initialization depends on. Settings are not wholly outside init’s reach: it edits .gemini/settings.json to add AGENTS.md to context.fileName, which is why JSON configuration disagrees about comments is on the site. That claim was established by testing, and it governs a file init writes to.

A claim that turns out to be wrong is corrected in place and recorded here. The entry stays after the page is fixed, so you can tell whether something you read earlier has since changed.

2026-08-18 — MCP was said to have no cross-harness mapping

Section titled “2026-08-18 — MCP was said to have no cross-harness mapping”

Six pages and skill files stated that MCP servers stay canonical because “no safe cross-harness mapping exists”. That was wrong. One exists and is published, mapping server configuration across fourteen hosts, six config keys, and three file formats.

Corrected at What stays canonical, which now separates MCP (a published mapping that is not lossless) from custom agents, hooks, and rules (no published specification at all). The other five locations link there instead of restating a reason. What has not changed is the behavior: this project still does not convert MCP configuration.

2026-08-18 — Settings files were said to be outside initialization’s reach

Section titled “2026-08-18 — Settings files were said to be outside initialization’s reach”

This page gave two reasons for not documenting harness settings files. The second, that “settings are outside what initialization touches”, was false: init edits .gemini/settings.json to add AGENTS.md to context.fileName. The sourcing-quality reason was and remains true. The section above now states only that one.

2026-08-18 — help was said to be pasteable except for the instruction repairs

Section titled “2026-08-18 — help was said to be pasteable except for the instruction repairs”

The doctor page said the four instruction repairs “are the one place help cannot be pasted into a terminal”. That was wrong when it was written. Every help line was rendered as Run `<repair>` whether or not the repair was a command, so a configuration finding published lines like Run `remove .windsurf/skills and enable the harness that replaced it` — prose wrapped in an imperative to run it. The diverged-both repair had the same shape from the start, with half the instruction inside the backticks and half outside.

Corrected at Output, and the behavior changed with it: help is now one row per repair with a command column and an instruction column, and command is empty wherever no single invocation completes the repair. A caller no longer has to read the prose to find out whether it may run something. The same page’s sample report was also a version behind — it showed findings without the problem column that finding rows have carried since the configuration checks shipped.

Claude Code parses .claude/settings.json, .claude-plugin/plugin.json, and .claude-plugin/marketplace.json as strict JSON. Comments and trailing commas are total parse failures, not warnings. The vendor settings page documents five settings filenames and says nothing about comments either way, so this was established against Claude Code 2.1.234 by testing each file with claude plugin validate and claude doctor. It is verified behavior, not a contract, and could change without notice.

Symlinking the .claude/skills directory itself is not documented by Claude Code, which documents per-skill symlinks instead. The directory-level link is verified working and preferred because it is live, but it is supported in practice rather than guaranteed by contract. Per-skill links remain the documented fallback.

Two claims on this site describe upstream work that is proposed rather than adopted, and both are labelled as such where they appear:

  • the v1.1 accumulation model for nested AGENTS.md, which would move the standard toward Claude Code’s existing behavior rather than away from it,
  • a local-override file, requested in three open issues under two different filenames with two different semantics.

Neither has a maintainer resolution. They are recorded because the divergence they describe is real today, not because either outcome is expected. Positions this project has taken on them are tracked in unsettled upstream questions.

The specification’s file-reference guidance is recorded as E-STD-06. Its first sentence reads as a ban on subdirectories and its second glosses it as a limit on reference chains; Best Practices takes the second reading, and the layout itself is explicitly unconstrained.

The vercel-labs/skills README claims 75 supported agents while its public listing shows twenty. The discrepancy is unresolved; prefer the list to the number.