@orderful/droid 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/tools/codex/TOOL.yaml +2 -1
- package/dist/tools/codex/agents/codex-document-processor.md +137 -0
- package/dist/tools/codex/skills/droid-codex/SKILL.md +49 -1
- package/package.json +1 -1
- package/src/tools/codex/TOOL.yaml +2 -1
- package/src/tools/codex/agents/codex-document-processor.md +137 -0
- package/src/tools/codex/skills/droid-codex/SKILL.md +49 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @orderful/droid
|
|
2
2
|
|
|
3
|
+
## 0.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#111](https://github.com/Orderful/droid/pull/111) [`c14a3e2`](https://github.com/Orderful/droid/commit/c14a3e2acbf7a87052c9d5dba251502b8be067f9) Thanks [@frytyler](https://github.com/frytyler)! - Add codex-document-processor agent for importing documents to the codex. The agent handles PDF/markdown processing, frontmatter generation, and file writing - keeping the main conversation context lean during document imports.
|
|
8
|
+
|
|
3
9
|
## 0.20.0
|
|
4
10
|
|
|
5
11
|
### Minor Changes
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codex-document-processor
|
|
3
|
+
description: "Process documents (PDF, markdown) into codex-ready markdown with proper frontmatter. Use when importing files to the codex - handles extraction, formatting, and writing to the correct location."
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Glob
|
|
8
|
+
color: yellow
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You are a document processor for the Orderful codex. Your job is to transform source documents (PDFs, markdown files) into properly structured codex entries.
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
|
|
15
|
+
You will receive:
|
|
16
|
+
1. **File path** - The source document to process
|
|
17
|
+
2. **Document type** - One of: `prd`, `tech-design`, `topic`, `pattern`
|
|
18
|
+
3. **Project/entry name** - Where this should be stored in the codex
|
|
19
|
+
4. **Codex repo path** - The local path to orderful-codex repository
|
|
20
|
+
|
|
21
|
+
## Validation (Do This First)
|
|
22
|
+
|
|
23
|
+
Before processing, validate all inputs:
|
|
24
|
+
|
|
25
|
+
1. **Document type** - Must be one of: `prd`, `tech-design`, `topic`, `pattern`. Reject anything else.
|
|
26
|
+
2. **File path** - Must exist and be readable. Use Read tool to verify.
|
|
27
|
+
3. **Project/entry name** - Must be safe for filesystem paths:
|
|
28
|
+
- Only allow: alphanumeric, dashes, underscores
|
|
29
|
+
- **Reject** if contains: `..`, `/`, `\`, or any shell metacharacters (`$`, backtick, `|`, `;`, `&`, `>`, `<`)
|
|
30
|
+
- If invalid, return error immediately (do not attempt to sanitize)
|
|
31
|
+
4. **Codex repo path** - Must exist and contain expected structure
|
|
32
|
+
|
|
33
|
+
If any validation fails, return an error (see Error Handling below).
|
|
34
|
+
|
|
35
|
+
## Process
|
|
36
|
+
|
|
37
|
+
### 1. Read Source Document
|
|
38
|
+
|
|
39
|
+
Read the file at the provided path. For PDFs, extract all text content. For markdown, read as-is.
|
|
40
|
+
|
|
41
|
+
### 2. Extract Key Information
|
|
42
|
+
|
|
43
|
+
From the content, identify:
|
|
44
|
+
- **Title** - The document/feature name
|
|
45
|
+
- **Main content** - The substantive information
|
|
46
|
+
- **Codebase paths** (if tech-design) - Any code paths mentioned
|
|
47
|
+
- **Source** - Default to `confluence` for PRDs/tech-designs, `exploration` for topics
|
|
48
|
+
- **Status** - Default based on type:
|
|
49
|
+
- PRD/tech-design: `draft` (new imports start as drafts)
|
|
50
|
+
- Topic/pattern: `active` (explorations are immediately usable)
|
|
51
|
+
|
|
52
|
+
### 3. Read and Apply Frontmatter Template
|
|
53
|
+
|
|
54
|
+
**Read the template from the codex repo** - don't hardcode frontmatter structure:
|
|
55
|
+
|
|
56
|
+
| Type | Template Path |
|
|
57
|
+
|------|---------------|
|
|
58
|
+
| `prd` | `{codex_repo}/templates/PRD.md` |
|
|
59
|
+
| `tech-design` | `{codex_repo}/templates/TECH-DESIGN.md` |
|
|
60
|
+
| `topic` | `{codex_repo}/templates/TOPIC.md` |
|
|
61
|
+
| `pattern` | `{codex_repo}/templates/PATTERN.md` (if exists, else use TOPIC.md) |
|
|
62
|
+
|
|
63
|
+
1. Read the appropriate template file
|
|
64
|
+
2. Extract its frontmatter structure
|
|
65
|
+
3. Fill in the values:
|
|
66
|
+
- `title` → extracted title
|
|
67
|
+
- `created` / `explored` → today's date (YYYY-MM-DD)
|
|
68
|
+
- `updated` → today's date (YYYY-MM-DD)
|
|
69
|
+
- `status` → `draft` for PRD/tech-design, `active` for topic/pattern
|
|
70
|
+
- `codebase_paths` → extracted paths, or omit if none found
|
|
71
|
+
- Keep other fields from template as-is
|
|
72
|
+
|
|
73
|
+
This ensures frontmatter stays in sync with the codex repo's templates.
|
|
74
|
+
|
|
75
|
+
### 4. Structure Content
|
|
76
|
+
|
|
77
|
+
Transform the source content into the codex format:
|
|
78
|
+
- Preserve the original information and structure where sensible
|
|
79
|
+
- Use markdown headings, lists, and tables appropriately
|
|
80
|
+
- Remove any PDF artifacts or formatting noise
|
|
81
|
+
- Keep the content substantive - don't pad with empty template sections
|
|
82
|
+
|
|
83
|
+
### 5. Write Output
|
|
84
|
+
|
|
85
|
+
Write the processed markdown to the correct location:
|
|
86
|
+
|
|
87
|
+
| Type | Output Path |
|
|
88
|
+
|------|-------------|
|
|
89
|
+
| `prd` | `{codex_repo}/projects/{name}/PRD.md` |
|
|
90
|
+
| `tech-design` | `{codex_repo}/projects/{name}/TECH-DESIGN.md` |
|
|
91
|
+
| `topic` | `{codex_repo}/topics/{name}.md` |
|
|
92
|
+
| `pattern` | `{codex_repo}/patterns/{name}.md` |
|
|
93
|
+
|
|
94
|
+
Create the directory if it doesn't exist.
|
|
95
|
+
|
|
96
|
+
**If file already exists:** Return an error. Do not overwrite without explicit confirmation from the main conversation. The error response should indicate the file exists so the user can decide whether to proceed.
|
|
97
|
+
|
|
98
|
+
### 6. Return Result
|
|
99
|
+
|
|
100
|
+
Return a brief JSON summary:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"status": "success",
|
|
105
|
+
"file_path": "/path/to/written/file.md",
|
|
106
|
+
"title": "Extracted document title",
|
|
107
|
+
"type": "prd",
|
|
108
|
+
"summary": "One sentence describing what was processed"
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Important Notes
|
|
113
|
+
|
|
114
|
+
- **Preserve substance over form** - The goal is to capture the document's information, not perfectly replicate its layout
|
|
115
|
+
- **Don't invent content** - Only include information that exists in the source document
|
|
116
|
+
- **Handle missing sections gracefully** - If the source doesn't have a section (e.g., no "Testing Strategy"), omit it rather than leaving empty placeholders
|
|
117
|
+
- **Omit empty frontmatter fields** - If `codebase_paths` can't be determined, omit the field entirely rather than using placeholders
|
|
118
|
+
- **Canadian spelling** - Use behaviour, colour, etc.
|
|
119
|
+
|
|
120
|
+
## Error Handling
|
|
121
|
+
|
|
122
|
+
If anything fails, return an error response instead of the success format:
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"status": "error",
|
|
127
|
+
"error_type": "validation_failed" | "file_not_found" | "extraction_failed" | "file_exists" | "write_failed",
|
|
128
|
+
"message": "Human-readable description of what went wrong"
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Error types:**
|
|
133
|
+
- `validation_failed` - Invalid document type, unsafe name, or missing codex repo
|
|
134
|
+
- `file_not_found` - Source file doesn't exist or isn't readable
|
|
135
|
+
- `extraction_failed` - Couldn't extract meaningful content from the document
|
|
136
|
+
- `file_exists` - Target file already exists (user must confirm overwrite)
|
|
137
|
+
- `write_failed` - Couldn't write to target location (permissions, disk space, etc.)
|
|
@@ -122,7 +122,7 @@ The codex has three categories:
|
|
|
122
122
|
| `/codex search {query}` | Search across everything |
|
|
123
123
|
| `/codex new {name}` | Scaffold new project from templates |
|
|
124
124
|
| `/codex decision {text}` | Append to active project's DECISIONS.md |
|
|
125
|
-
| `/codex snapshot {file} {name}` | Import PDF/markdown to
|
|
125
|
+
| `/codex snapshot {type} {file} {name}` | Import PDF/markdown to codex (uses agent) |
|
|
126
126
|
| `/codex add topic {name}` | Add explored topic with freshness metadata |
|
|
127
127
|
|
|
128
128
|
## Loading an Entry
|
|
@@ -153,6 +153,7 @@ All codex files have frontmatter:
|
|
|
153
153
|
---
|
|
154
154
|
title: Feature Name
|
|
155
155
|
type: prd | tech-design | context | decisions | pattern | topic
|
|
156
|
+
status: draft | active | complete | archived
|
|
156
157
|
created: 2026-01-07
|
|
157
158
|
updated: 2026-01-07
|
|
158
159
|
confidence: high | medium | low
|
|
@@ -162,6 +163,14 @@ codebase_paths:
|
|
|
162
163
|
---
|
|
163
164
|
```
|
|
164
165
|
|
|
166
|
+
**Status values:**
|
|
167
|
+
- `draft` - Initial capture, not ready for consumption
|
|
168
|
+
- `active` - Current, being used for implementation
|
|
169
|
+
- `complete` - Project shipped, kept for reference
|
|
170
|
+
- `archived` - No longer relevant, kept for history
|
|
171
|
+
|
|
172
|
+
Note: Topics use `draft | active | archived` (no "complete"). Patterns use `active | archived` (no draft phase).
|
|
173
|
+
|
|
165
174
|
**When loading any file:**
|
|
166
175
|
|
|
167
176
|
1. Parse frontmatter for `updated` date
|
|
@@ -222,6 +231,45 @@ Full procedure: `references/decisions.md`
|
|
|
222
231
|
|
|
223
232
|
Full procedure: `references/topics.md`
|
|
224
233
|
|
|
234
|
+
## Importing Documents
|
|
235
|
+
|
|
236
|
+
**Trigger:** `/codex snapshot {type} {file} {name}` or user wants to add a file to the codex
|
|
237
|
+
|
|
238
|
+
**IMPORTANT:** Always use the `codex-document-processor` agent to process documents. This keeps the main conversation context lean by offloading heavy document processing.
|
|
239
|
+
|
|
240
|
+
**Procedure:**
|
|
241
|
+
|
|
242
|
+
1. Determine the document type (required): `prd`, `tech-design`, `topic`, or `pattern`
|
|
243
|
+
2. Spawn the `codex-document-processor` agent with:
|
|
244
|
+
- File path to the source document
|
|
245
|
+
- Document type
|
|
246
|
+
- Project/entry name
|
|
247
|
+
- Codex repo path from config
|
|
248
|
+
3. Agent processes the document:
|
|
249
|
+
- Reads and extracts content
|
|
250
|
+
- Applies appropriate frontmatter template
|
|
251
|
+
- Writes to correct location in codex repo
|
|
252
|
+
- Returns file path and summary
|
|
253
|
+
4. **Back in main conversation:** Handle git workflow
|
|
254
|
+
- Create branch: `codex/snapshot-{name}`
|
|
255
|
+
- Commit the new file
|
|
256
|
+
- Push and create PR via `gh pr create`
|
|
257
|
+
5. Share PR link with user
|
|
258
|
+
|
|
259
|
+
**Example invocations:**
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
# Explicit snapshot command
|
|
263
|
+
/codex snapshot prd ~/Downloads/transaction-templates-prd.pdf transaction-templates
|
|
264
|
+
|
|
265
|
+
# Natural language (still uses the agent)
|
|
266
|
+
"Add this PRD to the transaction-templates project" + attach file
|
|
267
|
+
"Import this tech design to generic-scenario-testing"
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
The agent handles: PDF reading, content extraction, frontmatter generation, file writing.
|
|
271
|
+
The main conversation handles: git branch, commit, PR creation, user interaction.
|
|
272
|
+
|
|
225
273
|
## Creating New Projects
|
|
226
274
|
|
|
227
275
|
**Trigger:** `/codex new {name}` or user wants to start new project entry
|
package/package.json
CHANGED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: codex-document-processor
|
|
3
|
+
description: "Process documents (PDF, markdown) into codex-ready markdown with proper frontmatter. Use when importing files to the codex - handles extraction, formatting, and writing to the correct location."
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Glob
|
|
8
|
+
color: yellow
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
You are a document processor for the Orderful codex. Your job is to transform source documents (PDFs, markdown files) into properly structured codex entries.
|
|
12
|
+
|
|
13
|
+
## Input
|
|
14
|
+
|
|
15
|
+
You will receive:
|
|
16
|
+
1. **File path** - The source document to process
|
|
17
|
+
2. **Document type** - One of: `prd`, `tech-design`, `topic`, `pattern`
|
|
18
|
+
3. **Project/entry name** - Where this should be stored in the codex
|
|
19
|
+
4. **Codex repo path** - The local path to orderful-codex repository
|
|
20
|
+
|
|
21
|
+
## Validation (Do This First)
|
|
22
|
+
|
|
23
|
+
Before processing, validate all inputs:
|
|
24
|
+
|
|
25
|
+
1. **Document type** - Must be one of: `prd`, `tech-design`, `topic`, `pattern`. Reject anything else.
|
|
26
|
+
2. **File path** - Must exist and be readable. Use Read tool to verify.
|
|
27
|
+
3. **Project/entry name** - Must be safe for filesystem paths:
|
|
28
|
+
- Only allow: alphanumeric, dashes, underscores
|
|
29
|
+
- **Reject** if contains: `..`, `/`, `\`, or any shell metacharacters (`$`, backtick, `|`, `;`, `&`, `>`, `<`)
|
|
30
|
+
- If invalid, return error immediately (do not attempt to sanitize)
|
|
31
|
+
4. **Codex repo path** - Must exist and contain expected structure
|
|
32
|
+
|
|
33
|
+
If any validation fails, return an error (see Error Handling below).
|
|
34
|
+
|
|
35
|
+
## Process
|
|
36
|
+
|
|
37
|
+
### 1. Read Source Document
|
|
38
|
+
|
|
39
|
+
Read the file at the provided path. For PDFs, extract all text content. For markdown, read as-is.
|
|
40
|
+
|
|
41
|
+
### 2. Extract Key Information
|
|
42
|
+
|
|
43
|
+
From the content, identify:
|
|
44
|
+
- **Title** - The document/feature name
|
|
45
|
+
- **Main content** - The substantive information
|
|
46
|
+
- **Codebase paths** (if tech-design) - Any code paths mentioned
|
|
47
|
+
- **Source** - Default to `confluence` for PRDs/tech-designs, `exploration` for topics
|
|
48
|
+
- **Status** - Default based on type:
|
|
49
|
+
- PRD/tech-design: `draft` (new imports start as drafts)
|
|
50
|
+
- Topic/pattern: `active` (explorations are immediately usable)
|
|
51
|
+
|
|
52
|
+
### 3. Read and Apply Frontmatter Template
|
|
53
|
+
|
|
54
|
+
**Read the template from the codex repo** - don't hardcode frontmatter structure:
|
|
55
|
+
|
|
56
|
+
| Type | Template Path |
|
|
57
|
+
|------|---------------|
|
|
58
|
+
| `prd` | `{codex_repo}/templates/PRD.md` |
|
|
59
|
+
| `tech-design` | `{codex_repo}/templates/TECH-DESIGN.md` |
|
|
60
|
+
| `topic` | `{codex_repo}/templates/TOPIC.md` |
|
|
61
|
+
| `pattern` | `{codex_repo}/templates/PATTERN.md` (if exists, else use TOPIC.md) |
|
|
62
|
+
|
|
63
|
+
1. Read the appropriate template file
|
|
64
|
+
2. Extract its frontmatter structure
|
|
65
|
+
3. Fill in the values:
|
|
66
|
+
- `title` → extracted title
|
|
67
|
+
- `created` / `explored` → today's date (YYYY-MM-DD)
|
|
68
|
+
- `updated` → today's date (YYYY-MM-DD)
|
|
69
|
+
- `status` → `draft` for PRD/tech-design, `active` for topic/pattern
|
|
70
|
+
- `codebase_paths` → extracted paths, or omit if none found
|
|
71
|
+
- Keep other fields from template as-is
|
|
72
|
+
|
|
73
|
+
This ensures frontmatter stays in sync with the codex repo's templates.
|
|
74
|
+
|
|
75
|
+
### 4. Structure Content
|
|
76
|
+
|
|
77
|
+
Transform the source content into the codex format:
|
|
78
|
+
- Preserve the original information and structure where sensible
|
|
79
|
+
- Use markdown headings, lists, and tables appropriately
|
|
80
|
+
- Remove any PDF artifacts or formatting noise
|
|
81
|
+
- Keep the content substantive - don't pad with empty template sections
|
|
82
|
+
|
|
83
|
+
### 5. Write Output
|
|
84
|
+
|
|
85
|
+
Write the processed markdown to the correct location:
|
|
86
|
+
|
|
87
|
+
| Type | Output Path |
|
|
88
|
+
|------|-------------|
|
|
89
|
+
| `prd` | `{codex_repo}/projects/{name}/PRD.md` |
|
|
90
|
+
| `tech-design` | `{codex_repo}/projects/{name}/TECH-DESIGN.md` |
|
|
91
|
+
| `topic` | `{codex_repo}/topics/{name}.md` |
|
|
92
|
+
| `pattern` | `{codex_repo}/patterns/{name}.md` |
|
|
93
|
+
|
|
94
|
+
Create the directory if it doesn't exist.
|
|
95
|
+
|
|
96
|
+
**If file already exists:** Return an error. Do not overwrite without explicit confirmation from the main conversation. The error response should indicate the file exists so the user can decide whether to proceed.
|
|
97
|
+
|
|
98
|
+
### 6. Return Result
|
|
99
|
+
|
|
100
|
+
Return a brief JSON summary:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"status": "success",
|
|
105
|
+
"file_path": "/path/to/written/file.md",
|
|
106
|
+
"title": "Extracted document title",
|
|
107
|
+
"type": "prd",
|
|
108
|
+
"summary": "One sentence describing what was processed"
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Important Notes
|
|
113
|
+
|
|
114
|
+
- **Preserve substance over form** - The goal is to capture the document's information, not perfectly replicate its layout
|
|
115
|
+
- **Don't invent content** - Only include information that exists in the source document
|
|
116
|
+
- **Handle missing sections gracefully** - If the source doesn't have a section (e.g., no "Testing Strategy"), omit it rather than leaving empty placeholders
|
|
117
|
+
- **Omit empty frontmatter fields** - If `codebase_paths` can't be determined, omit the field entirely rather than using placeholders
|
|
118
|
+
- **Canadian spelling** - Use behaviour, colour, etc.
|
|
119
|
+
|
|
120
|
+
## Error Handling
|
|
121
|
+
|
|
122
|
+
If anything fails, return an error response instead of the success format:
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"status": "error",
|
|
127
|
+
"error_type": "validation_failed" | "file_not_found" | "extraction_failed" | "file_exists" | "write_failed",
|
|
128
|
+
"message": "Human-readable description of what went wrong"
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Error types:**
|
|
133
|
+
- `validation_failed` - Invalid document type, unsafe name, or missing codex repo
|
|
134
|
+
- `file_not_found` - Source file doesn't exist or isn't readable
|
|
135
|
+
- `extraction_failed` - Couldn't extract meaningful content from the document
|
|
136
|
+
- `file_exists` - Target file already exists (user must confirm overwrite)
|
|
137
|
+
- `write_failed` - Couldn't write to target location (permissions, disk space, etc.)
|
|
@@ -122,7 +122,7 @@ The codex has three categories:
|
|
|
122
122
|
| `/codex search {query}` | Search across everything |
|
|
123
123
|
| `/codex new {name}` | Scaffold new project from templates |
|
|
124
124
|
| `/codex decision {text}` | Append to active project's DECISIONS.md |
|
|
125
|
-
| `/codex snapshot {file} {name}` | Import PDF/markdown to
|
|
125
|
+
| `/codex snapshot {type} {file} {name}` | Import PDF/markdown to codex (uses agent) |
|
|
126
126
|
| `/codex add topic {name}` | Add explored topic with freshness metadata |
|
|
127
127
|
|
|
128
128
|
## Loading an Entry
|
|
@@ -153,6 +153,7 @@ All codex files have frontmatter:
|
|
|
153
153
|
---
|
|
154
154
|
title: Feature Name
|
|
155
155
|
type: prd | tech-design | context | decisions | pattern | topic
|
|
156
|
+
status: draft | active | complete | archived
|
|
156
157
|
created: 2026-01-07
|
|
157
158
|
updated: 2026-01-07
|
|
158
159
|
confidence: high | medium | low
|
|
@@ -162,6 +163,14 @@ codebase_paths:
|
|
|
162
163
|
---
|
|
163
164
|
```
|
|
164
165
|
|
|
166
|
+
**Status values:**
|
|
167
|
+
- `draft` - Initial capture, not ready for consumption
|
|
168
|
+
- `active` - Current, being used for implementation
|
|
169
|
+
- `complete` - Project shipped, kept for reference
|
|
170
|
+
- `archived` - No longer relevant, kept for history
|
|
171
|
+
|
|
172
|
+
Note: Topics use `draft | active | archived` (no "complete"). Patterns use `active | archived` (no draft phase).
|
|
173
|
+
|
|
165
174
|
**When loading any file:**
|
|
166
175
|
|
|
167
176
|
1. Parse frontmatter for `updated` date
|
|
@@ -222,6 +231,45 @@ Full procedure: `references/decisions.md`
|
|
|
222
231
|
|
|
223
232
|
Full procedure: `references/topics.md`
|
|
224
233
|
|
|
234
|
+
## Importing Documents
|
|
235
|
+
|
|
236
|
+
**Trigger:** `/codex snapshot {type} {file} {name}` or user wants to add a file to the codex
|
|
237
|
+
|
|
238
|
+
**IMPORTANT:** Always use the `codex-document-processor` agent to process documents. This keeps the main conversation context lean by offloading heavy document processing.
|
|
239
|
+
|
|
240
|
+
**Procedure:**
|
|
241
|
+
|
|
242
|
+
1. Determine the document type (required): `prd`, `tech-design`, `topic`, or `pattern`
|
|
243
|
+
2. Spawn the `codex-document-processor` agent with:
|
|
244
|
+
- File path to the source document
|
|
245
|
+
- Document type
|
|
246
|
+
- Project/entry name
|
|
247
|
+
- Codex repo path from config
|
|
248
|
+
3. Agent processes the document:
|
|
249
|
+
- Reads and extracts content
|
|
250
|
+
- Applies appropriate frontmatter template
|
|
251
|
+
- Writes to correct location in codex repo
|
|
252
|
+
- Returns file path and summary
|
|
253
|
+
4. **Back in main conversation:** Handle git workflow
|
|
254
|
+
- Create branch: `codex/snapshot-{name}`
|
|
255
|
+
- Commit the new file
|
|
256
|
+
- Push and create PR via `gh pr create`
|
|
257
|
+
5. Share PR link with user
|
|
258
|
+
|
|
259
|
+
**Example invocations:**
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
# Explicit snapshot command
|
|
263
|
+
/codex snapshot prd ~/Downloads/transaction-templates-prd.pdf transaction-templates
|
|
264
|
+
|
|
265
|
+
# Natural language (still uses the agent)
|
|
266
|
+
"Add this PRD to the transaction-templates project" + attach file
|
|
267
|
+
"Import this tech design to generic-scenario-testing"
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
The agent handles: PDF reading, content extraction, frontmatter generation, file writing.
|
|
271
|
+
The main conversation handles: git branch, commit, PR creation, user interaction.
|
|
272
|
+
|
|
225
273
|
## Creating New Projects
|
|
226
274
|
|
|
227
275
|
**Trigger:** `/codex new {name}` or user wants to start new project entry
|