feat(framework+cli): fw-4.15.0 / cli-3.13.2 — inject AGENTS.md universal standard#155
Merged
Conversation
Adds AGENTS.md as a first-class injection target. AGENTS.md is the open standard for AI coding agents donated to the Agentic AI Foundation (Linux Foundation, 2025) and read by Claude Code, OpenAI Codex CLI, Cursor, Aider, Devin, Sourcegraph Amp, Google Jules, Zed AI, Continue, Roo Code, Factory Droids, GitHub Copilot, Gemini CLI, Windsurf, Amazon Q and others. Before fw-4.15.0, StrayMark injected directives only into platform-specific files (CLAUDE.md, GEMINI.md, copilot-instructions, .cursorrules, cursor/rules/straymark.md); adopters using any of the other 15+ CLIs had to copy directives by hand. From this release, straymark init and update-framework keep AGENTS.md in sync with STRAYMARK.md automatically. - New template dist/dist-templates/directives/AGENTS.md (reference shape; pointer to STRAYMARK.md plus minimum-viable body for agents that cannot follow relative links) - New injection entry in dist/dist-manifest.yml, placed first as the universal entry point - STRAYMARK.md documents AGENTS.md coexistence with CLI-specific files (different identity strings, same source of truth) - remove.rs legacy fallback updated to clean AGENTS.md for installations that lose .straymark/dist-manifest.yml - Three new integration tests in cli/tests/inject_test.rs: template-has-markers, manifest-declares-injection, coexists-with-preexisting-file - Governance footers and version tables bumped to v4.15.0 across EN + i18n/es + i18n/zh-CN - README and ADOPTION-GUIDE list AGENTS.md as the universal entry point with the full reader-CLI inventory CLI version unchanged (cli-3.13.1 remains the matching version). No behavior change for adopters that already maintain AGENTS.md manually: the injection appends a marker block, preserves existing custom content, and is idempotent.
The data-driven cleanup path in remove.rs already handles AGENTS.md correctly via the manifest read; the previous commit also extended the LEGACY_DIRECTIVE_TARGETS fallback so `straymark remove` cleans AGENTS.md even when the local manifest is missing or fails to parse. That is a behavioral change in the released binary and warrants a matching CLI bump per project versioning policy. - cli/Cargo.toml + Cargo.lock: 3.13.1 → 3.13.2 - CHANGELOG: section header retitled `Framework 4.15.0 / CLI 3.13.2` with a new `### Added (CLI)` subsection documenting the rationale - Version tables and example outputs in README + CLI-REFERENCE (EN + ES + zh-CN) updated to cli-3.13.2 - Adopter guidance reworked to mention update-cli alongside update-framework No behavior change beyond the LEGACY_DIRECTIVE_TARGETS extension already shipped in the previous commit.
Crates.io was previously showing a runtime copy of the root README (approximately 650 lines, badges-heavy, navigation-heavy) made by release-cli.yml at publish time. That format is tuned for GitHub visitors landing on the project, not for Rust devs evaluating the crate from a crates.io search. This commit ships a dedicated cli/README.md tailored to the crates.io audience: tagline, what-it-is paragraph, install (cargo install + prebuilt binaries for 4 platforms), 5-line quickstart, six bullets of core capabilities, multi-CLI agent support note with the AGENTS.md context, features table, and links back to the full docs on GitHub. Length: ~110 lines. Workflow change: removes the `cp README.md cli/README.md` step from release-cli.yml so cargo publish uses the file shipped in the repo instead of overwriting it with the root README at CI time. cargo package --list confirms the new README is included in the .crate artifact. No behavior change to the CLI binary; this affects only what crates.io renders on the package page for cli-3.13.2 and later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
AGENTS.mdas a first-class injection target.AGENTS.mdis the open standard for AI coding agents, donated to the Agentic AI Foundation (Linux Foundation, December 2025) and read by Claude Code, OpenAI Codex CLI, Cursor, Aider, Devin, Sourcegraph Amp, Google Jules, Zed AI, Continue, Roo Code, Factory Droids, GitHub Copilot, Gemini CLI, Windsurf, Amazon Q and others.Before
fw-4.15.0, StrayMark injected directives only into platform-specific files (CLAUDE.md,GEMINI.md,.github/copilot-instructions.md,.cursorrules,.cursor/rules/straymark.md); adopters using any of the other 15+ CLIs that readAGENTS.mdhad to copy directives by hand. From this release,straymark initandstraymark update-frameworkkeepAGENTS.mdin sync withSTRAYMARK.mdautomatically.Why this matters
AGENTS.mdconsolidates a fragmented configuration surface that emerged during 2024-2026 as each CLI invented its own directive format. By injecting there from day 1 of the adopter's project, StrayMark covers every current and future CLI that adopts the standard without per-CLI bumps.What changed
Framework (
fw-4.15.0)dist/dist-templates/directives/AGENTS.md— reference shape (pointer toSTRAYMARK.md+ minimum-viable body for agents that cannot follow relative links).dist/dist-manifest.yml, placed first as the universal entry point.STRAYMARK.md§ Directive Injection Markers documents AGENTS.md coexistence with CLI-specific files.v4.15.0across EN + i18n/es + i18n/zh-CN (QUICK-REFERENCE, AGENT-RULES, DOCUMENTATION-POLICY, C4-DIAGRAM-GUIDE, FOLLOW-UPS-BACKLOG-PATTERN).CLI (
cli-3.13.2)AGENTS.mdinLEGACY_DIRECTIVE_TARGETS(cli/src/commands/remove.rs:13). The data-driven cleanup path (manifest-aware) already handles the common case; this defensive extension covers the edge case where.straymark/dist-manifest.ymlis missing or fails to parse, soremovedoesn't leaveAGENTS.mdorphaned. Follows the existing convention of keepingLEGACY_DIRECTIVE_TARGETSin sync with the manifest'sinjections:.Cargo.toml+Cargo.lockbumped to3.13.2. Version tables and example outputs in README + CLI-REFERENCE (EN + ES + zh-CN) follow.Tests
Three new integration tests in
cli/tests/inject_test.rs:test_agents_md_template_has_markers— verifies the shipped template's marker shape and STRAYMARK.md pointer.test_manifest_declares_agents_md_injection— pins the manifest entry so init/update/remove all pick AGENTS.md via the data-driven path.test_agents_md_coexists_with_preexisting_file— append-when-no-markers behavior against the very common case of an adopter who already maintains an AGENTS.md.Design notes
Reference shape, not embed. Parallel to
CLAUDE.md/GEMINI.md: marker block points toSTRAYMARK.md, with a minimum-viable body below for readers that cannot follow relative links. Rationale: the AGENTS.md convention emphasizes conciseness;.cursorrulesalready embeds the full content for the one CLI that needs it.Position: root of the repo. AGENTS.md has a "nearest in the tree" reading convention, so root coverage is enough.
Coexistence with pre-existing
AGENTS.md. Many adopters already maintain a hand-writtenAGENTS.md. The existinginject_directiveflow appends the marker block when no markers are present — pre-existing custom content is preserved. Testtest_agents_md_coexists_with_preexisting_filepins this behavior.Why bump CLI to
3.13.2. Theremove.rschange modifies the released binary's behavior in the edge case where the local manifest is missing. Per the project's versioning policy, any behavior change in the binary warrants a matching CLI bump. The framework manifest path covers the common case; the CLI bump covers the legacy fallback. Both framework and CLI tags should be pushed together once merged.Test plan
cargo test --quiet— all suites pass (including the three new AGENTS.md tests)cargo check— Cargo.lock reflects3.13.2fw-4.15.0andcli-3.13.2onmainHEAD and push together (git push origin fw-4.15.0 cli-3.13.2).straymark updatein a pilot adopter; confirmAGENTS.mdlands at root with markers and the new CLI binary is in place.Risks
.gitignoreexcluding AGENTS.md (rare but possible)cli-3.13.1withfw-4.15.0and corrupted manifest runsremovecli-3.13.2fixes it. Common path (manifest present) works on both binaries.Related
Closes the position raised in the project's "Estado del arte" analysis (R5: "el sitio no reconoce AGENTS.md como estándar dominante"). The website narrative for
fw-4.15.0can now claim multi-CLI coverage as a first-class feature, not an aspiration.