export interface SlashCommand {
	name: string;
	description: string;
}

export const SLASH_COMMANDS: SlashCommand[] = [
	{
		name: "/help",
		description: "Show this list of available slash commands.",
	},
	{
		name: "/backlog",
		description:
			"Show all items in the backlog with dependency satisfaction status.",
	},
	{
		name: "/status",
		description:
			"Show pipeline status and agent availability. `/status <number>` shows a story triage dump.",
	},
	{
		name: "/assign <number> <model>",
		description: "Pre-assign a model to a story (e.g. `/assign 42 opus`).",
	},
	{
		name: "/start <number>",
		description:
			"Start a coder on a story. Optionally specify a model: `/start <number> opus`.",
	},
	{
		name: "/show <number>",
		description: "Display the full text of a work item.",
	},
	{
		name: "/move <number> <stage>",
		description:
			"Move a work item to a pipeline stage (backlog, current, qa, merge, done).",
	},
	{
		name: "/delete <number>",
		description:
			"Remove a work item from the pipeline and stop any running agent.",
	},
	{
		name: "/cost",
		description:
			"Show token spend: 24h total, top stories, breakdown by agent type, and all-time total.",
	},
	{
		name: "/git",
		description:
			"Show git status: branch, uncommitted changes, and ahead/behind remote.",
	},
	{
		name: "/overview <number>",
		description: "Show the implementation summary for a merged story.",
	},
	{
		name: "/ambient",
		description: "Toggle ambient mode: `/ambient on` or `/ambient off`.",
	},
	{
		name: "/htop",
		description:
			"Show live system and agent process dashboard: `/htop`, `/htop 10m`, `/htop stop`.",
	},
	{
		name: "/loc",
		description:
			"Show top source files by line count: `/loc` (top 10), `/loc <N>`, or `/loc <filepath>`.",
	},
	{
		name: "/rmtree <number>",
		description:
			"Delete the worktree for a story without removing it from the pipeline.",
	},
	{
		name: "/rebuild",
		description: "Rebuild the server binary and restart.",
	},
	{
		name: "/timer",
		description:
			"Schedule a deferred agent start: `/timer <story_id> <HH:MM>`, `/timer list`, `/timer cancel <story_id>`.",
	},
	{
		name: "/unblock <number>",
		description:
			"Reset a blocked story: clears blocked flag and resets retry count.",
	},
	{
		name: "/unreleased",
		description: "Show stories merged to master since the last release tag.",
	},
	{
		name: "/setup",
		description:
			"Show setup wizard progress; or `/setup confirm` / `/setup skip` / `/setup retry` to drive the wizard.",
	},
	{
		name: "/reset",
		description:
			"Clear the current Claude Code session and start fresh (messages and session ID are cleared locally).",
	},
	{
		name: "/test",
		description:
			"Run the project's test suite (`script/test`) and show pass/fail with output.",
	},
	{
		name: "/btw <question>",
		description:
			"Ask a side question using the current conversation as context. The question and answer are not added to the conversation history.",
	},
];
