askill
wave-aggregator

wave-aggregatorSafety 90Repository

This skill should be used when the user asks to "aggregate wave results", "merge parallel outputs", "unify design decisions", "resolve conflicts between phases", or "update blackboard". Aggregates outputs from parallel Wave A/B executions and updates the Blackboard as the sole writer teammate.

0 stars
1.2k downloads
Updated 2/6/2026

Package Files

Loading files...
SKILL.md

Wave Aggregator Skill

Wave A/B 完了後に各 teammate の出力を統合し、Blackboard を更新するスキル。 project-context.yaml の唯一の書き込み者(単一ライター原則)。 Two-step Reduce(JSON正規化 + Adjudication Pass)で矛盾を解消する。

agent-teams モードでは常駐 teammate として Wave A〜B を通じて生存し、 Lead から SendMessage で統合依頼を受ける。

前提条件

条件必須説明
Wave A/B の出力ファイル統合対象
docs/project-context.yamlBlackboard 更新先
Lead からの contract_outputs各 teammate の SendMessage 出力(Lead が転送)

出力ファイル

ファイル説明
docs/project-context.yamlBlackboard 更新
docs/wave_X/unified_context.md統合コンテキスト(オプション)
docs/wave_X/conflicts.md矛盾レポート(矛盾がある場合)

依存関係

種別対象
前提スキルWave A: architecture-skeleton, database, design-inventory
前提スキルWave B: api, architecture-detail
後続スキルWave B(Wave A 後)/ design-detail, impl-standards, impl-test, impl-ops(Wave B 後)

ワークフロー

1. Lead から SendMessage で統合依頼 + contract_outputs を受信
2. Step 1: JSON正規化(contract_outputs を Blackboard スキーマに変換)
3. Step 2: Adjudication Pass(矛盾検出・解消)
4. Blackboard(project-context.yaml)を更新
5. 矛盾があれば Lead に P1 報告
6. SendMessage で統合完了を Lead に報告

Two-step Reduce

Step 1: JSON正規化

各エージェントの contract_outputs を収集し、Blackboard スキーマに正規化する。

# 入力例: architecture-skeleton の出力
contract_outputs:
  - key: decisions.architecture.tech_stack
    value: ["Next.js", "PostgreSQL", "Prisma"]
  - key: decisions.architecture.boundaries
    value: ["frontend", "backend", "database"]

# 入力例: database の出力
contract_outputs:
  - key: decisions.entities
    value:
      - id: ENT-User
        name: User
        attributes: [id, email, name, role]

# 入力例: architecture-skeleton の NFR 測定可能性
contract_outputs:
  - key: decisions.nfr_measurability
    value:
      NFR-PERF-001:
        target: "API応答時間 p95 < 200ms"
        measurement: "k6 負荷テスト"
        pass_criteria: "p95 < 200ms かつ p99 < 500ms"

# 正規化後: Blackboard 形式
blackboard:
  decisions:
    architecture:
      tech_stack: ["Next.js", "PostgreSQL", "Prisma"]
      boundaries: ["frontend", "backend", "database"]
    entities:
      - id: ENT-User
        name: User
        attributes: [id, email, name, role]
    nfr_measurability:
      NFR-PERF-001:
        target: "API応答時間 p95 < 200ms"
        measurement: "k6 負荷テスト"
        pass_criteria: "p95 < 200ms かつ p99 < 500ms"

Step 2: Adjudication Pass

矛盾を検出し、解消ルールを適用する。

矛盾パターン検出方法解消ルール
同一キーに異なる値キー比較上流フェーズを優先
参照先不在ID 存在チェックP1 として報告、差し戻し
重複 IDID ユニーク検証先勝ち or 連番付与
循環参照依存グラフ検証P1 として報告

矛盾検出例:

conflicts:
  - type: missing_reference
    severity: P1
    source: api
    target: database
    message: "API-003 が参照する ENT-Order が未定義"
    resolution: "database フェーズへ差し戻し"

Blackboard 更新

更新対象フィールド

フィールドWave AWave B
blackboard.decisions.architecture○(detail 追加)
blackboard.decisions.entities-
blackboard.decisions.api_resources-
blackboard.decisions.screens○(inventory)○(detail 追加)
blackboard.decisions.nfr_measurability○(arch-skeleton)-
traceability.*マージマージ

注意: v3.0 で pending_questionsconflictswave_statuscontracts は削除済み。 未解決疑問は open_questions として SendMessage で Lead に報告し、Lead が TaskCreate で管理する。

更新手順

# 1. blackboard.decisions をマージ
blackboard:
  decisions:
    # 各 teammate の contract_outputs をキー別にマージ
    architecture:
      tech_stack: [...]    # arch-skeleton から
    entities:
      - id: ENT-User       # database から
    screens:
      - id: SC-001         # design-inventory から

# 2. traceability をマージ
traceability:
  fr_to_ent:
    FR-001: [ENT-User]     # database から
  fr_to_sc:
    FR-001: [SC-001]       # design-inventory から

コンテキスト圧縮(オプション)

Blackboard が大きくなった場合、後続フェーズへの入力を圧縮する。

圧縮戦略

戦略適用条件圧縮率目標
Semantic Pruning実装詳細が不要な場合50%
Entity Signature OnlyAPI 設計時30%
Decision Summary後半フェーズ20%
# 圧縮前
blackboard:
  decisions:
    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: "メールアドレス"
          # ... 20+ attributes

# 圧縮後(Entity Signature Only)
blackboard:
  decisions:
    entities:
      - id: ENT-User
        name: User
        attributes: [id, email, name, role, created_at, updated_at]
        # 詳細は 04_data_structure/data_structure.md を参照

SendMessage 統合完了報告

Wave 統合完了時に以下の YAML 形式で Lead に SendMessage を送信する:

status: ok | conflict
updated_keys:
  - decisions.architecture.tech_stack
  - decisions.entities
  - traceability.fr_to_ent
conflicts:
  - type: missing_reference
    severity: P1
    source: api
    target: database
    message: "API-003 が参照する ENT-Order が未定義"
    resolution: "database フェーズへ差し戻し"
compression:
  strategy: entity_signature_only
  original_tokens: 50000
  compressed_tokens: 15000
open_questions:
  # 各 teammate の未解決疑問を集約

エラーハンドリング

エラー対応
contract_outputs 不在該当エージェントの再実行を要請
スキーマ不整合正規化を試み、失敗したら P1 報告
矛盾解消不能P1 として差し戻し先を特定
Blackboard 更新失敗ロールバック、再試行(最大3回)

モデル割り当て

処理モデル理由
矛盾検出opus複雑な整合性判断
JSON正規化haiku単純な変換処理
コンテキスト圧縮haikuルーティン作業

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

92/100Analyzed 2/10/2026

An exceptionally well-documented skill for a specific agentic workflow (Wave A/B). It provides deep technical details on data aggregation, conflict resolution, and context management, including specific YAML schemas and model recommendations.

90
95
65
98
95

Metadata

Licenseunknown
Version3.0.0
Updated2/6/2026
Publishersizukutamago

Tags

apidatabasetesting