Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 80 additions & 0 deletions .ai/ai-repo-ops.lock.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
schema_version: 1
source:
repository: yamk12nfu/ai-repo-ops
distribution: base
version: 0.1.5
commit: null
distribution_content_sha256: b89bd09f27531f15733d306adba73bc7918e6aea8b639058c10a9972c54db94e
checksum:
algorithm: sha256
mode: canonical_text_lf_utf8bom_strip_v1
managed_files:
- path: .ai/managed/prompts/review.md
source: distribution/base/files/.ai/managed/prompts/review.md
installed_sha256: 25abc4a2d914dd506a47b0078b263660f265251984d58082df350e303e6f6255
strategy: managed_overwrite
- path: .ai/managed/prompts/improve.md
source: distribution/base/files/.ai/managed/prompts/improve.md
installed_sha256: 65232e883805072d997e02fc8c9872d56c02c38575cce298a329ca0b48a48945
strategy: managed_overwrite
- path: .ai/managed/prompts/issue-fix.md
source: distribution/base/files/.ai/managed/prompts/issue-fix.md
installed_sha256: 3db5751b25168aad6677ade62d7370c840fb4b54c784ba1606e880858da4f93d
strategy: managed_overwrite
- path: .ai/managed/prompts/knowledge-refresh.md
source: distribution/base/files/.ai/managed/prompts/knowledge-refresh.md
installed_sha256: 651574fd7a55837d1cd513db5258e52f896bffc6163fdbfeb5d86c423bd517d4
strategy: managed_overwrite
- path: .ai/managed/prompts/release-check.md
source: distribution/base/files/.ai/managed/prompts/release-check.md
installed_sha256: 34862b7f5bf3a2f6c93b55ea72a2925ff33e7e2711aafed2526fe484e426ffe2
strategy: managed_overwrite
- path: .ai/managed/policies/default.yaml
source: distribution/base/files/.ai/managed/policies/default.yaml
installed_sha256: 2e49d418d6c6c32dd5e4308790278c143326d3156bcfdd24706634834d3a372d
strategy: managed_overwrite
- path: .ai/managed/policies/low-risk.yaml
source: distribution/base/files/.ai/managed/policies/low-risk.yaml
installed_sha256: 612e55e403e6a769c41993e99681ce7597892c39075177fd3f5885d55e64c379
strategy: managed_overwrite
- path: .ai/managed/policies/security.yaml
source: distribution/base/files/.ai/managed/policies/security.yaml
installed_sha256: 56925e9f7910e2029c44e5406390c121d67b77c58e476394a8316ef30a50a746
strategy: managed_overwrite
- path: .ai/managed/schemas/project.schema.json
source: distribution/base/files/.ai/managed/schemas/project.schema.json
installed_sha256: 5bf644018f1157c581f560ce97cca48c654ed2148f9cfadf48b1d203c7873bcf
strategy: managed_overwrite
- path: .ai/managed/schemas/knowledge.schema.json
source: distribution/base/files/.ai/managed/schemas/knowledge.schema.json
installed_sha256: d5c65ca373f81150ffb4ef280cc1942f4335bc04abfb39d92fc79153507be0e5
strategy: managed_overwrite
seed_files:
- path: .ai/project.yaml
strategy: create_only
- path: .github/workflows/ai-review.yml
strategy: create_only
patches:
- type: append_unique_lines
path: .gitignore
lines:
- .ai/runs/
- .ai/tmp/
- .ai/logs/
- type: append_unique_lines
path: .gitattributes
lines:
- "# ai-repo-ops managed text files"
- .ai/managed/** text eol=lf
- .ai/project.yaml text eol=lf
- .ai/ai-repo-ops.lock.yaml text eol=lf
- .ai/local/knowledge/** text eol=lf
- .github/workflows/ai-*.yml text eol=lf
- type: append_unique_lines
path: .prettierignore
lines:
- "# ai-repo-ops managed files"
- .ai/managed/
- .ai/ai-repo-ops.lock.yaml
created_at: 2026-07-21T14:31:58.122Z
updated_at: 2026-07-21T14:31:58.122Z
38 changes: 38 additions & 0 deletions .ai/managed/policies/default.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# ai-repo-ops managed policy: default
# 直接編集しないでください(変更は中央 ai-repo-ops 側で行います)。
# risk_level: medium のリポジトリ向けの既定ポリシー。

schema_version: 1
name: default
description: medium リスク向けの標準ポリシー。安全側に倒しつつ通常の改善を許可する。

change_limits:
max_changed_files: 10
max_added_lines: 400

review:
require_human_review: true
auto_merge: false
block_on:
- failing_required_gates
- secret_detected
- forbidden_path_modified
- managed_file_edited

allowed_actions:
- fix_bug
- add_test
- update_docs
- refactor_safe

forbidden_paths:
- ".env"
- ".env.*"
- "secrets/**"
- "infra/prod/**"
- ".github/workflows/**"

quality_gates:
required:
- lint
- test
36 changes: 36 additions & 0 deletions .ai/managed/policies/low-risk.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# ai-repo-ops managed policy: low-risk
# 直接編集しないでください(変更は中央 ai-repo-ops 側で行います)。
# risk_level: low のリポジトリ向け。実験的 / 影響範囲の小さい repo を想定し緩める。

schema_version: 1
name: low-risk
description: low リスク向けポリシー。変更上限を広げ、安全なリファクタを許可する。

change_limits:
max_changed_files: 25
max_added_lines: 1000

review:
require_human_review: true
auto_merge: false
block_on:
- failing_required_gates
- secret_detected
- forbidden_path_modified

allowed_actions:
- fix_bug
- add_test
- update_docs
- refactor_safe
- refactor_broad
- dependency_bump_patch

forbidden_paths:
- ".env"
- ".env.*"
- "secrets/**"

quality_gates:
required:
- test
41 changes: 41 additions & 0 deletions .ai/managed/policies/security.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# ai-repo-ops managed policy: security
# 直接編集しないでください(変更は中央 ai-repo-ops 側で行います)。
# risk_level: high / セキュリティ重要 repo 向け。最も厳しい制約を適用する。

schema_version: 1
name: security
description: high リスク向けの厳格ポリシー。変更を最小に抑え、人間レビューを必須にする。

change_limits:
max_changed_files: 5
max_added_lines: 150

review:
require_human_review: true
auto_merge: false
block_on:
- failing_required_gates
- secret_detected
- forbidden_path_modified
- managed_file_edited
- dependency_added
- public_api_changed

allowed_actions:
- fix_bug
- add_test

forbidden_paths:
- ".env"
- ".env.*"
- "secrets/**"
- "infra/**"
- ".github/workflows/**"
- "**/Dockerfile"
- "**/*.tf"

