{"record":{"id":"abc256ec32cbc359","repo":"affaan-m/ECC","slug":"skills-evaluate-requires-skill-id","errorCode":null,"errorMessage":"skills:evaluate requires --skill <id>","messagePattern":"skills:evaluate requires --skill <id>","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"scripts/session-inspect.js","lineNumber":89,"sourceCode":"  });\n\n  if (target === 'skills:health') {\n    return buildSkillHealthReport(observations, {\n      skillId: options.skillId || null\n    });\n  }\n\n  if (target === 'skills:amendify') {\n    if (!options.skillId) {\n      throw new Error('skills:amendify requires --skill <id>');\n    }\n\n    return proposeSkillAmendment(options.skillId, observations);\n  }\n\n  if (target === 'skills:evaluate') {\n    if (!options.skillId) {\n      throw new Error('skills:evaluate requires --skill <id>');\n    }\n\n    return buildSkillEvaluationScaffold(options.skillId, observations, {\n      amendmentId: options.amendmentId || null\n    });\n  }\n\n  return null;\n}\n\nfunction main() {\n  const { target, adapterId, targetType, writePath, listAdapters, skillId, amendmentId, observationsPath } = parseArgs(process.argv);\n\n  if (listAdapters) {\n    const registry = createAdapterRegistry();\n    console.log(JSON.stringify({ adapters: registry.listAdapters() }, null, 2));\n    return;\n  }","sourceCodeStart":71,"sourceCodeEnd":107,"githubUrl":"https://github.com/affaan-m/ECC/blob/8321021c54d670126ce3b2969d5deb880b4b0c2a/scripts/session-inspect.js#L71-L107","documentation":"inspectSkillLoopTarget throws when the skills:evaluate target is requested without a --skill <id> option, so there is no skill to build the evaluation scaffold for. The faulting input is the missing options.skillId.","triggerScenarios":"Invoking `node scripts/session-inspect.js skills:evaluate` without --skill, or with --skill but an empty value.","commonSituations":"Switching from a target that needs no --skill to skills:evaluate and forgetting the flag; a value like `--skill \"\"` from a variable that is unset in the environment.","solutions":["Invoke with: session-inspect ... skills:evaluate --skill <skill-id>.","Use the skill id exactly as listed by skills:health.","Add --skill for skills:amendify too — it has the same requirement."],"exampleFix":"// before\nSKILL_ID=\"\"; node scripts/session-inspect.js skills:evaluate --skill \"$SKILL_ID\"\n// after\nnode scripts/session-inspect.js skills:evaluate --skill security-review","handlingStrategy":"validation","validationCode":"if (target === 'skills:evaluate' && !skillId) { console.error('skills:evaluate requires --skill <id>'); process.exit(2); }","typeGuard":"const hasSkillId = (o) => typeof o.skillId === 'string' && o.skillId.length > 0;","tryCatchPattern":"try { payload = skillLoopPayload(target, options); } catch (e) { console.error(e.message); process.exit(2); }","preventionTips":["Pass --skill for every skills:* target unless documented otherwise","Guard shell variables with ${VAR:?unset} before interpolating into the command","Verify the skill id against the skills/ directory"],"tags":["cli","missing-argument","validation"],"backgroundTag":"missing-required-flag","analyzedSha":"8321021c54d670126ce3b2969d5deb880b4b0c2a","analyzedAt":"2026-09-16T10:08:13.343Z","contentChangedAt":"2026-09-16T10:08:13.343Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}