|
3551b80…
|
noreply
|
1 |
# Interactive Companion REPL |
|
3551b80…
|
noreply
|
2 |
|
|
3551b80…
|
noreply
|
3 |
The PlanOpticon Companion is an interactive Read-Eval-Print Loop (REPL) that provides a conversational interface to PlanOpticon's full feature set. It combines workspace awareness, knowledge graph querying, LLM-powered chat, and planning agent skills into a single session. |
|
3551b80…
|
noreply
|
4 |
|
|
3551b80…
|
noreply
|
5 |
Use the Companion when you want to explore a knowledge graph interactively, ask natural-language questions about extracted content, generate planning artifacts on the fly, or switch between providers and models without restarting. |
|
3551b80…
|
noreply
|
6 |
|
|
3551b80…
|
noreply
|
7 |
--- |
|
3551b80…
|
noreply
|
8 |
|
|
3551b80…
|
noreply
|
9 |
## Launching the Companion |
|
3551b80…
|
noreply
|
10 |
|
|
3551b80…
|
noreply
|
11 |
There are three equivalent ways to start the Companion. |
|
3551b80…
|
noreply
|
12 |
|
|
3551b80…
|
noreply
|
13 |
### As a subcommand |
|
3551b80…
|
noreply
|
14 |
|
|
3551b80…
|
noreply
|
15 |
```bash |
|
3551b80…
|
noreply
|
16 |
planopticon companion |
|
3551b80…
|
noreply
|
17 |
``` |
|
3551b80…
|
noreply
|
18 |
|
|
3551b80…
|
noreply
|
19 |
### With the `--chat` / `-C` flag |
|
3551b80…
|
noreply
|
20 |
|
|
3551b80…
|
noreply
|
21 |
```bash |
|
3551b80…
|
noreply
|
22 |
planopticon --chat |
|
3551b80…
|
noreply
|
23 |
planopticon -C |
|
3551b80…
|
noreply
|
24 |
``` |
|
3551b80…
|
noreply
|
25 |
|
|
3551b80…
|
noreply
|
26 |
These flags launch the Companion directly from the top-level CLI, without invoking a subcommand. |
|
3551b80…
|
noreply
|
27 |
|
|
3551b80…
|
noreply
|
28 |
### With options |
|
3551b80…
|
noreply
|
29 |
|
|
3551b80…
|
noreply
|
30 |
The `companion` subcommand accepts options for specifying knowledge base paths, LLM provider, and model: |
|
3551b80…
|
noreply
|
31 |
|
|
3551b80…
|
noreply
|
32 |
```bash |
|
3551b80…
|
noreply
|
33 |
# Point at a specific knowledge base |
|
3551b80…
|
noreply
|
34 |
planopticon companion --kb ./results |
|
3551b80…
|
noreply
|
35 |
|
|
3551b80…
|
noreply
|
36 |
# Use a specific provider |
|
3551b80…
|
noreply
|
37 |
planopticon companion -p anthropic |
|
3551b80…
|
noreply
|
38 |
|
|
3551b80…
|
noreply
|
39 |
# Use a specific model |
|
3551b80…
|
noreply
|
40 |
planopticon companion --chat-model gpt-4o |
|
3551b80…
|
noreply
|
41 |
|
|
3551b80…
|
noreply
|
42 |
# Combine options |
|
3551b80…
|
noreply
|
43 |
planopticon companion --kb ./results -p openai --chat-model gpt-4o |
|
3551b80…
|
noreply
|
44 |
``` |
|
3551b80…
|
noreply
|
45 |
|
|
3551b80…
|
noreply
|
46 |
| Option | Description | |
|
3551b80…
|
noreply
|
47 |
|---|---| |
|
3551b80…
|
noreply
|
48 |
| `--kb PATH` | Path to a knowledge graph file or directory (repeatable) | |
|
3551b80…
|
noreply
|
49 |
| `-p, --provider NAME` | LLM provider: `auto`, `openai`, `anthropic`, `gemini`, `ollama`, `azure`, `together`, `fireworks`, `cerebras`, `xai` | |
|
3551b80…
|
noreply
|
50 |
| `--chat-model NAME` | Override the default chat model for the selected provider | |
|
3551b80…
|
noreply
|
51 |
|
|
3551b80…
|
noreply
|
52 |
--- |
|
3551b80…
|
noreply
|
53 |
|
|
3551b80…
|
noreply
|
54 |
## Auto-discovery |
|
3551b80…
|
noreply
|
55 |
|
|
3551b80…
|
noreply
|
56 |
On startup, the Companion automatically scans the workspace for relevant files: |
|
3551b80…
|
noreply
|
57 |
|
|
3551b80…
|
noreply
|
58 |
**Knowledge graphs.** The Companion uses `find_nearest_graph()` to locate the closest `knowledge_graph.db` or `knowledge_graph.json` file. It searches the current directory, common output subdirectories (`results/`, `output/`, `knowledge-base/`), recursively downward (up to 4 levels), and upward through parent directories. SQLite `.db` files are preferred over `.json` files. |
|
3551b80…
|
noreply
|
59 |
|
|
3551b80…
|
noreply
|
60 |
**Videos.** The current directory is scanned for files with `.mp4`, `.mkv`, and `.webm` extensions. |
|
3551b80…
|
noreply
|
61 |
|
|
3551b80…
|
noreply
|
62 |
**Documents.** The current directory is scanned for files with `.md`, `.pdf`, and `.docx` extensions. |
|
3551b80…
|
noreply
|
63 |
|
|
3551b80…
|
noreply
|
64 |
**LLM provider.** If `--provider` is set to `auto` (the default), the Companion attempts to initialise a provider using any available API key in the environment (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GEMINI_API_KEY`, etc.). |
|
3551b80…
|
noreply
|
65 |
|
|
3551b80…
|
noreply
|
66 |
All discovered context is displayed in the welcome banner: |
|
3551b80…
|
noreply
|
67 |
|
|
3551b80…
|
noreply
|
68 |
``` |
|
3551b80…
|
noreply
|
69 |
PlanOpticon Companion |
|
3551b80…
|
noreply
|
70 |
Interactive planning REPL |
|
3551b80…
|
noreply
|
71 |
|
|
3551b80…
|
noreply
|
72 |
Knowledge graph: knowledge_graph.db (42 entities, 87 relationships) |
|
3551b80…
|
noreply
|
73 |
Videos: meeting-2024-01-15.mp4, sprint-review.mp4 |
|
3551b80…
|
noreply
|
74 |
Docs: requirements.md, architecture.pdf |
|
3551b80…
|
noreply
|
75 |
LLM provider: openai (model: gpt-4o) |
|
3551b80…
|
noreply
|
76 |
|
|
3551b80…
|
noreply
|
77 |
Type /help for commands, or ask a question. |
|
3551b80…
|
noreply
|
78 |
``` |
|
3551b80…
|
noreply
|
79 |
|
|
3551b80…
|
noreply
|
80 |
If no knowledge graph is found, the banner shows "No knowledge graph loaded." Commands that require a KG will return an appropriate message rather than failing silently. |
|
3551b80…
|
noreply
|
81 |
|
|
3551b80…
|
noreply
|
82 |
--- |
|
3551b80…
|
noreply
|
83 |
|
|
3551b80…
|
noreply
|
84 |
## Slash Commands |
|
3551b80…
|
noreply
|
85 |
|
|
3551b80…
|
noreply
|
86 |
The Companion supports 18 slash commands. Type `/help` at the prompt to see the full list. |
|
3551b80…
|
noreply
|
87 |
|
|
3551b80…
|
noreply
|
88 |
### /help |
|
3551b80…
|
noreply
|
89 |
|
|
3551b80…
|
noreply
|
90 |
Display all available commands with brief descriptions. |
|
3551b80…
|
noreply
|
91 |
|
|
3551b80…
|
noreply
|
92 |
``` |
|
3551b80…
|
noreply
|
93 |
planopticon> /help |
|
3551b80…
|
noreply
|
94 |
Available commands: |
|
3551b80…
|
noreply
|
95 |
/help Show this help |
|
3551b80…
|
noreply
|
96 |
/status Workspace status |
|
3551b80…
|
noreply
|
97 |
/skills List available skills |
|
3551b80…
|
noreply
|
98 |
/entities [--type T] List KG entities |
|
3551b80…
|
noreply
|
99 |
/search TERM Search entities by name |
|
3551b80…
|
noreply
|
100 |
/neighbors ENTITY Show entity relationships |
|
3551b80…
|
noreply
|
101 |
/export FORMAT Export KG (markdown, obsidian, notion, csv) |
|
3551b80…
|
noreply
|
102 |
/analyze PATH Analyze a video/doc |
|
3551b80…
|
noreply
|
103 |
/ingest PATH Ingest a file into the KG |
|
3551b80…
|
noreply
|
104 |
/auth SERVICE Authenticate with a cloud service |
|
3551b80…
|
noreply
|
105 |
/provider [NAME] List or switch LLM provider |
|
3551b80…
|
noreply
|
106 |
/model [NAME] Show or switch chat model |
|
3551b80…
|
noreply
|
107 |
/run SKILL Run a skill by name |
|
3551b80…
|
noreply
|
108 |
/plan Run project_plan skill |
|
3551b80…
|
noreply
|
109 |
/prd Run PRD skill |
|
3551b80…
|
noreply
|
110 |
/tasks Run task_breakdown skill |
|
3551b80…
|
noreply
|
111 |
/quit, /exit Exit companion |
|
3551b80…
|
noreply
|
112 |
|
|
3551b80…
|
noreply
|
113 |
Any other input is sent to the chat agent (requires LLM). |
|
3551b80…
|
noreply
|
114 |
``` |
|
3551b80…
|
noreply
|
115 |
|
|
3551b80…
|
noreply
|
116 |
### /status |
|
3551b80…
|
noreply
|
117 |
|
|
3551b80…
|
noreply
|
118 |
Show a summary of the current workspace state: loaded knowledge graph (with entity and relationship counts, broken down by entity type), number of discovered videos and documents, and whether an LLM provider is active. |
|
3551b80…
|
noreply
|
119 |
|
|
3551b80…
|
noreply
|
120 |
``` |
|
3551b80…
|
noreply
|
121 |
planopticon> /status |
|
3551b80…
|
noreply
|
122 |
Workspace status: |
|
3551b80…
|
noreply
|
123 |
KG: /home/user/project/results/knowledge_graph.db (42 entities, 87 relationships) |
|
3551b80…
|
noreply
|
124 |
technology: 15 |
|
3551b80…
|
noreply
|
125 |
person: 12 |
|
3551b80…
|
noreply
|
126 |
concept: 10 |
|
3551b80…
|
noreply
|
127 |
organization: 5 |
|
3551b80…
|
noreply
|
128 |
Videos: 2 found |
|
3551b80…
|
noreply
|
129 |
Docs: 3 found |
|
3551b80…
|
noreply
|
130 |
Provider: active |
|
3551b80…
|
noreply
|
131 |
``` |
|
3551b80…
|
noreply
|
132 |
|
|
3551b80…
|
noreply
|
133 |
### /skills |
|
3551b80…
|
noreply
|
134 |
|
|
3551b80…
|
noreply
|
135 |
List all registered planning agent skills with their names and descriptions. These are the skills that can be invoked via `/run`. |
|
3551b80…
|
noreply
|
136 |
|
|
3551b80…
|
noreply
|
137 |
``` |
|
3551b80…
|
noreply
|
138 |
planopticon> /skills |
|
3551b80…
|
noreply
|
139 |
Available skills: |
|
3551b80…
|
noreply
|
140 |
project_plan: Generate a structured project plan from knowledge graph |
|
3551b80…
|
noreply
|
141 |
prd: Generate a product requirements document (PRD) / feature spec |
|
3551b80…
|
noreply
|
142 |
roadmap: Generate a product/project roadmap |
|
3551b80…
|
noreply
|
143 |
task_breakdown: Break down goals into tasks with dependencies |
|
3551b80…
|
noreply
|
144 |
github_issues: Generate GitHub issues from task breakdown |
|
3551b80…
|
noreply
|
145 |
requirements_chat: Interactive requirements gathering via guided questions |
|
3551b80…
|
noreply
|
146 |
doc_generator: Generate technical documentation, ADRs, or meeting notes |
|
3551b80…
|
noreply
|
147 |
artifact_export: Export artifacts in agent-ready formats |
|
3551b80…
|
noreply
|
148 |
cli_adapter: Push artifacts to external tools via their CLIs |
|
3551b80…
|
noreply
|
149 |
notes_export: Export knowledge graph as structured notes (Obsidian, Notion) |
|
3551b80…
|
noreply
|
150 |
wiki_generator: Generate a GitHub wiki from knowledge graph and artifacts |
|
3551b80…
|
noreply
|
151 |
``` |
|
3551b80…
|
noreply
|
152 |
|
|
3551b80…
|
noreply
|
153 |
### /entities [--type TYPE] |
|
3551b80…
|
noreply
|
154 |
|
|
3551b80…
|
noreply
|
155 |
List entities from the loaded knowledge graph. Optionally filter by entity type. |
|
3551b80…
|
noreply
|
156 |
|
|
3551b80…
|
noreply
|
157 |
``` |
|
3551b80…
|
noreply
|
158 |
planopticon> /entities |
|
3551b80…
|
noreply
|
159 |
Found 42 entities |
|
3551b80…
|
noreply
|
160 |
[technology] Python -- General-purpose programming language |
|
3551b80…
|
noreply
|
161 |
[person] Alice -- Lead engineer on the project |
|
3551b80…
|
noreply
|
162 |
[concept] Microservices -- Architectural pattern discussed |
|
3551b80…
|
noreply
|
163 |
... |
|
3551b80…
|
noreply
|
164 |
|
|
3551b80…
|
noreply
|
165 |
planopticon> /entities --type person |
|
3551b80…
|
noreply
|
166 |
Found 12 entities |
|
3551b80…
|
noreply
|
167 |
[person] Alice -- Lead engineer on the project |
|
3551b80…
|
noreply
|
168 |
[person] Bob -- Product manager |
|
3551b80…
|
noreply
|
169 |
... |
|
3551b80…
|
noreply
|
170 |
``` |
|
3551b80…
|
noreply
|
171 |
|
|
3551b80…
|
noreply
|
172 |
!!! note |
|
3551b80…
|
noreply
|
173 |
This command requires a loaded knowledge graph. If none is loaded, it returns "No knowledge graph loaded." |
|
3551b80…
|
noreply
|
174 |
|
|
3551b80…
|
noreply
|
175 |
### /search TERM |
|
3551b80…
|
noreply
|
176 |
|
|
3551b80…
|
noreply
|
177 |
Search entities by name substring (case-insensitive). |
|
3551b80…
|
noreply
|
178 |
|
|
3551b80…
|
noreply
|
179 |
``` |
|
3551b80…
|
noreply
|
180 |
planopticon> /search python |
|
3551b80…
|
noreply
|
181 |
Found 3 entities |
|
3551b80…
|
noreply
|
182 |
[technology] Python -- General-purpose programming language |
|
3551b80…
|
noreply
|
183 |
[technology] Python Flask -- Web framework for Python |
|
3551b80…
|
noreply
|
184 |
[concept] Python packaging -- Discussion of pip and packaging tools |
|
3551b80…
|
noreply
|
185 |
``` |
|
3551b80…
|
noreply
|
186 |
|
|
3551b80…
|
noreply
|
187 |
### /neighbors ENTITY |
|
3551b80…
|
noreply
|
188 |
|
|
3551b80…
|
noreply
|
189 |
Show all entities and relationships connected to a given entity. This performs a breadth-first traversal (depth 1) from the named entity. |
|
3551b80…
|
noreply
|
190 |
|
|
3551b80…
|
noreply
|
191 |
``` |
|
3551b80…
|
noreply
|
192 |
planopticon> /neighbors Alice |
|
3551b80…
|
noreply
|
193 |
Found 4 entities and 5 relationships |
|
3551b80…
|
noreply
|
194 |
[person] Alice -- Lead engineer on the project |
|
3551b80…
|
noreply
|
195 |
[technology] Python -- General-purpose programming language |
|
3551b80…
|
noreply
|
196 |
[organization] Acme Corp -- Employer |
|
3551b80…
|
noreply
|
197 |
[concept] Authentication -- Auth system design |
|
3551b80…
|
noreply
|
198 |
Alice --[works_with]--> Python |
|
3551b80…
|
noreply
|
199 |
Alice --[employed_by]--> Acme Corp |
|
3551b80…
|
noreply
|
200 |
Alice --[proposed]--> Authentication |
|
3551b80…
|
noreply
|
201 |
Bob --[collaborates_with]--> Alice |
|
3551b80…
|
noreply
|
202 |
Authentication --[discussed_by]--> Alice |
|
3551b80…
|
noreply
|
203 |
``` |
|
3551b80…
|
noreply
|
204 |
|
|
3551b80…
|
noreply
|
205 |
### /export FORMAT |
|
3551b80…
|
noreply
|
206 |
|
|
3551b80…
|
noreply
|
207 |
Request an export of the knowledge graph. Supported formats: `markdown`, `obsidian`, `notion`, `csv`. This command prints the equivalent CLI command to run. |
|
3551b80…
|
noreply
|
208 |
|
|
3551b80…
|
noreply
|
209 |
``` |
|
3551b80…
|
noreply
|
210 |
planopticon> /export obsidian |
|
3551b80…
|
noreply
|
211 |
Export 'obsidian' requested. Use the CLI command: |
|
3551b80…
|
noreply
|
212 |
planopticon export obsidian /home/user/project/results/knowledge_graph.db |
|
3551b80…
|
noreply
|
213 |
``` |
|
3551b80…
|
noreply
|
214 |
|
|
3551b80…
|
noreply
|
215 |
### /analyze PATH |
|
3551b80…
|
noreply
|
216 |
|
|
3551b80…
|
noreply
|
217 |
Request analysis of a video or document file. Validates the file exists and prints the equivalent CLI command. |
|
3551b80…
|
noreply
|
218 |
|
|
3551b80…
|
noreply
|
219 |
``` |
|
3551b80…
|
noreply
|
220 |
planopticon> /analyze meeting.mp4 |
|
3551b80…
|
noreply
|
221 |
Analyze requested for meeting.mp4. Use the CLI: |
|
3551b80…
|
noreply
|
222 |
planopticon analyze -i /home/user/project/meeting.mp4 |
|
3551b80…
|
noreply
|
223 |
``` |
|
3551b80…
|
noreply
|
224 |
|
|
3551b80…
|
noreply
|
225 |
### /ingest PATH |
|
3551b80…
|
noreply
|
226 |
|
|
3551b80…
|
noreply
|
227 |
Request ingestion of a file into the knowledge graph. Validates the file exists and prints the equivalent CLI command. |
|
3551b80…
|
noreply
|
228 |
|
|
3551b80…
|
noreply
|
229 |
``` |
|
3551b80…
|
noreply
|
230 |
planopticon> /ingest notes.md |
|
3551b80…
|
noreply
|
231 |
Ingest requested for notes.md. Use the CLI: |
|
3551b80…
|
noreply
|
232 |
planopticon ingest /home/user/project/notes.md |
|
3551b80…
|
noreply
|
233 |
``` |
|
3551b80…
|
noreply
|
234 |
|
|
3551b80…
|
noreply
|
235 |
### /auth [SERVICE] |
|
3551b80…
|
noreply
|
236 |
|
|
3551b80…
|
noreply
|
237 |
Authenticate with a cloud service. When called without arguments, lists all available services. When called with a service name, triggers the authentication flow. |
|
3551b80…
|
noreply
|
238 |
|
|
3551b80…
|
noreply
|
239 |
``` |
|
3551b80…
|
noreply
|
240 |
planopticon> /auth |
|
3551b80…
|
noreply
|
241 |
Usage: /auth SERVICE |
|
3551b80…
|
noreply
|
242 |
Available: dropbox, github, google, microsoft, notion, zoom |
|
3551b80…
|
noreply
|
243 |
|
|
3551b80…
|
noreply
|
244 |
planopticon> /auth zoom |
|
3551b80…
|
noreply
|
245 |
Zoom authenticated (oauth) |
|
3551b80…
|
noreply
|
246 |
``` |
|
3551b80…
|
noreply
|
247 |
|
|
3551b80…
|
noreply
|
248 |
### /provider [NAME] |
|
3551b80…
|
noreply
|
249 |
|
|
3551b80…
|
noreply
|
250 |
List available LLM providers and their status, or switch to a different provider. |
|
3551b80…
|
noreply
|
251 |
|
|
3551b80…
|
noreply
|
252 |
When called without arguments (or with `list`), shows all known providers with their availability status: |
|
3551b80…
|
noreply
|
253 |
|
|
3551b80…
|
noreply
|
254 |
- **ready** -- API key found in environment |
|
3551b80…
|
noreply
|
255 |
- **local** -- runs locally (Ollama) |
|
3551b80…
|
noreply
|
256 |
- **no key** -- no API key configured |
|
3551b80…
|
noreply
|
257 |
|
|
3551b80…
|
noreply
|
258 |
The currently active provider is marked. |
|
3551b80…
|
noreply
|
259 |
|
|
3551b80…
|
noreply
|
260 |
``` |
|
3551b80…
|
noreply
|
261 |
planopticon> /provider |
|
3551b80…
|
noreply
|
262 |
Available providers: |
|
3551b80…
|
noreply
|
263 |
openai: ready (active) |
|
3551b80…
|
noreply
|
264 |
anthropic: ready |
|
3551b80…
|
noreply
|
265 |
gemini: no key |
|
3551b80…
|
noreply
|
266 |
ollama: local |
|
3551b80…
|
noreply
|
267 |
azure: no key |
|
3551b80…
|
noreply
|
268 |
together: no key |
|
3551b80…
|
noreply
|
269 |
fireworks: no key |
|
3551b80…
|
noreply
|
270 |
cerebras: no key |
|
3551b80…
|
noreply
|
271 |
xai: no key |
|
3551b80…
|
noreply
|
272 |
|
|
3551b80…
|
noreply
|
273 |
Current: openai |
|
3551b80…
|
noreply
|
274 |
``` |
|
3551b80…
|
noreply
|
275 |
|
|
3551b80…
|
noreply
|
276 |
To switch providers at runtime: |
|
3551b80…
|
noreply
|
277 |
|
|
3551b80…
|
noreply
|
278 |
``` |
|
3551b80…
|
noreply
|
279 |
planopticon> /provider anthropic |
|
3551b80…
|
noreply
|
280 |
Switched to provider: anthropic |
|
3551b80…
|
noreply
|
281 |
``` |
|
3551b80…
|
noreply
|
282 |
|
|
3551b80…
|
noreply
|
283 |
Switching the provider reinitialises the provider manager and the planning agent. The chat model is reset to the provider's default. If initialisation fails, an error message is shown. |
|
3551b80…
|
noreply
|
284 |
|
|
3551b80…
|
noreply
|
285 |
### /model [NAME] |
|
3551b80…
|
noreply
|
286 |
|
|
3551b80…
|
noreply
|
287 |
Show the current chat model, or switch to a different one. |
|
3551b80…
|
noreply
|
288 |
|
|
3551b80…
|
noreply
|
289 |
``` |
|
3551b80…
|
noreply
|
290 |
planopticon> /model |
|
3551b80…
|
noreply
|
291 |
Current model: default |
|
3551b80…
|
noreply
|
292 |
Usage: /model MODEL_NAME |
|
3551b80…
|
noreply
|
293 |
|
|
3551b80…
|
noreply
|
294 |
planopticon> /model claude-sonnet-4-20250514 |
|
3551b80…
|
noreply
|
295 |
Switched to model: claude-sonnet-4-20250514 |
|
3551b80…
|
noreply
|
296 |
``` |
|
3551b80…
|
noreply
|
297 |
|
|
3551b80…
|
noreply
|
298 |
Switching the model reinitialises both the provider manager and the planning agent. |
|
3551b80…
|
noreply
|
299 |
|
|
3551b80…
|
noreply
|
300 |
### /run SKILL |
|
3551b80…
|
noreply
|
301 |
|
|
3551b80…
|
noreply
|
302 |
Run any registered skill by name. The skill receives the current agent context (knowledge graph, query engine, provider, and any previously generated artifacts) and returns an artifact. |
|
3551b80…
|
noreply
|
303 |
|
|
3551b80…
|
noreply
|
304 |
``` |
|
3551b80…
|
noreply
|
305 |
planopticon> /run roadmap |
|
3551b80…
|
noreply
|
306 |
--- Roadmap (roadmap) --- |
|
3551b80…
|
noreply
|
307 |
# Roadmap |
|
3551b80…
|
noreply
|
308 |
|
|
3551b80…
|
noreply
|
309 |
## Vision & Strategy |
|
3551b80…
|
noreply
|
310 |
... |
|
3551b80…
|
noreply
|
311 |
``` |
|
3551b80…
|
noreply
|
312 |
|
|
3551b80…
|
noreply
|
313 |
If the skill cannot execute (missing KG or provider), an error message is returned. Use `/skills` to see all available skill names. |
|
3551b80…
|
noreply
|
314 |
|
|
3551b80…
|
noreply
|
315 |
### /plan |
|
3551b80…
|
noreply
|
316 |
|
|
3551b80…
|
noreply
|
317 |
Shortcut for `/run project_plan`. Generates a structured project plan from the loaded knowledge graph. |
|
3551b80…
|
noreply
|
318 |
|
|
3551b80…
|
noreply
|
319 |
``` |
|
3551b80…
|
noreply
|
320 |
planopticon> /plan |
|
3551b80…
|
noreply
|
321 |
--- Project Plan (project_plan) --- |
|
3551b80…
|
noreply
|
322 |
# Project Plan |
|
3551b80…
|
noreply
|
323 |
|
|
3551b80…
|
noreply
|
324 |
## Executive Summary |
|
3551b80…
|
noreply
|
325 |
... |
|
3551b80…
|
noreply
|
326 |
``` |
|
3551b80…
|
noreply
|
327 |
|
|
3551b80…
|
noreply
|
328 |
### /prd |
|
3551b80…
|
noreply
|
329 |
|
|
3551b80…
|
noreply
|
330 |
Shortcut for `/run prd`. Generates a product requirements document. |
|
3551b80…
|
noreply
|
331 |
|
|
3551b80…
|
noreply
|
332 |
``` |
|
3551b80…
|
noreply
|
333 |
planopticon> /prd |
|
3551b80…
|
noreply
|
334 |
--- Product Requirements Document (prd) --- |
|
3551b80…
|
noreply
|
335 |
# Product Requirements Document |
|
3551b80…
|
noreply
|
336 |
|
|
3551b80…
|
noreply
|
337 |
## Problem Statement |
|
3551b80…
|
noreply
|
338 |
... |
|
3551b80…
|
noreply
|
339 |
``` |
|
3551b80…
|
noreply
|
340 |
|
|
3551b80…
|
noreply
|
341 |
### /tasks |
|
3551b80…
|
noreply
|
342 |
|
|
3551b80…
|
noreply
|
343 |
Shortcut for `/run task_breakdown`. Breaks goals and features into tasks with dependencies, priorities, and effort estimates. The output is JSON. |
|
3551b80…
|
noreply
|
344 |
|
|
3551b80…
|
noreply
|
345 |
``` |
|
3551b80…
|
noreply
|
346 |
planopticon> /tasks |
|
3551b80…
|
noreply
|
347 |
--- Task Breakdown (task_list) --- |
|
3551b80…
|
noreply
|
348 |
[ |
|
3551b80…
|
noreply
|
349 |
{ |
|
3551b80…
|
noreply
|
350 |
"id": "T1", |
|
3551b80…
|
noreply
|
351 |
"title": "Set up authentication service", |
|
3551b80…
|
noreply
|
352 |
"description": "Implement OAuth2 flow with JWT tokens", |
|
3551b80…
|
noreply
|
353 |
"depends_on": [], |
|
3551b80…
|
noreply
|
354 |
"priority": "high", |
|
3551b80…
|
noreply
|
355 |
"estimate": "1w", |
|
3551b80…
|
noreply
|
356 |
"assignee_role": "backend engineer" |
|
3551b80…
|
noreply
|
357 |
}, |
|
3551b80…
|
noreply
|
358 |
... |
|
3551b80…
|
noreply
|
359 |
] |
|
3551b80…
|
noreply
|
360 |
``` |
|
3551b80…
|
noreply
|
361 |
|
|
3551b80…
|
noreply
|
362 |
### /quit and /exit |
|
3551b80…
|
noreply
|
363 |
|
|
3551b80…
|
noreply
|
364 |
Exit the Companion REPL. |
|
3551b80…
|
noreply
|
365 |
|
|
3551b80…
|
noreply
|
366 |
``` |
|
3551b80…
|
noreply
|
367 |
planopticon> /quit |
|
3551b80…
|
noreply
|
368 |
Bye. |
|
3551b80…
|
noreply
|
369 |
``` |
|
3551b80…
|
noreply
|
370 |
|
|
3551b80…
|
noreply
|
371 |
--- |
|
3551b80…
|
noreply
|
372 |
|
|
3551b80…
|
noreply
|
373 |
## Exiting the Companion |
|
3551b80…
|
noreply
|
374 |
|
|
3551b80…
|
noreply
|
375 |
In addition to `/quit` and `/exit`, you can exit by: |
|
3551b80…
|
noreply
|
376 |
|
|
3551b80…
|
noreply
|
377 |
- Typing `quit`, `exit`, `bye`, or `q` as bare words (without the `/` prefix) |
|
3551b80…
|
noreply
|
378 |
- Pressing `Ctrl+C` or `Ctrl+D` |
|
3551b80…
|
noreply
|
379 |
|
|
3551b80…
|
noreply
|
380 |
All of these end the session with a "Bye." message. |
|
3551b80…
|
noreply
|
381 |
|
|
3551b80…
|
noreply
|
382 |
--- |
|
3551b80…
|
noreply
|
383 |
|
|
3551b80…
|
noreply
|
384 |
## Chat Mode |
|
3551b80…
|
noreply
|
385 |
|
|
3551b80…
|
noreply
|
386 |
Any input that does not start with `/` and is not a bare exit word is sent to the chat agent as a natural-language message. This requires a configured LLM provider. |
|
3551b80…
|
noreply
|
387 |
|
|
3551b80…
|
noreply
|
388 |
``` |
|
3551b80…
|
noreply
|
389 |
planopticon> What technologies were discussed in the meeting? |
|
3551b80…
|
noreply
|
390 |
Based on the knowledge graph, the following technologies were discussed: |
|
3551b80…
|
noreply
|
391 |
|
|
3551b80…
|
noreply
|
392 |
1. **Python** -- mentioned in the context of backend development |
|
3551b80…
|
noreply
|
393 |
2. **React** -- proposed for the frontend redesign |
|
3551b80…
|
noreply
|
394 |
3. **PostgreSQL** -- discussed as the primary database |
|
3551b80…
|
noreply
|
395 |
... |
|
3551b80…
|
noreply
|
396 |
``` |
|
3551b80…
|
noreply
|
397 |
|
|
3551b80…
|
noreply
|
398 |
The chat agent maintains conversation history across the session. It has full awareness of: |
|
3551b80…
|
noreply
|
399 |
|
|
3551b80…
|
noreply
|
400 |
- The loaded knowledge graph (entity and relationship counts, types) |
|
3551b80…
|
noreply
|
401 |
- Any artifacts generated during the session (via `/plan`, `/prd`, `/tasks`, `/run`) |
|
3551b80…
|
noreply
|
402 |
- All available slash commands (which it may suggest when relevant) |
|
3551b80…
|
noreply
|
403 |
- The full PlanOpticon CLI command set |
|
3551b80…
|
noreply
|
404 |
|
|
3551b80…
|
noreply
|
405 |
If no LLM provider is configured, chat mode returns an error with instructions: |
|
3551b80…
|
noreply
|
406 |
|
|
3551b80…
|
noreply
|
407 |
``` |
|
3551b80…
|
noreply
|
408 |
planopticon> What was discussed? |
|
3551b80…
|
noreply
|
409 |
Chat requires an LLM provider. Set one of: |
|
3551b80…
|
noreply
|
410 |
OPENAI_API_KEY |
|
3551b80…
|
noreply
|
411 |
ANTHROPIC_API_KEY |
|
3551b80…
|
noreply
|
412 |
GEMINI_API_KEY |
|
3551b80…
|
noreply
|
413 |
Or pass --provider / --chat-model. |
|
3551b80…
|
noreply
|
414 |
``` |
|
3551b80…
|
noreply
|
415 |
|
|
3551b80…
|
noreply
|
416 |
--- |
|
3551b80…
|
noreply
|
417 |
|
|
3551b80…
|
noreply
|
418 |
## Runtime Provider and Model Switching |
|
3551b80…
|
noreply
|
419 |
|
|
3551b80…
|
noreply
|
420 |
One of the Companion's key features is the ability to switch LLM providers and models without restarting the session. This is useful for: |
|
3551b80…
|
noreply
|
421 |
|
|
3551b80…
|
noreply
|
422 |
- Comparing outputs across different models |
|
3551b80…
|
noreply
|
423 |
- Falling back to a local model (Ollama) when API keys expire |
|
3551b80…
|
noreply
|
424 |
- Using a cheaper model for exploratory queries and a more capable one for artifact generation |
|
3551b80…
|
noreply
|
425 |
|
|
3551b80…
|
noreply
|
426 |
When you switch providers or models via `/provider` or `/model`, the Companion: |
|
3551b80…
|
noreply
|
427 |
|
|
3551b80…
|
noreply
|
428 |
1. Updates the internal provider name and/or model name |
|
3551b80…
|
noreply
|
429 |
2. Reinitialises the `ProviderManager` |
|
3551b80…
|
noreply
|
430 |
3. Reinitialises the `PlanningAgent` with a fresh `AgentContext` that retains the loaded knowledge graph and query engine |
|
3551b80…
|
noreply
|
431 |
|
|
3551b80…
|
noreply
|
432 |
Conversation history is preserved across provider switches. |
|
3551b80…
|
noreply
|
433 |
|
|
3551b80…
|
noreply
|
434 |
--- |
|
3551b80…
|
noreply
|
435 |
|
|
3551b80…
|
noreply
|
436 |
## Example Session |
|
3551b80…
|
noreply
|
437 |
|
|
3551b80…
|
noreply
|
438 |
The following walkthrough shows a typical Companion session, from launch through exploration to artifact generation. |
|
3551b80…
|
noreply
|
439 |
|
|
3551b80…
|
noreply
|
440 |
```bash |
|
3551b80…
|
noreply
|
441 |
$ planopticon companion --kb ./results |
|
3551b80…
|
noreply
|
442 |
``` |
|
3551b80…
|
noreply
|
443 |
|
|
3551b80…
|
noreply
|
444 |
``` |
|
3551b80…
|
noreply
|
445 |
PlanOpticon Companion |
|
3551b80…
|
noreply
|
446 |
Interactive planning REPL |
|
3551b80…
|
noreply
|
447 |
|
|
3551b80…
|
noreply
|
448 |
Knowledge graph: knowledge_graph.db (58 entities, 124 relationships) |
|
3551b80…
|
noreply
|
449 |
Videos: sprint-review-2024-03.mp4 |
|
3551b80…
|
noreply
|
450 |
Docs: architecture.md, requirements.pdf |
|
3551b80…
|
noreply
|
451 |
LLM provider: openai (model: default) |
|
3551b80…
|
noreply
|
452 |
|
|
3551b80…
|
noreply
|
453 |
Type /help for commands, or ask a question. |
|
3551b80…
|
noreply
|
454 |
|
|
3551b80…
|
noreply
|
455 |
planopticon> /status |
|
3551b80…
|
noreply
|
456 |
Workspace status: |
|
3551b80…
|
noreply
|
457 |
KG: /home/user/project/results/knowledge_graph.db (58 entities, 124 relationships) |
|
3551b80…
|
noreply
|
458 |
technology: 20 |
|
3551b80…
|
noreply
|
459 |
person: 15 |
|
3551b80…
|
noreply
|
460 |
concept: 13 |
|
3551b80…
|
noreply
|
461 |
organization: 8 |
|
3551b80…
|
noreply
|
462 |
time: 2 |
|
3551b80…
|
noreply
|
463 |
Videos: 1 found |
|
3551b80…
|
noreply
|
464 |
Docs: 2 found |
|
3551b80…
|
noreply
|
465 |
Provider: active |
|
3551b80…
|
noreply
|
466 |
|
|
3551b80…
|
noreply
|
467 |
planopticon> /entities --type person |
|
3551b80…
|
noreply
|
468 |
Found 15 entities |
|
3551b80…
|
noreply
|
469 |
[person] Alice -- Lead architect |
|
3551b80…
|
noreply
|
470 |
[person] Bob -- Product manager |
|
3551b80…
|
noreply
|
471 |
[person] Carol -- Frontend lead |
|
3551b80…
|
noreply
|
472 |
... |
|
3551b80…
|
noreply
|
473 |
|
|
3551b80…
|
noreply
|
474 |
planopticon> /neighbors Alice |
|
3551b80…
|
noreply
|
475 |
Found 6 entities and 8 relationships |
|
3551b80…
|
noreply
|
476 |
[person] Alice -- Lead architect |
|
3551b80…
|
noreply
|
477 |
[technology] Kubernetes -- Container orchestration platform |
|
3551b80…
|
noreply
|
478 |
[concept] Microservices -- Proposed architecture pattern |
|
3551b80…
|
noreply
|
479 |
... |
|
3551b80…
|
noreply
|
480 |
Alice --[proposed]--> Microservices |
|
3551b80…
|
noreply
|
481 |
Alice --[expert_in]--> Kubernetes |
|
3551b80…
|
noreply
|
482 |
... |
|
3551b80…
|
noreply
|
483 |
|
|
3551b80…
|
noreply
|
484 |
planopticon> What were the main decisions made in the sprint review? |
|
3551b80…
|
noreply
|
485 |
Based on the knowledge graph, the sprint review covered several key decisions: |
|
3551b80…
|
noreply
|
486 |
|
|
3551b80…
|
noreply
|
487 |
1. **Adopt microservices architecture** -- Alice proposed and the team agreed |
|
3551b80…
|
noreply
|
488 |
to move from the monolith to a microservices pattern. |
|
3551b80…
|
noreply
|
489 |
2. **Use Kubernetes for orchestration** -- Selected over Docker Swarm. |
|
3551b80…
|
noreply
|
490 |
3. **Prioritize authentication module** -- Bob identified this as the highest |
|
3551b80…
|
noreply
|
491 |
priority for the next sprint. |
|
3551b80…
|
noreply
|
492 |
|
|
3551b80…
|
noreply
|
493 |
planopticon> /provider anthropic |
|
3551b80…
|
noreply
|
494 |
Switched to provider: anthropic |
|
3551b80…
|
noreply
|
495 |
|
|
3551b80…
|
noreply
|
496 |
planopticon> /model claude-sonnet-4-20250514 |
|
3551b80…
|
noreply
|
497 |
Switched to model: claude-sonnet-4-20250514 |
|
3551b80…
|
noreply
|
498 |
|
|
3551b80…
|
noreply
|
499 |
planopticon> /plan |
|
3551b80…
|
noreply
|
500 |
--- Project Plan (project_plan) --- |
|
3551b80…
|
noreply
|
501 |
# Project Plan |
|
3551b80…
|
noreply
|
502 |
|
|
3551b80…
|
noreply
|
503 |
## Executive Summary |
|
3551b80…
|
noreply
|
504 |
This project plan outlines the migration from a monolithic architecture |
|
3551b80…
|
noreply
|
505 |
to a microservices-based system, as discussed in the sprint review... |
|
3551b80…
|
noreply
|
506 |
|
|
3551b80…
|
noreply
|
507 |
## Goals & Objectives |
|
3551b80…
|
noreply
|
508 |
... |
|
3551b80…
|
noreply
|
509 |
|
|
3551b80…
|
noreply
|
510 |
planopticon> /tasks |
|
3551b80…
|
noreply
|
511 |
--- Task Breakdown (task_list) --- |
|
3551b80…
|
noreply
|
512 |
[ |
|
3551b80…
|
noreply
|
513 |
{ |
|
3551b80…
|
noreply
|
514 |
"id": "T1", |
|
3551b80…
|
noreply
|
515 |
"title": "Design service boundaries", |
|
3551b80…
|
noreply
|
516 |
"description": "Define microservice boundaries based on domain analysis", |
|
3551b80…
|
noreply
|
517 |
"depends_on": [], |
|
3551b80…
|
noreply
|
518 |
"priority": "high", |
|
3551b80…
|
noreply
|
519 |
"estimate": "3d", |
|
3551b80…
|
noreply
|
520 |
"assignee_role": "architect" |
|
3551b80…
|
noreply
|
521 |
}, |
|
3551b80…
|
noreply
|
522 |
... |
|
3551b80…
|
noreply
|
523 |
] |
|
3551b80…
|
noreply
|
524 |
|
|
3551b80…
|
noreply
|
525 |
planopticon> /export obsidian |
|
3551b80…
|
noreply
|
526 |
Export 'obsidian' requested. Use the CLI command: |
|
3551b80…
|
noreply
|
527 |
planopticon export obsidian /home/user/project/results/knowledge_graph.db |
|
3551b80…
|
noreply
|
528 |
|
|
3551b80…
|
noreply
|
529 |
planopticon> quit |
|
3551b80…
|
noreply
|
530 |
Bye. |
|
3551b80…
|
noreply
|
531 |
``` |