affaan-m/ECC · error · Error

AGENTS.md is missing the catalog summary line

Error message

AGENTS.md is missing the catalog summary line

What it means

parseAgentsDocExpectations throws when AGENTS.md lacks the summary line matching 'providing N specialized agents, N skills, and N commands'. It fires when the header summary is reworded or the counts are dropped, so the doc-derived expectations for agents/skills/commands cannot be built.

Solutions

  1. Restore the summary sentence in AGENTS.md with current counts.
  2. Regenerate AGENTS.md counts via the catalog write mode.
  3. Adjust the summaryMatch regex if the sentence format intentionally changed.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at scripts/ci/catalog.js:224 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/61b062b97d01c981. Report an issue: GitHub.

Appendix: source

Thrown at scripts/ci/catalog.js:224

    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 parseAgentsDocExpectations(agentsContent) {
  const summaryMatch = agentsContent.match(/providing\s+(\d+)\s+specialized agents,\s+(\d+)(\+)?\s+skills,\s+(\d+)\s+commands/i);
  if (!summaryMatch) {
    throw new Error('AGENTS.md is missing the catalog summary line');
  }

  const expectations = [
    { category: 'agents', mode: 'exact', expected: Number(summaryMatch[1]), source: 'AGENTS.md summary' },
    {
      category: 'skills',
      mode: summaryMatch[3] ? 'minimum' : 'exact',
      expected: Number(summaryMatch[2]),
      source: 'AGENTS.md summary'
    },
    { category: 'commands', mode: 'exact', expected: Number(summaryMatch[4]), source: 'AGENTS.md summary' }
  ];

  const structurePatterns = [
    {
      category: 'agents',
      mode: 'exact',
      regex: /^\s*agents\/\s*[—–-]\s*(\d+)\s+specialized subagents\s*$/im,

View on GitHub (pinned to 8321021c54)