Fission-AI/OpenSpec · error · Error
No OpenSpec directory found. Run 'openspec init' first.
Error message
No OpenSpec directory found. Run 'openspec init' first.
What it means
Error "No OpenSpec directory found. Run 'openspec init' first." thrown in Fission-AI/OpenSpec.
Source
Thrown at src/core/update.ts:136
private readonly force: boolean;
constructor(options: UpdateCommandOptions = {}) {
this.force = options.force ?? false;
}
/**
* Refreshes OpenSpec skills and commands for all configured tools,
* regenerating artifacts according to the effective profile and delivery mode.
*
* @param projectPath - Path to the project root containing the openspec directory
*/
async execute(projectPath: string): Promise<void> {
const resolvedProjectPath = path.resolve(projectPath);
const openspecPath = path.join(resolvedProjectPath, OPENSPEC_DIR_NAME);
// 1. Check openspec directory exists
if (!await FileSystemUtils.directoryExists(openspecPath)) {
throw new Error(`No OpenSpec directory found. Run 'openspec init' first.`);
}
// 2. Migrate OpenSpec-managed skills left in renamed tool directories
// (e.g. .kimi -> .kimi-code) so they stay detected and get refreshed,
// then perform the one-time profile migration if needed before any
// legacy upgrade generation.
for (const migration of migrateLegacyToolDirs(resolvedProjectPath)) {
if (hasMovableContent(migration)) {
console.log(chalk.dim(`Migrated ${describeLegacyMigration(migration)}: ${migration.from} → ${migration.to}`));
}
this.reportKeptInPlace(migration);
}
const declinedMigrations = await this.offerConsentedLegacyMigrations(resolvedProjectPath);
// Use detected tool directories to preserve existing opsx skills/commands.
const detectedTools = getAvailableTools(resolvedProjectPath);
migrateIfNeededShared(resolvedProjectPath, detectedTools);
View on GitHub (pinned to 6926ccb18a)
When it happens
Trigger: Thrown at src/core/update.ts:136 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/87482e3bb245147c.
Report an issue: GitHub.