opencode-manifold 0.1.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/LICENSE +235 -0
- package/README.md +189 -0
- package/dist/index.js +1468 -0
- package/package.json +33 -0
- package/src/templates/agents/clerk.md +74 -0
- package/src/templates/agents/debug.md +55 -0
- package/src/templates/agents/junior-dev.md +62 -0
- package/src/templates/agents/lead-dev.md +44 -0
- package/src/templates/agents/senior-dev.md +51 -0
- package/src/templates/config/opencode.json +48 -0
- package/src/templates/manifold/index.md +11 -0
- package/src/templates/manifold/log.md +10 -0
- package/src/templates/manifold/plans.json +1 -0
- package/src/templates/manifold/schema.md +164 -0
- package/src/templates/manifold/settings.json +9 -0
- package/src/templates/manifold/state.json +11 -0
- package/src/templates/skills/clerk-orchestration/SKILL.md +108 -0
- package/src/templates/skills/lead-dev-workflow/SKILL.md +114 -0
- package/src/templates/skills/wiki-ingest/SKILL.md +129 -0
- package/src/templates/skills/wiki-query/SKILL.md +95 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Lead Dev Workflow Skill
|
|
2
|
+
|
|
3
|
+
This skill guides the Lead Dev agent through reading plans and dispatching tasks.
|
|
4
|
+
|
|
5
|
+
## Reading Any-Format Plans
|
|
6
|
+
|
|
7
|
+
The plan document may be in ANY format. Your job is to interpret it.
|
|
8
|
+
|
|
9
|
+
### Formats You Might Encounter
|
|
10
|
+
|
|
11
|
+
**Markdown TODO list:**
|
|
12
|
+
```markdown
|
|
13
|
+
## Task 1: Implement auth middleware
|
|
14
|
+
- [ ] pending
|
|
15
|
+
|
|
16
|
+
## Task 2: Add user registration endpoint
|
|
17
|
+
- [x] completed
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Meeting notes:**
|
|
21
|
+
```
|
|
22
|
+
John asked for:
|
|
23
|
+
- Auth middleware
|
|
24
|
+
- User registration
|
|
25
|
+
- Password hashing utility
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Email thread:**
|
|
29
|
+
```
|
|
30
|
+
Hey, we need to add sharing to the cart feature.
|
|
31
|
+
Mike suggested we use signed URLs.
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**Structured JSON:**
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"tasks": [
|
|
38
|
+
{ "id": 1, "description": "Implement auth", "status": "pending" }
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Whiteboard transcription:**
|
|
44
|
+
```
|
|
45
|
+
AUTH:
|
|
46
|
+
- middleware
|
|
47
|
+
- JWT handling
|
|
48
|
+
- session management
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### How to Extract Tasks
|
|
52
|
+
|
|
53
|
+
1. **Identify the goal** — What is the plan trying to accomplish?
|
|
54
|
+
2. **Find discrete units** — What can be done independently?
|
|
55
|
+
3. **Check for dependencies** — Does order matter? Note it.
|
|
56
|
+
4. **Assess completeness** — Can you act on this, or is more info needed?
|
|
57
|
+
|
|
58
|
+
### When the Plan Is Too Vague
|
|
59
|
+
|
|
60
|
+
If you can't identify concrete tasks:
|
|
61
|
+
|
|
62
|
+
**Option A: Subtask to Plan Agent**
|
|
63
|
+
- Call the plan agent to create a structured task list
|
|
64
|
+
- User MUST approve the generated list before work begins
|
|
65
|
+
- Don't start working until approval
|
|
66
|
+
|
|
67
|
+
**Option B: Ask the User**
|
|
68
|
+
- Reply asking for clarification
|
|
69
|
+
- Be specific about what's unclear
|
|
70
|
+
- Example: "I can see we need auth, but can you break down what 'auth middleware' means? Do we need login, registration, password reset?"
|
|
71
|
+
|
|
72
|
+
## Dispatching Tasks
|
|
73
|
+
|
|
74
|
+
Use the `dispatchTask` tool:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
dispatchTask({ task_number, description, plan_file })
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
- `task_number`: Sequential number (1, 2, 3...)
|
|
81
|
+
- `description`: One-line description of the task
|
|
82
|
+
- `plan_file`: Path to the original plan document
|
|
83
|
+
|
|
84
|
+
### Order of Dispatch
|
|
85
|
+
|
|
86
|
+
- Dispatch tasks in dependency order
|
|
87
|
+
- If tasks are independent, dispatch in any order
|
|
88
|
+
- Wait for each task to complete before dispatching the next
|
|
89
|
+
|
|
90
|
+
## Session Resumption
|
|
91
|
+
|
|
92
|
+
If resuming from a previous session:
|
|
93
|
+
|
|
94
|
+
1. Read the plan file
|
|
95
|
+
2. Check `Manifold/index.md` for completed tasks
|
|
96
|
+
3. Check task files in `Manifold/tasks/` for status
|
|
97
|
+
4. Pick up from the first task NOT marked COMPLETED
|
|
98
|
+
|
|
99
|
+
**Never re-execute completed tasks.**
|
|
100
|
+
|
|
101
|
+
## Plan-Level Testing
|
|
102
|
+
|
|
103
|
+
After ALL tasks are dispatched and completed:
|
|
104
|
+
|
|
105
|
+
1. Check if the plan has a test section
|
|
106
|
+
2. If yes, run the test command
|
|
107
|
+
3. Report results to the user
|
|
108
|
+
|
|
109
|
+
## Your Constraints
|
|
110
|
+
|
|
111
|
+
- You read ONLY the plan document
|
|
112
|
+
- You do NOT access the codebase
|
|
113
|
+
- You do NOT read wiki files or task logs
|
|
114
|
+
- You stay lean and fast
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
# <original-file-path>
|
|
76
|
+
|
|
77
|
+
## Calls
|
|
78
|
+
- <files this file calls>
|
|
79
|
+
|
|
80
|
+
## Depends On
|
|
81
|
+
- <files this file depends on>
|
|
82
|
+
|
|
83
|
+
## Tasks That Edited
|
|
84
|
+
- [[<task-id>]]
|
|
85
|
+
- [[<other-task-id>]]
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Graph Filename Convention
|
|
89
|
+
|
|
90
|
+
Replace `/` and `.` with `_`, append `.md`:
|
|
91
|
+
- `src/middleware/auth.ts` → `src_middleware_auth_ts.md`
|
|
92
|
+
- `src/utils/helpers.ts` → `src_utils_helpers_ts.md`
|
|
93
|
+
|
|
94
|
+
## Status Values
|
|
95
|
+
|
|
96
|
+
| Status | When to Use |
|
|
97
|
+
|--------|-------------|
|
|
98
|
+
| `IN_PROGRESS` | Task log created, implementation ongoing |
|
|
99
|
+
| `COMPLETED` | Task finished successfully, Junior approved |
|
|
100
|
+
| `ESCALATED_USER` | Task blocked, requires human intervention |
|
|
101
|
+
|
|
102
|
+
## Wikilink Conventions
|
|
103
|
+
|
|
104
|
+
- Tasks: `[[task-id]]` — e.g., `[[share-cart-001]]`
|
|
105
|
+
- Files: `[[file-path]]` — e.g., `[[src/middleware/auth.ts]]`
|
|
106
|
+
- Always use absolute-style paths for files
|
|
107
|
+
|
|
108
|
+
## Loop History Recording
|
|
109
|
+
|
|
110
|
+
For each Senior→Junior exchange, record:
|
|
111
|
+
1. What Senior produced (brief summary)
|
|
112
|
+
2. Junior's response (COMPLETE or QUESTIONS + issues)
|
|
113
|
+
|
|
114
|
+
If Debug was involved, add:
|
|
115
|
+
3. Debug's analysis and suggestion
|
|
116
|
+
4. Senior's response to the debug suggestion
|
|
117
|
+
5. Debug's final review
|
|
118
|
+
|
|
119
|
+
## Checklist Before Completing
|
|
120
|
+
|
|
121
|
+
- [ ] Task file created with all sections
|
|
122
|
+
- [ ] Status set correctly (COMPLETED or ESCALATED_USER)
|
|
123
|
+
- [ ] Loop count accurate
|
|
124
|
+
- [ ] All files touched listed with wikilinks
|
|
125
|
+
- [ ] Design decisions recorded with reasoning
|
|
126
|
+
- [ ] Loop history complete
|
|
127
|
+
- [ ] index.md updated
|
|
128
|
+
- [ ] log.md appended
|
|
129
|
+
- [ ] All touched files' graph entries updated
|
|
@@ -0,0 +1,95 @@
|
|
|
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
|
+
- `## Calls` — what this file uses
|
|
50
|
+
- `## Depends On` — what this file is used by
|
|
51
|
+
- `## Tasks That Edited` — which tasks modified this file
|
|
52
|
+
|
|
53
|
+
**How to use:**
|
|
54
|
+
1. Find graph files relevant to your task (from codebase search)
|
|
55
|
+
2. Read them to understand dependencies
|
|
56
|
+
3. Check "Tasks That Edited" for prior work on those files
|
|
57
|
+
4. Read relevant task files for context
|
|
58
|
+
|
|
59
|
+
## Combining Sources
|
|
60
|
+
|
|
61
|
+
### Example: Adding share functionality to cart
|
|
62
|
+
|
|
63
|
+
1. **Codebase search** → identified `src/models/cart.ts` and `src/utils/share.ts`
|
|
64
|
+
2. **Graph for cart.ts** → depends on `src/models/order.ts`, called by `src/routes/cart.ts`
|
|
65
|
+
3. **index.md** → found "share-cart" plan with 3 completed tasks
|
|
66
|
+
4. **Read task logs** → share-cart-001 used Map for items, share-cart-002 used localStorage
|
|
67
|
+
5. **Result** → scoped prompt includes: use Map for O(1) lookup, persist to localStorage, follow the share URL format from task-002
|
|
68
|
+
|
|
69
|
+
## What to Look For
|
|
70
|
+
|
|
71
|
+
### Design Decisions
|
|
72
|
+
- Why was X chosen over Y?
|
|
73
|
+
- What constraints influenced the approach?
|
|
74
|
+
- What was explicitly rejected and why?
|
|
75
|
+
|
|
76
|
+
### Rejected Approaches
|
|
77
|
+
- What has Junior (or Debug) rejected before?
|
|
78
|
+
- What patterns should Senior avoid?
|
|
79
|
+
|
|
80
|
+
### Established Conventions
|
|
81
|
+
- Project-specific file organization
|
|
82
|
+
- Language idioms used in this codebase
|
|
83
|
+
- Testing patterns
|
|
84
|
+
|
|
85
|
+
### Prior Art
|
|
86
|
+
- Similar features that might share code
|
|
87
|
+
- Shared utilities already available
|
|
88
|
+
- Dependencies between tasks
|
|
89
|
+
|
|
90
|
+
## Search Tips
|
|
91
|
+
|
|
92
|
+
- **Be specific**: "JWT validation" not just "auth"
|
|
93
|
+
- **Use file paths**: "src/middleware/auth" to find related files
|
|
94
|
+
- **Check dates**: recent decisions are more relevant than old ones
|
|
95
|
+
- **Follow links**: wikilinks in task files lead to related context
|