opencode-manifold 0.5.13 → 0.5.15
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/README.md +86 -80
- package/dist/index.js +302 -451
- package/dist/tui.js +7 -16
- package/package.json +1 -1
- package/src/templates/agents/erlang.md +30 -0
- package/src/templates/agents/lead.md +37 -0
- package/src/templates/agents/manifold.md +66 -133
- package/src/templates/agents/systems.md +30 -0
- package/src/templates/agents/todo.md +69 -151
- package/src/templates/skills/caveman/SKILL.md +0 -4
- package/src/templates/agents/clerk.md +0 -50
- package/src/templates/agents/debug.md +0 -76
- package/src/templates/agents/junior-dev.md +0 -81
- package/src/templates/agents/senior-dev.md +0 -73
- package/src/templates/manifold/graph/.gitkeep +0 -0
- package/src/templates/manifold/index.md +0 -11
- package/src/templates/manifold/log.md +0 -10
- package/src/templates/manifold/plans.json +0 -1
- package/src/templates/manifold/schema.md +0 -234
- package/src/templates/manifold/state.json +0 -11
- package/src/templates/skills/clerk-orchestration/SKILL.md +0 -139
- package/src/templates/skills/research/SKILL.md +0 -75
- package/src/templates/skills/wiki-ingest/SKILL.md +0 -139
- package/src/templates/skills/wiki-query/SKILL.md +0 -94
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
# Manifold Schema
|
|
2
|
-
|
|
3
|
-
This document defines the conventions for all wiki elements in the Manifold folder.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Task File Format
|
|
8
|
-
|
|
9
|
-
Location: `Manifold/tasks/<task-id>.md`
|
|
10
|
-
|
|
11
|
-
```markdown
|
|
12
|
-
# <task-id>: <Task Title>
|
|
13
|
-
|
|
14
|
-
**Date:** <YYYY-MM-DD>
|
|
15
|
-
**Status:** <IN_PROGRESS | COMPLETED | ESCALATED_USER>
|
|
16
|
-
**Loops:** <number>
|
|
17
|
-
**Git Commit:** <commit-hash>
|
|
18
|
-
|
|
19
|
-
## Task
|
|
20
|
-
<Task description from the plan>
|
|
21
|
-
|
|
22
|
-
## Context Used
|
|
23
|
-
- codebase-index: <files or search terms used>
|
|
24
|
-
- Wiki: <prior task logs referenced>
|
|
25
|
-
- Graph: <graph files read>
|
|
26
|
-
|
|
27
|
-
## Scoped Prompt
|
|
28
|
-
> <The composed prompt for Senior Dev>
|
|
29
|
-
|
|
30
|
-
## Design Decisions
|
|
31
|
-
- <Decision 1 and why it was made>
|
|
32
|
-
- <Decision 2 and why it was made>
|
|
33
|
-
|
|
34
|
-
## Files Touched
|
|
35
|
-
- [[<file-path-1>]]
|
|
36
|
-
- [[<file-path-2>]]
|
|
37
|
-
|
|
38
|
-
## Loop History
|
|
39
|
-
### Loop 1
|
|
40
|
-
- **Senior:** <brief summary of Senior's implementation>
|
|
41
|
-
- **Junior:** <Junior's COMPLETE or QUESTIONS response>
|
|
42
|
-
|
|
43
|
-
### Loop 2
|
|
44
|
-
- **Senior:** <brief summary of Senior's revision>
|
|
45
|
-
- **Junior:** <Junior's COMPLETE or QUESTIONS response>
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## index.md Update Procedure
|
|
51
|
-
|
|
52
|
-
After completing a task, add an entry under the correct plan slug section.
|
|
53
|
-
|
|
54
|
-
**If the plan slug section doesn't exist, create it:**
|
|
55
|
-
|
|
56
|
-
```markdown
|
|
57
|
-
## <plan-slug> — <Plan Title>
|
|
58
|
-
|
|
59
|
-
- [[<task-id>]] — <one-line summary> | <date> | <STATUS>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**If the plan slug section exists, append:**
|
|
63
|
-
|
|
64
|
-
```markdown
|
|
65
|
-
- [[<task-id>]] — <one-line summary> | <date> | <STATUS>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## log.md Append Format
|
|
71
|
-
|
|
72
|
-
Append a single line at the end of `Manifold/log.md`:
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
## [<YYYY-MM-DD>] <task-id> | <description> | <STATUS> | <loop-count> loops
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Example:
|
|
79
|
-
```markdown
|
|
80
|
-
## [2026-04-06] share-cart-001 | Implement cart data model | COMPLETED | 2 loops
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Graph File Format
|
|
86
|
-
|
|
87
|
-
Location: `Manifold/graph/<graph-name>.md`
|
|
88
|
-
|
|
89
|
-
Where `<graph-name>` is the original file path with:
|
|
90
|
-
- Replace `/` with `__SL__`
|
|
91
|
-
- Replace `.` with `__DT__`
|
|
92
|
-
- Append `.md`
|
|
93
|
-
|
|
94
|
-
Examples:
|
|
95
|
-
- `src/middleware/auth.ts` → `src__SL__middleware__SL__auth__DT__ts.md`
|
|
96
|
-
- `src/utils/helpers.ts` → `src__SL__utils__SL__helpers__DT__ts.md`
|
|
97
|
-
|
|
98
|
-
```markdown
|
|
99
|
-
---
|
|
100
|
-
filePath: <original-file-path>
|
|
101
|
-
calls:
|
|
102
|
-
- <file this file calls>
|
|
103
|
-
- <another file>
|
|
104
|
-
dependsOn:
|
|
105
|
-
- <file this file depends on>
|
|
106
|
-
- <another dependency>
|
|
107
|
-
tasksThatEdited:
|
|
108
|
-
- <task-id-1>
|
|
109
|
-
- <task-id-2>
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
## Calls
|
|
113
|
-
- <file this file calls>
|
|
114
|
-
- <another file>
|
|
115
|
-
|
|
116
|
-
## Depends On
|
|
117
|
-
- <file this file depends on>
|
|
118
|
-
- <another dependency>
|
|
119
|
-
|
|
120
|
-
## Tasks That Edited
|
|
121
|
-
- [[<task-id-1>]]
|
|
122
|
-
- [[<task-id-2>]]
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**YAML frontmatter** is the source of truth for programmatic reads/writes. The **markdown body** is a rendered view for Obsidian's graph view (wikilinks enable connections).
|
|
126
|
-
|
|
127
|
-
**`Calls` and `Depends On`** are populated automatically from the codebase index after each task completes. Do NOT manually edit these sections.
|
|
128
|
-
|
|
129
|
-
**On task completion:** Add the task ID to the `tasksThatEdited` frontmatter field and the `Tasks That Edited` body section of all graph files for files that were touched.
|
|
130
|
-
|
|
131
|
-
**If graph file doesn't exist:** Create it with the structure above.
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## Wikilink Conventions
|
|
136
|
-
|
|
137
|
-
- **Task references:** `[[<task-id>]]`
|
|
138
|
-
- Example: `[[share-cart-001]]`
|
|
139
|
-
- **File references:** `[[<file-path>]]`
|
|
140
|
-
- Example: `[[src/middleware/auth.ts]]`
|
|
141
|
-
- **Always use absolute-style paths** (no `./` or `../`)
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## Status Values
|
|
146
|
-
|
|
147
|
-
| Status | When to Use |
|
|
148
|
-
|--------|-------------|
|
|
149
|
-
| `IN_PROGRESS` | Task log created, implementation ongoing |
|
|
150
|
-
| `COMPLETED` | Task finished successfully, Junior approved |
|
|
151
|
-
| `ESCALATED_USER` | Task blocked, requires human intervention |
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
## Task Naming
|
|
156
|
-
|
|
157
|
-
1. Generate a short slug (<30 chars) from the plan
|
|
158
|
-
2. Check `Manifold/plans.json` for collision
|
|
159
|
-
3. If collision: append number (e.g., `share-cart-v2`)
|
|
160
|
-
4. Task files: `Manifold/tasks/<slug>-001.md`, `<slug>-002.md`, etc.
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## Plans Registry
|
|
165
|
-
|
|
166
|
-
Location: `Manifold/plans.json`
|
|
167
|
-
|
|
168
|
-
Format:
|
|
169
|
-
```json
|
|
170
|
-
{
|
|
171
|
-
"<plan-slug>": {
|
|
172
|
-
"full_title": "<Plan title>",
|
|
173
|
-
"task_count": 7,
|
|
174
|
-
"status": "in_progress",
|
|
175
|
-
"created": "YYYY-MM-DD",
|
|
176
|
-
"plan_file": "/path/to/plan.md"
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## Task List Format
|
|
184
|
-
|
|
185
|
-
Location: `Manifold/plans/<slug>-tasks.md`
|
|
186
|
-
|
|
187
|
-
Generated by the Todo agent when the input is not already a granular task list.
|
|
188
|
-
|
|
189
|
-
```markdown
|
|
190
|
-
# Task List: <Plan Title>
|
|
191
|
-
|
|
192
|
-
**Source:** <path or description of the original input>
|
|
193
|
-
**Generated:** <YYYY-MM-DD>
|
|
194
|
-
**Total Tasks:** <number>
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
## Task 1: <title>
|
|
199
|
-
|
|
200
|
-
- **Description:** <what to do — framed as data transformation where natural>
|
|
201
|
-
- **Purity:** <pure | shell | mixed>
|
|
202
|
-
- **Dependencies:** <none | task numbers>
|
|
203
|
-
- **Input Contract:** <what data/inputs this task needs>
|
|
204
|
-
- **Output Contract:** <what this task produces>
|
|
205
|
-
|
|
206
|
-
---
|
|
207
|
-
|
|
208
|
-
## Task 2: <title>
|
|
209
|
-
|
|
210
|
-
- **Description:** <what to do>
|
|
211
|
-
- **Purity:** <pure | shell | mixed>
|
|
212
|
-
- **Dependencies:** 1
|
|
213
|
-
- **Input Contract:** <what it needs from Task 1>
|
|
214
|
-
- **Output Contract:** <what it produces>
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Purity Tags
|
|
218
|
-
|
|
219
|
-
| Tag | Meaning | When to Use |
|
|
220
|
-
|-----|---------|-------------|
|
|
221
|
-
| `pure` | Data transformation only. No IO, no side effects, no external state. Same input always produces same output. | Task is a self-contained computation: validation, transformation, calculation, schema definition |
|
|
222
|
-
| `shell` | IO or side-effect boundary. Reads/writes to external systems, manages state. | Task is wiring: API endpoints, database operations, file I/O, UI rendering |
|
|
223
|
-
| `mixed` | Logic and IO are interleaved in a way that's impractical to separate without over-engineering. | Task naturally combines both and splitting would create ceremony |
|
|
224
|
-
|
|
225
|
-
### Dispatch Convention with Purity
|
|
226
|
-
|
|
227
|
-
When the Manifold agent dispatches a tagged task, the purity tag is included in the description:
|
|
228
|
-
|
|
229
|
-
```
|
|
230
|
-
dispatchTask({ task_number: 1, description: "[pure] Define cart item schema", plan_file: "..." })
|
|
231
|
-
dispatchTask({ task_number: 2, description: "[shell] Wire cart endpoint to database", plan_file: "..." })
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
This allows the Clerk to apply purity-aware prompt framing when composing scoped prompts.
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Clerk Orchestration Skill
|
|
2
|
-
|
|
3
|
-
This skill guides the Clerk agent through researching context and composing effective scoped prompts.
|
|
4
|
-
|
|
5
|
-
## Research Phase
|
|
6
|
-
|
|
7
|
-
### 1. Codebase-Index Search
|
|
8
|
-
|
|
9
|
-
Use the `codebase-index` tool for semantic search:
|
|
10
|
-
|
|
11
|
-
**How to query:**
|
|
12
|
-
- Think about what code is relevant to the task
|
|
13
|
-
- Formulate queries like:
|
|
14
|
-
- "Where is authentication logic?"
|
|
15
|
-
- "How are API routes structured?"
|
|
16
|
-
- "What middleware patterns exist?"
|
|
17
|
-
- The tool understands intent, not just keywords
|
|
18
|
-
|
|
19
|
-
**Parameters:**
|
|
20
|
-
- `query`: Your search phrase
|
|
21
|
-
- `maxResults`: From `Manifold/settings.json` (default: 10)
|
|
22
|
-
|
|
23
|
-
**When to use vs direct file reads:**
|
|
24
|
-
- Use semantic search when you don't know the exact file
|
|
25
|
-
- Use direct reads when you already know which file to check
|
|
26
|
-
|
|
27
|
-
### 2. Wiki Lookback
|
|
28
|
-
|
|
29
|
-
Read recent task logs from `Manifold/tasks/`:
|
|
30
|
-
|
|
31
|
-
**What to look for:**
|
|
32
|
-
- Design decisions that might apply
|
|
33
|
-
- Rejected approaches (avoid repeating mistakes)
|
|
34
|
-
- Established patterns and conventions
|
|
35
|
-
- Dependencies between tasks
|
|
36
|
-
|
|
37
|
-
**Parameters:**
|
|
38
|
-
- `recentTaskCount`: From `Manifold/settings.json` (default: 3)
|
|
39
|
-
|
|
40
|
-
**Search strategies:**
|
|
41
|
-
- By keyword: search for terms in the task description
|
|
42
|
-
- By file path: look for tasks that touched the same files
|
|
43
|
-
- By slug: if you know the plan slug, find related tasks
|
|
44
|
-
|
|
45
|
-
### 3. Graph Analysis
|
|
46
|
-
|
|
47
|
-
Read graph files from `Manifold/graph/` for dependency analysis:
|
|
48
|
-
|
|
49
|
-
**Graph file naming:** `src/middleware/auth.ts` → `src_middleware_auth_ts.md`
|
|
50
|
-
|
|
51
|
-
**What graph files contain:**
|
|
52
|
-
- `## Calls`: What this file calls
|
|
53
|
-
- `## Depends On`: What this file depends on
|
|
54
|
-
- `## Tasks That Edited`: Which tasks modified this file
|
|
55
|
-
|
|
56
|
-
**How to find relevant graphs:**
|
|
57
|
-
1. Start from files identified in codebase search
|
|
58
|
-
2. Read their graph entries
|
|
59
|
-
3. Follow the dependency chain (read graphs for dependencies too)
|
|
60
|
-
4. Limit to ~5 most relevant graphs to avoid overload
|
|
61
|
-
|
|
62
|
-
## Scoped Prompt Composition
|
|
63
|
-
|
|
64
|
-
### The Formula
|
|
65
|
-
|
|
66
|
-
A good scoped prompt contains:
|
|
67
|
-
|
|
68
|
-
1. **Task Goal** (1-2 sentences)
|
|
69
|
-
- What the Senior Dev must accomplish
|
|
70
|
-
- Be specific, not "implement auth"
|
|
71
|
-
- Prefer framing as a data transformation: "Given X, produce Y" when this makes the goal clearer
|
|
72
|
-
|
|
73
|
-
2. **Relevant Code Snippets** (as needed)
|
|
74
|
-
- Include 3-10 of the most relevant snippets
|
|
75
|
-
- Include file paths
|
|
76
|
-
- Focus on the patterns to follow
|
|
77
|
-
|
|
78
|
-
3. **Prior Decisions** (if applicable)
|
|
79
|
-
- Relevant design decisions from wiki
|
|
80
|
-
- Why certain approaches were chosen
|
|
81
|
-
- What to avoid
|
|
82
|
-
|
|
83
|
-
4. **Design Guidelines** (1-5 bullet points)
|
|
84
|
-
- Language/framework conventions
|
|
85
|
-
- Project-specific patterns
|
|
86
|
-
- Non-functional requirements (performance, security)
|
|
87
|
-
|
|
88
|
-
5. **Purity Directive** (if task has a purity tag)
|
|
89
|
-
- `[pure]` → Explicitly state: no IO, no side effects, no external state. Frame the input/output contract.
|
|
90
|
-
- `[shell]` → Clarify the IO boundary: what is being read/written, what external system is involved
|
|
91
|
-
- `[mixed]` → Note where the logic/IO boundary falls; keep the pure portions clean
|
|
92
|
-
- No tag → Skip this section
|
|
93
|
-
|
|
94
|
-
### Purity-Aware Prompting
|
|
95
|
-
|
|
96
|
-
The Todo agent may tag tasks with purity indicators. Use these to shape how you frame the scoped prompt:
|
|
97
|
-
|
|
98
|
-
**For `pure` tasks:**
|
|
99
|
-
- Frame the task goal as: "Write a function/module that transforms [input type] into [output type]"
|
|
100
|
-
- Specify the input/output contract explicitly
|
|
101
|
-
- Emphasize: no filesystem, no network, no database, no global state mutations
|
|
102
|
-
- Example: *"Write `calculateDiscount(items: CartItem[], rules: DiscountRule[]): number` — pure function, no IO, deterministic output"*
|
|
103
|
-
|
|
104
|
-
**For `shell` tasks:**
|
|
105
|
-
- Identify what upstream pure logic this task wires up (if any)
|
|
106
|
-
- Specify the IO boundary: database operations, API calls, file reads/writes
|
|
107
|
-
- Example: *"Wire the `calculateDiscount` function into the `/api/cart/update` endpoint. Read cart from DB, call the pure function, persist result"*
|
|
108
|
-
|
|
109
|
-
**For `mixed` tasks:**
|
|
110
|
-
- Acknowledge that logic and IO are interleaved
|
|
111
|
-
- Help the Senior Dev keep the logic portions testable by noting where the boundary falls
|
|
112
|
-
- Don't force an artificial split — just make the boundary visible
|
|
113
|
-
|
|
114
|
-
**Pragmatic rule:** If functional framing makes the goal *less clear* (e.g., in a framework that's inherently imperative like Express middleware), use whatever framing is most natural for the project. The goal is clarity, not purity dogma.
|
|
115
|
-
|
|
116
|
-
### Breadth vs Focus
|
|
117
|
-
|
|
118
|
-
**Include enough to be useful:**
|
|
119
|
-
- The Senior Dev needs to understand the context
|
|
120
|
-
- Include files that will be modified
|
|
121
|
-
- Include files that set patterns to follow
|
|
122
|
-
|
|
123
|
-
**Don't overwhelm:**
|
|
124
|
-
- Don't include the entire codebase
|
|
125
|
-
- Don't include every file that touches a module
|
|
126
|
-
- Prioritize: direct dependencies > indirect, recent changes > old
|
|
127
|
-
|
|
128
|
-
**Rule of thumb:** If the prompt gets longer than ~800 words, trim it.
|
|
129
|
-
|
|
130
|
-
## Checklist Before Submitting
|
|
131
|
-
|
|
132
|
-
- [ ] Task goal is specific and actionable
|
|
133
|
-
- [ ] Task goal is framed as a data transformation where natural (without forcing it)
|
|
134
|
-
- [ ] Code snippets are directly relevant (not just interesting)
|
|
135
|
-
- [ ] Prior decisions are actually applicable to this task
|
|
136
|
-
- [ ] Design guidelines are specific (not vague platitudes)
|
|
137
|
-
- [ ] Purity directive matches the task's purity tag (if present)
|
|
138
|
-
- [ ] Prompt length is reasonable (under ~800 words)
|
|
139
|
-
- [ ] All context documents are listed for the task log
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
# Research Skill
|
|
2
|
-
|
|
3
|
-
Use this skill to gather relevant context before composing a scoped prompt or decomposing a plan.
|
|
4
|
-
|
|
5
|
-
## When to Use
|
|
6
|
-
|
|
7
|
-
Use this skill when:
|
|
8
|
-
- The Clerk needs to gather context before calling @senior-dev
|
|
9
|
-
- The Todo agent needs to research the codebase before decomposing a plan
|
|
10
|
-
|
|
11
|
-
## Research Steps
|
|
12
|
-
|
|
13
|
-
### 1. Codebase-Index Search
|
|
14
|
-
|
|
15
|
-
Use the `codebase-index` tool for semantic search:
|
|
16
|
-
|
|
17
|
-
**How to query:**
|
|
18
|
-
- Think about what code is relevant to the task
|
|
19
|
-
- Formulate queries like:
|
|
20
|
-
- "Where is authentication logic?"
|
|
21
|
-
- "How are API routes structured?"
|
|
22
|
-
- "What middleware patterns exist?"
|
|
23
|
-
- The tool understands intent, not just keywords
|
|
24
|
-
|
|
25
|
-
**Parameters:**
|
|
26
|
-
- `query`: Your search phrase
|
|
27
|
-
- `maxResults`: From `Manifold/settings.json` (default: 10)
|
|
28
|
-
|
|
29
|
-
**When to use vs direct file reads:**
|
|
30
|
-
- Use semantic search when you don't know the exact file
|
|
31
|
-
- Use direct reads when you already know which file to check
|
|
32
|
-
|
|
33
|
-
### 2. Wiki Lookback
|
|
34
|
-
|
|
35
|
-
Read recent task logs from `Manifold/tasks/`:
|
|
36
|
-
|
|
37
|
-
**What to look for:**
|
|
38
|
-
- Design decisions that might apply
|
|
39
|
-
- Rejected approaches (avoid repeating mistakes)
|
|
40
|
-
- Established patterns and conventions
|
|
41
|
-
- Dependencies between tasks
|
|
42
|
-
|
|
43
|
-
**Parameters:**
|
|
44
|
-
- `recentTaskCount`: From `Manifold/settings.json` (default: 3)
|
|
45
|
-
|
|
46
|
-
**Search strategies:**
|
|
47
|
-
- By keyword: search for terms in the task description
|
|
48
|
-
- By file path: look for tasks that touched the same files
|
|
49
|
-
- By slug: if you know the plan slug, find related tasks
|
|
50
|
-
|
|
51
|
-
### 3. Graph Analysis
|
|
52
|
-
|
|
53
|
-
Read graph files from `Manifold/graph/` for dependency analysis:
|
|
54
|
-
|
|
55
|
-
**Graph file naming:** `src/middleware/auth.ts` → `src_middleware_auth_ts.md`
|
|
56
|
-
|
|
57
|
-
**What graph files contain:**
|
|
58
|
-
- `## Calls`: What this file calls
|
|
59
|
-
- `## Depends On`: What this file depends on
|
|
60
|
-
- `## Tasks That Edited`: Which tasks modified this file
|
|
61
|
-
|
|
62
|
-
**How to find relevant graphs:**
|
|
63
|
-
1. Start from files identified in codebase search
|
|
64
|
-
2. Read their graph entries
|
|
65
|
-
3. Follow the dependency chain (read graphs for dependencies too)
|
|
66
|
-
4. Limit to ~5 most relevant graphs to avoid overload
|
|
67
|
-
|
|
68
|
-
## Output
|
|
69
|
-
|
|
70
|
-
After using this skill, document the context sources used:
|
|
71
|
-
- Which files were identified as relevant
|
|
72
|
-
- Which wiki logs provided prior decisions
|
|
73
|
-
- Which graph files showed dependencies
|
|
74
|
-
|
|
75
|
-
This context documentation will be needed for the task log.
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
# Wiki Ingest Skill
|
|
2
|
-
|
|
3
|
-
This skill guides the Clerk on how to log task results to the wiki.
|
|
4
|
-
|
|
5
|
-
## Task File Format
|
|
6
|
-
|
|
7
|
-
Create or update `Manifold/tasks/<task-id>.md`:
|
|
8
|
-
|
|
9
|
-
```markdown
|
|
10
|
-
# <task-id>: <Task Title>
|
|
11
|
-
|
|
12
|
-
**Date:** <YYYY-MM-DD>
|
|
13
|
-
**Status:** <IN_PROGRESS | COMPLETED | ESCALATED_USER>
|
|
14
|
-
**Loops:** <number>
|
|
15
|
-
**Git Commit:** <commit-hash>
|
|
16
|
-
|
|
17
|
-
## Task
|
|
18
|
-
<Task description>
|
|
19
|
-
|
|
20
|
-
## Context Used
|
|
21
|
-
- codebase-index: <files or search terms>
|
|
22
|
-
- Wiki: <prior task logs referenced>
|
|
23
|
-
- Graph: <graph files read>
|
|
24
|
-
|
|
25
|
-
## Scoped Prompt
|
|
26
|
-
> <The composed prompt for Senior Dev>
|
|
27
|
-
|
|
28
|
-
## Design Decisions
|
|
29
|
-
- <Decision 1 and why>
|
|
30
|
-
- <Decision 2 and why>
|
|
31
|
-
|
|
32
|
-
## Files Touched
|
|
33
|
-
- [[<file-path-1>]]
|
|
34
|
-
- [[<file-path-2>]]
|
|
35
|
-
|
|
36
|
-
## Loop History
|
|
37
|
-
### Loop 1
|
|
38
|
-
- **Senior:** <what Senior produced>
|
|
39
|
-
- **Junior:** <Junior's response>
|
|
40
|
-
|
|
41
|
-
### Loop 2
|
|
42
|
-
- **Senior:** <what Senior produced>
|
|
43
|
-
- **Junior:** <Junior's response>
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## Index.md Update
|
|
47
|
-
|
|
48
|
-
After completing a task, add entry to `Manifold/index.md`:
|
|
49
|
-
|
|
50
|
-
```markdown
|
|
51
|
-
## <plan-slug> — <Plan Title>
|
|
52
|
-
|
|
53
|
-
- [[<task-id-001>]] — <one-line summary> | <date> | COMPLETED
|
|
54
|
-
- [[<task-id-002>]] — <one-line summary> | <date> | IN_PROGRESS
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Log.md Append
|
|
58
|
-
|
|
59
|
-
Append a line to `Manifold/log.md`:
|
|
60
|
-
|
|
61
|
-
```markdown
|
|
62
|
-
## [<date>] <task-id> | <description> | <STATUS> | <loop-count> loops
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Example:
|
|
66
|
-
```markdown
|
|
67
|
-
## [2026-04-06] share-cart-001 | Implement cart data model | COMPLETED | 2 loops
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Graph File Update
|
|
71
|
-
|
|
72
|
-
For each file touched, update or create `Manifold/graph/<graph-name>.md`:
|
|
73
|
-
|
|
74
|
-
```markdown
|
|
75
|
-
---
|
|
76
|
-
filePath: <original-file-path>
|
|
77
|
-
calls:
|
|
78
|
-
- <files this file calls>
|
|
79
|
-
dependsOn:
|
|
80
|
-
- <files this file depends on>
|
|
81
|
-
tasksThatEdited:
|
|
82
|
-
- <task-id>
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Calls
|
|
86
|
-
- <files this file calls>
|
|
87
|
-
|
|
88
|
-
## Depends On
|
|
89
|
-
- <files this file depends on>
|
|
90
|
-
|
|
91
|
-
## Tasks That Edited
|
|
92
|
-
- [[<task-id>]]
|
|
93
|
-
- [[<other-task-id>]]
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
**IMPORTANT:** Only update the `Tasks That Edited` section and the `tasksThatEdited` frontmatter field. The `Calls` and `Depends On` sections are populated automatically from the codebase index — do NOT manually edit them.
|
|
97
|
-
|
|
98
|
-
### Graph Filename Convention
|
|
99
|
-
|
|
100
|
-
Replace `/` with `__SL__` and `.` with `__DT__`, append `.md`:
|
|
101
|
-
- `src/middleware/auth.ts` → `src__SL__middleware__SL__auth__DT__ts.md`
|
|
102
|
-
- `src/utils/helpers.ts` → `src__SL__utils__SL__helpers__DT__ts.md`
|
|
103
|
-
|
|
104
|
-
## Status Values
|
|
105
|
-
|
|
106
|
-
| Status | When to Use |
|
|
107
|
-
|--------|-------------|
|
|
108
|
-
| `IN_PROGRESS` | Task log created, implementation ongoing |
|
|
109
|
-
| `COMPLETED` | Task finished successfully, Junior approved |
|
|
110
|
-
| `ESCALATED_USER` | Task blocked, requires human intervention |
|
|
111
|
-
|
|
112
|
-
## Wikilink Conventions
|
|
113
|
-
|
|
114
|
-
- Tasks: `[[task-id]]` — e.g., `[[share-cart-001]]`
|
|
115
|
-
- Files: `[[file-path]]` — e.g., `[[src/middleware/auth.ts]]`
|
|
116
|
-
- Always use absolute-style paths for files
|
|
117
|
-
|
|
118
|
-
## Loop History Recording
|
|
119
|
-
|
|
120
|
-
For each Senior→Junior exchange, record:
|
|
121
|
-
1. What Senior produced (brief summary)
|
|
122
|
-
2. Junior's response (COMPLETE or QUESTIONS + issues)
|
|
123
|
-
|
|
124
|
-
If Debug was involved, add:
|
|
125
|
-
3. Debug's analysis and suggestion
|
|
126
|
-
4. Senior's response to the debug suggestion
|
|
127
|
-
5. Debug's final review
|
|
128
|
-
|
|
129
|
-
## Checklist Before Completing
|
|
130
|
-
|
|
131
|
-
- [ ] Task file created with all sections
|
|
132
|
-
- [ ] Status set correctly (COMPLETED or ESCALATED_USER)
|
|
133
|
-
- [ ] Loop count accurate
|
|
134
|
-
- [ ] All files touched listed with wikilinks
|
|
135
|
-
- [ ] Design decisions recorded with reasoning
|
|
136
|
-
- [ ] Loop history complete
|
|
137
|
-
- [ ] index.md updated
|
|
138
|
-
- [ ] log.md appended
|
|
139
|
-
- [ ] All touched files' graph entries updated
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# Wiki Query Skill
|
|
2
|
-
|
|
3
|
-
This skill guides the Clerk on how to search the wiki for prior context.
|
|
4
|
-
|
|
5
|
-
## Where to Look
|
|
6
|
-
|
|
7
|
-
### 1. index.md — Task Catalog
|
|
8
|
-
|
|
9
|
-
`Manifold/index.md` lists all tasks by plan.
|
|
10
|
-
|
|
11
|
-
**Search strategies:**
|
|
12
|
-
- By plan slug: look under the plan's section
|
|
13
|
-
- By date: find tasks from a specific time period
|
|
14
|
-
- By status: find IN_PROGRESS tasks to understand current work
|
|
15
|
-
|
|
16
|
-
### 2. log.md — Chronological Log
|
|
17
|
-
|
|
18
|
-
`Manifold/log.md` has a running history of all tasks.
|
|
19
|
-
|
|
20
|
-
**Format:**
|
|
21
|
-
```markdown
|
|
22
|
-
## [2026-04-06] task-001 | Implement auth | COMPLETED | 2 loops
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
**Search strategies:**
|
|
26
|
-
- By date range: find recent completions
|
|
27
|
-
- By status: find ESCALATED_USER tasks (to avoid similar issues)
|
|
28
|
-
- By loop count: find high-loop tasks (might indicate complexity)
|
|
29
|
-
|
|
30
|
-
### 3. Task Files — Detailed History
|
|
31
|
-
|
|
32
|
-
`Manifold/tasks/<task-id>.md` has full task details.
|
|
33
|
-
|
|
34
|
-
**What to look for:**
|
|
35
|
-
- `## Design Decisions` — why things were done a certain way
|
|
36
|
-
- `## Loop History` — what issues Junior caught
|
|
37
|
-
- `## Context Used` — what Clerk researched
|
|
38
|
-
|
|
39
|
-
**Search strategies:**
|
|
40
|
-
- By keyword: grep for terms like "cache", "auth", "performance"
|
|
41
|
-
- By file: find tasks that touched `src/models/cart.ts`
|
|
42
|
-
- By decision: find tasks that decided on "Map vs Array"
|
|
43
|
-
|
|
44
|
-
### 4. Graph Files — Dependency Analysis
|
|
45
|
-
|
|
46
|
-
`Manifold/graph/<graph-name>.md` tracks file relationships.
|
|
47
|
-
|
|
48
|
-
**What they contain:**
|
|
49
|
-
- YAML frontmatter with `filePath`, `calls`, `dependsOn`, `tasksThatEdited` (source of truth for programmatic access)
|
|
50
|
-
- Rendered markdown body with `## Calls`, `## Depends On`, `## Tasks That Edited` sections (for Obsidian graph view)
|
|
51
|
-
|
|
52
|
-
**How to use:**
|
|
53
|
-
1. Find graph files relevant to your task (from codebase search)
|
|
54
|
-
2. Read them to understand dependencies (use frontmatter for structured data)
|
|
55
|
-
3. Check "Tasks That Edited" for prior work on those files
|
|
56
|
-
4. Read relevant task files for context
|
|
57
|
-
|
|
58
|
-
## Combining Sources
|
|
59
|
-
|
|
60
|
-
### Example: Adding share functionality to cart
|
|
61
|
-
|
|
62
|
-
1. **Codebase search** → identified `src/models/cart.ts` and `src/utils/share.ts`
|
|
63
|
-
2. **Graph for cart.ts** → depends on `src/models/order.ts`, called by `src/routes/cart.ts`
|
|
64
|
-
3. **index.md** → found "share-cart" plan with 3 completed tasks
|
|
65
|
-
4. **Read task logs** → share-cart-001 used Map for items, share-cart-002 used localStorage
|
|
66
|
-
5. **Result** → scoped prompt includes: use Map for O(1) lookup, persist to localStorage, follow the share URL format from task-002
|
|
67
|
-
|
|
68
|
-
## What to Look For
|
|
69
|
-
|
|
70
|
-
### Design Decisions
|
|
71
|
-
- Why was X chosen over Y?
|
|
72
|
-
- What constraints influenced the approach?
|
|
73
|
-
- What was explicitly rejected and why?
|
|
74
|
-
|
|
75
|
-
### Rejected Approaches
|
|
76
|
-
- What has Junior (or Debug) rejected before?
|
|
77
|
-
- What patterns should Senior avoid?
|
|
78
|
-
|
|
79
|
-
### Established Conventions
|
|
80
|
-
- Project-specific file organization
|
|
81
|
-
- Language idioms used in this codebase
|
|
82
|
-
- Testing patterns
|
|
83
|
-
|
|
84
|
-
### Prior Art
|
|
85
|
-
- Similar features that might share code
|
|
86
|
-
- Shared utilities already available
|
|
87
|
-
- Dependencies between tasks
|
|
88
|
-
|
|
89
|
-
## Search Tips
|
|
90
|
-
|
|
91
|
-
- **Be specific**: "JWT validation" not just "auth"
|
|
92
|
-
- **Use file paths**: "src/middleware/auth" to find related files
|
|
93
|
-
- **Check dates**: recent decisions are more relevant than old ones
|
|
94
|
-
- **Follow links**: wikilinks in task files lead to related context
|