Skip to content

Add the any-coding-agent guide; route non-named harnesses explicitly#253

Merged
pengfei-threemoonslab merged 2 commits into
mainfrom
agent-adoption-dx
Jul 6, 2026
Merged

Add the any-coding-agent guide; route non-named harnesses explicitly#253
pengfei-threemoonslab merged 2 commits into
mainfrom
agent-adoption-dx

Conversation

@pengfei-threemoonslab

Copy link
Copy Markdown
Contributor

Why

Agent-adoption review finding: the agent-native surface is real but gated on being one of three named harnesses. Cline, Windsurf, Devin, Aider, OpenHands get no auto agent-mode (only CLAUDECODE=1 / CURSOR_TRACE_ID auto-enable), the AGENTS_SHIPGATE_AGENT_MODE=1 override lived only deep in AGENTS.md §errors, llms.txt never mentioned it, and docs/agents/ listed exactly codex/claude-code/cursor. An agent outside the big three that fetched llms.txt had no path to structured errors or a named entry point.

What

  • docs/agents/any-coding-agent.md (new): the harness-agnostic control guide — force agent mode, the three prominent commands with the agent-handoff-first read order, exit-code table, the MCP-server path for shell-less harnesses, forbidden shortcuts, and the redacted feedback export loop with the agent_feedback.yml template link. Generic profile documented as --agent codex.
  • docs/agents/README.md + llms.txt: explicit "any other agent" routing (llms.txt gains its first mention of the agent-mode env var).
  • AGENTS.md: header names the wider harness set; a two-line router atop Run (canonical) sends in-flight capability changes to the control loop first (setup only when no shipgate.yaml) — closing the last first-command divergence from README's check-first ordering (the read-order half was Align read-first prose with the contract's agent_read_order #251).
  • llms-full.txt regenerated (AGENTS.md is a build source).

Discipline

Docs-only — no new CLI surface, schema, adapter, or check; deliberately did not guess env vars for auto-detecting other harnesses (that would be invented facts; the explicit override is the honest path until verified detection signals exist).

Verification

test_public_surface_contract (120), test_trigger_command, test_packaging green; ruff clean; shipgate check --agent claude-code on this diff (touches the agent_instructions trust-root surface): decision: allow, completion_allowed: true.

🤖 Generated with Claude Code

pengfei-threemoonslab and others added 2 commits July 6, 2026 11:03
Coding agents without a named integration (Cline, Windsurf, Devin,
Aider, OpenHands) had no entry point: agent mode only auto-enables for
Claude Code (CLAUDECODE=1) and Cursor (CURSOR_TRACE_ID), the env-var
override was documented only deep in AGENTS.md, and docs/agents/ listed
exactly three named guides.

- New docs/agents/any-coding-agent.md: force AGENTS_SHIPGATE_AGENT_MODE=1,
  the three prominent commands with the agent-handoff-first read order,
  exit codes, the MCP-server path for shell-less harnesses, forbidden
  shortcuts, and the redacted feedback-export loop. Facts limited to the
  shipped v0.14.0 surface; the generic profile is --agent codex.
- docs/agents/README.md + llms.txt: route "any other agent" to the new
  guide (llms.txt previously never mentioned the agent-mode env var).
- AGENTS.md: name the wider harness set in the header, and add a
  two-line router at the top of Run (canonical) — control loop first
  for in-flight capability changes, setup only when no shipgate.yaml —
  closing the last first-command divergence from the README's
  check-first ordering.
- llms-full.txt regenerated (AGENTS.md is a build source).

Docs-only; no new CLI surface, schema, or check (surface-discipline
compliant). test_public_surface_contract, test_trigger_command,
test_packaging green; ruff clean; shipgate check on this diff: allow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review P2 on #253: docs/agents/README.md tells agents to start from
.well-known/agents-shipgate.json, but agent_onramps listed only the
three named harnesses — the machine-readable discovery path stranded
exactly the generic-agent audience the new guide unblocks. Add
agent_onramps.any_coding_agent -> docs/agents/any-coding-agent.md and
pin it in the public-surface test's expected_onramps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@pengfei-threemoonslab

Copy link
Copy Markdown
Contributor Author

P2 addressed in bdcf618: agent_onramps.any_coding_agent now points to docs/agents/any-coding-agent.md, and the public-surface test's expected_onramps pins it (with a comment explaining why the machine-readable map must route non-named harnesses). Valid point that this belonged in the same PR — I had deferred the .well-known change on surface-discipline grounds, but leaving the primary discovery path stale for exactly the audience the guide unblocks was the worse inconsistency; this is an extension of an existing discovery map, not a new parallel surface. JSON validates; test_public_surface_contract.py green (120 tests); ruff clean.

One operational note: the site vendors .well-known from release tags (sync-well-known.sh), so this on-ramp reaches threemoonslab.com at the next tagged release — raw.githubusercontent consumers see it as soon as this merges.

🤖 Generated with Claude Code

@pengfei-threemoonslab pengfei-threemoonslab merged commit b7b9313 into main Jul 6, 2026
4 checks passed
@pengfei-threemoonslab

Copy link
Copy Markdown
Contributor Author

P2 fixed: the exit-code table's 0 row now reads "Command completed — not a verdict. Inspect the JSON fields (decision, merge_verdict, release_decision.decision): in advisory mode, verify exits 0 even for review_required / human_review_required." Matching the .well-known exit_code_policy semantics. (The README's human-facing table uses the shorter "Pass (advisory mode…)" wording — same ambiguity in principle; left out of this PR's scope but worth a follow-up sweep.)

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant