run-parity-test-i — Entry Skill
Entry point for the
parity-test-ipipeline. Orchestrates the sequential native-subagent dispatch of theinspectorandformatteragents on Tier 1b (OpenCode v1.15.10). Each step runs as a distinct subagent process — no inline execution, no Task() calls.
Platform Context
- Tier:
tier_1b(OpenCode v1.15.10) - Dispatch mechanism:
native_subagent—DISPATCH(mode="subagent", agent="{name}", context={...}). NOT Task(). NOT inline. - model_field_format:
provider_prefixed—model: opencode/big-pickledeclared in each agent's YAML frontmatter. - Reviewer isolation:
structural— each step runs in a distinct subagent process. - Degradation warnings: 1 active (see PHASE 0 below).
Workflow
PHASE 0: PREFLIGHT — DEGRADATION WARNING AND INITIALIZATION
Step 0.1 — Surface Tier 1b degradation warning (MANDATORY before any execution):
Surface the following warning to the user verbatim before any other action:
[Tier 1b Degradation Warning 1 of 1] Parallel fan-out (Pattern 2) degrades to sequential on OpenCode.
Step 0.2 — Resolve runtime context:
- Resolve
{ROOT}viask-pipeline-paths(scope root resolved from the active tier profile at runtime — NEVER hardcode.opencode/,.superpipelines/,.claude/, or any platform path). - Resolve
{runId}= ISO-8601 compact timestamp (e.g.,20260526T143000Z). - Create temp directory:
{ROOT}/superpipelines/temp/parity-test-i/{runId}/. - Create
output/directory if absent:{ROOT}/output/.
Step 0.3 — Collect inputs:
If the user has not supplied the path to the input JSON file, ask for it now. Record as {INPUT_PATH}.
Step 0.4 — Initialize pipeline-state.json:
Write pipeline-state.json to {ROOT}/superpipelines/temp/parity-test-i/{runId}/pipeline-state.json:
{
"pipeline_id": "parity-test-i",
"run_id": "{runId}",
"started_at": "{iso8601}",
"plugin_version": "2.0.0",
"pattern": "1",
"status": "running",
"current_phase": 0,
"metadata": {
"source_tier": "tier_1b",
"runtime_tier": "tier_1b",
"model_field_format": "provider_prefixed",
"resolved_models": {
"inspector": "opencode/big-pickle",
"formatter": "opencode/big-pickle"
}
},
"phases": [
{
"index": 0,
"step_id": "inspector",
"name": "inspect",
"status": "pending",
"agent": "agents/superpipelines/parity-test-i/inspector.md",
"outputs": [],
"error": null
},
{
"index": 1,
"step_id": "formatter",
"name": "format",
"status": "pending",
"agent": "agents/superpipelines/parity-test-i/formatter.md",
"outputs": [],
"error": null
}
]
}
PHASE 1: DISPATCH INSPECTOR (native subagent)
Dispatch the inspector as a native subagent:
DISPATCH(
mode="subagent",
agent="inspector",
context={
"input_path": "{INPUT_PATH}",
"key_type_output_path": "{ROOT}/superpipelines/temp/parity-test-i/{runId}/key-type-data.json",
"state_path": "{ROOT}/superpipelines/temp/parity-test-i/{runId}/pipeline-state.json",
"run_id": "{runId}",
"root": "{ROOT}"
}
)
Wait for terminal status from the inspector subagent:
DONE→ updatepipeline-state.jsonphases[0].status = "completed"; advance to Phase 2.DONE_WITH_CONCERNS→ update phases[0].status = "completed_with_concerns"; surface concerns to user; advance to Phase 2.NEEDS_CONTEXT→ update phases[0].status = "blocked"; update top-level status = "blocked"; surface message to user; GO TO CLEANUP (preserve).BLOCKED→ update phases[0].status = "blocked"; update top-level status = "blocked"; surface message to user; GO TO CLEANUP (preserve).
PHASE 2: DISPATCH FORMATTER (native subagent)
Dispatch the formatter as a native subagent:
DISPATCH(
mode="subagent",
agent="formatter",
context={
"key_type_data_path": "{ROOT}/superpipelines/temp/parity-test-i/{runId}/key-type-data.json",
"summary_output_path": "{ROOT}/output/parity-test-i-summary.txt",
"state_path": "{ROOT}/superpipelines/temp/parity-test-i/{runId}/pipeline-state.json",
"run_id": "{runId}",
"root": "{ROOT}"
}
)
Wait for terminal status from the formatter subagent:
DONE→ updatepipeline-state.jsonphases[1].status = "completed"; advance to Phase 3.DONE_WITH_CONCERNS→ update phases[1].status = "completed_with_concerns"; surface concerns to user; advance to Phase 3.NEEDS_CONTEXT→ update phases[1].status = "blocked"; update top-level status = "blocked"; surface message to user; GO TO CLEANUP (preserve).BLOCKED→ update phases[1].status = "blocked"; update top-level status = "blocked"; surface message to user; GO TO CLEANUP (preserve).
PHASE 3: FINALIZE
Update
pipeline-state.json:status:"completed"(or"completed_with_concerns"if any phase had concerns)completed_at: ISO-8601 timestamp
Cleanup contract (C20):
- On
DONEorDONE_WITH_CONCERNS: writestatus: completedtopipeline-state.json, then delete the temp directory{ROOT}/superpipelines/temp/parity-test-i/{runId}/. - On
BLOCKEDorNEEDS_CONTEXT: preserve the temp directory (do NOT delete); it holds resume state for diagnosis.
- On
Confirm to the user:
Pipeline
parity-test-icompleted. Summary written to:{ROOT}/output/parity-test-i-summary.txtEmit terminal status:
DONE(orDONE_WITH_CONCERNS/BLOCKED/NEEDS_CONTEXTas applicable).