From 7167b4686b20d85263c76e84d384d747add7ba2e Mon Sep 17 00:00:00 2001 From: MaxymVlasov Date: Tue, 28 Jul 2026 23:29:30 +0300 Subject: [PATCH 1/2] chore(ai): recommend OpenSpec for scoping AI-assisted changes Split out of #1002's OpenSpec-adjacent bits so that PR's tool-version pinning work doesn't have to wait on this. Adds an AI_POLICY.md section recommending contributors scope AI-assisted changes with OpenSpec's propose/apply workflow before code gets written, wires the openspec-* skills into AGENTS.md's skill-routing table, and ignores `.agents/skills/openspec-*`/`.agents/commands/opsx/` since `openspec init` generates those locally and they must never be committed. See: https://github.com/antonbabenko/pre-commit-terraform/pull/1002#pullrequestreview-4800533366 Assisted-by: Sisyphus:claude-sonnet-5 opencode --- .github/AI_POLICY.md | 8 ++++++++ .gitignore | 4 ++++ AGENTS.md | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/.github/AI_POLICY.md b/.github/AI_POLICY.md index 40a1d4d7c..add017f34 100644 --- a/.github/AI_POLICY.md +++ b/.github/AI_POLICY.md @@ -14,6 +14,14 @@ The contributor — not the AI — is the author of the contribution. Using an L The LLM types for you. It doesn't think for you. +## Recommended tooling + +If you're using an AI coding agent, install [OpenSpec](https://openspec.dev/) (`npm install -g @fission-ai/openspec@latest`, then `openspec init`) and use its spec-driven workflow (`/opsx:propose` → `/opsx:apply`) to scope the change into a reviewable proposal + spec + tasks *before* any code gets written. `openspec init` provisions the matching skills/commands locally — see [`AGENTS.md`](../AGENTS.md#skill-routing). + +These skills are not installed in this repo — `.agents/skills/openspec-*`, and `.agents/commands/opsx/` are generated on your own machine by `openspec init` and must never be committed. Provision them locally, keep them out of your diffs and PRs. + +Scoping the change up front makes it easier to meet the ownership expectations above: you review and understand the plan before the AI starts typing, instead of reverse-engineering intent from a pile of already-generated code. + ## Disclosure You are encouraged (but not required) to disclose when AI tools contributed to your work. A short note in the PR description is enough — e.g. *"Tests were initially drafted with an LLM and then reviewed and adjusted by me."* diff --git a/.gitignore b/.gitignore index 10bbad3e8..dbf2525e6 100644 --- a/.gitignore +++ b/.gitignore @@ -177,3 +177,7 @@ pyrightconfig.json # End of https://www.toptal.com/developers/gitignore/api/python tests/results/* + +# Drop openspec.ai generated files to not clutter the repo but still be able to use it locally +.agents/commands/opsx/* +.agents/skills/openspec-* diff --git a/AGENTS.md b/AGENTS.md index 83434bf04..2fd8ee730 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -75,3 +75,9 @@ Load these skills when their triggers match. | --- | --- | | Creating a new skill: registering in AGENTS.md, choosing script vs SKILL.md | `adding-skills` | | Create a commit, GitHub issue, or PR | `git-workflow` | +| Propose a new OpenSpec change (design, specs, tasks in one step) | `openspec-propose` | +| Think through an idea/problem before or during an OpenSpec change | `openspec-explore` | +| Implement tasks from an existing OpenSpec change | `openspec-apply-change` | +| Revise an OpenSpec change's planning artifacts after edits/new decisions | `openspec-update-change` | +| Sync delta specs from a change into main specs (without archiving) | `openspec-sync-specs` | +| Archive a completed OpenSpec change | `openspec-archive-change` | From 706791b45593892c9cfc667d8044095497059ea4 Mon Sep 17 00:00:00 2001 From: Maksym Vlasov Date: Tue, 28 Jul 2026 23:33:58 +0300 Subject: [PATCH 2/2] Update .gitignore Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index dbf2525e6..daf2d67a2 100644 --- a/.gitignore +++ b/.gitignore @@ -178,6 +178,6 @@ pyrightconfig.json tests/results/* -# Drop openspec.ai generated files to not clutter the repo but still be able to use it locally +# Ignore OpenSpec-generated files; keep them available for local use without cluttering the repo .agents/commands/opsx/* .agents/skills/openspec-*