chore: カバレッジ計測を pre-commit から pre-push へ移動#464
Merged
Conversation
毎コミットで cargo llvm-cov のインストルメントビルドが走り遅かったため、 pre-commit から coverage を外し pre-push へ移動。llvm-cov はテストも実行する ため pre-push の cargo test を兼ねる形で統合し重複を排除した。100% ゲートは push 時ローカルと PR の CI で引き続き担保する。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
📊 Test Coverage
🎉✨ パーフェクト!全ファイル Lines カバレッジ 100% を達成しました 🏆🐰 |
kkyosuke
added a commit
that referenced
this pull request
Jun 28, 2026
## 何を実行したか usagi がセッションへ配布する同梱スキルを **機能(feature)単位で ON/OFF** できる設定を追加した。グローバル設定(`~/.usagi/settings.json`)とプロジェクト個別設定(`<repo>/.usagi/settings.json`)の両方で切り替えられる。#462 で追加された PR 運用スキルを最初の対象機能 `pull-request` として扱う。 ## なぜ usagi 固有の `usagi-session` は常に効かせたい一方、#462 以降で機能ごとに追加していくスキルは、プロジェクトや好みによって使う・使わないを選びたい。これまで同梱スキルは一律で全セッションに配布されるだけで、利用者が切り替える手段がなかった。 `usagi-session` を常時 ON(設定対象外)に固定し、PR 運用スキル(`usagi-pr-create` / `usagi-pr-update` / `usagi-pr-fix`)を `pull-request` 機能としてまとめて ON/OFF できるようにする。今後追加するスキルも `SkillFeature` に機能を足してスキルへ紐付けるだけで、設定・画面・CLI に自動的に載る。 ## 変更点 - **同梱スキルの機能グループ化** - `domain/settings.rs`: トグル可能な機能を表す `SkillFeature` enum(現状 `PullRequest`、id=`pull-request`)を追加。`Settings.skill_features: BTreeMap<String, bool>`(機能 ID→有効/無効、既定と同じ値は持たない)と `skill_feature_enabled()`、未知キーを落とす `sanitized()`、`with_local` のマージを追加。`LocalSettings.skill_features` と `skill_feature_override()` を追加。 - `infrastructure/skills.rs`: 各同梱スキル(`Embedded`)に所属機能 `Option<SkillFeature>` を持たせ、#462 の PR 3 スキルを `pull-request` に、`usagi-session` を `None`(常時配布)に分類。`link` は実効設定を受け取り、**機能が有効なスキルだけ** worktree に symlink する(`materialize` は従来どおり全スキルを展開)。 - **実効設定の解決**: `usecase/settings.rs` に `effective_for(repo_root)` を追加し、`session create` 時にグローバル ⊕ ローカルの実効設定を解決して `link` に渡す(取得失敗時は既定=全 ON)。 - **設定画面 / CLI**: Config 画面の固定項目の下に、トグル可能な機能ごとの行を動的に追加(グローバル=On/Off、ワークスペース=Global/Override の循環)。`usagi config` の一覧にも `skill:<機能 ID> true/false` 行を表示。 - **ドキュメント**(記載=実装済みに従い同 PR で反映): `05-settings.md`(設定項目・ローカル設定・効く場面)、`04-orchestration.md`(同梱スキル一覧の機能表とトグル挙動)、`data/01-global.md`・`data/02-workspace.md`(JSON 例)、`design/04-config.md`(画面行)。 > 注: 同梱スキルのファイル(`assets/skills/usagi-pr-*`)と配布基盤は #462 でマージ済みのため、本 PR の差分には含まない(main へリベース済み)。本 PR は ON/OFF 機構と機能への紐付けのみ。 ## 動作確認 - `cargo fmt --check` ✅ - `cargo clippy --all-targets -- -D warnings` ✅ - `cargo test`(lib 2313 件+統合テスト)✅ - カバレッジ **lines 100% / functions 100%**(`scripts/coverage.sh` の閾値強制/pre-push で通過)✅ - 追加テスト: domain(機能の既定/上書き/マージ/sanitize、serde 往復)、`skills`(無効機能はスキップし必須スキルは配布)、`usecase::settings::effective_for`、Config 画面の機能トグル行(グローバル On/Off・ローカル Global→On→Off 循環・ナビゲーション・行描画)。 UI はターミナル画面のため画像添付なし。Config 画面のレイアウトは `document/design/04-config.md` の ASCII 図を更新済み(固定項目の下に `PR Skills < On >` 行が並ぶ)。 > 最新の main(#462 / #463 / #464 を含む)へリベース済み。依存する未マージ PR はない。 --------- Co-authored-by: test <test@example.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
目的
pre-commit で毎コミットごとに
cargo llvm-cov(カバレッジ計測のインストルメントビルド)が走り、コミットが遅かった(~85s〜)。コミット体験を高速化しつつ、カバレッジ 100% ゲートは維持する。変更内容
coverageステップを削除。残るのはbranch-name/fmtのみで高速化。cargo testをcoverage(cargo llvm-cov)に置き換え。llvm-cov はテストも実行するため、別途cargo testは不要(重複排除)。clippy と並列実行。document/06-conventions.mdの Git Hooks 表を実態に合わせて更新(pre-push にカバレッジ確認を明記)。元々この表には pre-commit に coverage の記載が無く、実装とドリフトしていたのも解消。scripts/coverage.shのコメントを pre-commit → pre-push に修正。カバレッジ担保
100% ゲートは引き続き二段で担保:
coverage_enforcecoverage.ymlが 100% 未満で failテスト・確認方法
🤖 Generated with Claude Code