用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/applicate2628/Orchestrarium --skill design-panel命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | design-panel |
| description | Compare independent candidate designs, synthesize one. |
Get independent multi-lane generation of candidate designs on one pinned problem BEFORE a single design exists, then converge them through one mandatory synthesis into the sole planner-eligible artifact.
This is the Codex-line binding of the provider-neutral design-panel methodology. The design trunk (shared/references/design-panel-methodology.md) is NOT installed; this skill carries the operative rules for the Codex runtime.
Codex's native subagent dispatch (spawn_agent, including the pack-pinned worker/explorer agent types) can run concurrently, but whether a spawned agent's tool description exposes a cross-lane channel — letting it message its spawner and other running agents by canonical task name, the shape DP3's sealing requirement (below) forbids: no lane may see a sibling's prompt, output, or status before returning — depends on the host's multi-agent backend version — which is selected by the multi_agent_v2 feature flag OR, when that override is unset, by the active model preset's own multi_agent_version (codex-rs/core/src/config/mod.rs:1454-1461, .or(model_multi_agent_version)), so the flag is sufficient but not necessary — runtime configuration this skill does not inspect (it reads .agents/.agents-mode.yaml for routing at step 1 below, but does not condition DP3's guarantee on either of those separate, uninspected surfaces). A skill that must guarantee DP3's sealing cannot make that guarantee conditional on runtime configuration it does not inspect: a guarantee that only holds under an unchecked configuration is not a guarantee. So the candidate lanes route through the external-dispatch / external-brigade surface instead — not because Codex cannot fan out, and not because a different vendor is required (design-panel independence rests on framing and sealed fresh contexts, not vendor count, per DP3) — but because the failure modes differ: an unchecked native cross-lane channel would break DP3's seal silently (no lane, the synthesis owner, or the operator can observe that lane B saw lane A's status), while an external lane that cannot run fails visibly — an absent CLI, a died lane, or an empty output is caught by DP7 below (UNVERIFIED, or BLOCKED:dependency when quorum drops below two) — so under this route a candidate is either produced with the seal intact, or its absence is visibly flagged by DP7, never silently substituted for a sealed one. (What DP7 catches is a missing or dead candidate, not a detected breach of DP3 — the point is that on this route no known channel exists for DP3 to break through in the first place.) Candidate-lane unavailability is governed by that fail-closed rule and by step 5's re-run-with-the-same-framing requirement, NOT by the general internal-specialist reroute in external-dispatch.md:181, which is written for ordinary single-role dispatch. The candidate lanes run as follows:
$external-worker and external-dispatch.md), carrying the identical pinned input; only the framing overlay differs.| ID | Required invariant |
|---|---|
DP1 — Pinned input | One objective, admitted scope, evidence/constraint package, expected final artifact, and synthesis owner are fixed before dispatch. All candidates receive the identical base package; only the framing overlay differs. |
DP2 — Quorum | At least two valid, design-capable candidates are required. Default N=2; a weak, failed, empty, or duplicate-framing lane does not count. |
DP3 — Independence | Independence comes from different scope/framing and sealed fresh contexts, not vendor count. No lane sees a sibling's prompt, output, or status before returning. Different vendors with the same framing are not independent; the same capable engine in fresh contexts with genuinely different framings may be. |
DP4 — Candidate is input only | Each candidate carries Panel disposition: INPUT_ONLY, names its lane/framing and pinned-input identity, and returns to the synthesis owner. It cannot become the canonical design.md, be recorded as the last accepted design, be passed to the planner, or issue the design-stage PASS. |
DP5 — Mandatory comparison | The synthesis owner receives ALL valid candidates and produces an explicit comparison matrix. Surface-sweep panels take the verified union of compatible coverage; architecture-choice panels select or coherently combine options — never majority-vote or blind union of incompatible designs. |
DP6 — Sole advance gate | Only the synthesis artifact carries the Change-Surface Contract, final numbered {guarantee, single-owner, enforcement-probe} claims, and durable decision-registry identifiers, plus PASS. Candidate artifacts carry none of these. A panel invocation returns one public result: the synthesis or a non-success status. |
DP7 — Fail closed | Missing/errored/empty lanes are UNVERIFIED; duplicate framings invalidate quorum; unresolved conflicts return REVISE; fewer than two valid candidates return BLOCKED:dependency. |
DP8 — One shot, then verify | Candidate generation happens once; synthesis is the convergence step. No round counter or anti-drift ledger. Hand the synthesized design to $review-loop if independent verification is wanted. |
.agents/.agents-mode.yaml first; honor parallelMode, externalProvider, externalPriorityProfile, and the other structured routing keys. Shipped auto stays on codex | claude.N=2. Pick a distinct, bounded framing per lane and pre-register them (lane id, framing, resolved role) before dispatch.design-<lane>.md, never design.md.UNVERIFIED — re-run it with the same framing; never silently reduce quorum below N=2.design.md, citing every candidate as evidence.PASS | REVISE | BLOCKED:dependency | BLOCKED:prerequisite). Never present one candidate as "the design." Candidate artifacts stay as work-item inputs and are never handed to the planner.design-<lane>.md; only synthesis writes design.md. The existing plan-stage gate already requires design.md, so a skipped synthesis leaves no artifact the pipeline can consume. This is the STRUCTURAL skip-prevention mechanism.agent-runs.jsonl as status: completed, gate: RETURN(lead) — never design-stage PASS; only the synthesis run should use PASS, citing every candidate as evidence. A smoke probe confirmed the source helper scripts/validate-work-item-state.py (installed at .agents/skills/lead/scripts/validate-work-item-state.py for repo-local installs, ~/.codex/skills/lead/scripts/validate-work-item-state.py for global installs) does NOT mechanically reject a candidate run marked PASS, nor a RETURN(lead) run missing a cited artifact — this convention is an auditable review trail, not a fail-closed gate. The actual structural skip-prevention is skip-guard #1 above plus the INPUT_ONLY candidate label. No new ledger schema is introduced.The synthesis owner is the orchestrating session, performing synthesis directly (never a spawned "synthesizer" run, never a candidate author). The synthesis artifact (design.md) must contain:
{guarantee, single-owner, enforcement-probe} claims;PASS | REVISE | BLOCKED:<class>.PASS is valid only when the run is completed, points to the synthesis artifact (design.md), and cites one evidence entry per candidate plus the comparison itself. Candidate artifacts carry none of items 6-8 (DP6).
$lead.design.md; candidate lanes never see each other's output.$design).$review-loop).$second-opinion / $consultant).$external-brigade).Panel disposition: INPUT_ONLY).RETURN(lead): the ledger gate shape used to return a completed candidate run without declaring design-stage PASS.