quality_gates:
required:
- lint
- typecheck
- test
59 changes: 59 additions & 0 deletions .ai/managed/prompts/improve.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# AI Improve Prompt(ローカル改善ループ)

あなたは対象リポジトリを継続的に改善する AI メンテナです。
このプロンプトは、**開発者のローカル環境(Claude Code 等)で、開発者の同席のもとで実行される**
ことを前提とします(CI の中で自動実行されるものではありません)。
このプロンプトは ai-repo-ops が配布する managed file です。直接編集しないでください
(変更は中央 `ai-repo-ops` 側で行います)。

## 入力

- `.ai/project.yaml`: 特に `project.risk_level` / `ai.max_loops` / `ai.max_changed_files` /
`ai.allowed_paths` / `ai.forbidden_paths` / `commands` / `quality_gates` / `review`。
- `.ai/managed/policies/*.yaml`: 適用ポリシー。`project.risk_level` に対応するものを読む
(`low` → `low-risk.yaml` / `medium` → `default.yaml` / `high` → `security.yaml`)。
- リポジトリの現状(コード、テスト、CI 結果、未解決の TODO / lint 警告)。

## 制約(厳守)

以下はプロンプト上のお願いではなく、**`aro guard` と CI によって機械的に検証される**。
違反した変更は PR の required check が落ちるため、merge に至らない。

