Install
$ agentstack add skill-studiogadget-skills-sec-full-scan ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
sec-full-scan
役割: リリース前・全ファイル静的解析スキル(言語・フレームワーク非依存)
プロジェクト構造を自動検出し、以下を並列実行する:
- ソースモジュールサブエージェント(検出されたモジュールごとに1つ): 全ソースファイルの静的解析
- パッケージサブエージェント: 依存関係の既知 CVE スキャン + シークレット漏洩チェック
> コンテキスト上限への注意: リポジトリが大規模な場合、全ファイルがコンテキストウィンドウに収まらない可能性がある。スキップが発生した場合はサイレントに無視せず、必ずスキップしたファイル一覧とともに PARTIAL スキャンとして報告する。
引数
| 引数 | 必須 | 説明 | |------|------|------| | 対象パス | 任意 | 明示的にスキャンしたいディレクトリ(省略時は自動検出) |
手順
Step 1: プロジェクト構造の自動検出
以下の順序で構造を把握する:
- ソースディレクトリの特定
package.json/pyproject.toml/Cargo.toml/go.mod/Gemfile/pom.xml/build.gradleをnode_modules//.git//dist//build/を除外して検索する- 各マニフェストファイルの場所からソースディレクトリを推定する(例:
package.jsonがある場所のsrc//lib//app/等) - 引数でパスが指定された場合はそれを優先する
- 言語・フレームワークの検出
- マニフェストファイルの内容(dependencies / devDependencies 等)からフレームワークを特定する
- 例:
next→ Next.js、express→ Express、fastapi→ FastAPI、rails→ Rails 等
- モジュール分割の決定
- ソースディレクトリが複数ある場合(モノレポ等): モジュールごとにサブエージェントを割り当てる
- ソースディレクトリが1つの場合: サブエージェント1つで全体をカバーする
- モジュールが4つ以上ある場合: 関連するモジュールをグループ化する(コンテキストコスト削減)
- スキャン前にファイル一覧を確定する(必須):
- 各モジュールのソースファイルを
findコマンドで列挙し、総ファイル数を記録する - この時点で確定した総ファイル数が、カバレッジ計算の分母になる
- 「このスキャンは以下のモジュールを対象とします: [モジュール一覧] / 総ファイル数: [N]件」と明示する
Step 2: サブエージェントを並列実行
以下を同時に起動する(並列実行):
ソースモジュールサブエージェント(モジュールごと)
検出された各ソースモジュールのファイルを静的解析する。
解析手順(必須):
- 解析開始前に全ファイルを列挙する:
find -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.py" 等 \)で対象ファイルの完全なリストを取得し、総数 N を記録する - 全ファイルを順番に読んで解析する: 以下の優先度順に読み進める
- コンテキスト上限に達した場合: 解析を即座に停止し、「読めなかったファイル一覧」を記録する。未解析ファイルをスキップしたままスキャン完了と報告してはならない
読み込み優先度(コンテキスト上限時のみ意味を持つ):
| 優先度 | ファイル種別 | 汎用パターン例 | |--------|------------|--------------| | 1 | HTTPエントリーポイント・ルーター | routes/, controllers/, api/, handlers/, endpoints/ | | 2 | ミドルウェア・フィルター | middleware/, filters/, interceptors/ | | 3 | 認証・認可 | auth/, security/, permissions/, guards/ | | 4 | 外部入力を受け取る層 | リクエストボディを直接扱うファイル | | 5 | データアクセス層 | repository/, infra/, models/, db/, store/ | | 6 | 外部サービス連携 | clients/, adapters/, services/, integrations/ | | 7 | ユーティリティ・ヘルパー | utils/, lib/, helpers/, shared/ |
報告義務(必須):
- 解析完了後に必ず
FILES_ANALYZED: ofを報告する - 未解析ファイルがある場合は ファイルパスを全件列挙する
- `解析済み数
scantype: fullstatic
project: detected_modules: languages: frameworks:
coverage: modules:
- name:
filestotal: filesanalyzed: contextlimitreached: skipped_files:
- path:
reason:
packages: scanned: toolsunavailable: vulnshigh_critical:
findings: critical: high: medium: low:
notcoveredbythisscan:
- デプロイ後のランタイム挙動 → /sec-runtime-scan を使用
- PR差分の即時レビュー → /sec-diff-review を使用
- ビジネスロジックの欠陥 → ペネトレーションテスト(人手)が必要
- インフラ・クラウド設定 → インフラ担当者レビューが必要
- ゼロデイ脆弱性 → CVEデータベース外のため検出不可
- マルチステップ攻撃チェーン → ペネトレーションテストが必要
coveragescore = filesanalyzed / files_total × 100(全モジュール合算)
files_analyzed %
scanstatus: ciresult:
### Step 5: レポート生成・履歴インデックス更新
1. **日付付きファイル名でレポートを保存する**
- レポート: `./security-reports/YYYY-MM-DD-full-scan-report.md`
- カバレッジ: `./security-reports/YYYY-MM-DD-full-scan-coverage.yml`
- 日付は実行時の ISO 8601 形式(例: `2026-05-01`)
- ディレクトリが存在しない場合は作成する
2. 深刻度別ソート・修正優先順位・具体的な修正コマンドを含める
3. **`./security-reports/index.md` に1行追記する**
- ファイルが存在しない場合はヘッダーから作成する
- 追記フォーマット:
```
| YYYY-MM-DD | sec-full-scan | 全ソース (files / ) | | | | | [レポート](YYYY-MM-DD-full-scan-report.md) |
```
- CI結果: High 以上の発見が 0 件なら `✅ pass`、1件以上なら `❌ fail`
4. High 以上の発見がある場合、終了コード 1 を報告する
---
## 3スキルの住み分け
| タイミング | スキル | 対象 |
|-----------|--------|------|
| 開発中・PR 単位 | `/sec-diff-review` | git diff のみ・静的解析 |
| リリース前 | `/sec-full-scan` | 全ソースファイル + 依存関係(言語非依存) |
| ステージングデプロイ後 | `/sec-runtime-scan` | ランタイム挙動・HTTP 動的テスト |
---
## このスキルでカバーできない領域
| 領域 | 推奨手段 |
|------|---------|
| デプロイ後の HTTP ヘッダー・動的挙動 | `/sec-runtime-scan` |
| ビジネスロジックの欠陥(仕様知識が必要) | ペネトレーションテスト |
| インフラ・クラウド設定(IAM・ネットワーク ACL) | インフラ担当者レビュー |
| ゼロデイ脆弱性 | CVE データベース外のため検出不可 |
| マルチステップ攻撃チェーン | ペネトレーションテスト |
---
## 完了条件
- [ ] `./security-reports/YYYY-MM-DD-full-scan-report.md` が生成されている
- [ ] `./security-reports/YYYY-MM-DD-full-scan-coverage.yml` が生成されている(`scan_type: full_static` 明記)
- [ ] 検出されたモジュール・言語・フレームワークが明示されている
- [ ] 解析済みファイル数とスキップしたファイルが明示されている
- [ ] カバーできない領域が明示されている
- [ ] `severity_gate` 基準に基づく CI 結果(pass / fail)が明示されている
- [ ] `./security-reports/index.md` に1行追記されている
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [studiogadget](https://github.com/studiogadget)
- **Source:** [studiogadget/skills](https://github.com/studiogadget/skills)
- **License:** Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.