Skip to main content

list-gaps

List pathfinding-labs scenarios that don't have pathrunner modules yet

ソース情報

リポジトリ
DataDog/pathrunner
ソースの最終更新活動
2026年7月8日 11:12
検出された SKILL.md の言語
英語
スター
48
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
list-gaps
description
List pathfinding-labs scenarios that don't have pathrunner modules yet
context
fork
argument-hint
[service] (optional filter, e.g., lambda, ecs, iam)
allowed-tools
Bash, Read, Glob, Grep
# List Coverage Gaps Cross-reference pathfinding-labs scenarios against pathrunner's module registry to find gaps. ## Steps ### Step 1: Get All Pathfinding-Labs Scenarios List all scenario.yaml files and extract their pathfinding-cloud-id: Paths are relative to the pathrunner repo root (siblings `../pathfinding.cloud/` and `../pathfinding-labs/` under a shared `pathfinding/` parent). ```bash # Note: scenarios/ has multi-level nesting (single-account/, cross-account/, ctf/, etc.) # — must use `find` recursively, NOT a single-level glob. # The plabs scenario ID is "{pathfinding-cloud-id}-{goal}" where goal is the parent # directory name (to-admin, to-bucket, etc.), NOT the scenario directory name. find ../pathfinding-labs/modules/scenarios/ -name "scenario.yaml" | while read -r f; do ID=$(grep 'pathfinding-cloud-id' "$f" 2>/dev/null | head -1 | sed 's/.*: *//' | tr -d '"' | tr -d "'") GOAL=$(basename "$(dirname "$(dirname "$f")")") if [ -n "$ID" ]; then echo "$ID|${ID}-${GOAL}" fi done | sort ``` ### Step 2: Get All Pathrunner Modules List registered module IDs: ```bash grep -r 'modules.Register(' pkg/exploits/*/module.go | sed 's/.*Register("\([^"]*\)".*/\1/' | sort ``` Or read `pkg/exploits/register.go` directly — it's the auto-generated fan-out of every registered module directory. ### Step 3: Cross-Reference For each scenario ID, check if a pathrunner module exists. ### Step 4: Check Deployment Status For scenarios without modules, check if they're deployed (useful for prioritizing): ```bash (cd ../pathfinding-labs && ./plabs scenarios list) 2>&1 ``` ### Step 5: Apply Service Filter If the user provided a service filter argument (`$ARGUMENTS`), only show gaps for that service. ### Step 6: Output Table Format as a markdown table: | Path ID | Scenario | Module Exists | Category | Services | |---------|----------|--------------|----------|----------| | ecs-001 | ecs-001-to-admin | No | new-passrole | iam, ecs | | ecs-002 | ecs-002-to-admin | No | new-passrole | iam, ecs | | ... | ... | ... | ... | ... | Also show summary stats: - Total paths with scenarios: X - Paths with pathrunner modules: Y - Gaps: Z - Coverage: Y/X (percentage) If filtered by service, show service-specific stats.
GitHubで見る