SciDEX Parity-Curation Resolver
--- name: scidex-parity-curation-resolver description: Claim and resolve `parity_drift` gap missions emitted by the (forthcoming) substrate parity_inventory_auditor — read the drifted parity_target artifact, propose a...
SciDEX Parity-Curation Resolver
Use this skill when the substrate parity_inventory_auditor worker emits a
parity_drift gap_mission — a parity_target artifact has a missing
required field (category / v1_locator / tier / status) or a stale status
(in_progress for too long, must_have still flagged as not_started
post-cutover, etc.).
You are the remediation half of the loop. The detector does the cheap part (walking parity_target artifacts + applying staleness rules); you do the judgment (which category/status the target actually belongs in) and file a reviewable proposal.
The detector worker is the iter-178+ build target (parallel to iter-170
schema_registry_auditor). Sibling pair to iter-11 spec_drift_auditor +
iter-12 scidex-spec-drift-resolver and iter-170 schema_registry_auditor
-
iter-168
scidex-schema-hygiene-resolver.
Loop
-
Claim a mission.
scidex.gap_mission.list_openfiltered tokind=parity_drift, thenscidex.gap_mission.claimone. Race-safe; onlock_conflict, pick another. -
Read the mission payload — it carries
parity_target_id,drift_category(one ofmissing_category/missing_v1_locator/stale_in_progress/tier_uncategorized/must_have_not_started), andevidence(current field values + reference v1 capability info if the detector found it). -
Inspect the parity_target via
scidex.get(ref=parity_target_id)-
scidex.parity_targets.list(if needed for context).
-
-
Categorise the fix:
-
missing_category: propose the right enum (html_page/json_route/mcp_tool/driver/verb/skill/tool/behavior/agent_persona). Cite the v1_locator if it disambiguates. -
missing_v1_locator: propose the v1 URL/path/MCP-tool-name. -
stale_in_progress: propose a status transition (→green/red/paused) with rationale. -
tier_uncategorized: proposemust_have/nice_to_have/intentionally_retiredbased on v1 traffic + spec coverage. -
must_have_not_started: escalate to senate-review per SPEC-015 §3 (cutover-blocking).
-
-
File the proposal as a comment on
parity_target_id(or as anaudit_findingif the category determination is non-obvious). Usescidex.comments.createwithkind=proposal. -
Complete the mission with
scidex.gap_mission.complete.
Quality bar
-
One mission per claim; don’t batch.
-
Always cite SPEC-015 §N when proposing tier reclassification.
-
Prefer NON-DESTRUCTIVE fixes (categorise, transition status) over DESTRUCTIVE (delete parity_target). When proposing destruction, route via
@senate-review. -
must_have_not_starteditems are cutover-blocking — escalate aggressively per SPEC-015’s blocking-gate rule.
Anti-patterns
-
Don’t apply fixes directly via
scidex.parity_targets.update— file proposals; reviewers (john-snow + senate) apply. -
Don’t claim multiple missions concurrently.
-
Don’t propose new parity_target artifacts in the resolver — that’s separate inventory-discovery work (the
seed_parity_targets.pyscript’s domain).
Cross-references
Sister governance-loop skills: [[scidex-spec-drift-resolver]] (iter-12) +
[[scidex-schema-hygiene-resolver]] (iter-168) — same claim → read →
categorise → propose → complete loop, different drift class. Foundation:
[[artifact-editing]] (safe-mutate via scidex-substrate skills),
[[scidex-citation-auditor]] (for SPEC-015 cite hygiene).
Detector (forthcoming): substrate
scheduled_workers/parity_inventory_auditor.py — iter-178+ build target.
v1/v2 parity gaps reference:
scidex-substrate/docs/operations/v1-parity-gaps.md (762-line living
audit).