1
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Planning Agent
2
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
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.
4
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
6
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
7
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## How It Works
8
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
9
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The Planning Agent operates through a three-stage pipeline:
10
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
11
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### 1. Context Assembly
12
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
13
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The agent gathers context from all available sources:
14
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
15
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Knowledge graph** -- entity counts, types, relationships, and planning entities from the loaded KG
16
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Query engine** -- used to pull stats, entity lists, and relationship data for prompt construction
17
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Provider manager** -- the configured LLM provider used for generation
18
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Prior artifacts** -- any artifacts already generated in the session (skills can chain off each other)
19
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Conversation history** -- accumulated chat messages when running in interactive mode
20
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
21
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
This context is bundled into an `AgentContext` dataclass that is shared across all skills.
22
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
23
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### 2. Skill Selection
24
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
25
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
When the agent receives a user request, it determines which skills to run:
26
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
27
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**LLM-driven planning (with provider).** 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 `["project_plan", "task_breakdown"]`.
28
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
29
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Keyword fallback (without provider).** 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 `roadmap` skill because "roadmap" appears in both the request and the skill name.
30
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
31
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### 3. Execution
32
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
33
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Selected skills are executed sequentially. Each skill:
34
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
35
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1. Checks `can_execute()` to verify the required context is available (by default, both a knowledge graph and an LLM provider must be present)
36
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2. Pulls relevant data from the knowledge graph via the query engine
37
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3. Constructs a detailed prompt for the LLM with extracted context
38
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
4. Calls the LLM and parses the response
39
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5. Returns an `Artifact` object containing the generated content
40
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
41
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Each artifact is appended to `context.artifacts`, making it available to subsequent skills. This enables chaining -- for example, `task_breakdown` can feed into `github_issues`.
42
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
43
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
44
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
45
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## AgentContext
46
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
47
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The `AgentContext` dataclass is the shared state object that connects all components of the planning agent system.
48
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
49
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```python
50
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
@dataclass
51
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
class AgentContext:
52
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
knowledge_graph: Any = None # KnowledgeGraph instance
53
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
query_engine: Any = None # GraphQueryEngine instance
54
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
provider_manager: Any = None # ProviderManager instance
55
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planning_entities: List[Any] = field(default_factory=list)
56
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
user_requirements: Dict[str, Any] = field(default_factory=dict)
57
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
conversation_history: List[Dict[str, str]] = field(default_factory=list)
58
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
artifacts: List[Artifact] = field(default_factory=list)
59
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
config: Dict[str, Any] = field(default_factory=dict)
60
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
61
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
62
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Field | Purpose |
63
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
64
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `knowledge_graph` | The loaded `KnowledgeGraph` instance; provides access to entities, relationships, and graph operations |
65
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `query_engine` | A `GraphQueryEngine` for running structured queries (stats, entities, neighbors, relationships) |
66
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `provider_manager` | The `ProviderManager` that handles LLM API calls across providers |
67
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `planning_entities` | Entities classified into the planning taxonomy (goals, requirements, risks, etc.) |
68
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `user_requirements` | Structured requirements gathered from the `requirements_chat` skill |
69
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `conversation_history` | Accumulated chat messages for interactive sessions |
70
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `artifacts` | All artifacts generated during the session, enabling skill chaining |
71
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `config` | Arbitrary configuration overrides |
72
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
73
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
74
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
75
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Artifacts
76
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
77
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Every skill returns an `Artifact` dataclass:
78
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
79
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```python
80
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
@dataclass
81
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
class Artifact:
82
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
name: str # Human-readable name (e.g., "Project Plan")
83
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
content: str # The generated content (markdown, JSON, etc.)
84
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
artifact_type: str # Type identifier: "project_plan", "prd", "roadmap", etc.
85
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
format: str = "markdown" # Content format: "markdown", "json", "mermaid"
86
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
metadata: Dict[str, Any] = field(default_factory=dict)
87
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
88
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
89
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Artifacts are the currency of the agent system. They can be:
90
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
91
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Displayed directly in the Companion REPL
92
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Exported to disk via the `artifact_export` skill
93
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Pushed to external tools via the `cli_adapter` skill
94
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Chained into other skills (e.g., task breakdown feeds into GitHub issues)
95
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
96
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
97
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
98
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Skills Reference
99
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
100
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The agent ships with 11 built-in skills. Each skill is a class that extends `Skill` and self-registers at import time via `register_skill()`.
101
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
102
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### project_plan
103
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
104
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Generate a structured project plan from knowledge graph.
105
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
106
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
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:
107
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
108
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1. Executive Summary
109
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2. Goals and Objectives
110
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3. Scope
111
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
4. Phases and Milestones
112
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5. Resource Requirements
113
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
6. Risks and Mitigations
114
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
7. Success Criteria
115
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
116
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `project_plan` | **Format:** markdown
117
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
118
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### prd
119
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
120
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Generate a product requirements document (PRD) / feature spec.
121
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
122
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Filters planning entities to those of type `requirement`, `feature`, and `constraint`, then asks the LLM to generate a PRD with:
123
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
124
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1. Problem Statement
125
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2. User Stories
126
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3. Functional Requirements
127
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
4. Non-Functional Requirements
128
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
5. Acceptance Criteria
129
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
6. Out of Scope
130
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
131
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
If no pre-filtered entities match, the LLM derives requirements from the full knowledge graph context.
132
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
133
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `prd` | **Format:** markdown
134
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
135
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### roadmap
136
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
137
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Generate a product/project roadmap.
138
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
139
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Focuses on planning entities of type `milestone`, `feature`, and `dependency`. Asks the LLM to produce a roadmap with:
140
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
141
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1. Vision and Strategy
142
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2. Phases (with timeline estimates)
143
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3. Key Dependencies
144
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
4. A Mermaid Gantt chart summarizing the timeline
145
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
146
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `roadmap` | **Format:** markdown
147
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
148
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### task_breakdown
149
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
150
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Break down goals into tasks with dependencies.
151
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
152
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Focuses on planning entities of type `goal`, `feature`, and `milestone`. Returns a JSON array of task objects, each containing:
153
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
154
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Field | Type | Description |
155
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|---|
156
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `id` | string | Task identifier (e.g., "T1", "T2") |
157
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `title` | string | Short task title |
158
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `description` | string | Detailed description |
159
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `depends_on` | list | IDs of prerequisite tasks |
160
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `priority` | string | `high`, `medium`, or `low` |
161
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `estimate` | string | Effort estimate (e.g., "2d", "1w") |
162
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `assignee_role` | string | Role needed to perform the task |
163
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
164
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `task_list` | **Format:** json
165
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
166
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### github_issues
167
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
168
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Generate GitHub issues from task breakdown.
169
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
170
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Converts tasks into GitHub-ready issue objects. If a `task_list` artifact exists in the context, it is used as input. Otherwise, minimal issues are generated from the planning entities directly.
171
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
172
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Each issue includes a formatted body with description, priority, estimate, and dependencies, plus labels derived from the task priority.
173
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
174
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The skill also provides a `push_to_github(issues_json, repo)` function that shells out to the `gh` CLI to create actual issues. This is used by the `cli_adapter` skill.
175
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
176
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `issues` | **Format:** json
177
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
178
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### requirements_chat
179
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
180
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Interactive requirements gathering via guided questions.
181
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
182
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Generates a structured requirements questionnaire based on the knowledge graph context. The questionnaire contains 8-12 targeted questions, each with:
183
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
184
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Field | Type | Description |
185
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|---|
186
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `id` | string | Question identifier (e.g., "Q1") |
187
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `category` | string | `goals`, `constraints`, `priorities`, or `scope` |
188
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `question` | string | The question text |
189
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `context` | string | Why this question matters |
190
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
191
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The skill also provides a `gather_requirements(context, answers)` method that takes the completed Q&A and synthesizes structured requirements (goals, constraints, priorities, scope).
192
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
193
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `requirements` | **Format:** json
194
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
195
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### doc_generator
196
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
197
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Generate technical documentation, ADRs, or meeting notes.
198
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
199
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Supports three document types, selected via the `doc_type` parameter:
200
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
201
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `doc_type` | Output Structure |
202
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
203
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `technical_doc` (default) | Overview, Architecture, Components and Interfaces, Data Flow, Deployment and Configuration, API Reference |
204
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `adr` | Title, Status (Proposed), Context, Decision, Consequences, Alternatives Considered |
205
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `meeting_notes` | Meeting Summary, Key Discussion Points, Decisions Made, Action Items (with owners), Open Questions, Next Steps |
206
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
207
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `document` | **Format:** markdown
208
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
209
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### artifact_export
210
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
211
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Export artifacts in agent-ready formats.
212
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
213
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Writes all artifacts accumulated in the context to a directory structure. Each artifact is written to a file based on its type:
214
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
215
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Artifact Type | Filename |
216
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
217
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `project_plan` | `project_plan.md` |
218
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `prd` | `prd.md` |
219
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `roadmap` | `roadmap.md` |
220
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `task_list` | `tasks.json` |
221
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `issues` | `issues.json` |
222
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `requirements` | `requirements.json` |
223
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `document` | `docs/<name>.md` |
224
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
225
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
A `manifest.json` is written alongside, listing all exported files with their names, types, and formats.
226
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
227
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `export_manifest` | **Format:** json
228
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
229
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Accepts an `output_dir` parameter (defaults to `plan/`).
230
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
231
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### cli_adapter
232
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
233
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Push artifacts to external tools via their CLIs.
234
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
235
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Converts artifacts into CLI commands for external project management tools. Supported tools:
236
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
237
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Tool | CLI | Example Command |
238
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|---|
239
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `github` | `gh` | `gh issue create --title "..." --body "..." --label "..."` |
240
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `jira` | `jira` | `jira issue create --summary "..." --description "..."` |
241
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `linear` | `linear` | `linear issue create --title "..." --description "..."` |
242
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
243
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
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.
244
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
245
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `cli_commands` | **Format:** json
246
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
247
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### notes_export
248
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
249
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Export knowledge graph as structured notes (Obsidian, Notion).
250
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
251
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Exports the entire knowledge graph as a collection of markdown files optimized for a specific note-taking platform. Accepts a `format` parameter:
252
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
253
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Obsidian format** creates:
254
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
255
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- One `.md` file per entity with YAML frontmatter, tags, and `[[wiki-links]]`
256
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- An `_Index.md` Map of Content grouping entities by type
257
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Tag pages for each entity type
258
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Artifact notes for any generated artifacts
259
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
260
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Notion format** creates:
261
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
262
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- One `.md` file per entity with Notion-style callout blocks and relationship tables
263
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- An `entities_database.csv` for bulk import into a Notion database
264
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- An `Overview.md` page with stats and entity listings
265
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Artifact pages
266
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
267
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `notes_export` | **Format:** markdown
268
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
269
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### wiki_generator
270
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
271
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Description:** Generate a GitHub wiki from knowledge graph and artifacts.
272
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
273
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Generates a complete GitHub wiki structure as a dictionary of page names to markdown content. Creates:
274
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
275
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Home** page with entity type counts and links
276
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **_Sidebar** navigation with entity types and artifacts
277
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Type index pages** with tables of entities per type
278
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Individual entity pages** with descriptions, outgoing/incoming relationships, and source occurrences
279
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- **Artifact pages** for any generated planning artifacts
280
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
281
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The skill also provides standalone functions `write_wiki(pages, output_dir)` to write pages to disk and `push_wiki(wiki_dir, repo)` to push directly to a GitHub wiki repository.
282
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
283
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
**Artifact type:** `wiki` | **Format:** markdown
284
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
285
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
286
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
287
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## CLI Usage
288
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
289
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### One-shot execution
290
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
291
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Run the agent with a request string. The agent selects and executes appropriate skills automatically.
292
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
293
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
294
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Generate a project plan
295
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Create a project plan" --kb ./results
296
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
297
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Generate a PRD
298
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Write a PRD for the authentication system" --kb ./results
299
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
300
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Break down into tasks
301
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Break this into tasks and estimate effort" --kb ./results
302
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
303
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
304
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Export artifacts to disk
305
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
306
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Use `--export` to write generated artifacts to a directory:
307
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
308
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
309
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Create a full project plan with tasks" --kb ./results --export ./output
310
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
311
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
312
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Interactive mode
313
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
314
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Use `-I` for a multi-turn session where you can issue multiple requests:
315
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
316
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
317
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent -I --kb ./results
318
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
319
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
320
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
In interactive mode, the agent supports:
321
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
322
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Free-text requests (executed via LLM skill selection)
323
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- `/plan` -- shortcut to generate a project plan
324
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- `/skills` -- list available skills
325
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- `quit`, `exit`, `q` -- end the session
326
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
327
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Provider and model options
328
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
329
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
330
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Use a specific provider
331
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Create a roadmap" --kb ./results -p anthropic
332
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
333
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# Use a specific model
334
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Generate a PRD" --kb ./results --chat-model gpt-4o
335
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
336
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
337
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Auto-discovery
338
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
339
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
If `--kb` is not specified, the agent uses `KBContext.auto_discover()` to find knowledge graphs in the workspace.
340
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
341
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
342
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
343
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Using Skills from the Companion REPL
344
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
345
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
The Companion REPL provides direct access to agent skills through slash commands. See the [Companion guide](companion.md) for full details.
346
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
347
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| Companion Command | Skill Executed |
348
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
|---|---|
349
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `/plan` | `project_plan` |
350
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `/prd` | `prd` |
351
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `/tasks` | `task_breakdown` |
352
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
| `/run SKILL_NAME` | Any registered skill by name |
353
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
354
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
When executed from the Companion, skills use the same `AgentContext` that powers the chat mode. This means:
355
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
356
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- The knowledge graph loaded at startup is automatically available
357
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- The active LLM provider (set via `/provider` or `/model`) is used for generation
358
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
- Generated artifacts accumulate across the session, enabling chaining
359
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
360
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
---
361
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
362
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
## Example Workflows
363
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
364
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### From video to project plan
365
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
366
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
367
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# 1. Analyze a video
368
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon analyze -i sprint-review.mp4 -o results/
369
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
370
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# 2. Launch the agent with the results
371
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon agent "Create a comprehensive project plan with tasks and a roadmap" \
372
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--kb results/ --export plan/
373
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
374
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# 3. Review the generated artifacts
375
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
ls plan/
376
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
# project_plan.md roadmap.md tasks.json manifest.json
377
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
378
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
379
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Interactive planning session
380
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
381
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```bash
382
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
$ planopticon companion --kb ./results
383
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
384
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon> /status
385
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Workspace status:
386
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
KG: knowledge_graph.db (58 entities, 124 relationships)
387
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
...
388
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
389
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon> What are the main goals discussed?
390
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Based on the knowledge graph, the main goals are...
391
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
392
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon> /plan
393
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--- Project Plan (project_plan) ---
394
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
...
395
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
396
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon> /tasks
397
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--- Task Breakdown (task_list) ---
398
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
...
399
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
400
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon> /run github_issues
401
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--- GitHub Issues (issues) ---
402
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
[
403
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
{"title": "Set up authentication service", ...},
404
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
...
405
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
]
406
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
407
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
planopticon> /run artifact_export
408
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
--- Export Manifest (export_manifest) ---
409
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
{
410
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
"artifact_count": 3,
411
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
"output_dir": "plan",
412
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
"files": [...]
413
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
}
414
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
```
415
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
416
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
### Skill chaining
417
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
418
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
Skills that produce artifacts make them available to subsequent skills automatically:
419
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
420
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
1. `/tasks` generates a `task_list` artifact
421
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
2. `/run github_issues` detects the existing `task_list` artifact and converts its tasks into GitHub issues
422
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
3. `/run cli_adapter` takes the most recent artifact and generates `gh issue create` commands
423
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
4. `/run artifact_export` writes all accumulated artifacts to disk with a manifest
424
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
425
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!
This chaining works both in the Companion REPL and in one-shot agent execution, since the `AgentContext.artifacts` list persists for the duration of the session.
426
{ copied = false; pop = false }, 1000)" :class="copied && 'copied'">
Copy link Copied!