feat: idd-verify depends on parallel-ai-agents' canonical ensemble engine — three-tier resolution, frozen fork (#207) - #208
Merged
Conversation
…gine; vendored fork frozen (#207) Per the owner's direct-dependency ruling (recorded verbatim on pai#20), the workflow backend now resolves through a three-tier chain: the installed pai engine first (plugin-cache discovery, sort -V highest, version gate >= 2.18.0 — the agentModel + STABLE external-consumer contract start; a pre-contract engine would silently drop agentModel and reintroduce #205, so the gate falls back rather than ever using it), then the vendored fork — now carrying a FROZEN fallback-only banner (features and fixes go upstream to pai) — then manual fan-out. The canonical tier maps IDD's semantics onto the contract: profile:'custom' with the four IDD lenses (focus text byte-identical to the vendored LENSES, grep-verified), the DA refutation focus, a DATA_GUARD-prefixed contextBlock that pai's own sentinel machinery double-wraps, diffFile, IDD's own vendored codexCallPath, and the resolved IDD_AGENT_MODEL threaded as agentModel. Notice and Engine lines disclose the resolved backend, pai version, and dispatchModel. Ships safely before pai 2.18.0 is installed: with today's cache at 2.17.0 the chain keeps using the fallback and the canonical path lights up on the pai#21 merge + dist-sync with zero further changes here. Spectra change idd-verify-depend-on-pai-engine (proposal/design/ spec delta/tasks 7/7). Refs #207
…le CONTEXT_BLOCK, dual-path dispatchModel; Tier-1 contract live-proven
The two master-report Engine templates (local/branch + PR mode) now
interpolate ${BACKEND_DESC}, model: ${DISPATCH_MODEL} instead of the
hardcoded '5 general-purpose Agents' line — the resolution chain sets
BACKEND_DESC per tier, so a canonical run can no longer be posted as
the manual engine (the disclosure-fabrication class the version gate
itself guards against; both HIGHs shared this one un-wired root).
DISPATCH_MODEL extraction reads both return shapes: the vendored fork
reports top-level dispatchModel, pai nests it under stats (verified
in the 2.18.0 engine at lines 431/464/562 including early returns);
the request-echo fallback is labeled as such. $CONTEXT_BLOCK gains an
explicit assembly step (DATA_GUARD literal + per-issue text +
attachments) — it was consumed but never built, which would have
dispatched canonical reviewers blind. Hardening: semver-only cache
dirs enter version comparison, the fallback notice names the actual
degrade reason, the D3 prose distinguishes codexCall vs codexCallPath
per tier, and the section heading/status prose now describes the
three-tier reality.
The dormant-path risk (DA: 'coded against an unreleased contract,
entirely untested') is closed with a live contract smoke, not
argument: run wf_27d7d3dd-c35 drove the pai 2.18.0 branch engine
with the exact Tier-1 args on a planted-bug diff — IDD lens keys
attributed, contextBlock demonstrably delivered (the requirements
lens quotes the issue's acceptance examples verbatim), nested
stats.dispatchModel='opus' confirmed, and all five agents ran on
claude-opus-4-8 from a Fable session. Evidence recorded in the
design contract; tasks.md re-checked honestly (1.3 was prose-only
at first pass — the templates are now truly wired).
Refs #207
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #207
Summary
依使用者「需要官方就直接依賴」裁決:verify workflow backend 改三層解析——已安裝 pai canonical 引擎(cache 版本發現、
MIN_PAI=2.18.0閘門——契約前引擎會靜默丟agentModel故永不使用)→ 凍結的 vendored fork(FROZEN banner,新功能一律上游 pai)→ manual fan-out。canonical tier 以 pai 官方契約表達 IDD 語意:profile:'custom'+ 四 IDD lens(focus 與 vendored LENSES 字面一致)+ daFocus + DATA_GUARD contextBlock(顯式組裝;pai 端 sentinel 雙層包)+IDD_AGENT_MODEL直通。Engine 模板接線揭露實際 backend + 雙路徑 dispatchModel。時序解耦:現裝 pai 2.17.0 → 鏈自然走 fallback;pai#21 merge + dist-sync 後 canonical 零改動點亮。Verification
6-AI verify master report 見 issue #207:2×HIGH(Engine 模板未接線,同根因)+ MEDIUMs(CONTEXT_BLOCK 懸空、dispatchModel 路徑)當輪全修;DA 的「對未釋出契約零測試」以 Tier-1 契約 live smoke 關死(run
wf_27d7d3dd-c35:pai 2.18.0 branch 引擎 × 完整 args 映射 × 種雙 bug diff——lens attribution/context 送達/巢狀 stats.dispatchModel/5×claude-opus-4-8 全數實證)。spectra validate綠。Checklist
Related
🤖 Generated by /idd-all. Do NOT add a GitHub close trailer.