affaan-m/ECC · error · Error
is missing the row
Error message
${pattern.source} is missing the ${pattern.category} row What it means
Generic guard inside parseReadmeExpectations' tablePatterns loop: thrown when a README comparison-table row for one category (agents, commands, or skills) is absent or reformatted so its per-category regex does not match. The faulting input is the comparison table row named by pattern.category.
Solutions
- Restore the missing agents/commands/skills row in the README.md comparison table with the correct count.
- Regenerate the table with the catalog write mode.
- Update the tablePatterns regex if the row format (bold markers, checkmark prefixes, parenthetical notes) changed.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at scripts/ci/catalog.js:125 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/34901276574aa82a.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/ci/catalog.js:125
}
expectations.push({
category: 'agents',
mode: 'exact',
expected: Number(projectTreeAgentsMatch[1]),
source: 'README.md project tree (agents)'
});
const tablePatterns = [
{ category: 'agents', regex: /\|\s*(?:\*\*)?Agents(?:\*\*)?\s*\|\s*(?:(?:PASS:|\u2705)\s*)?(\d+)\s+agents\s*\|/i, source: 'README.md comparison table' },
{ category: 'commands', regex: /\|\s*(?:\*\*)?Commands(?:\*\*)?\s*\|\s*(?:(?:PASS:|\u2705)\s*)?(\d+)\s+commands(?:\s*\([^)]*\))?\s*\|/i, source: 'README.md comparison table' },
{ category: 'skills', regex: /\|\s*(?:\*\*)?Skills(?:\*\*)?\s*\|\s*(?:(?:PASS:|\u2705)\s*)?(\d+)\s+skills\s*\|/i, source: 'README.md comparison table' }
];
for (const pattern of tablePatterns) {
const match = readmeContent.match(pattern.regex);
if (!match) {
throw new Error(`${pattern.source} is missing the ${pattern.category} row`);
}
expectations.push({
category: pattern.category,
mode: 'exact',
expected: Number(match[1]),
source: `${pattern.source} (${pattern.category})`
});
}
return expectations;
}
function parseZhRootReadmeExpectations(readmeContent) {
const match = readmeContent.match(/你现在可以使用\s+(\d+)\s+个代理、\s*(\d+)\s*个技能和\s*(\d+)\s*个命令/i);
if (!match) {
throw new Error('README.zh-CN.md is missing the quick-start catalog summary');
}View on GitHub (pinned to 8321021c54)