원클릭으로
assess-project
既存プロジェクトへ .github/ を移植した際に、プロジェクト全体の評価(構造解析・テスト状況・コード品質・ドキュメント・DevOps)を実施する。assessor エージェントまたは /assess プロンプトから参照される。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
既存プロジェクトへ .github/ を移植した際に、プロジェクト全体の評価(構造解析・テスト状況・コード品質・ドキュメント・DevOps)を実施する。assessor エージェントまたは /assess プロンプトから参照される。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
要求分析・影響分析を並列実行し、実行計画を策定する。Feature の計画フェーズを単独で実行したいときに使用する。
エージェントのモデルを変更する(個別・一括・デフォルトに戻す)。エージェントのモデル変更が必要なときに使用する。
新規プロジェクトに .github/ を導入した際の初期設定を行う。settings.json の作成とプロジェクト固有値の設定を対話的にガイドする。
Board の作成・読み込み・状態遷移・Gate 評価・history 追記・アーカイブを手順化する。オーケストレーターが Board 操作時に参照するスキル。
Feature の開発フロー全体のオーケストレーション手順。Board を使ったエージェント呼び出し・Gate 評価・状態遷移の具体的手順を定義する。オーケストレーターがワークフロー実行時に参照するスキル。
現在の変更に対してコードレビューを実行する。変更のレビューが必要なときに使用する。
| name | assess-project |
| description | 既存プロジェクトへ .github/ を移植した際に、プロジェクト全体の評価(構造解析・テスト状況・コード品質・ドキュメント・DevOps)を実施する。assessor エージェントまたは /assess プロンプトから参照される。 |
.github/ ディレクトリが対象プロジェクトにコピー済み.github/settings.json が作成済み(initialize-project スキル実行後).github/settings.json を読み取り、以下の値を使用する:
project.name — プロジェクト名project.language — 主要言語project.entryPoint — エントリーポイントproject.test.command — テストコマンドproject.test.directory — テストディレクトリproject.test.pattern — テストファイルパターンプロジェクトの基本情報を自動検出する。
以下のファイルを探索して技術スタックを特定する:
| ファイル | 判定 |
|---|---|
package.json | Node.js / JavaScript / TypeScript |
tsconfig.json | TypeScript |
requirements.txt / pyproject.toml / setup.py / setup.cfg | Python |
Cargo.toml | Rust |
go.mod | Go |
pom.xml / build.gradle | Java |
Gemfile | Ruby |
*.csproj / *.sln | C# / .NET |
フレームワークの特定:
package.json の dependencies / devDependencies を確認requirements.txt / pyproject.toml の依存関係を確認プロジェクトルートから 3 階層までのディレクトリ構造を取得する。
# ディレクトリ構造の取得(.git, node_modules, __pycache__ 等を除外)
find . -maxdepth 3 -type d \
-not -path './.git*' \
-not -path './node_modules*' \
-not -path './__pycache__*' \
-not -path './.venv*' \
-not -path './dist*' \
-not -path './build*' \
| sort
Windows 環境の場合:
Get-ChildItem -Directory -Recurse -Depth 2 |
Where-Object { $_.FullName -notmatch '\\(\.git|node_modules|__pycache__|\.venv|dist|build)' } |
Select-Object -ExpandProperty FullName |
Sort-Object
settings.json の project.entryPoint がない場合、以下の候補を探索:
index.js / index.ts / main.js / main.tssrc/index.* / src/main.* / src/app.*app.py / main.py / manage.pyProgram.cs / main.go / main.rs依存パッケージの一覧と主要パッケージの用途を確認:
# Node.js
cat package.json | jq '.dependencies, .devDependencies'
# Python
cat requirements.txt
# or
cat pyproject.toml
以下の観点で評価する:
| 観点 | 評価基準 | 重要度 |
|---|---|---|
| ディレクトリの役割分離 | ソースコード・テスト・設定・ドキュメントが分離されているか | 高 |
| レイヤー構造 | プレゼンテーション・ビジネスロジック・データアクセスの分離 | 高 |
| 依存方向 | 上位層→下位層への一方向依存か、循環依存がないか | 高 |
| 凝集度 | 関連する機能が同じモジュールにまとまっているか | 中 |
| ファイルサイズ | 500行超のファイルがないか(推奨 300行以下) | 中 |
大きすぎるファイルを検出する:
# 行数の多いソースファイルを検出(上位20件)
find . -name '*.js' -o -name '*.ts' -o -name '*.py' -o -name '*.java' -o -name '*.cs' |
xargs wc -l | sort -rn | head -20
Windows 環境の場合:
Get-ChildItem -Recurse -Include *.js,*.ts,*.py,*.java,*.cs |
Where-Object { $_.FullName -notmatch '\\(node_modules|\.git|dist|build)' } |
ForEach-Object { [PSCustomObject]@{ Lines = (Get-Content $_.FullName | Measure-Object -Line).Lines; File = $_.FullName } } |
Sort-Object Lines -Descending |
Select-Object -First 20
import / require 文を解析して依存グラフの循環を検出する。
import 文・require() を追跡import / from ... import を追跡# テストファイルの検索
find . -name '*.test.*' -o -name '*.spec.*' -o -name 'test_*' -o -name '*_test.*' |
grep -v node_modules | grep -v __pycache__
Windows 環境の場合:
Get-ChildItem -Recurse -Include *.test.*,*.spec.*,test_*.*,*_test.* |
Where-Object { $_.FullName -notmatch '\\(node_modules|__pycache__)' }
| フレームワーク | 検出方法 |
|---|---|
| Jest | package.json の devDependencies / jest.config.* |
| Vitest | package.json の devDependencies / vitest.config.* |
| Mocha | package.json の devDependencies / .mocharc.* |
| Node.js Test Runner | node:test の import |
| pytest | requirements.txt / pyproject.toml / conftest.py |
| unittest | import unittest |
| JUnit | pom.xml / build.gradle の依存 |
settings.json の project.test.command を使用:
# テスト実行(結果を確認、修正はしない)
<project.test.command>
テストコマンドが未設定の場合は自動検出を試みる:
package.json の scripts.testpytest の存在確認Makefile の test ターゲット| 観点 | 評価基準 |
|---|---|
| テストファイルの存在 | ソースファイルに対応するテストファイルがあるか |
| カバレッジ率 | カバレッジレポートが生成可能な場合、その数値 |
| テストの種類 | ユニット / 統合 / E2E のバランス |
| テストパターン | Arrange-Act-Assert / Given-When-Then 等の一貫性 |
| エッジケース | 境界値・異常系のテストがあるか |
ソースファイルとテストファイルの対応関係を整理:
src/
services/
user-service.ts → tests/services/user-service.test.ts ✅
order-service.ts → (テストなし) ❌
utils/
validator.ts → tests/utils/validator.test.ts ✅
| ツール | 設定ファイル |
|---|---|
| ESLint | .eslintrc.* / eslint.config.* / package.json の eslintConfig |
| Prettier | .prettierrc* / package.json の prettier |
| Biome | biome.json |
| Ruff | ruff.toml / pyproject.toml の [tool.ruff] |
| Flake8 | .flake8 / setup.cfg |
| Black | pyproject.toml の [tool.black] |
| mypy | mypy.ini / pyproject.toml の [tool.mypy] |
lint ツールや型チェッカーを実行してエラー・警告を収集:
プロジェクトの lint コマンド / 型チェックコマンドを実行して結果を確認
| 言語 | 評価観点 |
|---|---|
| TypeScript | strict モードの有効性、any の使用頻度 |
| Python | 型ヒントの付与率、mypy / pyright の設定 |
| JavaScript | TypeScript への移行可能性、JSDoc の使用状況 |
型ヒントの付与率を調査:
# Python: 型ヒントなしの関数を検出
grep -rn "def .*(.*):" --include="*.py" | grep -v " -> " | grep -v "test_" | head -20
| 観点 | チェック内容 |
|---|---|
| 例外処理 | bare except / catch(e) の放置がないか |
| エラー伝搬 | エラーが適切にログ・通知されているか |
| 入力バリデーション | 外部入力の検証が行われているか |
| nullチェック | null / undefined の安全な処理 |
| 観点 | 検出パターン |
|---|---|
| ハードコードされた秘密情報 | パスワード・API キー・トークンの文字列リテラル |
| SQL インジェクション | 文字列連結による SQL 組み立て |
| XSS | ユーザー入力のサニタイズなし出力 |
| 依存関係の脆弱性 | npm audit / pip-audit の実行 |
.env の Git 管理 | .gitignore に .env が含まれているか |
# ハードコードされた秘密情報の簡易検出
grep -rn "password\s*=\s*['\"]" --include="*.py" --include="*.js" --include="*.ts" .
grep -rn "api_key\s*=\s*['\"]" --include="*.py" --include="*.js" --include="*.ts" .
grep -rn "secret\s*=\s*['\"]" --include="*.py" --include="*.js" --include="*.ts" .
| 観点 | 基準 |
|---|---|
| 存在 | README.md が存在するか |
| セットアップ手順 | 開発環境の構築手順が記載されているか |
| 使い方 | 基本的な使用方法が記載されているか |
| API ドキュメント | 公開 API の説明があるか(ライブラリの場合) |
| コントリビューション | 貢献ガイドがあるか |
| 観点 | 基準 |
|---|---|
| 関数コメント | 公開関数に Why / How のドキュメントコメントがあるか |
| 型定義 | 関数の引数・戻り値に型注釈があるか |
| インラインコメント | 非自明なロジックに Why コメントがあるか |
docs/architecture/ の存在と内容を確認:
module-map.md — モジュール構成図data-flow.md — データフロー図glossary.md — 用語集adr/ — 設計判断記録| 設定 | ファイル |
|---|---|
| GitHub Actions | .github/workflows/*.yml |
| GitLab CI | .gitlab-ci.yml |
| CircleCI | .circleci/config.yml |
| Jenkins | Jenkinsfile |
package.json の scripts セクションMakefile / Taskfile.ymlDockerfile, docker-compose.yml)| 観点 | チェック内容 |
|---|---|
| 環境変数 | .env.example / .env.template の存在 |
| .gitignore | .env・ビルド成果物・IDE 設定が適切に除外されているか |
| ロックファイル | package-lock.json / poetry.lock 等がコミットされているか |
すべての評価結果を以下の構造化フォーマットで出力する。
# プロジェクト評価レポート: <project.name>
## サマリ
| カテゴリ | 評価 | 主要所見 |
|---|---|---|
| プロジェクト構造 | 🟢/🟡/🔴 | ... |
| テスト状況 | 🟢/🟡/🔴 | ... |
| コード品質 | 🟢/🟡/🔴 | ... |
| ドキュメント | 🟢/🟡/🔴 | ... |
| DevOps / CI | 🟢/🟡/🔴 | ... |
| セキュリティ | 🟢/🟡/🔴 | ... |
## 技術スタック
- 言語: ...
- フレームワーク: ...
- テストフレームワーク: ...
- ビルドツール: ...
## 詳細評価
### 1. プロジェクト構造
...
### 2. テスト状況
...
### 3. コード品質
...
### 4. ドキュメント
...
### 5. DevOps / CI
...
### 6. セキュリティ
...
## 優先改善事項
### Critical(即座に対応が必要)
- ...
### High(早期に対応推奨)
- ...
### Medium(計画的に対応)
- ...
### Low(余裕があれば対応)
- ...
## 推奨アクション
1. ...
2. ...
3. ...
| 評価 | 基準 |
|---|---|
| 🟢 Good | 業界標準を満たしており、大きな問題なし |
| 🟡 Needs Improvement | 基本は整っているが、改善すべき点がある |
| 🔴 Critical | 重大な問題があり、早急な対応が必要 |
評価結果に基づき、以下のドキュメントの初期案を提案する(直接書き込まず、提案として出力):
docs/architecture/module-map.md — 検出したモジュール構成を反映docs/architecture/data-flow.md — 主要なデータフローを反映docs/architecture/glossary.md — ドメイン用語を反映これらの生成は
writerエージェントに委任することを推奨する。
評価中に検出した情報で settings.json の未設定項目を提案する: