Fission-AI/OpenSpec · error
${specName} validation failed - duplicate requirement in ADD
Error message
${specName} validation failed - duplicate requirement in ADDED for header "### Requirement: ${add.name}" What it means
Error "${specName} validation failed - duplicate requirement in ADDED for header "### Requirement: ${add.name}"" thrown in Fission-AI/OpenSpec.
Source
Thrown at src/core/specs-apply.ts:202
warnings.push(message);
if (!options.silent) {
console.log(chalk.yellow(`⚠️ Warning: ${message}`));
}
};
// Read change spec content (delta-format expected)
assertTrustedSpecPath(update.sourceRoot, update.source);
const changeContent = await fs.readFile(update.source, 'utf-8');
// Parse deltas from the change spec file
const plan = parseDeltaSpec(changeContent);
const specName = update.id;
// Pre-validate duplicates within sections
const addedNames = new Set<string>();
for (const add of plan.added) {
const name = normalizeRequirementName(add.name);
if (addedNames.has(name)) {
throw new Error(
`${specName} validation failed - duplicate requirement in ADDED for header "### Requirement: ${add.name}"`
);
}
addedNames.add(name);
}
const modifiedNames = new Set<string>();
for (const mod of plan.modified) {
const name = normalizeRequirementName(mod.name);
if (modifiedNames.has(name)) {
throw new Error(
`${specName} validation failed - duplicate requirement in MODIFIED for header "### Requirement: ${mod.name}"`
);
}
modifiedNames.add(name);
}
const removedNamesSet = new Set<string>();
for (const rem of plan.removed) {
const name = normalizeRequirementName(rem);View on GitHub (pinned to 6926ccb18a)
When it happens
Trigger: Thrown at src/core/specs-apply.ts:202 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/c4c800a7f974d6d9.
Report an issue: GitHub.