affaan-m/ECC · error · Error
is missing the catalog count description
Error message
${source} is missing the catalog count description What it means
parseCatalogDescriptionExpectations throws when the parsed JSON's description (retrieved via the getDescription callback) is not a string, meaning the manifest lacks or mistypes the field holding the catalog count sentence. The faulting input is the description property in the JSON at `source`.
Solutions
- Add or correct the description field so it is a string containing the counts sentence.
- Check that getDescription points at the right property path for this manifest shape.
- Run the catalog write mode to sync the description with actual counts.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at scripts/ci/catalog.js:341 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/ffa52c64ad9b6c55.
Report an issue: GitHub.
Appendix: source
Thrown at scripts/ci/catalog.js:341
expected: Number(match[1]),
source: `${pattern.source} (${pattern.category})`
});
}
return expectations;
}
function parseCatalogDescriptionExpectations(content, source, getDescription) {
let parsed;
try {
parsed = JSON.parse(content);
} catch (error) {
throw new Error(`${source} is not valid JSON: ${error.message}`);
}
const description = getDescription(parsed);
if (typeof description !== 'string') {
throw new Error(`${source} is missing the catalog count description`);
}
const match = description.match(/(\d+)\s+agents,\s+(\d+)\s+skills,\s+(\d+)\s+legacy command shims?/i);
if (!match) {
throw new Error(`${source} is missing the catalog count description`);
}
return [
{ category: 'agents', mode: 'exact', expected: Number(match[1]), source },
{ category: 'skills', mode: 'exact', expected: Number(match[2]), source },
{ category: 'commands', mode: 'exact', expected: Number(match[3]), source },
];
}
function evaluateExpectations(catalog, expectations) {
return expectations.map(expectation => {
const actual = catalog[expectation.category].count;
const ok = expectation.mode === 'minimum'View on GitHub (pinned to 8321021c54)