From e05291cdd617008b0935756f120534171a8b583d Mon Sep 17 00:00:00 2001 From: Baptiste LAFOURCADE Date: Mon, 12 Oct 2026 16:06:51 +0200 Subject: [PATCH 1/3] docs(aidd-context): let rule generation cover OpenCode V1 The rule contract excluded OpenCode V1, yet the contribution it writes for OpenCode is the root `AGENTS.md`, and OpenCode V1's rules documentation reads that file: "Place an AGENTS.md in your project root for project-specific rules", with config `instructions` only combined with it. The OpenCode row now covers V1 and V2, and the V1 documentation joins the checked contracts. This rests on the documentation: no OpenCode 1.x session has been run against a generated rule. Closes #913 Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VE16AxC1V9wAMGmGgefe4z --- .../skills/05-rule-generate/actions/03-validate.md | 2 +- .../skills/05-rule-generate/references/tool-paths.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/aidd-context/skills/05-rule-generate/actions/03-validate.md b/plugins/aidd-context/skills/05-rule-generate/actions/03-validate.md index fb6e8c5cf..75319de4b 100644 --- a/plugins/aidd-context/skills/05-rule-generate/actions/03-validate.md +++ b/plugins/aidd-context/skills/05-rule-generate/actions/03-validate.md @@ -15,7 +15,7 @@ A short pass or fail line per rule file. 1. **Operation.** Create/update/publish: confirm expected sources and publications exist. Delete: confirm the selected source and its native files or shared rule body are absent; remaining rules and user bytes survive. 2. **Contract.** For remaining files, validate against [rule-authoring.md](../references/rule-authoring.md) and confirmed intent, including exact literals. 3. **Target.** Validate target path and frontmatter against [tool-paths.md](../references/tool-paths.md). - For Codex and OpenCode V2, each remaining body must appear once in the shared signed contribution; deleting the last shared rule removes that contribution. User guidance and memory bytes must survive, and rerunning the installed script with `--publish` must be byte-identical. Remaining native files retain complete bodies and scope syntax. Report publication separately from consumption; only real host evidence proves runtime use. + For Codex and OpenCode, each remaining body must appear once in the shared signed contribution; deleting the last shared rule removes that contribution. User guidance and memory bytes must survive, and rerunning the installed script with `--publish` must be byte-identical. Remaining native files retain complete bodies and scope syntax. Report publication separately from consumption; only real host evidence proves runtime use. 4. **Report.** Emit one pass/fail line per file. ## Test diff --git a/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md b/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md index a65c28442..1c8fc4819 100644 --- a/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md +++ b/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md @@ -10,13 +10,13 @@ This reference covers project rule generation only. Confirm hosts explicitly; a | Cursor | `cursor` | `.cursor/rules//.mdc` | `description`, comma-joined `globs`, `alwaysApply: false`; all files omit globs and use true | | GitHub Copilot | `copilot` | `.github/instructions/-.instructions.md` | comma-joined `applyTo`; `**` for all files | | Codex | `codex` | root `AGENTS.md`, shared signed `aidd_rules` contribution | scopes are instructions to the model | -| OpenCode V2 | `opencode` | the same contribution in root `AGENTS.md` | scopes are instructions to the model | +| OpenCode | `opencode` | the same contribution in root `AGENTS.md`, read by V1 and V2 | scopes are instructions to the model | Use taxonomy and `#-slug` naming in [rule-authoring.md](rule-authoring.md). Copilot drops the slug's single-digit prefix and adds the category's two-digit prefix, e.g. `01-standards/1-naming` becomes `01-naming.instructions.md`. -Codex Markdown guidance is not a `.codex/rules` execution policy. OpenCode V2 ignores config `instructions`; file links and modular `.opencode/rules` sources alone do not publish their text. This contract excludes OpenCode V1. Native syntax tests prove rendering, not runtime consumption by every host. Codex/OpenCode selected together appear once in the shared file; other hosts may also discover AGENTS.md, so physical deduplication does not guarantee model-context deduplication across surfaces. +Codex Markdown guidance is not a `.codex/rules` execution policy. OpenCode V2 ignores config `instructions`; file links and modular `.opencode/rules` sources alone do not publish their text. OpenCode V1 reads the same root `AGENTS.md`; its config `instructions` only add files to it. Native syntax tests prove rendering, not runtime consumption by every host. Codex/OpenCode selected together appear once in the shared file; other hosts may also discover AGENTS.md, so physical deduplication does not guarantee model-context deduplication across surfaces. -Official contracts checked on 2026-10-11: [Claude Code rules](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules), [Cursor rules](https://cursor.com/docs/rules) and [CLI loading](https://cursor.com/docs/cli/using#rules), [Copilot CLI instructions](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions), [Codex AGENTS.md](https://learn.chatgpt.com/docs/agent-configuration/agents-md), and [OpenCode V2 instructions](https://opencode.ai/v2/docs/instructions/). +Official contracts checked on 2026-10-11: [Claude Code rules](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules), [Cursor rules](https://cursor.com/docs/rules) and [CLI loading](https://cursor.com/docs/cli/using#rules), [Copilot CLI instructions](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions), [Codex AGENTS.md](https://learn.chatgpt.com/docs/agent-configuration/agents-md), [OpenCode V1 rules](https://opencode.ai/docs/rules/) and [OpenCode V2 instructions](https://opencode.ai/v2/docs/instructions/). Publication does not force a running host to reload. Verify changed rules in a fresh session: Codex builds its instruction chain at startup; Copilot applies edits to a new or resumed session. OpenCode V2 refreshes ambient AGENTS.md before the next request, but already loaded nested guidance needs a new session. Claude project rules require the `project` settings source; Cursor rules concern Agent rather than Tab or Inline Edit. The writer preserves patterns without implementing each host's glob parser; a syntactically invalid or unmatched pattern can activate no files. Confirm representative matching and nonmatching files in the selected host. From 6337d77986a003cfc1533dda5f5ceccd91edc0c4 Mon Sep 17 00:00:00 2001 From: Baptiste LAFOURCADE Date: Mon, 12 Oct 2026 17:13:10 +0200 Subject: [PATCH 2/3] docs(aidd-context): name OpenCode once, with no version and no date Both OpenCode versions read the root `AGENTS.md`, so the row and the sentence under the table name OpenCode alone, and the checked-contracts line loses its date. The tracker-ID rule now also keeps dates out, and covers docs. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VE16AxC1V9wAMGmGgefe4z --- .claude/rules/01-standards/2-tracker-ids.md | 2 +- .../skills/05-rule-generate/references/tool-paths.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.claude/rules/01-standards/2-tracker-ids.md b/.claude/rules/01-standards/2-tracker-ids.md index 231be1310..3c92e7478 100644 --- a/.claude/rules/01-standards/2-tracker-ids.md +++ b/.claude/rules/01-standards/2-tracker-ids.md @@ -1,3 +1,3 @@ # Tracker IDs -- No ticket/run IDs in code, comments, tests or CI. +- No dates or ticket/run IDs in code, comments, tests, CI or docs. diff --git a/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md b/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md index 1c8fc4819..fb96c940e 100644 --- a/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md +++ b/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md @@ -10,13 +10,13 @@ This reference covers project rule generation only. Confirm hosts explicitly; a | Cursor | `cursor` | `.cursor/rules//.mdc` | `description`, comma-joined `globs`, `alwaysApply: false`; all files omit globs and use true | | GitHub Copilot | `copilot` | `.github/instructions/-.instructions.md` | comma-joined `applyTo`; `**` for all files | | Codex | `codex` | root `AGENTS.md`, shared signed `aidd_rules` contribution | scopes are instructions to the model | -| OpenCode | `opencode` | the same contribution in root `AGENTS.md`, read by V1 and V2 | scopes are instructions to the model | +| OpenCode | `opencode` | the same contribution in root `AGENTS.md` | scopes are instructions to the model | Use taxonomy and `#-slug` naming in [rule-authoring.md](rule-authoring.md). Copilot drops the slug's single-digit prefix and adds the category's two-digit prefix, e.g. `01-standards/1-naming` becomes `01-naming.instructions.md`. -Codex Markdown guidance is not a `.codex/rules` execution policy. OpenCode V2 ignores config `instructions`; file links and modular `.opencode/rules` sources alone do not publish their text. OpenCode V1 reads the same root `AGENTS.md`; its config `instructions` only add files to it. Native syntax tests prove rendering, not runtime consumption by every host. Codex/OpenCode selected together appear once in the shared file; other hosts may also discover AGENTS.md, so physical deduplication does not guarantee model-context deduplication across surfaces. +Codex Markdown guidance is not a `.codex/rules` execution policy. OpenCode publishes through root `AGENTS.md` alone: config `instructions`, file links and modular `.opencode/rules` sources are not used. Native syntax tests prove rendering, not runtime consumption by every host. Codex/OpenCode selected together appear once in the shared file; other hosts may also discover AGENTS.md, so physical deduplication does not guarantee model-context deduplication across surfaces. -Official contracts checked on 2026-10-11: [Claude Code rules](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules), [Cursor rules](https://cursor.com/docs/rules) and [CLI loading](https://cursor.com/docs/cli/using#rules), [Copilot CLI instructions](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions), [Codex AGENTS.md](https://learn.chatgpt.com/docs/agent-configuration/agents-md), [OpenCode V1 rules](https://opencode.ai/docs/rules/) and [OpenCode V2 instructions](https://opencode.ai/v2/docs/instructions/). +Official contracts: [Claude Code rules](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules), [Cursor rules](https://cursor.com/docs/rules) and [CLI loading](https://cursor.com/docs/cli/using#rules), [Copilot CLI instructions](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions), [Codex AGENTS.md](https://learn.chatgpt.com/docs/agent-configuration/agents-md), [OpenCode rules](https://opencode.ai/docs/rules/) and [instructions](https://opencode.ai/v2/docs/instructions/). Publication does not force a running host to reload. Verify changed rules in a fresh session: Codex builds its instruction chain at startup; Copilot applies edits to a new or resumed session. OpenCode V2 refreshes ambient AGENTS.md before the next request, but already loaded nested guidance needs a new session. Claude project rules require the `project` settings source; Cursor rules concern Agent rather than Tab or Inline Edit. The writer preserves patterns without implementing each host's glob parser; a syntactically invalid or unmatched pattern can activate no files. Confirm representative matching and nonmatching files in the selected host. From 08d421c16f0300ada53008420ecf691d97e50ddd Mon Sep 17 00:00:00 2001 From: Baptiste LAFOURCADE Date: Mon, 12 Oct 2026 17:15:31 +0200 Subject: [PATCH 3/3] docs(aidd-context): state the OpenCode target as one instruction The sentence listing what OpenCode does not read named three formats a generator could pick back up. It now says only where to write and the one wrong target the contract used to name, `.opencode/rules`. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VE16AxC1V9wAMGmGgefe4z --- .../skills/05-rule-generate/references/tool-paths.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md b/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md index fb96c940e..b8e6338b2 100644 --- a/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md +++ b/plugins/aidd-context/skills/05-rule-generate/references/tool-paths.md @@ -14,7 +14,7 @@ This reference covers project rule generation only. Confirm hosts explicitly; a Use taxonomy and `#-slug` naming in [rule-authoring.md](rule-authoring.md). Copilot drops the slug's single-digit prefix and adds the category's two-digit prefix, e.g. `01-standards/1-naming` becomes `01-naming.instructions.md`. -Codex Markdown guidance is not a `.codex/rules` execution policy. OpenCode publishes through root `AGENTS.md` alone: config `instructions`, file links and modular `.opencode/rules` sources are not used. Native syntax tests prove rendering, not runtime consumption by every host. Codex/OpenCode selected together appear once in the shared file; other hosts may also discover AGENTS.md, so physical deduplication does not guarantee model-context deduplication across surfaces. +Codex Markdown guidance is not a `.codex/rules` execution policy. OpenCode: write the root `AGENTS.md` only, never `.opencode/rules`. Native syntax tests prove rendering, not runtime consumption by every host. Codex/OpenCode selected together appear once in the shared file; other hosts may also discover AGENTS.md, so physical deduplication does not guarantee model-context deduplication across surfaces. Official contracts: [Claude Code rules](https://code.claude.com/docs/en/memory#organize-rules-with-clauderules), [Cursor rules](https://cursor.com/docs/rules) and [CLI loading](https://cursor.com/docs/cli/using#rules), [Copilot CLI instructions](https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-custom-instructions), [Codex AGENTS.md](https://learn.chatgpt.com/docs/agent-configuration/agents-md), [OpenCode rules](https://opencode.ai/docs/rules/) and [instructions](https://opencode.ai/v2/docs/instructions/).