Fission-AI/OpenSpec · error
${specName} MODIFIED failed for header "### Requirement: ${m
Error message
${specName} MODIFIED failed for header "### Requirement: ${mod.name}" - header mismatch in content What it means
Error "${specName} MODIFIED failed for header "### Requirement: ${mod.name}" - header mismatch in content" thrown in Fission-AI/OpenSpec.
Source
Thrown at src/core/specs-apply.ts:459
}
continue;
}
nameToBlock.delete(key);
removedApplied++;
}
// MODIFIED
let modifiedApplied = 0;
for (const mod of plan.modified) {
const key = normalizeRequirementName(mod.name);
const currentBlock = nameToBlock.get(key);
if (!currentBlock) {
throw new Error(`${specName} MODIFIED failed for header "### Requirement: ${mod.name}" - not found`);
}
// Replace block with provided raw (ensure header line matches key)
const modHeaderMatch = mod.raw.split('\n')[0].match(/^###\s*Requirement:\s*(.+)\s*$/i);
if (!modHeaderMatch || normalizeRequirementName(modHeaderMatch[1]) !== key) {
throw new Error(
`${specName} MODIFIED failed for header "### Requirement: ${mod.name}" - header mismatch in content`
);
}
const missingScenarios = findMissingCurrentScenarios(currentBlock, mod);
if (missingScenarios.length > 0) {
throw new Error(
`${specName} MODIFIED failed for header "### Requirement: ${mod.name}" - current spec contains scenario(s) not present in the modified block: ${missingScenarios.map(name => `"${name}"`).join(', ')}. Refresh the change spec before archiving to avoid dropping scenarios.`
);
}
// Identical content means the modification was already synced to the
// baseline (early-sync pattern) — count only real replacements, so a
// fully synced change still takes the "already in sync" write skip
// instead of churning normalization differences into the file.
if (normalizeBlockRaw(currentBlock.raw) !== normalizeBlockRaw(mod.raw)) {
modifiedApplied++;
}
nameToBlock.set(key, mod);
}View on GitHub (pinned to 6926ccb18a)
When it happens
Trigger: Thrown at src/core/specs-apply.ts:459 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Fission-AI/OpenSpec@6926ccb18a (2026-08-25).
Data as JSON: /api/errors/6bccdef4422d750a.
Report an issue: GitHub.