shift-camouflage
について
このスキルは、システムが異なる利用者に対して異なるAPIインターフェースと動作を動的に提示することを可能にし、イカのカモフラージュに似ています。攻撃対象領域の縮小、コンテキストを考慮した機能フラグ、段階的なロールアウトに使用され、各観察者が必要とするものだけを公開します。実装には、環境評価、動的インターフェース生成、およびコアシステムの変更を伴わない動作の多態性が含まれます。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/shift-camouflageこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
變形偽裝
實現適應性表面變換——多形介面、上下文感知行為與動態呈現——靈感取自烏賊之色素細胞。系統表面隨環境調適而核心保持穩定,藉此縮減攻擊面並優化與多樣觀察者之互動。
適用時機
- 系統須對不同消費者呈現不同介面(API 版本控管、多租戶、角色分權)
- 透過僅暴露每位觀察者所需以縮減攻擊面
- 於介面層實現功能旗標、漸進式發布或 A/B 測試
- 系統須隨環境上下文調整行為而不更動核心
- 保護內部架構免於外部耦合(觀察者耦合於表面而非結構)
- 補充
adapt-architecture:當表面變更已足夠而深度變換非必要
輸入
- 必要:表面需調適之系統
- 必要:觀察者/消費者及其各自之介面需求
- 選擇性:當前介面設計及其限制
- 選擇性:威脅模型(何者應對哪些觀察者隱藏?)
- 選擇性:功能旗標系統或漸進式發布基礎設施
- 選擇性:效能限制(動態表面生成有開銷)
步驟
步驟一:繪製觀察者全景
辨識誰與系統互動及每位觀察者所需所見。
- 編列所有觀察者:
- 外部用戶(終端用戶、API 消費者、合作夥伴)
- 內部服務(微服務、背景作業、管理工具)
- 對手(攻擊者、爬蟲、競爭對手)
- 監管者(稽核員、合規檢查)
- 為每位觀察者定義:
- 所需所見(必要介面表面)
- 不應所見(隱藏表面)
- 預期所見(相容性表面——可能與所需有別)
- 互動方式(協定、頻率、敏感性)
- 建立觀察者-表面矩陣:
Observer-Surface Matrix:
┌──────────────┬────────────────────────┬─────────────────┬──────────────┐
│ Observer │ Required Surface │ Hidden Surface │ Threat Level │
├──────────────┼────────────────────────┼─────────────────┼──────────────┤
│ End users │ Public API v2, UI │ Internal APIs, │ Low │
│ │ │ admin endpoints │ │
├──────────────┼────────────────────────┼─────────────────┼──────────────┤
│ Partner API │ Partner API, webhooks │ Internal logic, │ Medium │
│ │ │ user data │ │
├──────────────┼────────────────────────┼─────────────────┼──────────────┤
│ Admin tools │ Full API, debug │ Raw data store │ Low │
│ │ endpoints │ access │ │
├──────────────┼────────────────────────┼─────────────────┼──────────────┤
│ Adversaries │ Nothing (minimal) │ Everything │ High │
│ │ │ possible │ │
└──────────────┴────────────────────────┴─────────────────┴──────────────┘
預期: 完整之觀察者全景,含每位觀察者之表面需求。此驅動所有後續偽裝設計。
失敗時: 若觀察者識別不完整,從兩極端開始:最具特權之觀察者(管理員)與最受限者(對手)。為此二者設計表面,再為其間之觀察者插值推斷。
步驟二:設計色素細胞映射
建立觀察者上下文與表面呈現之間之映射——即「色素細胞」層。
- 定義上下文訊號:
- 認證身份 → 決定特權等級
- 請求來源 → 地理、網路或應用上下文
- 功能旗標 → 啟/停特定表面元素
- 時間/階段 → 部署階段、營業時間、維護窗口
- 負載/健康 → 降級模式可能呈現縮減表面
- 設計表面生成規則:
- 對每組上下文訊號之組合,定義各表面元素為:
- 可見:納入回應/介面
- 隱藏:完全排除(連錯誤訊息亦不洩露其存在)
- 變換:存在但為此觀察者修改(不同綱要、簡化資料)
- 誘餌:對抗性上下文中刻意誤導之表面元素
- 對每組上下文訊號之組合,定義各表面元素為:
- 實作色素細胞層:
- 一薄層中介軟體/代理,置於核心系統與觀察者之間
- 每次請求皆評估上下文訊號
- 套用適當之表面配置
- 永不修改核心行為——僅過濾並變換表面
Chromatophore Architecture:
┌──────────────────────────────────────────────────────┐
│ Observer Request │
│ │ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ Context Extract │ ← Auth, origin, flags, time │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ Surface Select │ ← Observer-surface matrix lookup │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ Core System │ ← Processes request normally │
│ └────────┬────────┘ │
│ ↓ │
│ ┌─────────────────┐ │
│ │ Surface Filter │ ← Remove/transform/add elements │
│ └────────┬────────┘ │
│ ↓ │
│ Observer Response (adapted surface) │
└──────────────────────────────────────────────────────┘
預期: 色素細胞映射可將觀察者上下文翻譯為表面配置。映射明確、可審計,並與核心邏輯分離。
失敗時: 若映射過於複雜(上下文組合過多),簡化為角色制表面:定義 3-5 種表面組態(公開、合作夥伴、管理員、內部、最小),將每位觀察者映射至其一。
步驟三:實作行為多形性
使系統行為隨上下文調適,非僅其表面外觀。
- 識別上下文相關行為:
- 回應細節等級(管理員詳盡,公開最小)
- 速率限制(合作夥伴寬鬆,未知呼叫者嚴格)
- 錯誤訊息(內部詳細,外部通用)
- 資料新鮮度(高級用戶即時,標準用戶快取)
- 功能可用性(測試者完整,一般用戶僅穩定版)
- 實作行為變體:
- 每變體為完整、經測試之行為路徑
- 上下文決定哪一變體執行
- 變體共享核心邏輯但於呈現與政策上有別
- 功能旗標整合:
- 功能旗標控制哪些行為變體啟用
- 漸進式發布:對部分觀察者開放新行為,逐漸擴大
- 斷路器:若新變體致錯則自動回退至安全行為
預期: 系統行為隨觀察者上下文調適——同一核心邏輯為不同對象產生合適回應。功能旗標支援新行為之漸進式發布。
失敗時: 若行為多形性產生過多代碼路徑,整合為流水線模型:核心邏輯 → 政策層 → 呈現層。多形性僅存於政策與呈現層,核心邏輯保持單一。
步驟四:縮減攻擊面
將對手所能觀察與互動者降至最低。
- 套用最小表面原則:
- 每位觀察者僅見其所需——不多
- 未認證觀察者見到最小可能表面
- 錯誤訊息絕不洩露內部結構(無堆疊追蹤、無內部路徑、無版本號)
- 實作主動表面縮減:
- 移除暴露技術堆疊之預設頁面、標頭與端點
- 隨機化非必要之回應特徵(時序抖動、標頭順序)
- 完全停用未用之 API 端點(非僅隱藏——實際關閉)
- 部署模式擾亂:
- 變化回應特徵以擊敗指紋識別
- 於非功能面引入受控之不可預測性
- 確保功能行為保持確定,而表面特徵變化
- 監測偵察活動:
- 偵測探測隱藏表面之請求模式(列舉攻擊)
- 對重複存取不存在端點告警(路徑模糊測試)
- 跨會話追蹤並關聯偵察模式(見
defend-colony)
預期: 最小化之攻擊面,使對手難以判斷系統技術堆疊、內部結構或隱藏能力。偵察嘗試可被偵測並追蹤。
失敗時: 若表面縮減破壞合法消費者,則觀察者-表面矩陣不完整——合法需求被隱藏。重審步驟一並更新矩陣。若隨機化致問題,將隨機化縮限至非功能面(時序、標頭),並使功能回應保持確定。
步驟五:維持表面一致性
確保動態表面保持一致、可除錯、可維護。
- 表面測試:
- 明確測試每一觀察者組態(管理員是否見到管理員表面?公開是否見到公開表面?)
- 測試表面轉換(會話中觀察者上下文變化時將如何?)
- 測試表面失敗模式(色素細胞層失敗時呈現何種表面?)
- 表面文件:
- 為每一觀察者組態及其表面配置撰寫文件
- 記錄上下文訊號及其對表面選擇之影響
- 使文件與實際行為同步(以實際驗證文件)
- 除錯支援:
- 管理/除錯模式揭示哪一表面組態啟用及原因
- 日誌記錄每次請求所套用之表面配置
- 能透過特定表面組態重播請求以供除錯
- 表面演化:
- 新增表面元素:加至適當組態、測試、部署
- 移除表面元素:棄用警告期,再行移除
- 變更表面行為:以功能旗標控制,漸進式發布
預期: 可維護、可測試、文件完備之表面調適系統。動態本質不犧牲除錯、文件化或演化介面之能力。
失敗時: 若色素細胞層成除錯夢魘,加入透明度:每回應含追蹤標頭(僅管理/除錯組態可見),標明套用之表面組態及決定它之上下文訊號。
驗證
- 已繪製觀察者全景含每位觀察者之表面需求
- 色素細胞映射可將上下文翻譯為表面配置
- 行為多形性使回應隨觀察者上下文調適
- 對抗性觀察者之攻擊面已最小化
- 每一觀察者組態皆明確測試
- 表面失敗模式呈現安全預設(最小表面)
- 除錯/管理模式可檢視當前表面配置
- 表面文件與實際行為相符
常見陷阱
- 表面複雜性爆炸:觀察者組態與變化過多。整合至最多 3-5 組態。多數觀察者可歸入較大類別
- 核心污染:讓表面調適邏輯滲入核心業務邏輯。色素細胞層必須分離——若於核心代碼中加入關於觀察者類型之 if 判斷,架構即錯
- 僅靠隱晦求安全:表面縮減為深度防禦之一層,非取代正規安全控制。隱藏端點仍需認證與授權
- 不一致之表面:觀察者 A 見回應第 1 版,觀察者 B 見第 2 版——但本應見相同。明確測試表面,並使觀察者-表面矩陣為權威來源
- 遺忘失敗表面:色素細胞層自身失敗時,觀察者見到何種表面?預設必為安全(最小表面)非開放(完整表面)
相關技能
assess-form— 表面調適或可解決形態評估識別之壓力,無需深度變換adapt-architecture— 表面調適不足時之深度結構變更repair-damage— 表面調適可於修復期間遮蔽損傷(須謹慎——勿隱藏真實問題)defend-colony— 攻擊面縮減為防禦之一層;偵察偵測饋入防禦coordinate-swarm— 分散式系統中之上下文感知行為需協調之表面調適configure-api-gateway— API 閘道在實務上實現許多色素細胞層功能deploy-to-kubernetes— Kubernetes 服務與入口可實現網路層之表面控制
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
