{"record":{"id":"0283dbaba3dea96d","repo":"Fission-AI/OpenSpec","slug":"archive-spec-validation-failed","errorCode":"archive_spec_validation_failed","errorMessage":"Rebuilt spec for '${specName}' failed validation. No files were changed.","messagePattern":"Rebuilt spec for '(.+?)' failed validation\\. No files were changed\\.","errorType":"exception","errorClass":"ArchiveBlockedError","httpStatus":null,"severity":"error","filePath":"src/core/archive.ts","lineNumber":1666,"sourceCode":"                        : '')\n                    : undefined;\n                // The marker was set and retirement was still refused. Saying\n                // nothing left the author who did exactly what the docs asked\n                // back in the original dead end with no signal that their\n                // marker had been read at all.\n                // The author asked for a retirement and got the bare\n                // validation abort. Name the lines that stood in the way.\n                const refusalReason =\n                  retirementDeclared &&\n                  p.unaccountedContent.length > 0 &&\n                  (await isRetirableSpec(specName, p.rebuilt))\n                    ? `'${specName}' declares retire_capabilities, but the spec holds content the merge ` +\n                      `cannot safely account for and deleting the file would take with it: ` +\n                      `${describeUnaccountedContent(p.unaccountedContent)}. ` +\n                      'Move it into `## Purpose` or a canonical requirement, or delete the spec by hand.'\n                    : undefined;\n                if (json) {\n                  throw new ArchiveBlockedError(\n                    'archive_spec_validation_failed',\n                    `Rebuilt spec for '${specName}' failed validation. No files were changed.`,\n                    refusalReason ??\n                      retirementHint ??\n                      blockedRetirementHint ??\n                      `Run ${withStoreFlag(root, `openspec validate ${specName}`)} after fixing the change deltas.`\n                  );\n                }\n                console.log(chalk.red(`\\nValidation errors in rebuilt spec for ${specName} (will not write changes):`));\n                for (const issue of report.issues) {\n                  if (issue.level === 'ERROR') console.log(chalk.red(`  ✗ ${issue.message}`));\n                  else if (issue.level === 'WARNING') console.log(chalk.yellow(`  ⚠ ${issue.message}`));\n                }\n                if (retirementHint) console.log(chalk.yellow(`  → ${retirementHint}`));\n                if (blockedRetirementHint) console.log(chalk.yellow(`  → ${blockedRetirementHint}`));\n                if (refusalReason) console.log(chalk.yellow(`  → ${refusalReason}`));\n                console.log('Aborted. No files were changed.');\n                process.exitCode = 1;","sourceCodeStart":1648,"sourceCodeEnd":1684,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/archive.ts#L1648-L1684","documentation":"Error \"Rebuilt spec for '${specName}' failed validation. No files were changed.\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/archive.ts:1666 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-08-25T16:17:27.014Z"}