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
- Restore a quick-start sentence in README.md matching the regex, e.g. 'access to 68 agents, 292 skills, and 94 commands'.
- Regenerate docs via the catalog write mode instead of hand-editing the summary.
- 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)