| name | interactive-menu |
| description | Pattern for presenting numbered choices to the user in OMP's conversational TUI |
| invocation | none (referenced by commands that need selection) |
| autoinvoke | false |
Skill: Interactive Menu
Metadata
| Field | Value |
|---|
| ID | interactive-menu |
| Keywords | interactive-menu:, /interactive-menu |
| Tier | UI Pattern |
| Source | src/skills/interactive-menu.mts |
Description
OMP does not have a native menu widget. Use this conversational pattern when a command needs user selection.
Interface
interface SkillInput {
trigger: string;
args: string[];
}
interface SkillOutput {
status: "ok" | "error";
message: string;
}
export async function activate(input: SkillInput): Promise<SkillOutput>
export function deactivate(): void
Implementation
Spawns bin/omp.mjs interactive-menu [args]. No persistent resources are maintained.
Format
{Title}
{Optional context line}
1. {Option A} -- {description}
2. {Option B} -- {description}
3. {Option C} -- {description}
4. Type something else
Your choice:
Rules
- Present options as a numbered list. Keep descriptions to one line each.
- Always include a "Type something else" option as the last item.
- Wait for user input. Do not assume a choice.
- Accept the number ("1") or the option name ("graphwiki") as valid input.
- If the user types something not in the list (via the last option), validate it against allowed values. If invalid, re-present the menu with an error message.
- After selection, confirm what was set: "Set graph.provider to graphwiki (local)."
- Maximum 6 options. If more choices exist, group them or paginate.
- Do not use emoji, decorative borders, or ASCII art. Clean text only.
Example: Graph Provider
Graph Provider
Current: graphwiki (from local config)
1. graphwiki -- TypeScript knowledge graph with wiki compilation
2. graphify -- Python knowledge graph with community detection
3. none -- Disable graph context
4. Type something else
Your choice:
User types: 2
Agent responds: "Set graph.provider to graphify (local). Install graphify if not already: pip install graphify"
Example: Orchestration Mode
Orchestration Mode
Current: ralph
1. ralph -- Persistence loop with architect verification
2. autopilot -- Full autonomous pipeline
3. ultrawork -- Parallel execution
4. ultraqa -- QA cycling
5. Type something else
Your choice: