Agent Skill
2/7/2026

context-compressor

This skill should be used when the user asks to "compress context", "reduce token count", "summarize design docs", "optimize context window", or "extract signatures". Compresses large context for efficient downstream processing (200k→70k tokens target).

S
sizukutamago
0GitHub Stars
1Views
npx skills add sizukutamago/blueprint-plugin

SKILL.md

Namecontext-compressor
DescriptionThis skill should be used when the user asks to "compress context", "reduce token count", "summarize design docs", "optimize context window", or "extract signatures". Compresses large context for efficient downstream processing (200k→70k tokens target).

name: context-compressor description: This skill should be used when the user asks to "compress context", "reduce token count", "summarize design docs", "optimize context window", or "extract signatures". Compresses large context for efficient downstream processing (200k→70k tokens target). version: 1.0.0 model: haiku

Context Compressor Skill

大規模コンテキストを効率的に圧縮するスキル。 200k→70k トークン(約 65% 削減)を目標とする。

使用タイミング

タイミング入力圧縮戦略
コンテキスト統合時統合されたコンテキストEntity Signature Only
レビュー準備全設計書Decision Summary
既存コード分析ソースコードSemantic Pruning

圧縮戦略

1. Semantic Pruning(シグネチャ抽出)

コードから実装詳細を除去し、シグネチャのみを抽出する。

入力例(100 トークン):

/**
 * ユーザー情報を取得する
 * @param userId ユーザーID
 * @returns ユーザー情報
 */
async function getUser(userId: string): Promise<User> {
  const user = await prisma.user.findUnique({
    where: { id: userId },
    include: {
      profile: true,
      settings: true,
      roles: {
        include: {
          permissions: true
        }
      }
    }
  });

  if (!user) {
    throw new NotFoundError('User not found');
  }

  return mapToUser(user);
}

出力(30 トークン、70% 削減):

/** ユーザー情報を取得する */
async function getUser(userId: string): Promise<User>
// 実装: prisma.user.findUnique → User 変換
// 例外: NotFoundError

2. Entity Signature Only(エンティティ簡略化)

エンティティ情報を属性リストに圧縮する。

入力例(200 トークン):

entities:
  - id: ENT-User
    name: User
    attributes:
      - name: id
        type: UUID
        constraints: [PRIMARY KEY]
        description: "ユーザー識別子"
      - name: email
        type: VARCHAR(255)
        constraints: [UNIQUE, NOT NULL]
        description: "メールアドレス"
        validation: "RFC 5322 準拠"
      - name: name
        type: VARCHAR(100)
        constraints: [NOT NULL]
        description: "表示名"
      - name: role
        type: ENUM('admin', 'member', 'guest')
        constraints: [NOT NULL, DEFAULT 'member']
        description: "ユーザーロール"
      - name: created_at
        type: TIMESTAMP
        constraints: [NOT NULL, DEFAULT NOW()]
      - name: updated_at
        type: TIMESTAMP
        constraints: [NOT NULL]

出力(40 トークン、80% 削減):

entities:
  - id: ENT-User
    name: User
    attributes: [id(UUID,PK), email(VARCHAR,UNIQUE), name(VARCHAR), role(ENUM), created_at(TS), updated_at(TS)]
    # 詳細: 04_data_structure/data_structure.md

3. Chain of Density(段階的要約)

ドキュメントをエンティティ保持しながら段階的に要約する。

ステップ:

  1. 初回要約: 全体の 50% に圧縮(重要エンティティを保持)
  2. 2回目: さらに 50% に圧縮(主要決定事項のみ)
  3. 最終: 必要に応じてさらに圧縮

要約ルール:

  • ID(FR-XXX, SC-XXX, API-XXX 等)は必ず保持
  • 決定事項(ADR)のタイトルと結論は保持
  • 具体例・詳細説明は削除
  • 参照リンクを追加(「詳細は XX を参照」)

4. Decision Summary(決定事項のみ)

ADR と設計情報から決定事項のみを抽出する。

出力形式:

## 決定事項サマリー

### アーキテクチャ
- ADR-0001: SPA + BFF 採用
- ADR-0002: PostgreSQL + Prisma 採用
- 認証: JWT (RS256)、Access 15分、Refresh 7日

### エンティティ
- ENT-User: id, email, name, role
- ENT-Post: id, title, content, author_id, status

### API
- API-001: GET /users → User[]
- API-002: POST /users → User
- API-003: GET /users/:id → User

### 画面
- SC-001: ログイン(Auth)
- SC-002: ダッシュボード(Member)
- SC-003: ユーザー一覧(Admin)

圧縮レベル

レベル圧縮率用途
Light30%軽微な削減、詳細維持
Medium50%ステージ間引き継ぎ
Heavy70%Review 時の全体把握
Extreme80%+トークン制限が厳しい場合

ワークフロー

1. 入力コンテキストを分析
2. コンテンツ種別を判定(コード/YAML/Markdown)
3. 適切な圧縮戦略を選択
4. 圧縮を実行
5. ID・決定事項の保持を検証
6. 参照リンクを追加
7. 圧縮後コンテキストを出力

圧縮品質チェック

チェック項目失敗時の対応
全 ID が保持されている圧縮をやり直し
決定事項が失われていない該当部分を復元
参照リンクが有効リンク先を確認
トークン数が目標以下さらに圧縮 or 分割

入出力例

コンテキスト統合時の使用

入力(コンテキスト全体: 50k トークン):

context:
  decisions:
    architecture: {...}  # 10k
    entities: [...]      # 15k
    api_resources: [...]  # 15k
    screens: [...]        # 10k

出力(圧縮後: 15k トークン):

context_summary:
  architecture:
    tech_stack: [Next.js, PostgreSQL, Prisma]
    auth: JWT/RS256
    # 詳細: 03_architecture/architecture.md
  entities: [ENT-User(6attr), ENT-Post(8attr), ...]
    # 詳細: 04_data_structure/data_structure.md
  api_resources: [API-001..API-020]
    # 詳細: 05_api_design/api_design.md
  screens: [SC-001..SC-030]
    # 詳細: 06_screen_design/screen_list.md

エラーハンドリング

エラー対応
ID 消失圧縮レベルを下げてやり直し
目標未達さらに圧縮 or コンテキスト分割を提案
構造破壊圧縮戦略を変更
Skills Info
Original Name:context-compressorAuthor:sizukutamago