affaan-m/ECC · error · Error

skills:evaluate requires --skill <id>

Error message

skills:evaluate requires --skill <id>

What it means

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.

Source

Thrown at scripts/session-inspect.js:89

  });

  if (target === 'skills:health') {
    return buildSkillHealthReport(observations, {
      skillId: options.skillId || null
    });
  }

  if (target === 'skills:amendify') {
    if (!options.skillId) {
      throw new Error('skills:amendify requires --skill <id>');
    }

    return proposeSkillAmendment(options.skillId, observations);
  }

  if (target === 'skills:evaluate') {
    if (!options.skillId) {
      throw new Error('skills:evaluate requires --skill <id>');
    }

    return buildSkillEvaluationScaffold(options.skillId, observations, {
      amendmentId: options.amendmentId || null
    });
  }

  return null;
}

function main() {
  const { target, adapterId, targetType, writePath, listAdapters, skillId, amendmentId, observationsPath } = parseArgs(process.argv);

  if (listAdapters) {
    const registry = createAdapterRegistry();
    console.log(JSON.stringify({ adapters: registry.listAdapters() }, null, 2));
    return;
  }

View on GitHub (pinned to 01e15490f0)

Solutions

  1. Provide `--skill <skill-id>` for the skill to evaluate.
  2. Optionally add `--amendment-id <id>` to scope the scaffold to an existing amendment.
  3. Use skills:health instead for an aggregate, no-skill-required view.

Example fix

# before
node scripts/session-inspect.js skills:evaluate --amendment-id am1
# after
node scripts/session-inspect.js skills:evaluate --skill security-review --amendment-id am1
Defensive patterns

Strategy: validation

Validate before calling

const argv = process.argv.slice(2);
if (argv.includes('skills:evaluate')) {
  const i = argv.indexOf('--skill');
  if (i === -1 || !argv[i + 1]) { console.error('skills:evaluate requires --skill <id>'); process.exit(2); }
}

Try / catch

try { buildEvaluationScaffold(skillId, observations); } catch (err) { console.error(err.message); process.exit(2); }

Prevention

When it happens

Trigger: Running `node scripts/session-inspect.js skills:evaluate` without --skill, or expecting evaluate to iterate over all skills (it does not).

Common situations: Confusing skills:evaluate (single skill) with skills:health (all skills); reusing a command template that omitted --skill; passing --amendment-id but no --skill.

Related errors


AI-assisted analysis of affaan-m/ECC@01e15490f0 (2026-08-13). Data as JSON: /api/errors/abc256ec32cbc359. Report an issue: GitHub.