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
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ ai-plugins/
- ドキュメントをスキップ
- 機密情報をコミット
- テストをスキップ
- `.md` の文言を照合するテストを書く(文言を固定しても振る舞いは保証されない。参照切れは検査スクリプトが見る)
- ユーザーの許可なくPRを承認

## Git運用フロー
Expand Down
2 changes: 1 addition & 1 deletion docs/specifications/cross-refactoring-apply-intake.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ graph TD
| 修正の結果を適用ラウンドの担当から読み、結果なしで修正ラウンドが進んで見送りへ至ること | 同 `tests/test_abandon_items.py` |
| 最終ゲートの修正の結果なしで取り消し、次の最終ゲートが取り消し後の地点でテストすること | 同 `tests/test_final_fix.py` |
| 帰属の段落が後ろに付いたコミットから必須の記名を読み、散文の中の記名の形の行を読まないこと | 同 `tests/test_commit_trailers_git.py`(一時リポジトリで git を実行する) |
| 無進捗の許容が起動の出力に入り、骨組みの 3 つの監視の呼び出しへ渡ること | 同 `tests/test_init.py` / `tests/test_skill_terms.py` |
| 無進捗の許容が起動の出力に入り、骨組みの 3 つの監視の呼び出しへ渡ること | 同 `tests/test_init.py`(文書の語の照合は #885 で削除) |
| 結果ファイルがあり検証を通る適用ラウンドが、変更の前と同じく 1 回目で取り込まれること | 同 `tests/test_merge_apply.py` |
| 文書の分量が分割の基準を超えないこと | `python3 scripts/check-doc-line-limit.py` |
| 参照のリンクが解決できること | `python3 scripts/check-markdown-links.py` |
Expand Down
2 changes: 1 addition & 1 deletion docs/specifications/cross-refactoring-participants.md
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@
| 完了報告と改修計画にレビュー担当の列が無く、母集合を 1 行で出すこと | `cross-refactoring/tests/test_rounds.py` / `test_plan_comment.py` |
| この変更の前の状態ファイルをラウンドの開始と完了報告が読めること | `cross-refactoring/tests/test_rounds.py` / `test_start_round_emits_runtimes.py` |
| 結果なしの試行の交代先が参加者の数の範囲で選ばれること | `cross-refactoring/tests/test_apply_attempts.py` |
| 手順書と指示書の語が新しい参加者と輪番を書くこと | `cross-refactoring/tests/test_skill_terms.py` |
| 手順書と指示書の語が新しい参加者と輪番を書くこと | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 旧関数 4 つが共通層と両 Skill の部品に残らないこと | `scripts/tests/test_shared_lib_layout.py` |

## 関連リンク
Expand Down
2 changes: 1 addition & 1 deletion docs/specifications/cross-review-writes-to-conductor.md
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,7 @@ FINDINGS=8
| 修正を現在の頭で送り、報告されたコミットが送り先に無ければ止まること | 同 `test_result_posts.py` と `plugins/ndf/skills/cross-review/tests/test_merge_fix_posts.py` |
| 単独の修正の口が同じ層を使い、送り先のブランチを決められないとき返信へ進まないこと | `plugins/ndf/scripts/tests/test_result_posts.py` |
| 骨組みの起動し直しが繰り返しの先頭へ戻り、8 の枝を 7 より先に見ること | `plugins/ndf/skills/cross-review/tests/test_skill_layout.py` |
| 文書が投稿の担い手と種別ごとの契約を書いていること | `plugins/ndf/skills/cross-review/tests/test_writes_by_conductor_docs.py` |
| 文書が投稿の担い手と種別ごとの契約を書いていること | 文書を読んで確かめる(照合していたテストは #885 で削除) |

## 関連リンク

Expand Down
8 changes: 4 additions & 4 deletions docs/specifications/ndf-agent-layers-unattended-run.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,13 +260,13 @@ supervisor と直接起動した worker を一覧し、`resets_passed` が真の

| 観点 | 確かめ方 |
| --- | --- |
| 3 層の責務の表、持ち場 5 つと関門の列、報告の 10 項目 / 5 項目、続けさせる回数 3、モデルの基準 2 つ、委譲しない 5 つ、並行の単位が supervisor、止まるときに持ち場の一覧を出す 3 つの時点 | `plugins/ndf/skills/development-workflow/tests/test_agent_layers_doc.py` |
| 3 層の責務の表、持ち場 5 つと関門の列、報告の 10 項目 / 5 項目、続けさせる回数 3、モデルの基準 2 つ、委譲しない 5 つ、並行の単位が supervisor、止まるときに持ち場の一覧を出す 3 つの時点 | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 中断の契機 4 つ、落ちた層ごとの 3 通り、解除を待つ手段 3 段、点検の手順、`--max-sleep` を付けない規約 | 同上 |
| 「メイン」の定義が supervisor を指す | 同上(`test_cross_review_defines_main_as_the_driving_supervisor`) |
| 「メイン」の定義が supervisor を指す | 同上 |
| `context-window.md` にモデルに依る目安とリポジトリに依る固定費の区別があり、規約の文書に固定費の実測値が無い | 同上 |
| 3 つの規約の文書に「窓」「親」が無い | 同上(`test_the_three_layer_docs_drop_the_old_words`) |
| 3 つの規約の文書に「窓」「親」が無い | 同上 |
| 3 層へ出すのは `/goal` だけ、関門以外は提示して進める | 同上 |
| 関門の数・承認の形が変わらない | `test_approval_gates.py` / `test_workflow_guard.py` が無改変で通る |
| 関門の数・承認の形が変わらない | `test_workflow_guard.py` が無改変で通る(`test_approval_gates.py` は #885 で削除) |
| 実機での無人の通過(人の入力の数、conductor の報告の持ち場の一覧と記録の `SendMessage` の数の一致) | リリース後テスト(`light` の課題 1 件を `/goal` で通し、次のまとまりで `standard` を含む複数の課題を関門 2 つと振り返りまで通す) |
| 上限からの再開そのもの | リリース後テスト(上限を意図して起こせないため、発生した実行の記録を読む) |

Expand Down
6 changes: 3 additions & 3 deletions docs/specifications/ndf-cleanup-and-bundle-closing.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,10 +246,10 @@ Pull Request を選ぶため、別のまとまりの課題を閉じうる。

| 観点 | 確かめ方 |
| --- | --- |
| `gh issue close` と `status "Done"` を持つ `SKILL.md` が `progress-tracking` だけ、関門が 2 つのまま | `plugins/ndf/skills/development-workflow/tests/test_workflow_hooks.py`(`test_only_progress_tracking_closes_issues` / `test_the_gates_stay_two`) |
| `gh issue close` と `status "Done"` を持つ `SKILL.md` が `progress-tracking` だけ、関門が 2 つのまま | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 3 つの終わりの工程で「まとまりを閉じる」が `issue-upkeep` より前にある | 同上 |
| 配布の記録の読み取りと閉じる手順が手順書のコード例のとおりに動く(本番の版のブロックの選択、`配布なし` の後のブロック、`まとまり:` の行の取り出し、盤面 → close → 読み直しの順、一覧が空なら止まる、最初の読みに失敗したら盤面を触らない) | 同上(`closing_step` / `record_reader` / `release_verification_template` を名前に持つテスト。疑似 `gh` で呼び出しの順を固定する) |
| `release/SKILL.md` の行数が上限(365 行)に収まる | `plugins/ndf/skills/release/tests/test_completion_check.py` |
| 配布の記録の読み取りと閉じる手順が手順書のコード例のとおりに動く(本番の版のブロックの選択、`配布なし` の後のブロック、`まとまり:` の行の取り出し、盤面 → close → 読み直しの順、一覧が空なら止まる、最初の読みに失敗したら盤面を触らない) | `plugins/ndf/skills/development-workflow/tests/test_workflow_hooks.py`(`closing_step` / `record_reader` を名前に持つテスト。疑似 `gh` で呼び出しの順を固定する) |
| `release/SKILL.md` の行数が上限(365 行)に収まる | `plugins/ndf/skills/release/tests/test_completion_check.py`(`test_the_skill_md_stays_within_its_budget`) |
| frontmatter の `description` から "after listing them for approval" が消えている | `python3 scripts/check-skill-frontmatter.py` |
| 退避のループが空白・改行・引用符・非 ASCII を含むパスと、追跡されたディレクトリの配下の無視されたパスを同じ相対パスで移す | 一時リポジトリでの実測(PR #747 の本文) |
| 書けない退避先では 1 件目を退避した後に止まり、`git worktree remove` へ進まず作業ツリーが残る | 同上 |
Expand Down
2 changes: 1 addition & 1 deletion docs/specifications/ndf-context-window-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ worker(読解)は深さ 1 に現れるため、`description` の先頭語が
| `wait-reset` が過ぎていれば直ちに終わり、未来なら差の秒数だけ眠り、2 件では早い方まで眠る。直接起動した worker だけでも眠る。`--max-sleep` の終了コード 3。負の秒数で 2 | 同上(眠る関数と時刻を差し替える) |
| `socket` を塞いだ実行で終了コード 0 | 同上 |
| conductor の行、複数セッション、2 つの supervisor の worker が起動元ごとに分かれる、層ごとの合計、束ねる候補が supervisor の行にだけ付く、worker を使いすぎの印、`--agents` を付けない既定の出力が変わらない、`--window-limit` の既定が `context-window.md` と一致 | `plugins/ndf/skills/skill-stats/tests/test_agents_report.py` |
| 手順 2 の観点に context window の行、雛形に 3 つの表があり、パス・本文・`agent_id` の列を持たない | `plugins/ndf/skills/retrospective/tests/test_context_window_section.py` |
| 手順 2 の観点に context window の行、雛形に 3 つの表があり、パス・本文・`agent_id` の列を持たない | 文書を読んで確かめる(照合していたテストは #885 で削除) |

## 運用

Expand Down
2 changes: 1 addition & 1 deletion docs/specifications/ndf-design-phase.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ AI ごとに変わり、文書の分割単位・記載項目・粒度をその
| 説明文書の Skill 数が実体と一致する | `python3 scripts/check-doc-staleness.py` |
| 参照のリンクが解決できる | `python3 scripts/check-markdown-links.py` |
| 4 ランタイムで Skill が読み込める | `bash scripts/runtime-smoke-test.sh` |
| 工程表の「設計」の行と `WF_STAGE_MATRIX` が一致する | `test_workflow_stage_matrix.py` |
| 工程表の「設計」の行と `WF_STAGE_MATRIX` が一致する | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 条件付きの工程は、記録が無くても欠落として並ばない | `test_workflow_guard.py::test_a_conditional_stage_without_a_record_is_not_a_gap` |

## 運用
Expand Down
8 changes: 4 additions & 4 deletions docs/specifications/ndf-documentation-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,12 +211,12 @@ Confluence と SharePoint の実装は別のリポジトリにあり、自リポ

| 観点 | 確かめ方 |
| --- | --- |
| 工程表が 18 行 × 5 列で、`SKILL.md` と定数が並びまで一致する | `test_workflow_stage_matrix.py` |
| 工程名の並びが 5 箇所で一致する | `test_stage_values.py` / `test_approval_gates.py` |
| 工程表が 18 行 × 5 列で、`SKILL.md` と定数が並びまで一致する | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 工程名の並びが 5 箇所で一致する | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| `documentation` の高さが 5 で、混在時にそちらで検査する | `test_documentation_mode.py` |
| 5 列目を読み、既存 4 列がずれない | 同上 |
| 承認の関門が 2 つのままである | `test_approval_gates.py` |
| 形が 9 つあり、索引が実ファイルと一致する | `test_completion_check.py` |
| 承認の関門が 2 つのままである | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 形が 9 つあり、索引が実ファイルと一致する | 索引が実在する `form-*.md` をすべて指すことは `plugins/ndf/skills/release/tests/test_completion_check.py`(`test_the_form_index_links_to_every_form_file`)で見る。形の数は文書を読んで確かめる(固定の一覧と照合していたテストは #885 で削除) |
| 新設 4 個が 4 つの manifest すべてに載る | `test_agy_distribution.py` / `validate-runtime-plugins.sh` |
| 自リポジトリ前提を持たない | `check-skill-repo-assumptions.py` |
| 説明文書の数が実体と一致する | `check-doc-staleness.py` |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,8 @@ oom_kill_increased = yes なら allowed = max(0, min(allowed, running − 1))
| 測れない環境で本数を出さず終了コード 3。`memory.events` が無ければ `oom_kill=unknown` で 0 | 同上 |
| スワップの空きが少ないと 1 減る。`oom_kill` が増えていれば「今の本数 − 1」以下で、`--running 0` / `1` では 0 になり `floor` が付かない | 同上 |
| `concurrency` が重なり・並行度・最大同時本数を出し、端が接するだけの組は重ならない。偽の `gh` が受けた引数が `pr view` だけ | 同上 |
| 下限 4・5・6 の文言、下限 6 の理由に「メモリ」と「21GiB」、コンテナを起動する担当は 1 本、重なりの目安の 3 区分と列 | `plugins/ndf/skills/development-workflow/tests/test_parallel_work_bounds.py` / `test_approval_gates.py` |
| `execution-plan.md` に置き場所・コミットしないこと・行の列・確度と状態の値・契機 5 つ・閉じる手順・組を読むこと・`capacity` を起動の前に実行することがあり、初期値の数値(2048・25%)が無い | `plugins/ndf/skills/issue-plan-strategy/tests/test_execution_plan_doc.py` |
| 下限 4・5・6 の文言、下限 6 の理由に「メモリ」と「21GiB」、コンテナを起動する担当は 1 本、重なりの目安の 3 区分と列 | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| `execution-plan.md` に置き場所・コミットしないこと・行の列・確度と状態の値・契機 5 つ・閉じる手順・組を読むこと・`capacity` を起動の前に実行することがあり、初期値の数値(2048・25%)が無い | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| `milestones.md` に「並列の組(見込み)」の節と列、段 2A から写す文、見込みであり確定は実行計画が持つ文があり、段 2A の控える項目が 6 行のまま、既存の名前と連番のテストが通る。0 件になった組の行削除で番号を詰めない | `plugins/ndf/skills/issue-upkeep/tests/test_issue_upkeep_layout.py` |
| 閉じた実行計画のコメントと振り返りが読める | リリース後テスト(次に複数の束を持つまとまりを進めたとき) |

Expand Down
2 changes: 1 addition & 1 deletion docs/specifications/ndf-instruction-files-check.md
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ semver の形(数字 3 つと任意の接尾辞)でなければ終了コー
| 許可の判定(未指定と `{}`・効かない許可)、出た版の段落(段落の先頭・箇条書きの 2 件目・折り返し行・プロジェクトのスコープに限る)、変更履歴とタグからの最大値(`10.9.0` と `10.10.0`)、名前付きの捕捉、`released.path` の境界、印、上限、値の範囲、構造の不正 | 同上(`--criteria` で観点のデータを差し替える) |
| 指摘の 1 行の形(扱いの印と位置の 3 通り)、指摘が無いときの標準出力、知らない引数で 3 | 同上 |
| 4 ランタイムの導入先(claude の複製 / codex の複製 / agy の symlink / kiro が読む `scripts/`)から起動し、0・1・2・3 の終了コードが検査の値と一致する | 手順(PR #746 の本文。16 通り) |
| `release/SKILL.md` の行数が上限に収まる | `plugins/ndf/skills/release/tests/test_completion_check.py` |
| `release/SKILL.md` の行数が上限に収まる | `plugins/ndf/skills/release/tests/test_completion_check.py`(`test_the_skill_md_stays_within_its_budget`) |

## 運用

Expand Down
6 changes: 3 additions & 3 deletions docs/specifications/ndf-workflow-unit-and-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -250,11 +250,11 @@ symlink を含む)`absent`、存在すれば(ディレクトリを含む)`

| 観点 | 確かめ方 |
| --- | --- |
| 工程表と分類表の分類が一致する | `plugins/ndf/skills/development-workflow/tests/test_workflow_stage_matrix.py` |
| 工程の並びが 4 か所で一致する | 同 `tests/test_stage_values.py` |
| 工程表と分類表の分類が一致する | 文書を読んで確かめる(照合していたテストは #885 で削除) |
Comment thread
takemi-ohama marked this conversation as resolved.
| 工程の並びが 4 か所で一致する | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 判定の単位・工程の順序・`light` の工程が本文と表で揃う | 同 `tests/test_workflow_units.py` |
| gate が案内を出し、拒否しない | 同 `tests/test_workflow_evidence.py` |
| 承認の関門と並行開発の下限が書かれている | 同 `tests/test_approval_gates.py` |
| 承認の関門と並行開発の下限が書かれている | 文書を読んで確かめる(照合していたテストは #885 で削除) |
| 本番のチャネルを宣言から読める | `plugins/ndf/skills/worktree/tests/test_production_branch.py` |
| `check` が状態ごとの終了コードを返し、ファイルを作らず、`status` と同じ 1 行目を出す | `plugins/ndf/skills/worktree/tests/test_setup.py` |
| 手順 0 が手順 1 より前にあり、分岐・拒否しない理由・判定の実体が 1 か所であることが本文に揃う | `plugins/ndf/skills/development-workflow/tests/test_declaration_check.py` |
Expand Down
Loading
Loading