()
| 175 | } |
| 176 | |
| 177 | async createSlashCommands(): Promise<void> { |
| 178 | const commandNames = [ |
| 179 | 'spec-create', |
| 180 | 'spec-execute', |
| 181 | 'spec-status', |
| 182 | 'spec-list', |
| 183 | 'spec-steering-setup', |
| 184 | 'bug-create', |
| 185 | 'bug-analyze', |
| 186 | 'bug-fix', |
| 187 | 'bug-verify', |
| 188 | 'bug-status' |
| 189 | ]; |
| 190 | |
| 191 | for (const commandName of commandNames) { |
| 192 | const sourceFile = join(this.markdownCommandsDir, `${commandName}.md`); |
| 193 | const destFile = join(this.commandsDir, `${commandName}.md`); |
| 194 | |
| 195 | try { |
| 196 | // Delete existing file if it exists to ensure clean replacement |
| 197 | try { |
| 198 | await fs.unlink(destFile); |
| 199 | } catch { |
| 200 | // File might not exist, which is fine |
| 201 | } |
| 202 | |
| 203 | const commandContent = await fs.readFile(sourceFile, 'utf-8'); |
| 204 | await fs.writeFile(destFile, commandContent, 'utf-8'); |
| 205 | } catch (error) { |
| 206 | console.error(`Failed to copy command ${commandName}:`, error); |
| 207 | throw error; |
| 208 | } |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | async createTemplates(): Promise<void> { |
| 213 | const templateNames = [ |
no outgoing calls
no test coverage detected