affaan-m/ECC · error · Error

README.md is missing the quick-start catalog summary

Error message

README.md is missing the quick-start catalog summary

What it means

parseReadmeExpectations throws when the English README no longer contains the quick-start sentence pattern 'access to N agents, N skills, and N commands'. It fires when the intro copy is reworded or the count sentence is removed, so no expected agent/skill/command counts can be extracted.

Solutions

  1. Restore a quick-start sentence in README.md matching the regex, e.g. 'access to 68 agents, 292 skills, and 94 commands'.
  2. Regenerate docs via the catalog write mode instead of hand-editing the summary.
  3. If the phrasing must change, update the quickStartMatch regex to accept the new wording.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at scripts/ci/catalog.js:95 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of affaan-m/ECC@8321021c54 (2026-09-16). Data as JSON: /api/errors/c41fc303bfbfc936. Report an issue: GitHub.

Appendix: source

Thrown at scripts/ci/catalog.js:95

  }
}

function replaceOrThrow(content, regex, replacer, source) {
  if (!regex.test(content)) {
    throw new Error(`${source} is missing the expected catalog marker`);
  }

  return content.replace(regex, replacer);
}

function parseReadmeExpectations(readmeContent) {
  const expectations = [];

  const quickStartMatch = readmeContent.match(
    /access to\s+(\d+)\s+agents,\s+(\d+)\s+skills,\s+and\s+(\d+)\s+(?:commands|legacy command shims?)/i
  );
  if (!quickStartMatch) {
    throw new Error('README.md is missing the quick-start catalog summary');
  }

  expectations.push(
    { category: 'agents', mode: 'exact', expected: Number(quickStartMatch[1]), source: 'README.md quick-start summary' },
    { category: 'skills', mode: 'exact', expected: Number(quickStartMatch[2]), source: 'README.md quick-start summary' },
    { category: 'commands', mode: 'exact', expected: Number(quickStartMatch[3]), source: 'README.md quick-start summary' }
  );

  const projectTreeAgentsMatch = readmeContent.match(/^\|\s*--\s*agents\/\s*#\s*(\d+)\s+specialized subagents for delegation\s*$/im);
  if (!projectTreeAgentsMatch) {
    throw new Error('README.md project tree is missing the agents count');
  }

  expectations.push({
    category: 'agents',
    mode: 'exact',
    expected: Number(projectTreeAgentsMatch[1]),
    source: 'README.md project tree (agents)'

View on GitHub (pinned to 8321021c54)