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
2 changes: 2 additions & 0 deletions docs/adr/adr-066-autonomy-global-kill-switch.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ ADR-052 契約表の 4 行(opt-in 既定 / kill-switch / 未接続時の既定
if: ${{ vars.AUTONOMY_ENABLED == 'true' }} # 未定義 → '' → false → 停止(安全側)
```

**設定値は `true`(小文字ちょうど)でなければならない**。この式は文字列の完全一致であり、`True` / `TRUE` / `1` / `yes` はすべて偽 = 停止側へ倒れる。安全側の失敗ではあるが「variable を設定したのに fix job が起動しない」の実際の原因になるため、設定時に確認すること(Settings → Secrets and variables → Actions → Variables)。なお exe 側(`cli-autonomy-gate`)の外部フラグ判定は `1` 等も真として受けるため**両層で受理する値が異なる**。厳しい側(workflow 式)に合わせて `true` を使う。

- **緊急停止の操作反射の統一**: ADR-060 の `CLOUD_HARNESS` は「変数を削除すれば止まる」を運用者に訓練済み。本フラグも削除 = 停止で同方向に揃う。負極性だと「削除しても止まらない、設定しないと止まらない」という逆反射が同居し、インシデント対応時の人為ミスに直結する。

### 3. 実行コンテキスト別の権威マッピング
Expand Down
8 changes: 8 additions & 0 deletions docs/dev-conventions.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,14 @@ PR size gate (block 1500 行) に当たって PR を分割する場合の規約

**由来** (2026-08-02 WP-17 PR 2a incident、[ADR-068](adr/adr-068-fix-step-authority-boundary.md) / [ADR-069](adr/adr-069-pr-chain-declaration.md)): size gate 強制の 2 分割が抽出 (lib 2 crate) と呼び手 (cli-fix-push-gate) を分離し、宣言の無い先頭 PR が simplicity REJECT → fix の gut-revert → gate 全 PASS のまま空洞化 push という連鎖が発生した。

## jj: ファイル編集を始める前に `jj new` する

**別作業で作られた既存コミットが `@` の状態でファイルを編集しない。** 編集を始める前に `jj new -m "wip: <内容>"` で**そのターンの作業コミット**を作り、その上で編集する(`jj new` 直後の `@` も description を持つが、これは今から書き換える対象なので問題ない。禁止したいのは前ターン以前に確定した他の作業のコミットを `@` にしたまま編集することである)。

理由: jj は working copy をそのままコミットへ反映するため、既存コミットが `@` のままだと編集内容がそのコミットへ吸収される。その後 `jj describe` を実行すると**そのコミットのメッセージが上書きされ**、無関係な変更が既存コミットへ混入した状態で push されうる。push-runner のレビュー範囲は `master..@` なので混入自体はレビュー対象に入るが、「どのコミットの変更か」がずれた状態は後から追いにくい。

**由来** (2026-08-02 WP-17 PR 2 の実装セッション): 同一セッション中に 3 回発生した。関連して、同セッションでは `pnpm push` を timeout 600000ms + background で実行する ([ADR-016](adr/adr-016-long-running-command-strategy.md))、PR 作成・マージはユーザー承認を得る ([ADR-028](adr/adr-028-pnpm-create-pr-gate.md)) も併せて運用している。VSCode では AskUserQuestion の preview や同一ターンに出した本文が見えないことがあるため、**PR 本文の draft はツール呼び出しを伴わない単独メッセージで提示する**。

Comment on lines +80 to +87

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

禁止対象を「既存コミット」に限定してください。

Line [80] は、description を持つ @ の編集を禁止します。Line [82] は、jj new -m を実行してから編集するよう指定します。しかし jj new -m の直後も、新しい @ は description を持ちます。このため、規約を文字どおり実行できません。

「既存の description 済みコミット」を禁止対象にしてください。これにより、jj new -m による作業コミット作成と禁止事項が一致します。

修正例
-**description を持つコミットが `@` の状態でファイルを編集しない。**
+**既存の description 済みコミットが `@` の状態でファイルを編集しない。**
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## jj: ファイル編集を始める前に `jj new` する
**description を持つコミットが `@` の状態でファイルを編集しない。** 必ず先に `jj new -m "wip: <内容>"` で新しい作業コミットを作ってから編集を始める。
理由: jj は working copy をそのままコミットへ反映するため、description 済みコミットが `@` のままだと編集内容がそのコミットへ吸収される。その後 `jj describe` を実行すると**既存コミットのメッセージが上書きされ**、意図しない変更が既存コミットへ混入した状態で push されうる。push-runner のレビュー範囲は `master..@` なので混入自体はレビュー対象に入るが、「どのコミットの変更か」がずれた状態は後から追いにくい。
**由来** (2026-08-02 WP-17 PR 2 の実装セッション): 同一セッション中に 3 回発生した。関連して、同セッションでは `pnpm push` を timeout 600000ms + background で実行する ([ADR-016](adr/adr-016-long-running-command-strategy.md))、PR 作成・マージはユーザー承認を得る ([ADR-028](adr/adr-028-pnpm-create-pr-gate.md)) も併せて運用している。VSCode では AskUserQuestion の preview や同一ターンに出した本文が見えないことがあるため、**PR 本文の draft はツール呼び出しを伴わない単独メッセージで提示する**
## jj: ファイル編集を始める前に `jj new` する
**既存の description 済みコミットが `@` の状態でファイルを編集しない。** 必ず先に `jj new -m "wip: <内容>"` で新しい作業コミットを作ってから編集を始める。
理由: jj は working copy をそのままコミットへ反映するため、description 済みコミットが `@` のままだと編集内容がそのコミットへ吸収される。その後 `jj describe` を実行すると**既存コミットのメッセージが上書きされ**、意図しない変更が既存コミットへ混入した状態で push されうる。push-runner のレビュー範囲は `master..@` なので混入自体はレビュー対象に入るが、「どのコミットの変更か」がずれた状態は後から追いにくい。
**由来** (2026-08-02 WP-17 PR 2 の実装セッション): 同一セッション中に 3 回発生した。関連して、同セッションでは `pnpm push` を timeout 600000ms + background で実行する ([ADR-016](adr/adr-016-long-running-command-strategy.md))、PR 作成・マージはユーザー承認を得る ([ADR-028](adr/adr-028-pnpm-create-pr-gate.md)) も併せて運用している。VSCode では AskUserQuestion の preview や同一ターンに出した本文が見えないことがあるため、**PR 本文の draft はツール呼び出しを伴わない単独メッセージで提示する**
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/dev-conventions.md` around lines 80 - 87, Update the jj editing
convention around the description warning so it prohibits editing an existing
description-bearing commit at @, not any description-bearing @ commit. Keep the
required jj new -m workflow and its rationale consistent with this narrowed
prohibition.

## LLM を含む自動化経路は実走でしか検証できない (ADR-067)

LLM を step に含む workflow / パイプラインを**新規に組んだとき、および既存経路の LLM step を追加・変更したとき**は、**静的検査の通過を完了条件にしない**。実走スモークを必須の受け入れ基準として設計する。本 convention の由来となった 3 件はいずれも**既存 workflow への変更**であり、新規作成に限った規約では取りこぼす:
Expand Down
Loading
Loading