[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71S31NEVYV2PDMYTP7N89Z3":3,"skill-same:01M71S31NEVYV2PDMYTP7N89Z3":71},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M71S31NEVYV2PDMYTP7N89Z3","vigil-verify",null,"Phase V (Verify) — establishes a reproducible failure. Deterministic-first; on two failed deterministic attempts, switches to statistical replay with confidence bands. No attribution begins without this phase passing. Use when starting any VIGIL mission, on mission intake, before any isolation or intervention work.","Rynaro\u002Fprisma","Rynaro","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5271543?v=4","01M70CFYFMB316W23THVQAQ42M","Henrique A. Lavezzo","01M71RXA8ZHEPZR3GERY09ERGD",1,"MIT","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvigil\u002Fskills\u002Fverify\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"verify","vigil","vigil verify","command","first","work","test","with","two","env","phase","when","use","replay","attribution","intake","mission","Reproducible","deterministic","SET","2026-11-10 13:02:02",false,"---\nname: vigil-verify\ndescription: Phase V (Verify) — establishes a reproducible failure. Deterministic-first; on two failed deterministic attempts, switches to statistical replay with confidence bands. No attribution begins without this phase passing. Use when starting any VIGIL mission, on mission intake, before any isolation or intervention work.\nallowed-tools: run_test, run_command, read_env, capture_trace, set_seed\nmetadata:\n  methodology: VIGIL\n  phase: V\n---\n\n# SKILL: Verify — establish reproducible failure\n\n## When to use\n\nLoad at the start of every VIGIL mission. Unload when `reproduction.md` is schema-valid and `DETERMINISM_VERDICT ≠ intermittent`.\n\n> **Memory pre-flight:** `recall` MUST have fired in Phase V (see `PERSONA.md`\n> §\"Memory pre-flight\") before any reproduction work begins. If it hasn't —\n> e.g. this skill was loaded directly — call it now:\n>\n> ```\n> mcp__crystalium__recall(\n>   scope  = { project: \u003Ccwd-project>, agent_class_visibility: \"vigil\" },\n>   query  = \u003Cfailure signature — error class, key frames, command>,\n>   k      = 5,\n>   layers = [\"semantic\", \"episodic\", \"procedural\"]\n> )\n> ```\n>\n> Prioritize **procedural** hits (prior isolation techniques for this error\n> class) and **semantic** hits (known root-cause categories matching the\n> signature). Fold relevant results into hypothesis generation before\n> Step 1. If `mcp__crystalium__*` tools are unavailable, proceed without\n> memory — never hard-fail.\n\n---\n\n## Contract\n\n| Field | Value |\n|-------|-------|\n| LLM calls permitted | Yes, for classifying failure signature and reading trace output |\n| Tool budget | ≤15% of mission budget |\n| Output | `reproduction.md` — schema-valid per `schemas\u002Freproduction.v1.json` |\n| Failure mode | `DETERMINISM_VERDICT = intermittent` → halt, emit `[GAP]`, escalate |\n\n---\n\n## Inbound Envelope Verification (Escalation Entry)\n\nWhen VIGIL is invoked on the **escalation entry** mode (APIVR-Δ → VIGIL), run this verification BEFORE the deterministic-first protocol below. This implements ECL §6.2.2 and VIGIL I-11.\n\n### Trigger\n\nIf the upstream artifact path `P` has a sibling `${P%.*}.envelope.json`, verification is mandatory. If no sidecar exists (non-ECL APIVR-Δ caller), skip this section and proceed to Step 1 below.\n\n### Step V-E1 — Schema shape\n\nValidate the envelope JSON against `schemas\u002Fecl\u002Fenvelope.v2.json` (or `envelope.v1.json` for a v1.x sidecar received during the ECL §7.3 compatibility window — select the vendored file matching the received `envelope_version`).\n\nCheck that the envelope parses as valid JSON and all required fields are present: `envelope_version`, `message_id`, `thread_id`, `parent_id`, `from`, `to`, `performative`, `objective`, `artifact`, `integrity`, `trace`. On failure: failure code `SCHEMA_INVALID`.\n\n### Step V-E2 — Contract match\n\nCross-check fields against `schemas\u002Fecl\u002Fcontracts\u002Fapivr-to-vigil.yaml`:\n\n- `from.eidolon` MUST equal `\"apivr\"` and `to.eidolon` MUST equal `\"vigil\"`. On failure: `UNDECLARED_EDGE`.\n- `performative` MUST be one of `ESCALATE`, `REQUEST`, `ACKNOWLEDGE`. On failure: `PERFORMATIVE_NOT_ALLOWED`.\n- `artifact.kind` MUST equal `\"repair-failed-report\"`. On failure: `ARTIFACT_KIND_NOT_ALLOWED`.\n\n### Step V-E3 — Integrity check\n\nRecompute the SHA-256 digest of the payload file bytes and compare against `envelope.integrity.value`:\n\n```sh\ncomputed=$(shasum -a 256 \"$payload_path\" | awk '{print $1}')\ndeclared=$(grep -o '\"value\":\"[^\"]*\"' \"$envelope_path\" | head -1 | cut -d'\"' -f4)\n# [ \"$computed\" = \"$declared\" ] || failure code: INTEGRITY_MISMATCH\n```\n\n### Step V-E4 — Trace event\n\nAppend one JSONL line to `.eidolons\u002F.trace\u002F\u003Cthread_id>.jsonl` (relative to consumer project root; create directory if absent):\n\n**On success:**\n```jsonl\n{\"ts\":\"\u003CRFC3339>\",\"event\":\"verify_pass\",\"message_id\":\"\u003Cuuid>\",\"thread_id\":\"\u003Cuuid>\",\"from\":\"apivr@\u003Cversion>\",\"to\":\"vigil@\u003Cversion>\",\"performative\":\"\u003Cperformative>\",\"integrity_method\":\"sha256\"}\n```\n\n**On failure:**\n```jsonl\n{\"ts\":\"\u003CRFC3339>\",\"event\":\"verify_fail\",\"message_id\":\"\u003Cuuid>\",\"thread_id\":\"\u003Cuuid>\",\"from\":\"apivr@\u003Cversion>\",\"to\":\"vigil@\u003Cversion>\",\"performative\":\"\u003Cperformative>\",\"integrity_method\":\"sha256\",\"verify_failure_code\":\"\u003CCODE>\"}\n```\n\nIf the envelope is invalid JSON, use `thread_id: \"unknown\"` and `message_id: \"unknown\"` as fallback values.\n\n### Step V-E5 — On verify_fail: halt\n\nOn any verification failure:\n\n1. Emit a `[GAP]` finding: `[GAP] Inbound envelope verification failed: \u003CFAILURE_CODE>. The upstream repair-failed-report.envelope.json did not pass ECL §6.2.2 verification. Mission halted.`\n2. Halt the mission — do NOT proceed to the deterministic-first protocol.\n3. Route to human (or back to APIVR-Δ if the failure is `INTEGRITY_MISMATCH` — the report may have been tampered or corrupted in transit).\n\n---\n\n## The Deterministic-First Protocol\n\n### Step 1 — Normalize the failure signature\n\nExtract from upstream artifact (or bug report):\n\n- **Test\u002Fcommand** — exact invocation that exhibits the failure\n- **Error class** — categorical (`TEST_ASSERTION`, `RUNTIME_ERROR`, `BUILD_ERROR`, `TYPE_ERROR`, `LINT_VIOLATION`)\n- **Key stack frames** — top 3–5 frames, normalized (strip absolute paths, line numbers preserved)\n- **Observable symptom** — the specific assertion\u002Ferror message\n\nIf upstream provided an APIVR-Δ `repair-failed-report.md`, copy these fields directly. Do not re-derive.\n\n### Step 2 — First deterministic attempt\n\nSet controlled conditions:\n\n```\nseed: \u003Crecorded_or_default>\nenv: \u003Cpinned per lockfile \u002F container spec>\nfs: \u003Cisolated working copy from commit SHA>\ntime: \u003Cfrozen if test is time-sensitive>\n```\n\nRun the failing invocation. Record:\n- Exit code\n- stdout\u002Fstderr tail (last 200 lines)\n- Comparison of observed signature to upstream signature\n\n**Result categories:**\n- `FAIL_MATCH` — fails with the same signature as upstream → proceed to Step 3\n- `FAIL_DIFFERENT` — fails but with different signature → record as `[DISPUTED]`, use observed signature, proceed to Step 3\n- `PASS` — did not fail → proceed to Step 3 with suspicion of flakiness\n\n### Step 3 — Second deterministic attempt\n\nRe-run with identical conditions. Compare to Step 2.\n\n**Verdict matrix:**\n\n| Step 2 | Step 3 | Verdict | Action |\n|--------|--------|---------|--------|\n| FAIL_MATCH | FAIL_MATCH | `stable` | Proceed to Isolate |\n| FAIL_MATCH | FAIL_DIFFERENT | `flaky` | Switch to statistical |\n| FAIL_MATCH | PASS | `flaky` | Switch to statistical |\n| FAIL_DIFFERENT | FAIL_MATCH | `flaky` | Switch to statistical |\n| FAIL_DIFFERENT | FAIL_DIFFERENT (same sig) | `stable` | Note signature drift, proceed |\n| PASS | FAIL_* | `flaky` | Switch to statistical |\n| PASS | PASS | `not_reproduced` | Halt — emit `[GAP]`, escalate |\n\n---\n\n## Statistical Mode\n\nTriggered by `flaky` verdict. Protocol:\n\n1. Run the failing invocation **5 times** under identical deterministic conditions.\n2. Record pass\u002Ffail and observed signature for each.\n3. Compute failure rate and 95% confidence interval (Wilson score interval for small N).\n4. Classify:\n   - **Consistent flake** — ≥3\u002F5 fail with same signature → `DETERMINISM_VERDICT = flaky`, `[FLAKE]` marker set, proceed to Isolate. Subsequent counterfactual interventions must also use 5-run statistical evaluation.\n   - **Inconsistent flake** — \u003C3\u002F5 fail, or signatures vary widely → `DETERMINISM_VERDICT = intermittent`, halt, escalate to FORGE or human. VIGIL cannot reliably attribute under this condition.\n\n### Confidence band recording\n\nFor every statistical-mode decision:\n\n```yaml\nstatistical_evidence:\n  runs: 5\n  failures: 4\n  failure_rate: 0.80\n  ci_95: [0.37, 0.99]\n  signature_consistency: 1.0   # fraction of failures with matching signature\n  verdict: flaky\n```\n\nDownstream phases inherit `statistical` mode — every intervention in Phase I will be evaluated across 5 runs, with flip requiring ≥4\u002F5 successes.\n\n---\n\n## Writing `reproduction.md`\n\nSchema-required fields:\n\n```yaml\nmission_id: VIGIL-YYYYMMDD-NNN\nupstream_artifact: \u003Cpointer | null>\nauthority: read-only | sandbox | write\nfailure_signature:\n  command: \"\u003Cexact invocation>\"\n  error_class: LOGIC_ERROR | REGRESSION | BUILD_ERROR | TYPE_ERROR | LINT_VIOLATION | RUNTIME_ERROR | INTEGRATION_ERROR | ENVIRONMENT_ERROR | HEISENBUG | COMPOUND | SPEC_DEFECT\n  assertion: \"\u003Cobservable symptom>\"\n  stack_top: [\u003Cframe>, \u003Cframe>, \u003Cframe>]\nreproduction_mode: deterministic | statistical\nreproduction_evidence:\n  - attempt: 1\n    result: FAIL_MATCH\n    signature_match: true\n    stderr_tail: \u003C200-line excerpt ref>\n  - attempt: 2\n    result: FAIL_MATCH\n    signature_match: true\n    stderr_tail: \u003Cexcerpt ref>\ndeterminism_verdict: stable | flaky | intermittent | not_reproduced\nstatistical_evidence: \u003Cnull | object>   # only populated in statistical mode\nmarkers:\n  - FLAKE   # only if flaky\n  - GAP     # only if evidence missing\n```\n\n---\n\n## Common pitfalls\n\n- **Assuming the upstream signature is correct.** Re-verify. APIVR-Δ's Reflect phase may have already attempted fixes that altered the failure shape.\n- **Running against the wrong commit.** Always pin to the SHA that the upstream artifact referenced.\n- **Ignoring env drift.** A failure that reproduces locally but not in CI (or vice versa) is itself a finding — document the env delta.\n- **Jumping to statistical mode too early.** Two deterministic attempts minimum. One inconsistent result is not enough to declare flakiness.\n- **Accepting `PASS → PASS` as \"fixed already.\"** If the upstream failure is real and your runs all pass, something about your reproduction setup is wrong. Escalate with `[GAP]`.\n\n---\n\n*VIGIL Phase V — the gate through which all other phases must pass*\n","# SKILL: Verify — establish reproducible failure\n\n## When to use\n\nLoad at the start of every VIGIL mission. Unload when `reproduction.md` is schema-valid and `DETERMINISM_VERDICT ≠ intermittent`.\n\n> **Memory pre-flight:** `recall` MUST have fired in Phase V (see `PERSONA.md`\n> §\"Memory pre-flight\") before any reproduction work begins. If it hasn't —\n> e.g. this skill was loaded directly — call it now:\n>\n> ```\n> mcp__crystalium__recall(\n>   scope  = { project: \u003Ccwd-project>, agent_class_visibility: \"vigil\" },\n>   query  = \u003Cfailure signature — error class, key frames, command>,\n>   k      = 5,\n>   layers = [\"semantic\", \"episodic\", \"procedural\"]\n> )\n> ```\n>\n> Prioritize **procedural** hits (prior isolation techniques for this error\n> class) and **semantic** hits (known root-cause categories matching the\n> signature). Fold relevant results into hypothesis generation before\n> Step 1. If `mcp__crystalium__*` tools are unavailable, proceed without\n> memory — never hard-fail.\n\n---\n\n## Contract\n\n| Field | Value |\n|-------|-------|\n| LLM calls permitted | Yes, for classifying failure signature and reading trace output |\n| Tool budget | ≤15% of mission budget |\n| Output | `reproduction.md` — schema-valid per `schemas\u002Freproduction.v1.json` |\n| Failure mode | `DETERMINISM_VERDICT = intermittent` → halt, emit `[GAP]`, escalate |\n\n---\n\n## Inbound Envelope Verification (Escalation Entry)\n\nWhen VIGIL is invoked on the **escalation entry** mode (APIVR-Δ → VIGIL), run this verification BEFORE the deterministic-first protocol below. This implements ECL §6.2.2 and VIGIL I-11.\n\n### Trigger\n\nIf the upstream artifact path `P` has a sibling `${P%.*}.envelope.json`, verification is mandatory. If no sidecar exists (non-ECL APIVR-Δ caller), skip this section and proceed to Step 1 below.\n\n### Step V-E1 — Schema shape\n\nValidate the envelope JSON against `schemas\u002Fecl\u002Fenvelope.v2.json` (or `envelope.v1.json` for a v1.x sidecar received during the ECL §7.3 compatibility window — select the vendored file matching the received `envelope_version`).\n\nCheck that the envelope parses as valid JSON and all required fields are present: `envelope_version`, `message_id`, `thread_id`, `parent_id`, `from`, `to`, `performative`, `objective`, `artifact`, `integrity`, `trace`. On failure: failure code `SCHEMA_INVALID`.\n\n### Step V-E2 — Contract match\n\nCross-check fields against `schemas\u002Fecl\u002Fcontracts\u002Fapivr-to-vigil.yaml`:\n\n- `from.eidolon` MUST equal `\"apivr\"` and `to.eidolon` MUST equal `\"vigil\"`. On failure: `UNDECLARED_EDGE`.\n- `performative` MUST be one of `ESCALATE`, `REQUEST`, `ACKNOWLEDGE`. On failure: `PERFORMATIVE_NOT_ALLOWED`.\n- `artifact.kind` MUST equal `\"repair-failed-report\"`. On failure: `ARTIFACT_KIND_NOT_ALLOWED`.\n\n### Step V-E3 — Integrity check\n\nRecompute the SHA-256 digest of the payload file bytes and compare against `envelope.integrity.value`:\n\n```sh\ncomputed=$(shasum -a 256 \"$payload_path\" | awk '{print $1}')\ndeclared=$(grep -o '\"value\":\"[^\"]*\"' \"$envelope_path\" | head -1 | cut -d'\"' -f4)\n# [ \"$computed\" = \"$declared\" ] || failure code: INTEGRITY_MISMATCH\n```\n\n### Step V-E4 — Trace event\n\nAppend one JSONL line to `.eidolons\u002F.trace\u002F\u003Cthread_id>.jsonl` (relative to consumer project root; create directory if absent):\n\n**On success:**\n```jsonl\n{\"ts\":\"\u003CRFC3339>\",\"event\":\"verify_pass\",\"message_id\":\"\u003Cuuid>\",\"thread_id\":\"\u003Cuuid>\",\"from\":\"apivr@\u003Cversion>\",\"to\":\"vigil@\u003Cversion>\",\"performative\":\"\u003Cperformative>\",\"integrity_method\":\"sha256\"}\n```\n\n**On failure:**\n```jsonl\n{\"ts\":\"\u003CRFC3339>\",\"event\":\"verify_fail\",\"message_id\":\"\u003Cuuid>\",\"thread_id\":\"\u003Cuuid>\",\"from\":\"apivr@\u003Cversion>\",\"to\":\"vigil@\u003Cversion>\",\"performative\":\"\u003Cperformative>\",\"integrity_method\":\"sha256\",\"verify_failure_code\":\"\u003CCODE>\"}\n```\n\nIf the envelope is invalid JSON, use `thread_id: \"unknown\"` and `message_id: \"unknown\"` as fallback values.\n\n### Step V-E5 — On verify_fail: halt\n\nOn any verification failure:\n\n1. Emit a `[GAP]` finding: `[GAP] Inbound envelope verification failed: \u003CFAILURE_CODE>. The upstream repair-failed-report.envelope.json did not pass ECL §6.2.2 verification. Mission halted.`\n2. Halt the mission — do NOT proceed to the deterministic-first protocol.\n3. Route to human (or back to APIVR-Δ if the failure is `INTEGRITY_MISMATCH` — the report may have been tampered or corrupted in transit).\n\n---\n\n## The Deterministic-First Protocol\n\n### Step 1 — Normalize the failure signature\n\nExtract from upstream artifact (or bug report):\n\n- **Test\u002Fcommand** — exact invocation that exhibits the failure\n- **Error class** — categorical (`TEST_ASSERTION`, `RUNTIME_ERROR`, `BUILD_ERROR`, `TYPE_ERROR`, `LINT_VIOLATION`)\n- **Key stack frames** — top 3–5 frames, normalized (strip absolute paths, line numbers preserved)\n- **Observable symptom** — the specific assertion\u002Ferror message\n\nIf upstream provided an APIVR-Δ `repair-failed-report.md`, copy these fields directly. Do not re-derive.\n\n### Step 2 — First deterministic attempt\n\nSet controlled conditions:\n\n```\nseed: \u003Crecorded_or_default>\nenv: \u003Cpinned per lockfile \u002F container spec>\nfs: \u003Cisolated working copy from commit SHA>\ntime: \u003Cfrozen if test is time-sensitive>\n```\n\nRun the failing invocation. Record:\n- Exit code\n- stdout\u002Fstderr tail (last 200 lines)\n- Comparison of observed signature to upstream signature\n\n**Result categories:**\n- `FAIL_MATCH` — fails with the same signature as upstream → proceed to Step 3\n- `FAIL_DIFFERENT` — fails but with different signature → record as `[DISPUTED]`, use observed signature, proceed to Step 3\n- `PASS` — did not fail → proceed to Step 3 with suspicion of flakiness\n\n### Step 3 — Second deterministic attempt\n\nRe-run with identical conditions. Compare to Step 2.\n\n**Verdict matrix:**\n\n| Step 2 | Step 3 | Verdict | Action |\n|--------|--------|---------|--------|\n| FAIL_MATCH | FAIL_MATCH | `stable` | Proceed to Isolate |\n| FAIL_MATCH | FAIL_DIFFERENT | `flaky` | Switch to statistical |\n| FAIL_MATCH | PASS | `flaky` | Switch to statistical |\n| FAIL_DIFFERENT | FAIL_MATCH | `flaky` | Switch to statistical |\n| FAIL_DIFFERENT | FAIL_DIFFERENT (same sig) | `stable` | Note signature drift, proceed |\n| PASS | FAIL_* | `flaky` | Switch to statistical |\n| PASS | PASS | `not_reproduced` | Halt — emit `[GAP]`, escalate |\n\n---\n\n## Statistical Mode\n\nTriggered by `flaky` verdict. Protocol:\n\n1. Run the failing invocation **5 times** under identical deterministic conditions.\n2. Record pass\u002Ffail and observed signature for each.\n3. Compute failure rate and 95% confidence interval (Wilson score interval for small N).\n4. Classify:\n   - **Consistent flake** — ≥3\u002F5 fail with same signature → `DETERMINISM_VERDICT = flaky`, `[FLAKE]` marker set, proceed to Isolate. Subsequent counterfactual interventions must also use 5-run statistical evaluation.\n   - **Inconsistent flake** — \u003C3\u002F5 fail, or signatures vary widely → `DETERMINISM_VERDICT = intermittent`, halt, escalate to FORGE or human. VIGIL cannot reliably attribute under this condition.\n\n### Confidence band recording\n\nFor every statistical-mode decision:\n\n```yaml\nstatistical_evidence:\n  runs: 5\n  failures: 4\n  failure_rate: 0.80\n  ci_95: [0.37, 0.99]\n  signature_consistency: 1.0   # fraction of failures with matching signature\n  verdict: flaky\n```\n\nDownstream phases inherit `statistical` mode — every intervention in Phase I will be evaluated across 5 runs, with flip requiring ≥4\u002F5 successes.\n\n---\n\n## Writing `reproduction.md`\n\nSchema-required fields:\n\n```yaml\nmission_id: VIGIL-YYYYMMDD-NNN\nupstream_artifact: \u003Cpointer | null>\nauthority: read-only | sandbox | write\nfailure_signature:\n  command: \"\u003Cexact invocation>\"\n  error_class: LOGIC_ERROR | REGRESSION | BUILD_ERROR | TYPE_ERROR | LINT_VIOLATION | RUNTIME_ERROR | INTEGRATION_ERROR | ENVIRONMENT_ERROR | HEISENBUG | COMPOUND | SPEC_DEFECT\n  assertion: \"\u003Cobservable symptom>\"\n  stack_top: [\u003Cframe>, \u003Cframe>, \u003Cframe>]\nreproduction_mode: deterministic | statistical\nreproduction_evidence:\n  - attempt: 1\n    result: FAIL_MATCH\n    signature_match: true\n    stderr_tail: \u003C200-line excerpt ref>\n  - attempt: 2\n    result: FAIL_MATCH\n    signature_match: true\n    stderr_tail: \u003Cexcerpt ref>\ndeterminism_verdict: stable | flaky | intermittent | not_reproduced\nstatistical_evidence: \u003Cnull | object>   # only populated in statistical mode\nmarkers:\n  - FLAKE   # only if flaky\n  - GAP     # only if evidence missing\n```\n\n---\n\n## Common pitfalls\n\n- **Assuming the upstream signature is correct.** Re-verify. APIVR-Δ's Reflect phase may have already attempted fixes that altered the failure shape.\n- **Running against the wrong commit.** Always pin to the SHA that the upstream artifact referenced.\n- **Ignoring env drift.** A failure that reproduces locally but not in CI (or vice versa) is itself a finding — document the env delta.\n- **Jumping to statistical mode too early.** Two deterministic attempts minimum. One inconsistent result is not enough to declare flakiness.\n- **Accepting `PASS → PASS` as \"fixed already.\"** If the upstream failure is real and your runs all pass, something about your reproduction setup is wrong. Escalate with `[GAP]`.\n\n---\n\n*VIGIL Phase V — the gate through which all other phases must pass*\n",{"name":5,"metadata":44,"description":7,"allowed-tools":47},{"phase":45,"methodology":46},"V","VIGIL","run_test, run_command, read_env, capture_trace, set_seed","main","42ce382409178ece647a93f841a86119e8d74a65",".eidolons\u002Fvigil\u002Fskills\u002Fverify",0,"https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma","https:\u002F\u002Fgithub.com\u002FRynaro","https:\u002F\u002Fhlavezzo.me","A Code Alchemist with a passion for weaving tales and inscribing transmutation circles in pure code.","2026-10-18 20:39:25",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Rynaro\u002Fprisma --skill vigil-verify",{"tool":63,"command":64},"bunx","bunx skills add Rynaro\u002Fprisma --skill vigil-verify",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Rynaro\u002Fprisma --skill vigil-verify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvigil\u002Fskills\u002Fverify\u002FSKILL.md",true,[],[72,97,126,151,181,201],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":39},"01M71S3X05FSJA01D22MH39Y0W","vivi-verify-incoming","Load when reading any upstream artefact handed off to Vivi that carries a sibling .envelope.json. BLOCKING per ECL §6.2.2: the orchestrator MUST have verified the envelope's SHA-256 (eidolons verify-envelope --block \u002F eidolons run --verify) and recorded a verify_pass before dispatch. If no verify_pass exists for the message_id, or a verify_fail is present, REFUSE to process the payload and hand back to the orchestrator. Symmetric receiver gate — every Eidolon enforces it identically.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fverify-incoming\u002FSKILL.md",[],[19,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,30],"vivi verify incoming","verify incoming","run","sha-256","json","orchestrator","process","dispatch","back","message","upstream","id","receiver","block","ecl","hand","load","for",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":108,"publishedAt":39},"01M71S3S2E46S6AZEV07AJ75TK","vivi-parallel-tracks","Load ONLY under TRANCE authorization when the Plan phase yields N independent, non-overlapping implementation tracks (disjoint file sets). Operationalizes the TRANCE G4 form — parallel multi-track implementation in mandatory git-worktree isolation, max 5 clean-context tracks, a per-track verifier cascade, a non-fungible per-track ≤3 reflection budget, explicit stop conditions, and a single-threaded merge\u002Faggregation step. Absent TRANCE gating, Vivi runs exactly as today: single-track A→P→I→V→Δ\u002FR.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fparallel-tracks\u002FSKILL.md",[103],{"categoryNo":104,"categoryName":105,"taxonomyType":106,"taxonomyTypeDesc":107},"01JBSEEDCAT000000000000040","财务","PROFESSION","适用职业",[109,110,111,112,113,114,115,116,117,118,119,120,121,95,122,123,124,125,29,30],"parallel","tracks","parallel tracks","vivi parallel tracks","file","only","reflection","clean","plan phase","as","verifier","form","multi","worktree isolation","track","gating","single",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":132,"publishedAt":39},"01M71S3N09VY1H2QHXXP4SKY2X","vivi-methodology","Full Vivi cycle reference — A(nalyze) → P(lan) → I(mplement) → V(erify) → Δ(Delta)\u002FR(eflect). Use when the task is a non-trivial feature implementation in a brownfield codebase and you need the complete methodology reference: complexity routing, evidence-grounded planning rules, test-anchoring requirements, and failure-escalation thresholds.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fmethodology\u002FSKILL.md",[],[133,134,135,136,137,31,138,139,140,141,142,143,144,145,146,147,148,149,150,30],"methodology","vivi methodology","planning","escalation","Rules","evidence","complexity","delta","task","cycle","feature implementation","brownfield","full","requirements","feature","complete","thresholds","you",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":162,"publishedAt":39},"01M71S3GT0M84EHZ2SJZKV61N9","vivi-memory-management","Load at Vivi session start, session end, or when you notice a repeating pattern across tasks. CRYSTALIUM-primary memory protocol: when mcp__crystalium__* tools are available, route ALL memory through CRYSTALIUM (recall\u002Fcommit\u002Fingest\u002Fplan_checkpoint\u002Fsession_end). The local agents\u002Fmemories\u002F*.md files are the standalone fallback for when CRYSTALIUM is absent — EIIS conformance. Never write both.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Fmemory-management\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":160,"taxonomyTypeDesc":161},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,150,179,180,30],"memory","management","memory management","vivi memory management","MCP","commit","tasks","plan","write","never","files","route","across","local","end","session start","standalone","at",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":39},"01M71S3E067YRRFH7304VYYF32","vivi-loop-native","Load in Vivi's V (Verify) phase. The core capability that distinguishes Vivi from its predecessor APIVR-Δ: drive the closed, autonomous, bounded edit-run-test loop (`eidolons sandbox loop`) as its `--fix-hook`, consuming localized feedback, retrying in fresh context, refusing to game the tests, and gating on pass^k. Use whenever the task has an executable test oracle and a loop-competent host.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Floop-native\u002FSKILL.md",[],[188,189,190,191,192,25,193,194,195,196,197,31,141,198,118,199,200,95,124,29],"loop","native","vivi loop native","oracle","sandbox","core","game","feedback","autonomous","fix","tests","fresh","host",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":39},"01M71S3AEKYH0JD0CFJ4GHA98E","vivi-failure-recovery","Load when the Vivi Verify phase produces failures — test fails, lint error, build break, or three consecutive unsuccessful attempts at the same category. Provides the failure classification taxonomy, bounded debugging protocol, and escalation thresholds. Use to avoid the 'random retries' anti-pattern.","https:\u002F\u002Fgithub.com\u002FRynaro\u002Fprisma\u002Fblob\u002Fmain\u002F.eidolons\u002Fvivi\u002Fskills\u002Ffailure-recovery\u002FSKILL.md",[],[208,209,210,136,211,212,31,213,214,149,215,216,217,95,180,218,219,29,30,220],"recovery","vivi failure recovery","debugging","classification","taxonomy","three","pattern","error","retries","random","break","bounded","same"]