Skip to content

Commit e25b576

Browse files
Add .wishes/ inbox for async product owner communication
1 parent d30f416 commit e25b576

File tree

5 files changed

+450
-9
lines changed

5 files changed

+450
-9
lines changed

.wishes/README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Wishes Inbox
2+
3+
This folder is for **Tom (Product Owner)** to asynchronously communicate wishes to AI agents.
4+
5+
## How to Use
6+
7+
1. **Drop a markdown file** in this folder with your wish
8+
2. **Name it descriptively**: `priority-description.md` (e.g., `high-add-fuzzing-tests.md`)
9+
3. **Agent will process** on next OODA loop iteration
10+
4. **File moves to `.wishes/done/`** when processed
11+
12+
## File Format
13+
14+
```markdown
15+
# [Title of Wish]
16+
17+
## Priority
18+
high | medium | low
19+
20+
## Description
21+
What you want to happen.
22+
23+
## Acceptance Criteria
24+
- [ ] Criterion 1
25+
- [ ] Criterion 2
26+
27+
## Notes (optional)
28+
Any context, links, or constraints.
29+
```
30+
31+
## Example
32+
33+
```markdown
34+
# Add Performance Benchmarks
35+
36+
## Priority
37+
medium
38+
39+
## Description
40+
I want to see how the Zig implementation compares to the Rust/C implementation in terms of:
41+
- Sync throughput (changes/second)
42+
- Memory usage during large syncs
43+
- Cold start time
44+
45+
## Acceptance Criteria
46+
- [ ] Benchmark script exists at `zig/harness/bench-*.sh`
47+
- [ ] Results documented in `research/zig-cr/`
48+
- [ ] Can reproduce on CI
49+
50+
## Notes
51+
Look at how hyperfine does benchmarking.
52+
```
53+
54+
## Folder Structure
55+
56+
```
57+
.wishes/
58+
├── README.md # This file
59+
├── done/ # Processed wishes (moved here after completion)
60+
├── blocked/ # Wishes that can't be done yet (with reason in file)
61+
└── *.md # Active wishes (inbox)
62+
```
63+
64+
## For Agents
65+
66+
When processing wishes:
67+
1. Read all `.md` files in `.wishes/` (not subdirs)
68+
2. Sort by priority (high > medium > low)
69+
3. Incorporate into current round planning
70+
4. Move to `.wishes/done/` when complete (append completion notes)
71+
5. Move to `.wishes/blocked/` if blocked (append reason)
72+
6. Update `research/zig-cr/92-gap-backlog.md` with relevant items

AGENTS.md

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,70 @@ This file provides guidance to AI coding agents when working with code in this r
44

55
---
66

7+
## Product Owner Wishes System
8+
9+
Tom (Product Owner) can asynchronously express wishes by dropping markdown files into `.wishes/`.
10+
11+
### How It Works
12+
13+
```
14+
.wishes/
15+
├── README.md # Instructions for Tom
16+
├── done/ # Completed wishes (moved here with completion notes)
17+
├── blocked/ # Blocked wishes (moved here with reason)
18+
└── *.md # Active wishes (inbox) - PROCESS THESE
19+
```
20+
21+
### Agent Workflow for Wishes
22+
23+
At the start of each OODA loop iteration:
24+
25+
1. **Check `.wishes/` for new files** (not in subdirs)
26+
2. **Parse priority** from filename or content (`high-`, `medium-`, `low-` prefix or `## Priority` section)
27+
3. **Incorporate high-priority wishes** into current round planning
28+
4. **After completing a wish**:
29+
- Move file to `.wishes/done/`
30+
- Append completion notes (date, what was done, commit hash)
31+
5. **If wish is blocked**:
32+
- Move file to `.wishes/blocked/`
33+
- Append reason why it's blocked
34+
6. **Update `research/zig-cr/92-gap-backlog.md`** with relevant items from wishes
35+
36+
### Wish File Format
37+
38+
```markdown
39+
# [Title]
40+
41+
## Priority
42+
high | medium | low
43+
44+
## Description
45+
What to do.
46+
47+
## Acceptance Criteria
48+
- [ ] Criterion 1
49+
- [ ] Criterion 2
50+
```
51+
52+
---
53+
754
## Zig CR-SQLite Rewrite: Orchestration Workflow
855

956
This project is undergoing a major rewrite from C/Rust to Zig. The following workflow governs how work proceeds.
1057

1158
### Continuous Integration Loop
1259

1360
```
14-
1. Review the evergreen end state spec
15-
2. Compare it to the current WIP implementation
16-
3. Identify gaps
17-
4. Ensure each gap is captured and all status documents are updated in git
18-
5. Brainstorm the optimal divide-and-conquer strategy to keep many subagents busy without stepping on each other's toes
19-
6. Ensure the current subagent tasklist properly reflects that strategy
20-
7. Assign tasks to subagents and direct them to update their task card once done
21-
8. Ensure everything is in git
22-
9. While not yet done, goto step 1
61+
1. Check .wishes/ for new product owner requests
62+
2. Review the evergreen end state spec
63+
3. Compare it to the current WIP implementation
64+
4. Identify gaps
65+
5. Ensure each gap is captured and all status documents are updated in git
66+
6. Brainstorm the optimal divide-and-conquer strategy to keep many subagents busy without stepping on each other's toes
67+
7. Ensure the current subagent tasklist properly reflects that strategy
68+
8. Assign tasks to subagents and direct them to update their task card once done
69+
9. Ensure everything is in git
70+
10. While not yet done, goto step 1
2371
```
2472

2573
### Document Organization

research/zig-cr/101-proposal-universal-crsqlite-mt-js.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ See node multi-process proposal:
2525

2626
- [`100-proposal-node-multiprocess-crsqlite-mesh.md`](./100-proposal-node-multiprocess-crsqlite-mesh.md)
2727

28+
See global mesh target:
29+
30+
- [`102-proposal-crsqlite-global-mesh.md`](./102-proposal-crsqlite-global-mesh.md)
31+
2832
---
2933

3034
## Proposal: `@libcrsql/crsqlite-mt` (universal JS package)

0 commit comments

Comments
 (0)