1. 変更してよいのは `ai.allowed_paths` に一致する path のみ。
2. `ai.forbidden_paths`(および適用 policy の `forbidden_paths`)に一致する path は決して変更しない。
3. 1 回の改善で触れるファイルは `ai.max_changed_files` と適用 policy の `change_limits.max_changed_files`
の小さい方以下、追加行数は適用 policy の `change_limits.max_added_lines` 以下に収める。
4. 改善ループは `ai.max_loops` 回までで打ち切る。
5. `.ai/managed/**` と `.ai/ai-repo-ops.lock.yaml` は編集しない(aro が管理)。
6. `.github/workflows/**` と `.ai/project.yaml` は編集しない(前者は既定の禁止、
後者は変更すると guard が `project_config` violation として必ず表面化させる)。

## 進め方

0. **開始前の安全確認**: `git status --short` を実行し、clean worktree であること(または専用
branch / worktree で作業していること)を確認する。**既存の未コミット変更がある場合は、
開発者に確認するまで一切の変更・破棄を行わない。** 作業は専用 branch
(例: `git switch -c chore/ai-improve-<topic>`)で行う。
1. 小さく安全な改善を 1 つ選ぶ(lint 修正、テスト追加、デッドコード削除、ドキュメント整備など)。
2. 変更を実施する。
3. **自己検証を行う(両方とも通ること)**:
- `git fetch origin <default branch>` してから
`aro guard --repo . --base origin/<default branch>` — policies 違反の機械検証
(exit 0 であること。fetch 済みの `origin/<default branch>` を使うと、ローカルの
default branch が古くても CI に近い merge-base で検証できる)
- `quality_gates.required` に対応する `commands.*` のコマンド — すべて緑であること
4. guard 違反・gates 失敗を解消できない、または `max_changed_files` を超える場合は
変更を破棄し、提案だけを開発者に残す(無理に通そうとしない)。
**破棄してよいのは、この改善ループで自分が作成・変更したファイルだけ。破棄前に
対象ファイルの一覧を開発者へ提示して確認を得る。**
5. 自己検証が通ったら、改善内容を開発者に提示する。**PR の作成は開発者の確認を得てから**
行う(タイトル規約: `chore(ai-improve): <改善の要約>`)。`require_human_review` が
true の間は自動 merge しない(merge は常に人間が判断する)。

## 出力

- 実施した改善の要約(目的 / 変更ファイル / リスク)。
- 自己検証の結果(`aro guard` の判定と、実行した quality gate の結果)。
- 次にやるべき改善候補(実施はしない)。

スコープを広げすぎないこと。1 PR = 1 つの明確な改善に保つ。
39 changes: 39 additions & 0 deletions .ai/managed/prompts/issue-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# AI Issue Fix Prompt

あなたは対象リポジトリの GitHub Issue を修正する AI です。
このプロンプトは ai-repo-ops が配布する managed file です。直接編集しないでください。

## 入力

- 対象 Issue(タイトル / 本文 / 再現手順 / 受け入れ条件 / ラベル)。
- `.ai/project.yaml`: `ai.allowed_paths` / `ai.forbidden_paths` / `ai.max_changed_files` /
`commands` / `quality_gates` / `review`。
- `.ai/managed/policies/*.yaml`: 適用ポリシー。

## 制約(厳守)

- 変更ファイル数は `ai.max_changed_files` と適用 policy の `change_limits.max_changed_files` の
小さい方以下、追加行数は適用 policy の `change_limits.max_added_lines` 以下に収める。

## 進め方

0. `git status --short` を実行し、clean worktree であること(または専用 branch / worktree で
作業していること)を確認する。**既存の未コミット変更がある場合は、開発者に確認するまで
一切の変更・破棄を行わない。**
1. Issue を再現・特定する。再現できない場合は、必要な情報を明記して修正を保留する。
2. 根本原因を特定し、最小の変更で修正する。project の `ai.forbidden_paths` と適用 policy の `forbidden_paths` の和集合には触れない。
3. 修正に対応するテスト(再現テスト → 修正で緑)を追加する。
4. `git fetch origin <default branch>` の後に `aro guard --repo . --base origin/<default branch>` と
`quality_gates.required` のコマンドを実行し、両方が緑であることを確認する。
5. guard 違反・gate 失敗を解消できない、または変更上限を超える場合は分割を提案し、
無理に 1 PR に詰め込まない。

## 出力

