PlanOpticon

1
2
<!doctype html>
3
<html lang="en" class="no-js">
4
<head>
5
6
<meta charset="utf-8">
7
<meta name="viewport" content="width=device-width,initial-scale=1">
8
9
<meta name="description" content="AI-powered video analysis and knowledge extraction">
10
11
12
<meta name="author" content="CONFLICT LLC">
13
14
15
<link rel="canonical" href="https://planopticon.dev/guide/planning-agent/">
16
17
18
<link rel="prev" href="../companion/">
19
20
21
<link rel="next" href="../authentication/">
22
23
24
25
26
27
<link rel="icon" href="../../assets/images/favicon.png">
28
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.7.4">
29
30
31
32
<title>Planning Agent - PlanOpticon</title>
33
34
35
36
<link rel="stylesheet" href="../../assets/stylesheets/main.484c7ddc.min.css">
37
38
39
<link rel="stylesheet" href="../../assets/stylesheets/palette.ab4e12ef.min.css">
40
41
42
43
44
45
46
47
48
49
50
51
52
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
53
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
54
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
55
56
57
58
<link rel="stylesheet" href="../../assets/_mkdocstrings.css">
59
60
<link rel="stylesheet" href="../../assets/css/custom.css">
61
62
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
63
64
65
66
67
68
</head>
69
70
71
72
73
74
75
76
77
78
<body dir="ltr" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom">
79
80
81
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
82
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
83
<label class="md-overlay" for="__drawer"></label>
84
<div data-md-component="skip">
85
86
87
<a href="#planning-agent" class="md-skip">
88
Skip to content
89
</a>
90
91
</div>
92
<div data-md-component="announce">
93
94
</div>
95
96
97
98
99
<header class="md-header" data-md-component="header">
100
<nav class="md-header__inner md-grid" aria-label="Header">
101
<a href="../.." title="PlanOpticon" class="md-header__button md-logo" aria-label="PlanOpticon" data-md-component="logo">
102
103
<img src="../../assets/images/conflict-logo.svg" alt="logo">
104
105
</a>
106
<label class="md-header__button md-icon" for="__drawer">
107
108
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
109
</label>
110
<div class="md-header__title" data-md-component="header-title">
111
<div class="md-header__ellipsis">
112
<div class="md-header__topic">
113
<span class="md-ellipsis">
114
PlanOpticon
115
</span>
116
</div>
117
<div class="md-header__topic" data-md-component="header-topic">
118
<span class="md-ellipsis">
119
120
Planning Agent
121
122
</span>
123
</div>
124
</div>
125
</div>
126
127
128
<form class="md-header__option" data-md-component="palette">
129
130
131
132
133
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
134
135
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
136
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
137
</label>
138
139
140
141
142
143
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="custom" data-md-color-accent="custom" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
144
145
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
146
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
147
</label>
148
149
150
</form>
151
152
153
154
<script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
155
156
157
158
159
160
<label class="md-header__button md-icon" for="__search">
161
162
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
163
</label>
164
<div class="md-search" data-md-component="search" role="dialog">
165
<label class="md-search__overlay" for="__search"></label>
166
<div class="md-search__inner" role="search">
167
<form class="md-search__form" name="search">
168
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
169
<label class="md-search__icon md-icon" for="__search">
170
171
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
172
173
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
174
</label>
175
<nav class="md-search__options" aria-label="Search">
176
177
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
178
179
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
180
</button>
181
</nav>
182
183
<div class="md-search__suggest" data-md-component="search-suggest"></div>
184
185
</form>
186
<div class="md-search__output">
187
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
188
<div class="md-search-result" data-md-component="search-result">
189
<div class="md-search-result__meta">
190
Initializing search
191
</div>
192
<ol class="md-search-result__list" role="presentation"></ol>
193
</div>
194
</div>
195
</div>
196
</div>
197
</div>
198
199
200
201
<div class="md-header__source">
202
<a href="https://github.com/ConflictHQ/PlanOpticon" title="Go to repository" class="md-source" data-md-component="source">
203
<div class="md-source__icon md-icon">
204
205
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
206
</div>
207
<div class="md-source__repository">
208
ConflictHQ/PlanOpticon
209
</div>
210
</a>
211
</div>
212
213
</nav>
214
215
</header>
216
217
<div class="md-container" data-md-component="container">
218
219
220
221
222
223
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
224
<div class="md-grid">
225
<ul class="md-tabs__list">
226
227
228
229
230
231
232
<li class="md-tabs__item">
233
<a href="../.." class="md-tabs__link">
234
235
236
237
238
239
Home
240
241
</a>
242
</li>
243
244
245
246
247
248
249
250
251
252
253
<li class="md-tabs__item">
254
<a href="../../getting-started/installation/" class="md-tabs__link">
255
256
257
258
Getting Started
259
260
</a>
261
</li>
262
263
264
265
266
267
268
269
270
271
272
273
274
275
<li class="md-tabs__item md-tabs__item--active">
276
<a href="../single-video/" class="md-tabs__link">
277
278
279
280
User Guide
281
282
</a>
283
</li>
284
285
286
287
288
289
290
291
292
293
<li class="md-tabs__item">
294
<a href="../../use-cases/" class="md-tabs__link">
295
296
297
298
299
300
Use Cases
301
302
</a>
303
</li>
304
305
306
307
308
309
310
311
312
<li class="md-tabs__item">
313
<a href="../../cli-reference/" class="md-tabs__link">
314
315
316
317
318
319
CLI Reference
320
321
</a>
322
</li>
323
324
325
326
327
328
329
330
331
332
333
<li class="md-tabs__item">
334
<a href="../../architecture/overview/" class="md-tabs__link">
335
336
337
338
Architecture
339
340
</a>
341
</li>
342
343
344
345
346
347
348
349
350
351
352
353
<li class="md-tabs__item">
354
<a href="../../api/models/" class="md-tabs__link">
355
356
357
358
API Reference
359
360
</a>
361
</li>
362
363
364
365
366
367
368
369
370
371
<li class="md-tabs__item">
372
<a href="../../faq/" class="md-tabs__link">
373
374
375
376
377
378
FAQ & Troubleshooting
379
380
</a>
381
</li>
382
383
384
385
386
387
388
389
390
<li class="md-tabs__item">
391
<a href="../../contributing/" class="md-tabs__link">
392
393
394
395
396
397
Contributing
398
399
</a>
400
</li>
401
402
403
404
</ul>
405
</div>
406
</nav>
407
408
409
410
<main class="md-main" data-md-component="main">
411
<div class="md-main__inner md-grid">
412
413
414
415
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
416
<div class="md-sidebar__scrollwrap">
417
<div class="md-sidebar__inner">
418
419
420
421
422
423
424
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
425
<label class="md-nav__title" for="__drawer">
426
<a href="../.." title="PlanOpticon" class="md-nav__button md-logo" aria-label="PlanOpticon" data-md-component="logo">
427
428
<img src="../../assets/images/conflict-logo.svg" alt="logo">
429
430
</a>
431
PlanOpticon
432
</label>
433
434
<div class="md-nav__source">
435
<a href="https://github.com/ConflictHQ/PlanOpticon" title="Go to repository" class="md-source" data-md-component="source">
436
<div class="md-source__icon md-icon">
437
438
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
439
</div>
440
<div class="md-source__repository">
441
ConflictHQ/PlanOpticon
442
</div>
443
</a>
444
</div>
445
446
<ul class="md-nav__list" data-md-scrollfix>
447
448
449
450
451
452
453
454
<li class="md-nav__item">
455
<a href="../.." class="md-nav__link">
456
457
458
459
<span class="md-ellipsis">
460
461
462
Home
463
464
465
466
</span>
467
468
469
470
</a>
471
</li>
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
<li class="md-nav__item md-nav__item--nested">
492
493
494
495
496
497
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_2" >
498
499
500
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
501
502
503
504
<span class="md-ellipsis">
505
506
507
Getting Started
508
509
510
511
</span>
512
513
514
515
<span class="md-nav__icon md-icon"></span>
516
</label>
517
518
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
519
<label class="md-nav__title" for="__nav_2">
520
<span class="md-nav__icon md-icon"></span>
521
522
523
Getting Started
524
525
526
</label>
527
<ul class="md-nav__list" data-md-scrollfix>
528
529
530
531
532
533
534
535
<li class="md-nav__item">
536
<a href="../../getting-started/installation/" class="md-nav__link">
537
538
539
540
<span class="md-ellipsis">
541
542
543
Installation
544
545
546
547
</span>
548
549
550
551
</a>
552
</li>
553
554
555
556
557
558
559
560
561
562
563
<li class="md-nav__item">
564
<a href="../../getting-started/quickstart/" class="md-nav__link">
565
566
567
568
<span class="md-ellipsis">
569
570
571
Quick Start
572
573
574
575
</span>
576
577
578
579
</a>
580
</li>
581
582
583
584
585
586
587
588
589
590
591
<li class="md-nav__item">
592
<a href="../../getting-started/configuration/" class="md-nav__link">
593
594
595
596
<span class="md-ellipsis">
597
598
599
Configuration
600
601
602
603
</span>
604
605
606
607
</a>
608
</li>
609
610
611
612
613
</ul>
614
</nav>
615
616
</li>
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
642
643
644
645
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" checked>
646
647
648
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="">
649
650
651
652
<span class="md-ellipsis">
653
654
655
User Guide
656
657
658
659
</span>
660
661
662
663
<span class="md-nav__icon md-icon"></span>
664
</label>
665
666
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="true">
667
<label class="md-nav__title" for="__nav_3">
668
<span class="md-nav__icon md-icon"></span>
669
670
671
User Guide
672
673
674
</label>
675
<ul class="md-nav__list" data-md-scrollfix>
676
677
678
679
680
681
682
683
<li class="md-nav__item">
684
<a href="../single-video/" class="md-nav__link">
685
686
687
688
<span class="md-ellipsis">
689
690
691
Single Video Analysis
692
693
694
695
</span>
696
697
698
699
</a>
700
</li>
701
702
703
704
705
706
707
708
709
710
711
<li class="md-nav__item">
712
<a href="../batch/" class="md-nav__link">
713
714
715
716
<span class="md-ellipsis">
717
718
719
Batch Processing
720
721
722
723
</span>
724
725
726
727
</a>
728
</li>
729
730
731
732
733
734
735
736
737
738
739
<li class="md-nav__item">
740
<a href="../document-ingestion/" class="md-nav__link">
741
742
743
744
<span class="md-ellipsis">
745
746
747
Document Ingestion
748
749
750
751
</span>
752
753
754
755
</a>
756
</li>
757
758
759
760
761
762
763
764
765
766
767
<li class="md-nav__item">
768
<a href="../cloud-sources/" class="md-nav__link">
769
770
771
772
<span class="md-ellipsis">
773
774
775
Cloud Sources
776
777
778
779
</span>
780
781
782
783
</a>
784
</li>
785
786
787
788
789
790
791
792
793
794
795
<li class="md-nav__item">
796
<a href="../knowledge-graphs/" class="md-nav__link">
797
798
799
800
<span class="md-ellipsis">
801
802
803
Knowledge Graphs
804
805
806
807
</span>
808
809
810
811
</a>
812
</li>
813
814
815
816
817
818
819
820
821
822
823
<li class="md-nav__item">
824
<a href="../companion/" class="md-nav__link">
825
826
827
828
<span class="md-ellipsis">
829
830
831
Interactive Companion
832
833
834
835
</span>
836
837
838
839
</a>
840
</li>
841
842
843
844
845
846
847
848
849
850
851
852
853
<li class="md-nav__item md-nav__item--active">
854
855
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
856
857
858
859
860
861
<label class="md-nav__link md-nav__link--active" for="__toc">
862
863
864
865
<span class="md-ellipsis">
866
867
868
Planning Agent
869
870
871
872
</span>
873
874
875
876
<span class="md-nav__icon md-icon"></span>
877
</label>
878
879
<a href="./" class="md-nav__link md-nav__link--active">
880
881
882
883
<span class="md-ellipsis">
884
885
886
Planning Agent
887
888
889
890
</span>
891
892
893
894
</a>
895
896
897
898
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
899
900
901
902
903
904
905
<label class="md-nav__title" for="__toc">
906
<span class="md-nav__icon md-icon"></span>
907
Table of contents
908
</label>
909
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
910
911
<li class="md-nav__item">
912
<a href="#how-it-works" class="md-nav__link">
913
<span class="md-ellipsis">
914
915
How It Works
916
917
</span>
918
</a>
919
920
<nav class="md-nav" aria-label="How It Works">
921
<ul class="md-nav__list">
922
923
<li class="md-nav__item">
924
<a href="#1-context-assembly" class="md-nav__link">
925
<span class="md-ellipsis">
926
927
1. Context Assembly
928
929
</span>
930
</a>
931
932
</li>
933
934
<li class="md-nav__item">
935
<a href="#2-skill-selection" class="md-nav__link">
936
<span class="md-ellipsis">
937
938
2. Skill Selection
939
940
</span>
941
</a>
942
943
</li>
944
945
<li class="md-nav__item">
946
<a href="#3-execution" class="md-nav__link">
947
<span class="md-ellipsis">
948
949
3. Execution
950
951
</span>
952
</a>
953
954
</li>
955
956
</ul>
957
</nav>
958
959
</li>
960
961
<li class="md-nav__item">
962
<a href="#agentcontext" class="md-nav__link">
963
<span class="md-ellipsis">
964
965
AgentContext
966
967
</span>
968
</a>
969
970
</li>
971
972
<li class="md-nav__item">
973
<a href="#artifacts" class="md-nav__link">
974
<span class="md-ellipsis">
975
976
Artifacts
977
978
</span>
979
</a>
980
981
</li>
982
983
<li class="md-nav__item">
984
<a href="#skills-reference" class="md-nav__link">
985
<span class="md-ellipsis">
986
987
Skills Reference
988
989
</span>
990
</a>
991
992
<nav class="md-nav" aria-label="Skills Reference">
993
<ul class="md-nav__list">
994
995
<li class="md-nav__item">
996
<a href="#project_plan" class="md-nav__link">
997
<span class="md-ellipsis">
998
999
project_plan
1000
1001
</span>
1002
</a>
1003
1004
</li>
1005
1006
<li class="md-nav__item">
1007
<a href="#prd" class="md-nav__link">
1008
<span class="md-ellipsis">
1009
1010
prd
1011
1012
</span>
1013
</a>
1014
1015
</li>
1016
1017
<li class="md-nav__item">
1018
<a href="#roadmap" class="md-nav__link">
1019
<span class="md-ellipsis">
1020
1021
roadmap
1022
1023
</span>
1024
</a>
1025
1026
</li>
1027
1028
<li class="md-nav__item">
1029
<a href="#task_breakdown" class="md-nav__link">
1030
<span class="md-ellipsis">
1031
1032
task_breakdown
1033
1034
</span>
1035
</a>
1036
1037
</li>
1038
1039
<li class="md-nav__item">
1040
<a href="#github_issues" class="md-nav__link">
1041
<span class="md-ellipsis">
1042
1043
github_issues
1044
1045
</span>
1046
</a>
1047
1048
</li>
1049
1050
<li class="md-nav__item">
1051
<a href="#requirements_chat" class="md-nav__link">
1052
<span class="md-ellipsis">
1053
1054
requirements_chat
1055
1056
</span>
1057
</a>
1058
1059
</li>
1060
1061
<li class="md-nav__item">
1062
<a href="#doc_generator" class="md-nav__link">
1063
<span class="md-ellipsis">
1064
1065
doc_generator
1066
1067
</span>
1068
</a>
1069
1070
</li>
1071
1072
<li class="md-nav__item">
1073
<a href="#artifact_export" class="md-nav__link">
1074
<span class="md-ellipsis">
1075
1076
artifact_export
1077
1078
</span>
1079
</a>
1080
1081
</li>
1082
1083
<li class="md-nav__item">
1084
<a href="#cli_adapter" class="md-nav__link">
1085
<span class="md-ellipsis">
1086
1087
cli_adapter
1088
1089
</span>
1090
</a>
1091
1092
</li>
1093
1094
<li class="md-nav__item">
1095
<a href="#notes_export" class="md-nav__link">
1096
<span class="md-ellipsis">
1097
1098
notes_export
1099
1100
</span>
1101
</a>
1102
1103
</li>
1104
1105
<li class="md-nav__item">
1106
<a href="#wiki_generator" class="md-nav__link">
1107
<span class="md-ellipsis">
1108
1109
wiki_generator
1110
1111
</span>
1112
</a>
1113
1114
</li>
1115
1116
</ul>
1117
</nav>
1118
1119
</li>
1120
1121
<li class="md-nav__item">
1122
<a href="#cli-usage" class="md-nav__link">
1123
<span class="md-ellipsis">
1124
1125
CLI Usage
1126
1127
</span>
1128
</a>
1129
1130
<nav class="md-nav" aria-label="CLI Usage">
1131
<ul class="md-nav__list">
1132
1133
<li class="md-nav__item">
1134
<a href="#one-shot-execution" class="md-nav__link">
1135
<span class="md-ellipsis">
1136
1137
One-shot execution
1138
1139
</span>
1140
</a>
1141
1142
</li>
1143
1144
<li class="md-nav__item">
1145
<a href="#export-artifacts-to-disk" class="md-nav__link">
1146
<span class="md-ellipsis">
1147
1148
Export artifacts to disk
1149
1150
</span>
1151
</a>
1152
1153
</li>
1154
1155
<li class="md-nav__item">
1156
<a href="#interactive-mode" class="md-nav__link">
1157
<span class="md-ellipsis">
1158
1159
Interactive mode
1160
1161
</span>
1162
</a>
1163
1164
</li>
1165
1166
<li class="md-nav__item">
1167
<a href="#provider-and-model-options" class="md-nav__link">
1168
<span class="md-ellipsis">
1169
1170
Provider and model options
1171
1172
</span>
1173
</a>
1174
1175
</li>
1176
1177
<li class="md-nav__item">
1178
<a href="#auto-discovery" class="md-nav__link">
1179
<span class="md-ellipsis">
1180
1181
Auto-discovery
1182
1183
</span>
1184
</a>
1185
1186
</li>
1187
1188
</ul>
1189
</nav>
1190
1191
</li>
1192
1193
<li class="md-nav__item">
1194
<a href="#using-skills-from-the-companion-repl" class="md-nav__link">
1195
<span class="md-ellipsis">
1196
1197
Using Skills from the Companion REPL
1198
1199
</span>
1200
</a>
1201
1202
</li>
1203
1204
<li class="md-nav__item">
1205
<a href="#example-workflows" class="md-nav__link">
1206
<span class="md-ellipsis">
1207
1208
Example Workflows
1209
1210
</span>
1211
</a>
1212
1213
<nav class="md-nav" aria-label="Example Workflows">
1214
<ul class="md-nav__list">
1215
1216
<li class="md-nav__item">
1217
<a href="#from-video-to-project-plan" class="md-nav__link">
1218
<span class="md-ellipsis">
1219
1220
From video to project plan
1221
1222
</span>
1223
</a>
1224
1225
</li>
1226
1227
<li class="md-nav__item">
1228
<a href="#interactive-planning-session" class="md-nav__link">
1229
<span class="md-ellipsis">
1230
1231
Interactive planning session
1232
1233
</span>
1234
</a>
1235
1236
</li>
1237
1238
<li class="md-nav__item">
1239
<a href="#skill-chaining" class="md-nav__link">
1240
<span class="md-ellipsis">
1241
1242
Skill chaining
1243
1244
</span>
1245
</a>
1246
1247
</li>
1248
1249
</ul>
1250
</nav>
1251
1252
</li>
1253
1254
</ul>
1255
1256
</nav>
1257
1258
</li>
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
<li class="md-nav__item">
1270
<a href="../authentication/" class="md-nav__link">
1271
1272
1273
1274
<span class="md-ellipsis">
1275
1276
1277
Authentication
1278
1279
1280
1281
</span>
1282
1283
1284
1285
</a>
1286
</li>
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
<li class="md-nav__item">
1298
<a href="../export/" class="md-nav__link">
1299
1300
1301
1302
<span class="md-ellipsis">
1303
1304
1305
Export & Documents
1306
1307
1308
1309
</span>
1310
1311
1312
1313
</a>
1314
</li>
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
<li class="md-nav__item">
1326
<a href="../output-formats/" class="md-nav__link">
1327
1328
1329
1330
<span class="md-ellipsis">
1331
1332
1333
Output Formats
1334
1335
1336
1337
</span>
1338
1339
1340
1341
</a>
1342
</li>
1343
1344
1345
1346
1347
</ul>
1348
</nav>
1349
1350
</li>
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
<li class="md-nav__item">
1361
<a href="../../use-cases/" class="md-nav__link">
1362
1363
1364
1365
<span class="md-ellipsis">
1366
1367
1368
Use Cases
1369
1370
1371
1372
</span>
1373
1374
1375
1376
</a>
1377
</li>
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
<li class="md-nav__item">
1388
<a href="../../cli-reference/" class="md-nav__link">
1389
1390
1391
1392
<span class="md-ellipsis">
1393
1394
1395
CLI Reference
1396
1397
1398
1399
</span>
1400
1401
1402
1403
</a>
1404
</li>
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
<li class="md-nav__item md-nav__item--nested">
1425
1426
1427
1428
1429
1430
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_6" >
1431
1432
1433
<label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
1434
1435
1436
1437
<span class="md-ellipsis">
1438
1439
1440
Architecture
1441
1442
1443
1444
</span>
1445
1446
1447
1448
<span class="md-nav__icon md-icon"></span>
1449
</label>
1450
1451
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
1452
<label class="md-nav__title" for="__nav_6">
1453
<span class="md-nav__icon md-icon"></span>
1454
1455
1456
Architecture
1457
1458
1459
</label>
1460
<ul class="md-nav__list" data-md-scrollfix>
1461
1462
1463
1464
1465
1466
1467
1468
<li class="md-nav__item">
1469
<a href="../../architecture/overview/" class="md-nav__link">
1470
1471
1472
1473
<span class="md-ellipsis">
1474
1475
1476
Overview
1477
1478
1479
1480
</span>
1481
1482
1483
1484
</a>
1485
</li>
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
<li class="md-nav__item">
1497
<a href="../../architecture/providers/" class="md-nav__link">
1498
1499
1500
1501
<span class="md-ellipsis">
1502
1503
1504
Provider System
1505
1506
1507
1508
</span>
1509
1510
1511
1512
</a>
1513
</li>
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
<li class="md-nav__item">
1525
<a href="../../architecture/pipeline/" class="md-nav__link">
1526
1527
1528
1529
<span class="md-ellipsis">
1530
1531
1532
Processing Pipeline
1533
1534
1535
1536
</span>
1537
1538
1539
1540
</a>
1541
</li>
1542
1543
1544
1545
1546
</ul>
1547
</nav>
1548
1549
</li>
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
<li class="md-nav__item md-nav__item--nested">
1570
1571
1572
1573
1574
1575
<input class="md-nav__toggle md-toggle md-toggle--indeterminate" type="checkbox" id="__nav_7" >
1576
1577
1578
<label class="md-nav__link" for="__nav_7" id="__nav_7_label" tabindex="0">
1579
1580
1581
1582
<span class="md-ellipsis">
1583
1584
1585
API Reference
1586
1587
1588
1589
</span>
1590
1591
1592
1593
<span class="md-nav__icon md-icon"></span>
1594
</label>
1595
1596
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_7_label" aria-expanded="false">
1597
<label class="md-nav__title" for="__nav_7">
1598
<span class="md-nav__icon md-icon"></span>
1599
1600
1601
API Reference
1602
1603
1604
</label>
1605
<ul class="md-nav__list" data-md-scrollfix>
1606
1607
1608
1609
1610
1611
1612
1613
<li class="md-nav__item">
1614
<a href="../../api/models/" class="md-nav__link">
1615
1616
1617
1618
<span class="md-ellipsis">
1619
1620
1621
Models
1622
1623
1624
1625
</span>
1626
1627
1628
1629
</a>
1630
</li>
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
<li class="md-nav__item">
1642
<a href="../../api/providers/" class="md-nav__link">
1643
1644
1645
1646
<span class="md-ellipsis">
1647
1648
1649
Providers
1650
1651
1652
1653
</span>
1654
1655
1656
1657
</a>
1658
</li>
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
<li class="md-nav__item">
1670
<a href="../../api/analyzers/" class="md-nav__link">
1671
1672
1673
1674
<span class="md-ellipsis">
1675
1676
1677
Analyzers
1678
1679
1680
1681
</span>
1682
1683
1684
1685
</a>
1686
</li>
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
<li class="md-nav__item">
1698
<a href="../../api/agent/" class="md-nav__link">
1699
1700
1701
1702
<span class="md-ellipsis">
1703
1704
1705
Agent & Skills
1706
1707
1708
1709
</span>
1710
1711
1712
1713
</a>
1714
</li>
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
<li class="md-nav__item">
1726
<a href="../../api/sources/" class="md-nav__link">
1727
1728
1729
1730
<span class="md-ellipsis">
1731
1732
1733
Sources
1734
1735
1736
1737
</span>
1738
1739
1740
1741
</a>
1742
</li>
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
<li class="md-nav__item">
1754
<a href="../../api/auth/" class="md-nav__link">
1755
1756
1757
1758
<span class="md-ellipsis">
1759
1760
1761
Authentication
1762
1763
1764
1765
</span>
1766
1767
1768
1769
</a>
1770
</li>
1771
1772
1773
1774
1775
</ul>
1776
</nav>
1777
1778
</li>
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
<li class="md-nav__item">
1789
<a href="../../faq/" class="md-nav__link">
1790
1791
1792
1793
<span class="md-ellipsis">
1794
1795
1796
FAQ & Troubleshooting
1797
1798
1799
1800
</span>
1801
1802
1803
1804
</a>
1805
</li>
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
<li class="md-nav__item">
1816
<a href="../../contributing/" class="md-nav__link">
1817
1818
1819
1820
<span class="md-ellipsis">
1821
1822
1823
Contributing
1824
1825
1826
1827
</span>
1828
1829
1830
1831
</a>
1832
</li>
1833
1834
1835
1836
</ul>
1837
</nav>
1838
</div>
1839
</div>
1840
</div>
1841
1842
1843
1844
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1845
<div class="md-sidebar__scrollwrap">
1846
<div class="md-sidebar__inner">
1847
1848
1849
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1850
1851
1852
1853
1854
1855
1856
<label class="md-nav__title" for="__toc">
1857
<span class="md-nav__icon md-icon"></span>
1858
Table of contents
1859
</label>
1860
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1861
1862
<li class="md-nav__item">
1863
<a href="#how-it-works" class="md-nav__link">
1864
<span class="md-ellipsis">
1865
1866
How It Works
1867
1868
</span>
1869
</a>
1870
1871
<nav class="md-nav" aria-label="How It Works">
1872
<ul class="md-nav__list">
1873
1874
<li class="md-nav__item">
1875
<a href="#1-context-assembly" class="md-nav__link">
1876
<span class="md-ellipsis">
1877
1878
1. Context Assembly
1879
1880
</span>
1881
</a>
1882
1883
</li>
1884
1885
<li class="md-nav__item">
1886
<a href="#2-skill-selection" class="md-nav__link">
1887
<span class="md-ellipsis">
1888
1889
2. Skill Selection
1890
1891
</span>
1892
</a>
1893
1894
</li>
1895
1896
<li class="md-nav__item">
1897
<a href="#3-execution" class="md-nav__link">
1898
<span class="md-ellipsis">
1899
1900
3. Execution
1901
1902
</span>
1903
</a>
1904
1905
</li>
1906
1907
</ul>
1908
</nav>
1909
1910
</li>
1911
1912
<li class="md-nav__item">
1913
<a href="#agentcontext" class="md-nav__link">
1914
<span class="md-ellipsis">
1915
1916
AgentContext
1917
1918
</span>
1919
</a>
1920
1921
</li>
1922
1923
<li class="md-nav__item">
1924
<a href="#artifacts" class="md-nav__link">
1925
<span class="md-ellipsis">
1926
1927
Artifacts
1928
1929
</span>
1930
</a>
1931
1932
</li>
1933
1934
<li class="md-nav__item">
1935
<a href="#skills-reference" class="md-nav__link">
1936
<span class="md-ellipsis">
1937
1938
Skills Reference
1939
1940
</span>
1941
</a>
1942
1943
<nav class="md-nav" aria-label="Skills Reference">
1944
<ul class="md-nav__list">
1945
1946
<li class="md-nav__item">
1947
<a href="#project_plan" class="md-nav__link">
1948
<span class="md-ellipsis">
1949
1950
project_plan
1951
1952
</span>
1953
</a>
1954
1955
</li>
1956
1957
<li class="md-nav__item">
1958
<a href="#prd" class="md-nav__link">
1959
<span class="md-ellipsis">
1960
1961
prd
1962
1963
</span>
1964
</a>
1965
1966
</li>
1967
1968
<li class="md-nav__item">
1969
<a href="#roadmap" class="md-nav__link">
1970
<span class="md-ellipsis">
1971
1972
roadmap
1973
1974
</span>
1975
</a>
1976
1977
</li>
1978
1979
<li class="md-nav__item">
1980
<a href="#task_breakdown" class="md-nav__link">
1981
<span class="md-ellipsis">
1982
1983
task_breakdown
1984
1985
</span>
1986
</a>
1987
1988
</li>
1989
1990
<li class="md-nav__item">
1991
<a href="#github_issues" class="md-nav__link">
1992
<span class="md-ellipsis">
1993
1994
github_issues
1995
1996
</span>
1997
</a>
1998
1999
</li>
2000
2001
<li class="md-nav__item">
2002
<a href="#requirements_chat" class="md-nav__link">
2003
<span class="md-ellipsis">
2004
2005
requirements_chat
2006
2007
</span>
2008
</a>
2009
2010
</li>
2011
2012
<li class="md-nav__item">
2013
<a href="#doc_generator" class="md-nav__link">
2014
<span class="md-ellipsis">
2015
2016
doc_generator
2017
2018
</span>
2019
</a>
2020
2021
</li>
2022
2023
<li class="md-nav__item">
2024
<a href="#artifact_export" class="md-nav__link">
2025
<span class="md-ellipsis">
2026
2027
artifact_export
2028
2029
</span>
2030
</a>
2031
2032
</li>
2033
2034
<li class="md-nav__item">
2035
<a href="#cli_adapter" class="md-nav__link">
2036
<span class="md-ellipsis">
2037
2038
cli_adapter
2039
2040
</span>
2041
</a>
2042
2043
</li>
2044
2045
<li class="md-nav__item">
2046
<a href="#notes_export" class="md-nav__link">
2047
<span class="md-ellipsis">
2048
2049
notes_export
2050
2051
</span>
2052
</a>
2053
2054
</li>
2055
2056
<li class="md-nav__item">
2057
<a href="#wiki_generator" class="md-nav__link">
2058
<span class="md-ellipsis">
2059
2060
wiki_generator
2061
2062
</span>
2063
</a>
2064
2065
</li>
2066
2067
</ul>
2068
</nav>
2069
2070
</li>
2071
2072
<li class="md-nav__item">
2073
<a href="#cli-usage" class="md-nav__link">
2074
<span class="md-ellipsis">
2075
2076
CLI Usage
2077
2078
</span>
2079
</a>
2080
2081
<nav class="md-nav" aria-label="CLI Usage">
2082
<ul class="md-nav__list">
2083
2084
<li class="md-nav__item">
2085
<a href="#one-shot-execution" class="md-nav__link">
2086
<span class="md-ellipsis">
2087
2088
One-shot execution
2089
2090
</span>
2091
</a>
2092
2093
</li>
2094
2095
<li class="md-nav__item">
2096
<a href="#export-artifacts-to-disk" class="md-nav__link">
2097
<span class="md-ellipsis">
2098
2099
Export artifacts to disk
2100
2101
</span>
2102
</a>
2103
2104
</li>
2105
2106
<li class="md-nav__item">
2107
<a href="#interactive-mode" class="md-nav__link">
2108
<span class="md-ellipsis">
2109
2110
Interactive mode
2111
2112
</span>
2113
</a>
2114
2115
</li>
2116
2117
<li class="md-nav__item">
2118
<a href="#provider-and-model-options" class="md-nav__link">
2119
<span class="md-ellipsis">
2120
2121
Provider and model options
2122
2123
</span>
2124
</a>
2125
2126
</li>
2127
2128
<li class="md-nav__item">
2129
<a href="#auto-discovery" class="md-nav__link">
2130
<span class="md-ellipsis">
2131
2132
Auto-discovery
2133
2134
</span>
2135
</a>
2136
2137
</li>
2138
2139
</ul>
2140
</nav>
2141
2142
</li>
2143
2144
<li class="md-nav__item">
2145
<a href="#using-skills-from-the-companion-repl" class="md-nav__link">
2146
<span class="md-ellipsis">
2147
2148
Using Skills from the Companion REPL
2149
2150
</span>
2151
</a>
2152
2153
</li>
2154
2155
<li class="md-nav__item">
2156
<a href="#example-workflows" class="md-nav__link">
2157
<span class="md-ellipsis">
2158
2159
Example Workflows
2160
2161
</span>
2162
</a>
2163
2164
<nav class="md-nav" aria-label="Example Workflows">
2165
<ul class="md-nav__list">
2166
2167
<li class="md-nav__item">
2168
<a href="#from-video-to-project-plan" class="md-nav__link">
2169
<span class="md-ellipsis">
2170
2171
From video to project plan
2172
2173
</span>
2174
</a>
2175
2176
</li>
2177
2178
<li class="md-nav__item">
2179
<a href="#interactive-planning-session" class="md-nav__link">
2180
<span class="md-ellipsis">
2181
2182
Interactive planning session
2183
2184
</span>
2185
</a>
2186
2187
</li>
2188
2189
<li class="md-nav__item">
2190
<a href="#skill-chaining" class="md-nav__link">
2191
<span class="md-ellipsis">
2192
2193
Skill chaining
2194
2195
</span>
2196
</a>
2197
2198
</li>
2199
2200
</ul>
2201
</nav>
2202
2203
</li>
2204
2205
</ul>
2206
2207
</nav>
2208
</div>
2209
</div>
2210
</div>
2211
2212
2213
2214
<div class="md-content" data-md-component="content">
2215
2216
<article class="md-content__inner md-typeset">
2217
2218
2219
2220
2221
2222
2223
2224
2225
<h1 id="planning-agent">Planning Agent<a class="headerlink" href="#planning-agent" title="Permanent link">&para;</a></h1>
2226
<p>The Planning Agent is PlanOpticon's AI-powered system for synthesizing knowledge graph content into structured planning artifacts. It takes extracted entities and relationships from video analyses, document ingestions, and other sources, then uses LLM reasoning to produce project plans, PRDs, roadmaps, task breakdowns, GitHub issues, and more.</p>
2227
<hr />
2228
<h2 id="how-it-works">How It Works<a class="headerlink" href="#how-it-works" title="Permanent link">&para;</a></h2>
2229
<p>The Planning Agent operates through a three-stage pipeline:</p>
2230
<h3 id="1-context-assembly">1. Context Assembly<a class="headerlink" href="#1-context-assembly" title="Permanent link">&para;</a></h3>
2231
<p>The agent gathers context from all available sources:</p>
2232
<ul>
2233
<li><strong>Knowledge graph</strong> -- entity counts, types, relationships, and planning entities from the loaded KG</li>
2234
<li><strong>Query engine</strong> -- used to pull stats, entity lists, and relationship data for prompt construction</li>
2235
<li><strong>Provider manager</strong> -- the configured LLM provider used for generation</li>
2236
<li><strong>Prior artifacts</strong> -- any artifacts already generated in the session (skills can chain off each other)</li>
2237
<li><strong>Conversation history</strong> -- accumulated chat messages when running in interactive mode</li>
2238
</ul>
2239
<p>This context is bundled into an <code>AgentContext</code> dataclass that is shared across all skills.</p>
2240
<h3 id="2-skill-selection">2. Skill Selection<a class="headerlink" href="#2-skill-selection" title="Permanent link">&para;</a></h3>
2241
<p>When the agent receives a user request, it determines which skills to run:</p>
2242
<p><strong>LLM-driven planning (with provider).</strong> The agent constructs a prompt that includes the knowledge base summary, all available skill names and descriptions, and the user's request. The LLM returns a JSON array of skill names to execute in order, along with any parameters. For example, given "Create a project plan and break it into tasks," the LLM might select <code>["project_plan", "task_breakdown"]</code>.</p>
2243
<p><strong>Keyword fallback (without provider).</strong> If no LLM provider is available, the agent falls back to simple keyword matching. It splits each skill name on underscores and checks whether any of those words appear in the user's request. For example, the request "generate a roadmap" would match the <code>roadmap</code> skill because "roadmap" appears in both the request and the skill name.</p>
2244
<h3 id="3-execution">3. Execution<a class="headerlink" href="#3-execution" title="Permanent link">&para;</a></h3>
2245
<p>Selected skills are executed sequentially. Each skill:</p>
2246
<ol>
2247
<li>Checks <code>can_execute()</code> to verify the required context is available (by default, both a knowledge graph and an LLM provider must be present)</li>
2248
<li>Pulls relevant data from the knowledge graph via the query engine</li>
2249
<li>Constructs a detailed prompt for the LLM with extracted context</li>
2250
<li>Calls the LLM and parses the response</li>
2251
<li>Returns an <code>Artifact</code> object containing the generated content</li>
2252
</ol>
2253
<p>Each artifact is appended to <code>context.artifacts</code>, making it available to subsequent skills. This enables chaining -- for example, <code>task_breakdown</code> can feed into <code>github_issues</code>.</p>
2254
<hr />
2255
<h2 id="agentcontext">AgentContext<a class="headerlink" href="#agentcontext" title="Permanent link">&para;</a></h2>
2256
<p>The <code>AgentContext</code> dataclass is the shared state object that connects all components of the planning agent system.</p>
2257
<div class="highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nd">@dataclass</span>
2258
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a><span class="k">class</span><span class="w"> </span><span class="nc">AgentContext</span><span class="p">:</span>
2259
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">knowledge_graph</span><span class="p">:</span> <span class="n">Any</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># KnowledgeGraph instance</span>
2260
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">query_engine</span><span class="p">:</span> <span class="n">Any</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># GraphQueryEngine instance</span>
2261
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">provider_manager</span><span class="p">:</span> <span class="n">Any</span> <span class="o">=</span> <span class="kc">None</span> <span class="c1"># ProviderManager instance</span>
2262
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">planning_entities</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
2263
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">user_requirements</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
2264
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="n">conversation_history</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
2265
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> <span class="n">artifacts</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Artifact</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">list</span><span class="p">)</span>
2266
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a> <span class="n">config</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
2267
</code></pre></div>
2268
<table>
2269
<thead>
2270
<tr>
2271
<th>Field</th>
2272
<th>Purpose</th>
2273
</tr>
2274
</thead>
2275
<tbody>
2276
<tr>
2277
<td><code>knowledge_graph</code></td>
2278
<td>The loaded <code>KnowledgeGraph</code> instance; provides access to entities, relationships, and graph operations</td>
2279
</tr>
2280
<tr>
2281
<td><code>query_engine</code></td>
2282
<td>A <code>GraphQueryEngine</code> for running structured queries (stats, entities, neighbors, relationships)</td>
2283
</tr>
2284
<tr>
2285
<td><code>provider_manager</code></td>
2286
<td>The <code>ProviderManager</code> that handles LLM API calls across providers</td>
2287
</tr>
2288
<tr>
2289
<td><code>planning_entities</code></td>
2290
<td>Entities classified into the planning taxonomy (goals, requirements, risks, etc.)</td>
2291
</tr>
2292
<tr>
2293
<td><code>user_requirements</code></td>
2294
<td>Structured requirements gathered from the <code>requirements_chat</code> skill</td>
2295
</tr>
2296
<tr>
2297
<td><code>conversation_history</code></td>
2298
<td>Accumulated chat messages for interactive sessions</td>
2299
</tr>
2300
<tr>
2301
<td><code>artifacts</code></td>
2302
<td>All artifacts generated during the session, enabling skill chaining</td>
2303
</tr>
2304
<tr>
2305
<td><code>config</code></td>
2306
<td>Arbitrary configuration overrides</td>
2307
</tr>
2308
</tbody>
2309
</table>
2310
<hr />
2311
<h2 id="artifacts">Artifacts<a class="headerlink" href="#artifacts" title="Permanent link">&para;</a></h2>
2312
<p>Every skill returns an <code>Artifact</code> dataclass:</p>
2313
<div class="highlight"><pre><span></span><code><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="nd">@dataclass</span>
2314
<a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="k">class</span><span class="w"> </span><span class="nc">Artifact</span><span class="p">:</span>
2315
<a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="c1"># Human-readable name (e.g., &quot;Project Plan&quot;)</span>
2316
<a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a> <span class="n">content</span><span class="p">:</span> <span class="nb">str</span> <span class="c1"># The generated content (markdown, JSON, etc.)</span>
2317
<a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a> <span class="n">artifact_type</span><span class="p">:</span> <span class="nb">str</span> <span class="c1"># Type identifier: &quot;project_plan&quot;, &quot;prd&quot;, &quot;roadmap&quot;, etc.</span>
2318
<a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a> <span class="nb">format</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">&quot;markdown&quot;</span> <span class="c1"># Content format: &quot;markdown&quot;, &quot;json&quot;, &quot;mermaid&quot;</span>
2319
<a id="__codelineno-1-7" name="__codelineno-1-7" href="#__codelineno-1-7"></a> <span class="n">metadata</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="n">field</span><span class="p">(</span><span class="n">default_factory</span><span class="o">=</span><span class="nb">dict</span><span class="p">)</span>
2320
</code></pre></div>
2321
<p>Artifacts are the currency of the agent system. They can be:</p>
2322
<ul>
2323
<li>Displayed directly in the Companion REPL</li>
2324
<li>Exported to disk via the <code>artifact_export</code> skill</li>
2325
<li>Pushed to external tools via the <code>cli_adapter</code> skill</li>
2326
<li>Chained into other skills (e.g., task breakdown feeds into GitHub issues)</li>
2327
</ul>
2328
<hr />
2329
<h2 id="skills-reference">Skills Reference<a class="headerlink" href="#skills-reference" title="Permanent link">&para;</a></h2>
2330
<p>The agent ships with 11 built-in skills. Each skill is a class that extends <code>Skill</code> and self-registers at import time via <code>register_skill()</code>.</p>
2331
<h3 id="project_plan">project_plan<a class="headerlink" href="#project_plan" title="Permanent link">&para;</a></h3>
2332
<p><strong>Description:</strong> Generate a structured project plan from knowledge graph.</p>
2333
<p>Pulls the full knowledge graph context (stats, entities, relationships, and planning entities grouped by type) and asks the LLM to produce a comprehensive project plan with:</p>
2334
<ol>
2335
<li>Executive Summary</li>
2336
<li>Goals and Objectives</li>
2337
<li>Scope</li>
2338
<li>Phases and Milestones</li>
2339
<li>Resource Requirements</li>
2340
<li>Risks and Mitigations</li>
2341
<li>Success Criteria</li>
2342
</ol>
2343
<p><strong>Artifact type:</strong> <code>project_plan</code> | <strong>Format:</strong> markdown</p>
2344
<h3 id="prd">prd<a class="headerlink" href="#prd" title="Permanent link">&para;</a></h3>
2345
<p><strong>Description:</strong> Generate a product requirements document (PRD) / feature spec.</p>
2346
<p>Filters planning entities to those of type <code>requirement</code>, <code>feature</code>, and <code>constraint</code>, then asks the LLM to generate a PRD with:</p>
2347
<ol>
2348
<li>Problem Statement</li>
2349
<li>User Stories</li>
2350
<li>Functional Requirements</li>
2351
<li>Non-Functional Requirements</li>
2352
<li>Acceptance Criteria</li>
2353
<li>Out of Scope</li>
2354
</ol>
2355
<p>If no pre-filtered entities match, the LLM derives requirements from the full knowledge graph context.</p>
2356
<p><strong>Artifact type:</strong> <code>prd</code> | <strong>Format:</strong> markdown</p>
2357
<h3 id="roadmap">roadmap<a class="headerlink" href="#roadmap" title="Permanent link">&para;</a></h3>
2358
<p><strong>Description:</strong> Generate a product/project roadmap.</p>
2359
<p>Focuses on planning entities of type <code>milestone</code>, <code>feature</code>, and <code>dependency</code>. Asks the LLM to produce a roadmap with:</p>
2360
<ol>
2361
<li>Vision and Strategy</li>
2362
<li>Phases (with timeline estimates)</li>
2363
<li>Key Dependencies</li>
2364
<li>A Mermaid Gantt chart summarizing the timeline</li>
2365
</ol>
2366
<p><strong>Artifact type:</strong> <code>roadmap</code> | <strong>Format:</strong> markdown</p>
2367
<h3 id="task_breakdown">task_breakdown<a class="headerlink" href="#task_breakdown" title="Permanent link">&para;</a></h3>
2368
<p><strong>Description:</strong> Break down goals into tasks with dependencies.</p>
2369
<p>Focuses on planning entities of type <code>goal</code>, <code>feature</code>, and <code>milestone</code>. Returns a JSON array of task objects, each containing:</p>
2370
<table>
2371
<thead>
2372
<tr>
2373
<th>Field</th>
2374
<th>Type</th>
2375
<th>Description</th>
2376
</tr>
2377
</thead>
2378
<tbody>
2379
<tr>
2380
<td><code>id</code></td>
2381
<td>string</td>
2382
<td>Task identifier (e.g., "T1", "T2")</td>
2383
</tr>
2384
<tr>
2385
<td><code>title</code></td>
2386
<td>string</td>
2387
<td>Short task title</td>
2388
</tr>
2389
<tr>
2390
<td><code>description</code></td>
2391
<td>string</td>
2392
<td>Detailed description</td>
2393
</tr>
2394
<tr>
2395
<td><code>depends_on</code></td>
2396
<td>list</td>
2397
<td>IDs of prerequisite tasks</td>
2398
</tr>
2399
<tr>
2400
<td><code>priority</code></td>
2401
<td>string</td>
2402
<td><code>high</code>, <code>medium</code>, or <code>low</code></td>
2403
</tr>
2404
<tr>
2405
<td><code>estimate</code></td>
2406
<td>string</td>
2407
<td>Effort estimate (e.g., "2d", "1w")</td>
2408
</tr>
2409
<tr>
2410
<td><code>assignee_role</code></td>
2411
<td>string</td>
2412
<td>Role needed to perform the task</td>
2413
</tr>
2414
</tbody>
2415
</table>
2416
<p><strong>Artifact type:</strong> <code>task_list</code> | <strong>Format:</strong> json</p>
2417
<h3 id="github_issues">github_issues<a class="headerlink" href="#github_issues" title="Permanent link">&para;</a></h3>
2418
<p><strong>Description:</strong> Generate GitHub issues from task breakdown.</p>
2419
<p>Converts tasks into GitHub-ready issue objects. If a <code>task_list</code> artifact exists in the context, it is used as input. Otherwise, minimal issues are generated from the planning entities directly.</p>
2420
<p>Each issue includes a formatted body with description, priority, estimate, and dependencies, plus labels derived from the task priority.</p>
2421
<p>The skill also provides a <code>push_to_github(issues_json, repo)</code> function that shells out to the <code>gh</code> CLI to create actual issues. This is used by the <code>cli_adapter</code> skill.</p>
2422
<p><strong>Artifact type:</strong> <code>issues</code> | <strong>Format:</strong> json</p>
2423
<h3 id="requirements_chat">requirements_chat<a class="headerlink" href="#requirements_chat" title="Permanent link">&para;</a></h3>
2424
<p><strong>Description:</strong> Interactive requirements gathering via guided questions.</p>
2425
<p>Generates a structured requirements questionnaire based on the knowledge graph context. The questionnaire contains 8-12 targeted questions, each with:</p>
2426
<table>
2427
<thead>
2428
<tr>
2429
<th>Field</th>
2430
<th>Type</th>
2431
<th>Description</th>
2432
</tr>
2433
</thead>
2434
<tbody>
2435
<tr>
2436
<td><code>id</code></td>
2437
<td>string</td>
2438
<td>Question identifier (e.g., "Q1")</td>
2439
</tr>
2440
<tr>
2441
<td><code>category</code></td>
2442
<td>string</td>
2443
<td><code>goals</code>, <code>constraints</code>, <code>priorities</code>, or <code>scope</code></td>
2444
</tr>
2445
<tr>
2446
<td><code>question</code></td>
2447
<td>string</td>
2448
<td>The question text</td>
2449
</tr>
2450
<tr>
2451
<td><code>context</code></td>
2452
<td>string</td>
2453
<td>Why this question matters</td>
2454
</tr>
2455
</tbody>
2456
</table>
2457
<p>The skill also provides a <code>gather_requirements(context, answers)</code> method that takes the completed Q&amp;A and synthesizes structured requirements (goals, constraints, priorities, scope).</p>
2458
<p><strong>Artifact type:</strong> <code>requirements</code> | <strong>Format:</strong> json</p>
2459
<h3 id="doc_generator">doc_generator<a class="headerlink" href="#doc_generator" title="Permanent link">&para;</a></h3>
2460
<p><strong>Description:</strong> Generate technical documentation, ADRs, or meeting notes.</p>
2461
<p>Supports three document types, selected via the <code>doc_type</code> parameter:</p>
2462
<table>
2463
<thead>
2464
<tr>
2465
<th><code>doc_type</code></th>
2466
<th>Output Structure</th>
2467
</tr>
2468
</thead>
2469
<tbody>
2470
<tr>
2471
<td><code>technical_doc</code> (default)</td>
2472
<td>Overview, Architecture, Components and Interfaces, Data Flow, Deployment and Configuration, API Reference</td>
2473
</tr>
2474
<tr>
2475
<td><code>adr</code></td>
2476
<td>Title, Status (Proposed), Context, Decision, Consequences, Alternatives Considered</td>
2477
</tr>
2478
<tr>
2479
<td><code>meeting_notes</code></td>
2480
<td>Meeting Summary, Key Discussion Points, Decisions Made, Action Items (with owners), Open Questions, Next Steps</td>
2481
</tr>
2482
</tbody>
2483
</table>
2484
<p><strong>Artifact type:</strong> <code>document</code> | <strong>Format:</strong> markdown</p>
2485
<h3 id="artifact_export">artifact_export<a class="headerlink" href="#artifact_export" title="Permanent link">&para;</a></h3>
2486
<p><strong>Description:</strong> Export artifacts in agent-ready formats.</p>
2487
<p>Writes all artifacts accumulated in the context to a directory structure. Each artifact is written to a file based on its type:</p>
2488
<table>
2489
<thead>
2490
<tr>
2491
<th>Artifact Type</th>
2492
<th>Filename</th>
2493
</tr>
2494
</thead>
2495
<tbody>
2496
<tr>
2497
<td><code>project_plan</code></td>
2498
<td><code>project_plan.md</code></td>
2499
</tr>
2500
<tr>
2501
<td><code>prd</code></td>
2502
<td><code>prd.md</code></td>
2503
</tr>
2504
<tr>
2505
<td><code>roadmap</code></td>
2506
<td><code>roadmap.md</code></td>
2507
</tr>
2508
<tr>
2509
<td><code>task_list</code></td>
2510
<td><code>tasks.json</code></td>
2511
</tr>
2512
<tr>
2513
<td><code>issues</code></td>
2514
<td><code>issues.json</code></td>
2515
</tr>
2516
<tr>
2517
<td><code>requirements</code></td>
2518
<td><code>requirements.json</code></td>
2519
</tr>
2520
<tr>
2521
<td><code>document</code></td>
2522
<td><code>docs/&lt;name&gt;.md</code></td>
2523
</tr>
2524
</tbody>
2525
</table>
2526
<p>A <code>manifest.json</code> is written alongside, listing all exported files with their names, types, and formats.</p>
2527
<p><strong>Artifact type:</strong> <code>export_manifest</code> | <strong>Format:</strong> json</p>
2528
<p>Accepts an <code>output_dir</code> parameter (defaults to <code>plan/</code>).</p>
2529
<h3 id="cli_adapter">cli_adapter<a class="headerlink" href="#cli_adapter" title="Permanent link">&para;</a></h3>
2530
<p><strong>Description:</strong> Push artifacts to external tools via their CLIs.</p>
2531
<p>Converts artifacts into CLI commands for external project management tools. Supported tools:</p>
2532
<table>
2533
<thead>
2534
<tr>
2535
<th>Tool</th>
2536
<th>CLI</th>
2537
<th>Example Command</th>
2538
</tr>
2539
</thead>
2540
<tbody>
2541
<tr>
2542
<td><code>github</code></td>
2543
<td><code>gh</code></td>
2544
<td><code>gh issue create --title "..." --body "..." --label "..."</code></td>
2545
</tr>
2546
<tr>
2547
<td><code>jira</code></td>
2548
<td><code>jira</code></td>
2549
<td><code>jira issue create --summary "..." --description "..."</code></td>
2550
</tr>
2551
<tr>
2552
<td><code>linear</code></td>
2553
<td><code>linear</code></td>
2554
<td><code>linear issue create --title "..." --description "..."</code></td>
2555
</tr>
2556
</tbody>
2557
</table>
2558
<p>The skill checks whether the target CLI is available on the system and includes that status in the output. Commands are generated in dry-run mode by default.</p>
2559
<p><strong>Artifact type:</strong> <code>cli_commands</code> | <strong>Format:</strong> json</p>
2560
<h3 id="notes_export">notes_export<a class="headerlink" href="#notes_export" title="Permanent link">&para;</a></h3>
2561
<p><strong>Description:</strong> Export knowledge graph as structured notes (Obsidian, Notion).</p>
2562
<p>Exports the entire knowledge graph as a collection of markdown files optimized for a specific note-taking platform. Accepts a <code>format</code> parameter:</p>
2563
<p><strong>Obsidian format</strong> creates:</p>
2564
<ul>
2565
<li>One <code>.md</code> file per entity with YAML frontmatter, tags, and <code>[[wiki-links]]</code></li>
2566
<li>An <code>_Index.md</code> Map of Content grouping entities by type</li>
2567
<li>Tag pages for each entity type</li>
2568
<li>Artifact notes for any generated artifacts</li>
2569
</ul>
2570
<p><strong>Notion format</strong> creates:</p>
2571
<ul>
2572
<li>One <code>.md</code> file per entity with Notion-style callout blocks and relationship tables</li>
2573
<li>An <code>entities_database.csv</code> for bulk import into a Notion database</li>
2574
<li>An <code>Overview.md</code> page with stats and entity listings</li>
2575
<li>Artifact pages</li>
2576
</ul>
2577
<p><strong>Artifact type:</strong> <code>notes_export</code> | <strong>Format:</strong> markdown</p>
2578
<h3 id="wiki_generator">wiki_generator<a class="headerlink" href="#wiki_generator" title="Permanent link">&para;</a></h3>
2579
<p><strong>Description:</strong> Generate a GitHub wiki from knowledge graph and artifacts.</p>
2580
<p>Generates a complete GitHub wiki structure as a dictionary of page names to markdown content. Creates:</p>
2581
<ul>
2582
<li><strong>Home</strong> page with entity type counts and links</li>
2583
<li><strong>_Sidebar</strong> navigation with entity types and artifacts</li>
2584
<li><strong>Type index pages</strong> with tables of entities per type</li>
2585
<li><strong>Individual entity pages</strong> with descriptions, outgoing/incoming relationships, and source occurrences</li>
2586
<li><strong>Artifact pages</strong> for any generated planning artifacts</li>
2587
</ul>
2588
<p>The skill also provides standalone functions <code>write_wiki(pages, output_dir)</code> to write pages to disk and <code>push_wiki(wiki_dir, repo)</code> to push directly to a GitHub wiki repository.</p>
2589
<p><strong>Artifact type:</strong> <code>wiki</code> | <strong>Format:</strong> markdown</p>
2590
<hr />
2591
<h2 id="cli-usage">CLI Usage<a class="headerlink" href="#cli-usage" title="Permanent link">&para;</a></h2>
2592
<h3 id="one-shot-execution">One-shot execution<a class="headerlink" href="#one-shot-execution" title="Permanent link">&para;</a></h3>
2593
<p>Run the agent with a request string. The agent selects and executes appropriate skills automatically.</p>
2594
<div class="highlight"><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="c1"># Generate a project plan</span>
2595
<a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Create a project plan&quot;</span><span class="w"> </span>--kb<span class="w"> </span>./results
2596
<a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a>
2597
<a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="c1"># Generate a PRD</span>
2598
<a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Write a PRD for the authentication system&quot;</span><span class="w"> </span>--kb<span class="w"> </span>./results
2599
<a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a>
2600
<a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="c1"># Break down into tasks</span>
2601
<a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Break this into tasks and estimate effort&quot;</span><span class="w"> </span>--kb<span class="w"> </span>./results
2602
</code></pre></div>
2603
<h3 id="export-artifacts-to-disk">Export artifacts to disk<a class="headerlink" href="#export-artifacts-to-disk" title="Permanent link">&para;</a></h3>
2604
<p>Use <code>--export</code> to write generated artifacts to a directory:</p>
2605
<div class="highlight"><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Create a full project plan with tasks&quot;</span><span class="w"> </span>--kb<span class="w"> </span>./results<span class="w"> </span>--export<span class="w"> </span>./output
2606
</code></pre></div>
2607
<h3 id="interactive-mode">Interactive mode<a class="headerlink" href="#interactive-mode" title="Permanent link">&para;</a></h3>
2608
<p>Use <code>-I</code> for a multi-turn session where you can issue multiple requests:</p>
2609
<div class="highlight"><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>planopticon<span class="w"> </span>agent<span class="w"> </span>-I<span class="w"> </span>--kb<span class="w"> </span>./results
2610
</code></pre></div>
2611
<p>In interactive mode, the agent supports:</p>
2612
<ul>
2613
<li>Free-text requests (executed via LLM skill selection)</li>
2614
<li><code>/plan</code> -- shortcut to generate a project plan</li>
2615
<li><code>/skills</code> -- list available skills</li>
2616
<li><code>quit</code>, <code>exit</code>, <code>q</code> -- end the session</li>
2617
</ul>
2618
<h3 id="provider-and-model-options">Provider and model options<a class="headerlink" href="#provider-and-model-options" title="Permanent link">&para;</a></h3>
2619
<div class="highlight"><pre><span></span><code><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="c1"># Use a specific provider</span>
2620
<a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Create a roadmap&quot;</span><span class="w"> </span>--kb<span class="w"> </span>./results<span class="w"> </span>-p<span class="w"> </span>anthropic
2621
<a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a>
2622
<a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="c1"># Use a specific model</span>
2623
<a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Generate a PRD&quot;</span><span class="w"> </span>--kb<span class="w"> </span>./results<span class="w"> </span>--chat-model<span class="w"> </span>gpt-4o
2624
</code></pre></div>
2625
<h3 id="auto-discovery">Auto-discovery<a class="headerlink" href="#auto-discovery" title="Permanent link">&para;</a></h3>
2626
<p>If <code>--kb</code> is not specified, the agent uses <code>KBContext.auto_discover()</code> to find knowledge graphs in the workspace.</p>
2627
<hr />
2628
<h2 id="using-skills-from-the-companion-repl">Using Skills from the Companion REPL<a class="headerlink" href="#using-skills-from-the-companion-repl" title="Permanent link">&para;</a></h2>
2629
<p>The Companion REPL provides direct access to agent skills through slash commands. See the <a href="../companion/">Companion guide</a> for full details.</p>
2630
<table>
2631
<thead>
2632
<tr>
2633
<th>Companion Command</th>
2634
<th>Skill Executed</th>
2635
</tr>
2636
</thead>
2637
<tbody>
2638
<tr>
2639
<td><code>/plan</code></td>
2640
<td><code>project_plan</code></td>
2641
</tr>
2642
<tr>
2643
<td><code>/prd</code></td>
2644
<td><code>prd</code></td>
2645
</tr>
2646
<tr>
2647
<td><code>/tasks</code></td>
2648
<td><code>task_breakdown</code></td>
2649
</tr>
2650
<tr>
2651
<td><code>/run SKILL_NAME</code></td>
2652
<td>Any registered skill by name</td>
2653
</tr>
2654
</tbody>
2655
</table>
2656
<p>When executed from the Companion, skills use the same <code>AgentContext</code> that powers the chat mode. This means:</p>
2657
<ul>
2658
<li>The knowledge graph loaded at startup is automatically available</li>
2659
<li>The active LLM provider (set via <code>/provider</code> or <code>/model</code>) is used for generation</li>
2660
<li>Generated artifacts accumulate across the session, enabling chaining</li>
2661
</ul>
2662
<hr />
2663
<h2 id="example-workflows">Example Workflows<a class="headerlink" href="#example-workflows" title="Permanent link">&para;</a></h2>
2664
<h3 id="from-video-to-project-plan">From video to project plan<a class="headerlink" href="#from-video-to-project-plan" title="Permanent link">&para;</a></h3>
2665
<div class="highlight"><pre><span></span><code><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a><span class="c1"># 1. Analyze a video</span>
2666
<a id="__codelineno-6-2" name="__codelineno-6-2" href="#__codelineno-6-2"></a>planopticon<span class="w"> </span>analyze<span class="w"> </span>-i<span class="w"> </span>sprint-review.mp4<span class="w"> </span>-o<span class="w"> </span>results/
2667
<a id="__codelineno-6-3" name="__codelineno-6-3" href="#__codelineno-6-3"></a>
2668
<a id="__codelineno-6-4" name="__codelineno-6-4" href="#__codelineno-6-4"></a><span class="c1"># 2. Launch the agent with the results</span>
2669
<a id="__codelineno-6-5" name="__codelineno-6-5" href="#__codelineno-6-5"></a>planopticon<span class="w"> </span>agent<span class="w"> </span><span class="s2">&quot;Create a comprehensive project plan with tasks and a roadmap&quot;</span><span class="w"> </span><span class="se">\</span>
2670
<a id="__codelineno-6-6" name="__codelineno-6-6" href="#__codelineno-6-6"></a><span class="w"> </span>--kb<span class="w"> </span>results/<span class="w"> </span>--export<span class="w"> </span>plan/
2671
<a id="__codelineno-6-7" name="__codelineno-6-7" href="#__codelineno-6-7"></a>
2672
<a id="__codelineno-6-8" name="__codelineno-6-8" href="#__codelineno-6-8"></a><span class="c1"># 3. Review the generated artifacts</span>
2673
<a id="__codelineno-6-9" name="__codelineno-6-9" href="#__codelineno-6-9"></a>ls<span class="w"> </span>plan/
2674
<a id="__codelineno-6-10" name="__codelineno-6-10" href="#__codelineno-6-10"></a><span class="c1"># project_plan.md roadmap.md tasks.json manifest.json</span>
2675
</code></pre></div>
2676
<h3 id="interactive-planning-session">Interactive planning session<a class="headerlink" href="#interactive-planning-session" title="Permanent link">&para;</a></h3>
2677
<div class="highlight"><pre><span></span><code><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>$<span class="w"> </span>planopticon<span class="w"> </span>companion<span class="w"> </span>--kb<span class="w"> </span>./results
2678
<a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>
2679
<a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>planopticon&gt;<span class="w"> </span>/status
2680
<a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>Workspace<span class="w"> </span>status:
2681
<a id="__codelineno-7-5" name="__codelineno-7-5" href="#__codelineno-7-5"></a><span class="w"> </span>KG:<span class="w"> </span>knowledge_graph.db<span class="w"> </span><span class="o">(</span><span class="m">58</span><span class="w"> </span>entities,<span class="w"> </span><span class="m">124</span><span class="w"> </span>relationships<span class="o">)</span>
2682
<a id="__codelineno-7-6" name="__codelineno-7-6" href="#__codelineno-7-6"></a><span class="w"> </span>...
2683
<a id="__codelineno-7-7" name="__codelineno-7-7" href="#__codelineno-7-7"></a>
2684
<a id="__codelineno-7-8" name="__codelineno-7-8" href="#__codelineno-7-8"></a>planopticon&gt;<span class="w"> </span>What<span class="w"> </span>are<span class="w"> </span>the<span class="w"> </span>main<span class="w"> </span>goals<span class="w"> </span>discussed?
2685
<a id="__codelineno-7-9" name="__codelineno-7-9" href="#__codelineno-7-9"></a>Based<span class="w"> </span>on<span class="w"> </span>the<span class="w"> </span>knowledge<span class="w"> </span>graph,<span class="w"> </span>the<span class="w"> </span>main<span class="w"> </span>goals<span class="w"> </span>are...
2686
<a id="__codelineno-7-10" name="__codelineno-7-10" href="#__codelineno-7-10"></a>
2687
<a id="__codelineno-7-11" name="__codelineno-7-11" href="#__codelineno-7-11"></a>planopticon&gt;<span class="w"> </span>/plan
2688
<a id="__codelineno-7-12" name="__codelineno-7-12" href="#__codelineno-7-12"></a>---<span class="w"> </span>Project<span class="w"> </span>Plan<span class="w"> </span><span class="o">(</span>project_plan<span class="o">)</span><span class="w"> </span>---
2689
<a id="__codelineno-7-13" name="__codelineno-7-13" href="#__codelineno-7-13"></a>...
2690
<a id="__codelineno-7-14" name="__codelineno-7-14" href="#__codelineno-7-14"></a>
2691
<a id="__codelineno-7-15" name="__codelineno-7-15" href="#__codelineno-7-15"></a>planopticon&gt;<span class="w"> </span>/tasks
2692
<a id="__codelineno-7-16" name="__codelineno-7-16" href="#__codelineno-7-16"></a>---<span class="w"> </span>Task<span class="w"> </span>Breakdown<span class="w"> </span><span class="o">(</span>task_list<span class="o">)</span><span class="w"> </span>---
2693
<a id="__codelineno-7-17" name="__codelineno-7-17" href="#__codelineno-7-17"></a>...
2694
<a id="__codelineno-7-18" name="__codelineno-7-18" href="#__codelineno-7-18"></a>
2695
<a id="__codelineno-7-19" name="__codelineno-7-19" href="#__codelineno-7-19"></a>planopticon&gt;<span class="w"> </span>/run<span class="w"> </span>github_issues
2696
<a id="__codelineno-7-20" name="__codelineno-7-20" href="#__codelineno-7-20"></a>---<span class="w"> </span>GitHub<span class="w"> </span>Issues<span class="w"> </span><span class="o">(</span>issues<span class="o">)</span><span class="w"> </span>---
2697
<a id="__codelineno-7-21" name="__codelineno-7-21" href="#__codelineno-7-21"></a><span class="o">[</span>
2698
<a id="__codelineno-7-22" name="__codelineno-7-22" href="#__codelineno-7-22"></a><span class="w"> </span><span class="o">{</span><span class="s2">&quot;title&quot;</span>:<span class="w"> </span><span class="s2">&quot;Set up authentication service&quot;</span>,<span class="w"> </span>...<span class="o">}</span>,
2699
<a id="__codelineno-7-23" name="__codelineno-7-23" href="#__codelineno-7-23"></a><span class="w"> </span>...
2700
<a id="__codelineno-7-24" name="__codelineno-7-24" href="#__codelineno-7-24"></a><span class="o">]</span>
2701
<a id="__codelineno-7-25" name="__codelineno-7-25" href="#__codelineno-7-25"></a>
2702
<a id="__codelineno-7-26" name="__codelineno-7-26" href="#__codelineno-7-26"></a>planopticon&gt;<span class="w"> </span>/run<span class="w"> </span>artifact_export
2703
<a id="__codelineno-7-27" name="__codelineno-7-27" href="#__codelineno-7-27"></a>---<span class="w"> </span>Export<span class="w"> </span>Manifest<span class="w"> </span><span class="o">(</span>export_manifest<span class="o">)</span><span class="w"> </span>---
2704
<a id="__codelineno-7-28" name="__codelineno-7-28" href="#__codelineno-7-28"></a><span class="o">{</span>
2705
<a id="__codelineno-7-29" name="__codelineno-7-29" href="#__codelineno-7-29"></a><span class="w"> </span><span class="s2">&quot;artifact_count&quot;</span>:<span class="w"> </span><span class="m">3</span>,
2706
<a id="__codelineno-7-30" name="__codelineno-7-30" href="#__codelineno-7-30"></a><span class="w"> </span><span class="s2">&quot;output_dir&quot;</span>:<span class="w"> </span><span class="s2">&quot;plan&quot;</span>,
2707
<a id="__codelineno-7-31" name="__codelineno-7-31" href="#__codelineno-7-31"></a><span class="w"> </span><span class="s2">&quot;files&quot;</span>:<span class="w"> </span><span class="o">[</span>...<span class="o">]</span>
2708
<a id="__codelineno-7-32" name="__codelineno-7-32" href="#__codelineno-7-32"></a><span class="o">}</span>
2709
</code></pre></div>
2710
<h3 id="skill-chaining">Skill chaining<a class="headerlink" href="#skill-chaining" title="Permanent link">&para;</a></h3>
2711
<p>Skills that produce artifacts make them available to subsequent skills automatically:</p>
2712
<ol>
2713
<li><code>/tasks</code> generates a <code>task_list</code> artifact</li>
2714
<li><code>/run github_issues</code> detects the existing <code>task_list</code> artifact and converts its tasks into GitHub issues</li>
2715
<li><code>/run cli_adapter</code> takes the most recent artifact and generates <code>gh issue create</code> commands</li>
2716
<li><code>/run artifact_export</code> writes all accumulated artifacts to disk with a manifest</li>
2717
</ol>
2718
<p>This chaining works both in the Companion REPL and in one-shot agent execution, since the <code>AgentContext.artifacts</code> list persists for the duration of the session.</p>
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
</article>
2733
</div>
2734
2735
2736
<script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script>
2737
2738
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
2739
</div>
2740
2741
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
2742
2743
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
2744
Back to top
2745
</button>
2746
2747
</main>
2748
2749
<footer class="md-footer">
2750
2751
<div class="md-footer-meta md-typeset">
2752
<div class="md-footer-meta__inner md-grid">
2753
<div class="md-copyright">
2754
2755
<div class="md-copyright__highlight">
2756
Copyright &copy; 2026 CONFLICT LLC
2757
</div>
2758
2759
2760
Made with
2761
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
2762
Material for MkDocs
2763
</a>
2764
2765
</div>
2766
2767
2768
<div class="md-social">
2769
2770
2771
2772
2773
2774
2775
2776
2777
<a href="https://github.com/ConflictHQ/PlanOpticon" target="_blank" rel="noopener" title="github.com" class="md-social__link">
2778
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg>
2779
</a>
2780
2781
</div>
2782
2783
</div>
2784
</div>
2785
</footer>
2786
2787
</div>
2788
<div class="md-dialog" data-md-component="dialog">
2789
<div class="md-dialog__inner md-typeset"></div>
2790
</div>
2791
2792
2793
2794
2795
2796
<script id="__config" type="application/json">{"annotate": null, "base": "../..", "features": ["navigation.instant", "navigation.tabs", "navigation.sections", "navigation.expand", "navigation.top", "search.suggest", "search.highlight", "content.code.copy", "content.tabs.link", "header.autohide"], "search": "../../assets/javascripts/workers/search.2c215733.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
2797
2798
2799
<script src="../../assets/javascripts/bundle.79ae519e.min.js"></script>
2800
2801
2802
</body>
2803
</html>

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button