1仕組みと動作原理
コンパイル式マルチホスト配信:skill/ を唯一のマスターソース(SKILL.src.md + scripts/ + reference/ + agents/)とし、リポジトリ内には常に .claude/.cursor/.agents/.gemini など20のホストディレクトリ向けコンパイル済みコピーが存在。コピー側ではプレースホルダー({{scripts_path}}/{{command_hint}} 等)をホスト固有のパスへ展開し、ホストフロントマター(version: 4.3.1、user-invocable、allowed-tools 等)を書き込み、<!-- rule:… --> 整合性用コメントを除去。
allowed-tools: - Bash(npx impeccable *) - Bash({{scripts_path}}/impeccable *)
セッション起動プロトコル:毎セッション最初に `<skill-base-dir>/scripts/impeccable context`(自己完結型エンジンバイナリを特定する POSIX shell 製ランチャー)を実行し、エンジンが PRODUCT.md/DESIGN.md/一致する surface brief を読み取って指示(CONTEXT_STALE などのディレクティブを含む)をエージェントに返却。ランチャー失敗時の明示的なフォールバックも備え、ユーザーに明示したうえで既存の PRODUCT.md/DESIGN.md を直接読み込んで続行。
Run `<skill-base-dir>/scripts/impeccable context` once per session, where `<skill-base-dir>` is the directory that contains this SKILL.md (the skill folder, not a plugin root two levels above it); keep cwd at the user's project.
中核機能は付属エンジンバイナリ(Node ランタイム不要):ランチャーは IMPECCABLE_BIN → 同ディレクトリの bin/<os>-<arch>/ → ~/.impeccable/bin → バージョン固定キャッシュ → PATH 上の impeccable の順でバイナリを探索。最終手段として作者の GitHub リリースから該当バージョンのバイナリをユーザーキャッシュにダウンロードし、sha256 sidecar 検証を実施(フェイルクローズ:検証失敗やチェックサム不在時は実行拒否)。
base="${IMPECCABLE_DOWNLOAD_BASE:-https://github.com/pbakaus/impeccable/releases/download}"
23コマンド + ルーティングの指示体系:SKILL.md の本体はコマンド表(Build/Evaluate/Refine/Enhance/Fix + live 反復)であり、引数なし呼び出し時はコンテキスト対応メニューを表示するのみで自動実行は行わない。各コマンドは reference/ 下の独立した playbook に対応し、リリース時の整合性チェック用としてソースファイル内に <!-- rule:… --> タグを埋め込み済み。
**No argument:** read [routing.md](reference/routing.md) and present its context-aware menu; never auto-run a command.
PRODUCT.md/DESIGN.md 二重ドキュメントによる信頼できる唯一の情報源:init は PRODUCT.md(プロダクトの真実:ユーザー/タスク/制約/プラットフォーム)のみを記述し、ビジュアル要件には触れない。document/extract は完成したコードから DESIGN.md(デザインシステム/トークン/コンポーネント)を逆生成。ビジュアル方針は new-work で決定され DESIGN.md を置き換える(『証拠こそが権威であり、ファイル名ではない』)。
`init` captures durable product truth in PRODUCT.md. It does not invent a visual world and does not write DESIGN.md; [new-work.md](new-work.md) creates or expands one, and [document.md](document.md) records an incumbent one.
決定論的リンター(61規則)をフック形式でホストに統合:hooks on 実行後、Claude Code/Codex/Copilot では UI ファイル編集ごとに post-tool-use フックでリンターを自動実行して検出結果をコンテキストに再投入。Cursor では preToolUse により不適切な書き込みを反映前に遮断。設定は .impeccable/config.json(ローカルでは .impeccable/config.local.json で上書き)で管理。
The hook runs the impeccable design detector on direct file edits to design-relevant files (`.tsx`, `.jsx`, `.html`, `.vue`, `.svelte`, `.astro`, `.css`, `.scss`, `.sass`, `.less`, `.ts`, `.js`).
live ブラウザバリアントモード:ローカル開発サーバー(HMR)上で選択要素を AI に渡し、生成した HTML+CSS バリアントへホットスワップ。ポーリングイベントループ(_instructions フィールドが信頼できる次ステップ)と .impeccable/live/ セッションジャーナルにより切断復旧を保証。本番サイトへのスクリプト注入や CSP の緩和は明示的に禁止。
Interactive live variant mode: select elements in the browser, pick a design action, and get AI-generated HTML+CSS variants hot-swapped via the dev server's HMR.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | impeccable 引擎(自含二进制,随 skill 的 scripts/impeccable launcher 定位/下载;技能通过 Bash 调用) |
| network | 引擎二进制下载通道(仅首次且缺二进制时):GitHub Releases,engine-v<version> 资产 + .sha256 sidecar |
| package | npx impeccable(SKILL 授权 Bash(npx impeccable *) 的发布安装路径;README quick start 亦用 npx impeccable install) |
| network | 文档站/知识引用(非运行时调用):impeccable.style、github.com/pbakaus/impeccable(README/docs 内链接)、google-labs-code/design.md spec(reference/document.md 内引用) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: skill/scripts/impeccable ランチャー(POSIX sh)→ エンジンバイナリ:context/detect/hooks/live
- 网络端点: 外部ネットワークアクセスの宣言: 初回エンジンバイナリのダウンロード:https://github.com/pbakaus/impeccable/releases/download/engine-v<
- 本地工作目录: ファイル読み書きと成果物出力: プロジェクト内:PRODUCT.md、DESIGN.md(+sidecar)、.impeccable/config.json および config.local.json
5二重目の独立検証
- [ok] 单一 master 源 + 多宿主编译副本 — diff skill/SKILL.src.md 与 .cursor/.claude 副本:差异仅为占位符展开({{scripts_path}}→宿主路径)、frontmatter 增删(version/argument-hint/allowed-tools)、<!-- rule:… --> 注释剥离;正文结构一致。
- [ok] 每会话 context + 降级协议 — 编译副本与 src 均含 Setup 三步与 'Launcher unavailable' 段;引文逐字存在。
- [ok] 引擎二进制下载仅首次且 fail-closed — launcher 第 60-200 行精读:候选顺序 IMPECCABLE_BIN→sibling bin→~/.impeccable/bin→version cache→PATH probe→下载;下载后必须 sha256 sidecar 匹配才 chmod+mv+exec,sidecar 不可得/不匹配/空文件均拒绝(exit 127)。
- [ok] 61 规则与无 LLM 声明 — README 两处声明一致('61 deterministic detector rules'、'no LLM and no API key');hooks.md 描述 per-edit 与 Stop 深扫两级;规则实体位于引擎二进制内(本仓库 skill 目录不含规则源码,属引擎发布物 [INFERENCE])。
- [ok] 23 命令数 — SKILL.md 命令表逐行计数 = 23(craft 为 deprecated alias 仍列);与 README '23 commands' 一致。
- [ok] hook 安装面与宿主 manifest — hooks.md 列出全部宿主清单路径(.claude/settings.local.json/.cursor/hooks.json/.codex/hooks.json/.github/hooks/impeccable.json/.grok/hooks/impeccable.json);'reset' 动作会从 on 安装过的 manifest 移除条目。
- [ok] live 仅限本地 + journal 恢复 — live.md 明确 'requires a local checkout'、'injection into deployed production sites (including HTTPS) is unsupported';.impeccable/live/sessions/ journal 与 live-status/resume 流程存在。
- [ok] 无凭证读取 — skill 目录(src/scripts/reference/agents + 编译副本)无 API key/token/secret/.env 读取代码;引擎行为以 README『no API key』声明 + 引文为据(引擎二进制内部未逐一审计 [INFERENCE])。
6結論
1467f7553455c007…