- 根本原因の説明。
- 変更内容の要約(ファイル / 方針)。
- 追加・更新したテストと、その結果。
- 残課題・フォローアップ(あれば)。

Issue の受け入れ条件を満たすことを最優先し、無関係なリファクタを混ぜないこと。
`review.require_human_review` が true の間は人間レビューを必須とする。
37 changes: 37 additions & 0 deletions .ai/managed/prompts/knowledge-refresh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Repo Knowledge Refresh(ローカル実行)

あなたは対象リポジトリの固有知識を、根拠付きで最新に保つAIメンテナです。
この手順は開発者のローカル環境(Claude Code / Codex等)で実行します。CI内でAIを起動しません。

## 所有権

- 編集してよいのは `.ai/local/knowledge/**` だけです。
- `.ai/managed/**`、`.ai/project.yaml`、source code、workflowは編集しません。
- knowledgeはコードや正式ドキュメントの代替ではなく、それらから導いた索引・要約です。

## 情報源

- 現在のHEADでGit追跡されているローカルのテキストファイルだけを根拠にします。
- repo root とすべての nested 階層にある `.env`、`.env.*`、`secrets/**`、`.git/**`、`.ai/**`
(次項の既存Knowledgeを除く)、依存物、build生成物は読みません。
- 既存Knowledgeの状態確認に限り、`.ai/local/knowledge/**` は読み取り専用で参照します。
`.ai/**` の内容はknowledgeの根拠として使いません。
- network、GitHub Issue/PR、Slack、Notion、CIログなどの外部情報は使いません。
- 推測を事実として記録しません。根拠を特定できない内容は提案に留めます。
- 初回entryでは変化しにくい正式文書を優先し、個別タスク・作業ログ・日次生成物は、明示的に対象指定されない限り根拠から除外します。
- `aro` がPATHにない場合は、`knowledge init` に使った同じlauncherで各subcommandを実行します。
- `knowledge init` の成功出力に完全な検証コマンドがある場合は、それを優先します。

## 進め方

1. `git status --short` が空であること、または専用branch/worktreeであることを確認します。
2. `.ai/local/knowledge/index.yaml` と既存Markdownを読みます。
3. `aro knowledge check --repo . --strict` を実行し、stale・欠落・不正な根拠を確認します。
4. 小さな更新単位を1つ選び、対応するMarkdownとindexだけを更新します。
5. 各entryに正確なsource pathと、検証に使った完全なlowercase HEAD SHAを記録します。
6. `aro knowledge check --repo . --strict` を通します。
7. 未commitの変更は `aro guard` の検証対象外です。差分を開発者へ提示し、人間の確認を得てknowledge変更をcommitします。
8. commit後に `aro guard --repo . --base <base>` を通します。
9. 目的、変更ファイル、根拠、検証結果、残った候補を開発者へ提示します。

PR作成とmergeは人間の確認後に行います。自動mergeはしません。
29 changes: 29 additions & 0 deletions .ai/managed/prompts/release-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# AI Release Check Prompt

あなたは対象リポジトリのリリース前チェックを行う AI です。
このプロンプトは ai-repo-ops が配布する managed file です。直接編集しないでください。

## 入力

- リリース対象の差分(前回リリース tag からの変更)。
- `.ai/project.yaml`: `project.risk_level` / `commands` / `quality_gates` / `review`。
- `.ai/managed/policies/*.yaml`: 適用ポリシー。
- CHANGELOG / リリースノート(あれば)。

## チェック項目

1. `quality_gates.required` のコマンドがすべて緑であること。
2. 破壊的変更の有無。ある場合は移行手順とバージョン bump(semver)が妥当か。
3. 秘密情報・認証情報が差分に混入していないこと。
4. ドキュメント / CHANGELOG が変更内容に追従していること。
5. `project.risk_level` が `high` の場合はロールバック手順が用意されていること。
6. `.github/workflows/**` の変更があれば permissions が過剰でないこと。

## 出力

- リリース可否の推奨(go / no-go)と根拠。
- ブロッカー一覧(あれば、`file:line` と根拠)。
- リリースノートの不足・補足提案。
- 推奨バージョン(semver)と bump 理由。

判断材料が不足している項目は「要確認」と明示し、go を安易に出さないこと。
Loading