Fission-AI/OpenSpec · error · Error
Change "${changeName}" has no proposal.md yet. Run "openspec
Error message
Change "${changeName}" has no proposal.md yet. Run "openspec status --change ${changeName}" to see which artifact comes next. What it means
Error "Change "${changeName}" has no proposal.md yet. Run "openspec status --change ${changeName}" to see which artifact comes next." thrown in Fission-AI/OpenSpec.
Source
Thrown at src/commands/change.ts:103
if (!isChangeDirectoryName(changesPath, changeDir)) {
throw new Error(`Change "${changeName}" not found at ${proposalPath}`);
}
try {
await fs.access(proposalPath);
} catch {
// A change can exist without a proposal: `openspec new change` scaffolds
// only .openspec.yaml, and a custom schema need not define a proposal
// artifact. Say which of the two cases this is instead of reporting a
// change that does exist as missing. A stray file under changes/ is not a
// change, and naming it one would point the user at a `status --change`
// call that cannot work.
const isChangeDirectory = await fs
.stat(changeDir)
.then((stats) => stats.isDirectory())
.catch(() => false);
if (isChangeDirectory) {
throw new Error(
`Change "${changeName}" has no proposal.md yet. ` +
`Run "openspec status --change ${changeName}" to see which artifact comes next.`
);
}
throw new Error(`Change "${changeName}" not found at ${proposalPath}`);
}
FileSystemUtils.assertPathWithin(path.dirname(proposalPath), proposalPath);
if (options?.json) {
FileSystemUtils.assertPathWithin(changeDir, proposalPath);
const jsonOutput = await this.converter.convertChangeToJson(proposalPath);
if (options.requirementsOnly) {
console.error('Flag --requirements-only is deprecated; use --deltas-only instead.');
}
const parsed: Change = JSON.parse(jsonOutput);
FileSystemUtils.assertPathWithin(changeDir, proposalPath);View on GitHub (pinned to 6926ccb18a)
When it happens
Trigger: Thrown at src/commands/change.ts:103 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/0ec9abdb9590d756.
Report an issue: GitHub.