PR の CI 失敗を修正し、全 CI がパスするまでプッシュ→待機→修正を繰り返す。「/ci-fix-and-verify [PR番号]」「CI直して」「CIが落ちてる」「CI修正」などの依頼時に使用。
repo-hygiene
Audit and clean up the repository — remove dead files, fix naming inconsistencies, update .gitignore, and ensure the repo is well-organized for OSS contributors. Does NOT modify source code logic.
インストール方法を見る含まれるファイル(1)
- SKILL.md5.1 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Repository Hygiene
Audit repository structure, naming, configuration and documentation. Never modify source code logic. Deletions need user confirmation.
Never delete
| What | Why |
|---|---|
compatibility/*known-failures*.json, *-oracle-excluded.json, *-mechanisms.json, *.provenance.json, attribution-pending.json, KNOWN-FAILURES.md, GATES.md | shrink-only CI ratchets and their justifications |
compatibility/{pattern-corpus,lint-adversarial,lint-env,check-fixtures,lsp-fixtures}/ | checked-in gate inputs |
submodules/* (every entry in .gitmodules) | pinned corpus sources and upstream references |
fixtures/, target*/, pkg*/, compatibility/{sources,expected,actual,fmt,…}/, .corpus-cache/ | generated and gitignored; reclaim only with pnpm run corpus:clean, never git rm |
pgo/rsvelte.profdata, upstream_issues/ | shipped-build input; index gated by scripts/ci/check-upstream-issues.mjs |
Checklist
1. Dead and generated files
find . \( -name "*.backup" -o -name "*.bak" -o -name "*.orig" -o -name "*~" -o -name ".DS_Store" -o -name "Thumbs.db" \) \
-not -path "*/node_modules/*" -not -path "./.git/*" -not -path "*/target/*" -not -path "./submodules/*"
ls -la benchmark-results.json .benchmark-files.txt npm 2>/dev/null # should be gitignored / absent
find . -type d -empty -not -path "*/node_modules/*" -not -path "./.git/*" -not -path "*/target/*" -not -path "./submodules/*"
Dead file → git rm. Generated but tracked → add to .gitignore, then git rm --cached.
2. .gitignore coverage
Confirm each is present; add what is missing:
| Group | Patterns |
|---|---|
| OS / editor | .DS_Store, Thumbs.db, *.swp, *.swo, *~ |
| Rust | /target, **/*.rs.bk |
| Generated | benchmark-results.json, .benchmark-files.txt, /fixtures/, /pkg, /npm/ |
| Deps | node_modules/, .pnpm-store/ |
| IDE / backup | .idea/, .vscode/, *.code-workspace, *.backup, *.bak, *.orig |
3. Unused scripts
Scripts live in nested dirs (scripts/{bench,ci,compat-corpus,compat-lsp,dev,diff,fixtures,perf,release,reports}/).
for f in $(find scripts -type f \( -name '*.mjs' -o -name '*.sh' \) -not -path '*/node_modules/*'); do
name=$(basename "$f")
hits=$(grep -rl --exclude-dir=node_modules --exclude-dir=target "$name" package.json README.md AGENTS.md .github scripts crates 2>/dev/null | grep -v "^$f$" | wc -l)
[ "$hits" -eq 0 ] && echo "UNREFERENCED: $f"
done
Referenced anywhere → keep. Debugging utility (e.g. scripts/diff/compare-parsers.mjs) → keep and
document. Unreferenced and undocumented → [ask].
4. Unused binaries
No root [[bin]]; dev binaries are crates/rsvelte_devtools/src/bin/*.rs and
crates/rsvelte_core/src/bin/. pnpm run report-orphan-test-binaries lists test targets
nothing references. A dev tool (profiler, benchmark_runner, …) is fine outside CI if documented.
5. Naming
- Scripts: kebab-case,
*.sh/*.mjs. - Rust files and dirs:
snake_case—find crates -name '*.rs' | grep -E '[A-Z]|-'must be empty. - Tests:
crates/*/tests/*.rsinsnake_case. - Non-Rust dirs:
kebab-case.
6. Documentation
CLAUDE.mdmust remain a symlink toAGENTS.md(ls -la CLAUDE.md);README.mdis for humans.- Stale references:
grep -oE '`[^`]+\.(rs|mjs|sh|json)`' README.md | tr -d '`' | while read f; do [ -e "$f" ] || echo "MISSING: $f"; done - OSS scaffolding:
CONTRIBUTING.md(present),.github/ISSUE_TEMPLATE/,.github/PULL_REQUEST_TEMPLATE.md. Report missing ones; do not create unless asked.
7. CI/CD
ls .github/workflows/; per workflow check referenced scripts exist and actions are pinned
(.pinact.yaml is the pin config). Run pnpm run check:workflow-triggers.
8. Dependencies
- Cargo:
cargo clippy --all-targets --all-features 2>&1 | grep unused; a dependency present in aCargo.tomlbut never imported →[ask]. package.json: everydevDependencyreferenced by some script, workflow or workspace package.
9. Build artifacts in git
git rev-list --objects --all | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| awk '/^blob/ {print $3, $4}' | sort -rn | head -20
.wasm, .node and platform binaries must not be tracked.
10. Root cleanliness
ls -a vs git ls-tree --name-only HEAD: every root entry must be tracked, gitignored, or a
known local dir (target*/, node_modules/, fixtures/). Anything else (e.g. .measure/) → [ask].
Workflow
- Run sections 1–10 in order; report each item as
[ok],[fix](auto-fixable) or[ask](needs a decision). - Summarize findings in one table.
- Apply
[fix]items; ask the user about[ask]items and apply what is approved. - Commit:
git commit -m "chore: repository cleanup".
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
PR 提出前にコードオーナー視点でフルレビューする。WHY の理解 → 設計 → AST/基盤型 → 実装(複数 Agent の順次レビュー)の順に、各フェーズでユーザーと対話しながら指摘を修正し、品質に問題がなくなるまで繰り返す。「/full-code-review」「フルレビュー」「レビューして」などの依頼時に使用。rsvelte(公式 Svelte コンパイラの Rust ポート)専用。
Rust の性能改善を「計測 → 仮説 → 変更 → 再計測」のループで地道に回すためのスキル。プロファイラの選び方、Cargo の最適化設定、データ構造・アロケーション・ハッシュ・分岐などの定石をフェーズ順に適用する。1 回 1 変更 1 計測の規律を厳守する。rsvelte 固有の既知ボトルネック(`serde_json::Value` 駆逐、`bumpalo` 導入、`Atom<'a>`、codegen 直書き)と OXC 対応表、NAPI 検証手順も §7 に収録。「Rust の性能改善」「ボトルネック調査」「プロファイル取って最適化」などの依頼で使用。
GitHub PR のコードレビューコメントに対応する。未 resolve のみを抽出 → 対応方針をユーザー承認 → 1 件ずつ修正+返信 → AI レビュー由来の指摘はナレッジに反映するワークフロー。「/review-response [PR番号]」「レビュー対応」「レビューに返信」などの依頼時に使用。
Upgrade the Svelte submodule to the latest (or specified) version, regenerate fixtures, identify test failures, and fix all regressions until tests pass 100%.
日本語の概要は準備中です。原文の説明を表示しています。
Svelte を使う外部リポジトリ(ツール / ライブラリ / アプリ)を git submodule として取り込み、Svelte コンパイラを rsvelte に差し替えても完全に同等に動作するかを検証する。既存のサブモジュールが指定された場合は最新化したうえで再検証し、回帰があれば rsvelte 側を自動修正する。「/verify-svelte-compat <url-or-name>」で実行。