{"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":"exception","errorClass":"Error","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/01e15490f04e29cfefe3896951f43db46994d8ee/scripts/session-inspect.js#L71-L107","documentation":"Thrown by session-inspect when the report target is 'skills:evaluate' but options.skillId is falsy. Building an evaluation scaffold targets a single skill, so the --skill id is mandatory before the scaffold is produced.","triggerScenarios":"Running `node scripts/session-inspect.js skills:evaluate` without --skill, or expecting evaluate to iterate over all skills (it does not).","commonSituations":"Confusing skills:evaluate (single skill) with skills:health (all skills); reusing a command template that omitted --skill; passing --amendment-id but no --skill.","solutions":["Provide `--skill <skill-id>` for the skill to evaluate.","Optionally add `--amendment-id <id>` to scope the scaffold to an existing amendment.","Use skills:health instead for an aggregate, no-skill-required view."],"exampleFix":"# before\nnode scripts/session-inspect.js skills:evaluate --amendment-id am1\n# after\nnode scripts/session-inspect.js skills:evaluate --skill security-review --amendment-id am1","handlingStrategy":"validation","validationCode":"const argv = process.argv.slice(2);\nif (argv.includes('skills:evaluate')) {\n  const i = argv.indexOf('--skill');\n  if (i === -1 || !argv[i + 1]) { console.error('skills:evaluate requires --skill <id>'); process.exit(2); }\n}","typeGuard":null,"tryCatchPattern":"try { buildEvaluationScaffold(skillId, observations); } catch (err) { console.error(err.message); process.exit(2); }","preventionTips":["Pre-validate per-skill targets in a wrapper before invoking session-inspect.","Keep a registry of valid skill ids and cross-check --skill against it."],"tags":["cli","argument-parsing","session-inspect","skills"],"backgroundTag":null,"analyzedSha":"01e15490f04e29cfefe3896951f43db46994d8ee","analyzedAt":"2026-08-13T00:31:08.655Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}