1仕組みと動作原理
実行主体は 6 並列の fan-out 構成:互いに独立した 6 つの inspector が各次元(コード/スクリプト安全性、ドキュメント SSOT 整合性、セキュリティ/PII、オープン PR トリアージ、オープン Issue トリアージ、マーケットプレイスマニフェスト完全性)を分担し、同時に並列実行します。
Six independent inspectors cover, in parallel:
並列化は単なる提案ではなくコードとして実装されています:workflow.js 内の phase('Inspect') の後、parallel() を使って 6 つの次元ごとに agent() を起動し、各 agent に同一の CHECK_SCHEMA 構造化出力コントラクトをバインドします。
const checks = await parallel(dims.map(d => () => agent(COMMON + d.prompt, { label: 'check:' + d.key, phase: 'Inspect', schema: CHECK_SCHEMA })))
inline で実行する必要があり、context: fork は禁止されています。fork された subagent はさらに subagent を生成することも workflow を起動することもできず、fork 実行すると fan-out 全体がサイレントに失敗するためです。
**This skill must run inline (no `context: fork`).**
スクリプトは、ホスト側にインストールパスを探させるのではなく、Workflow ツールの script パラメータ経由でインライン文字列としてそのまま渡されます。
Read the bundled script and launch it **inline via the `script` parameter**
最初に迅速な scout を 1 回実行してリポジトリ規模(リポジトリ名、スキル数、オープン PR/Issue 数、マニフェストバージョン、HEAD、最新リリース)を収集し、args として 6 つの inspector に共有します。省略された場合は各 inspector が個別に再検出します。
gh repo view --json nameWithOwner,stargazerCount,isPrivate | jq -c .
出力コントラクトはスキーマによって厳格に固定されています:各次元は dimension/health/summary/findings[]/stats を返し、findings の各項目には severity(critical|high|medium|low|info)、title、detail、location、recommendation が必須です。
severity: { type: 'string', enum: ['critical', 'high', 'medium', 'low', 'info'] },
出力規律が本スキルの核心です:inspector の結論は明示的に仮説(hypotheses)へと格下げされ、そのまま報告することは禁止されており、実行者が自ら再検証した上で報告する必要があります。
**Agent findings are HYPOTHESES, not conclusions. Never relay them verbatim.**
25 件もの finding をそのままユーザーに投げつけるのではなく、優先度と証拠レベルに基づいて階層化して報告します。
- **🔴 Must-fix** — each VERIFIED high/critical, with exact location + a concrete fix
全行程を通じて読み取り専用(inspector によるファイル変更、PR/Issue へのコメント、push は禁止)を宣言し、作業開始前にコストをユーザーに伝達します。
This is READ-ONLY: do NOT modify files, comment on PRs/issues, or push. gh CLI is authenticated.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | gh(GitHub CLI) |
| cli | jq |
| cli | git |
| cli | bash(执行仓库自带检查脚本) |
| cli | python3 |
| cli | uv(跑 skill-creator 的 security_scan 模块) |
| cli | claude plugin validate(经 check_marketplace.sh 调用) |
| cli | gitleaks(经 security_scan.py 调用) |
| cli | grep / find / sed(检索与逐行核对) |
| api | GitHub REST API(经 gh CLI:PR / issue / release / repo 元数据,只读) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: marketplace-health-check/scripts/repo-health-check.workflow.js — Workflow 経由
- scripts/ 或 SKILL.md: 外部言語パッケージ依存の動的インストールの宣言
- 网络端点: 外部ネットワークアクセスの宣言: gh CLI を介した GitHub REST アクセス(api.github.com、gh のデフォルトエンドポイント、リポジトリテキスト内にドメイン明記なし): gh repo view /
- 本地工作目录: ファイル読み書きおよび成果物出力: 設計上書き込みなし(COMMON プロンプトおよびスクリプトコメントにて READ-ONLY: inspectors must not modify files, c と明記)
5二重目の独立検証
- [ok] 六维清单与代码 dims 一一对应 — SKILL.md 列的六维(代码/脚本安全、文档 SSOT、安全/PII、开放 PR、开放 issue、marketplace 清单)与 workflow.js 的六个 key(code-and-script-safety / doc-consistency / security-pii / pull-requests / issues / marketplace-integrity)逐项对应,dims 数组经计数恰为 6 项,无多无少。
- [ok] parallel fan-out 是真实实现而非修辞 — 源码含 phase('Inspect') 与 parallel(dims.map(d => () => agent(COMMON + d.prompt, { label: 'check:' + d.key, phase: 'Inspect', schema: CHECK_SCHEMA }))),description 里「parallel fan-out Dynamic Workflow」无夸大。
- [ok] 必须 inline 的运行约束 — SKILL.md 逐字存在该段,且理由(forked subagent 不能 spawn subagents 或启动 workflow)与 workflow 脚本调用 agent()/parallel() 的宿主能力要求自洽。
- [ok] 外部 CLI 调用点真实存在 — gh、jq、git、bash、python3、uv、claude plugin validate、gitleaks 均在 SKILL.md 或 workflow.js 逐字可定位;gitleaks 仅出现在 methodology 对 security_scan.py 实现的描述里,属间接调用(该脚本确实存在于 daymade-skill/skill-creator/scripts/security_scan.py)。
- [unlocatable] gh 网络端点域名 — 仓库内检索 api.github.com / github.com 零命中:skill 只写 gh CLI is authenticated. 与各 gh 子命令,端点域名按 gh CLI 的默认行为推断为 api.github.com,无法在源码内取证,已在 external_deps 与 security.network_calls 中标注该推断。
- [discrepancy] 只读承诺 vs 实际副作用 — 脚本注释、COMMON prompt 与 SKILL.md 三处 READ-ONLY 声明针对「文件修改/评论/push」,但 methodology 自述 security_scan.py MUTATES the marker file,并要求 git checkout 还原。故第一遍若把本 skill 概括为「零写入」属过强;准确说法是「对代码与协作面无写入,但被点名执行的扫描器有一条 marker 写副作用,靠人工还原」。
- [ok] 资产引用路径真实存在 — workflow.js 引用的 check_marketplace.sh、check_doc_skill_lists.py 与 security_scan.py 在 pin commit 下均真实存在;SKILL.md 提到「repo 根、bundles 之外的 decline policy 参考文档」对应仓库根 references/promotion-policy.md,CLAUDE.md 亦以 references/promotion-policy.md 指向它。
- [unlocatable] 成本声明可验证性 — 「~15-20 min, ~400-500k output tokens」来自该 skill 蒸馏时的实测会话,仓内无基准、日志或脚本可复算,只能视为作者经验值。
6結論
066980771e4106d8…