opencode-athena 0.8.1 → 0.9.0-beta.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/README.md +50 -0
- package/commands/athena-dev.md +28 -0
- package/dist/cli/index.js +18 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +55 -26
- package/dist/index.js +840 -486
- package/dist/index.js.map +1 -1
- package/dist/plugin/index.js +822 -468
- package/dist/plugin/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -180,6 +180,56 @@ Agents are recommended based on finding types:
|
|
|
180
180
|
- **Quick Review [Q]**: Accept Phase 1 findings, skip discussion. Best for low-severity issues.
|
|
181
181
|
- **Full Discussion [D]**: Run Phases 2-3 with parallel agents and informed discussion. Best for complex or high-severity findings.
|
|
182
182
|
|
|
183
|
+
## BMAD ↔ Todo Sync
|
|
184
|
+
|
|
185
|
+
Athena automatically synchronizes BMAD story checkboxes with oh-my-opencode's todo tool:
|
|
186
|
+
|
|
187
|
+
- **Automatic population**: Story tasks appear in your todo list when loading a story
|
|
188
|
+
- **Two-way sync**: Marking todos complete updates BMAD file checkboxes
|
|
189
|
+
- **Athena-themed format**: `[2.3ΔAC1] Task description`
|
|
190
|
+
- **Compaction-safe**: Works seamlessly after session compaction
|
|
191
|
+
- **Story context**: Prefix tells you where to look for full details
|
|
192
|
+
|
|
193
|
+
### How It Works
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
┌─────────────────────────────────────────────────────────────────────────┐
|
|
197
|
+
│ WRITE-THROUGH CACHE MODEL │
|
|
198
|
+
├─────────────────────────────────────────────────────────────────────────┤
|
|
199
|
+
│ │
|
|
200
|
+
│ BMAD Files (Source of Truth) Todo Cache (Session View) │
|
|
201
|
+
│ ┌─────────────────────────┐ ┌─────────────────────────┐ │
|
|
202
|
+
│ │ story-2-3.md │ │ [2.3ΔAC1] Login ○ │ │
|
|
203
|
+
│ │ - [ ] AC1: Login │◄────────│ [2.3ΔAC2] Logout ✓ │ │
|
|
204
|
+
│ │ - [x] AC2: Logout │ Write │ [2.3ΔTask1] Tests ○ │ │
|
|
205
|
+
│ │ - [ ] Task: Add tests │ back │ │ │
|
|
206
|
+
│ └─────────────────────────┘ └─────────────────────────┘ │
|
|
207
|
+
│ │
|
|
208
|
+
└─────────────────────────────────────────────────────────────────────────┘
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
When you call `athena_get_story`, todos are extracted from the story file's checkboxes and returned in a format ready for `todowrite`. Marking a todo complete automatically updates the corresponding checkbox in the BMAD file.
|
|
212
|
+
|
|
213
|
+
### Todo Format
|
|
214
|
+
|
|
215
|
+
| BMAD Section | Todo Prefix | Example |
|
|
216
|
+
|--------------|-------------|---------|
|
|
217
|
+
| Acceptance Criteria | `AC{n}` | `[2.3ΔAC1] Users can login` |
|
|
218
|
+
| Tasks/Subtasks | `Task{n}` | `[2.3ΔTask3] Write tests` |
|
|
219
|
+
| Implementation Notes | `Fix{n}` | `[2.3ΔFix2] Hardcoded secret` |
|
|
220
|
+
|
|
221
|
+
### Configuration
|
|
222
|
+
|
|
223
|
+
Todo sync is enabled by default. To disable:
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{
|
|
227
|
+
"features": {
|
|
228
|
+
"todoSync": false
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
183
233
|
## Configuration
|
|
184
234
|
|
|
185
235
|
Configuration files are stored in `~/.config/opencode/`:
|
package/commands/athena-dev.md
CHANGED
|
@@ -115,6 +115,34 @@ This is a **fresh implementation** - proceed with the normal workflow:
|
|
|
115
115
|
- Verify implementation (Step 4)
|
|
116
116
|
- Complete the story (Step 5)
|
|
117
117
|
|
|
118
|
+
## Step 1.5: Sync Todos (Automatic)
|
|
119
|
+
|
|
120
|
+
When `athena_get_story` returns, it includes a `todos` section with BMAD tasks formatted for the todo list.
|
|
121
|
+
|
|
122
|
+
**Call todowrite to populate your task list:**
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
todowrite({
|
|
126
|
+
todos: [
|
|
127
|
+
// Use the todos array from athena_get_story response
|
|
128
|
+
]
|
|
129
|
+
})
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
This syncs the BMAD story checkboxes to your todo list:
|
|
133
|
+
- `[2.3ΔAC1] Implement login endpoint` → Acceptance Criterion 1
|
|
134
|
+
- `[2.3ΔTask3] Write integration tests` → Task 3
|
|
135
|
+
- `[2.3ΔFix2] Hardcoded JWT secret` → Implementation Notes finding
|
|
136
|
+
|
|
137
|
+
**As you complete tasks:**
|
|
138
|
+
- Mark todos complete via `todowrite`
|
|
139
|
+
- The BMAD file checkboxes update automatically
|
|
140
|
+
- Progress is preserved even after session compaction
|
|
141
|
+
|
|
142
|
+
**Need more context on a task?**
|
|
143
|
+
- The prefix tells you where to look: `[2.3ΔAC1]` → Story 2.3, AC section
|
|
144
|
+
- Read the story file: `docs/stories/story-2-3.md`
|
|
145
|
+
|
|
118
146
|
## Step 2: Plan Your Approach
|
|
119
147
|
|
|
120
148
|
Before diving into code, plan your implementation strategy:
|
package/dist/cli/index.js
CHANGED
|
@@ -954,7 +954,8 @@ var FeaturesSchema = z.object({
|
|
|
954
954
|
contextMonitor: z.boolean(),
|
|
955
955
|
commentChecker: z.boolean(),
|
|
956
956
|
lspTools: z.boolean(),
|
|
957
|
-
autoGitOperations: z.boolean().default(false)
|
|
957
|
+
autoGitOperations: z.boolean().default(false),
|
|
958
|
+
todoSync: z.boolean().default(true)
|
|
958
959
|
});
|
|
959
960
|
var McpsSchema = z.object({
|
|
960
961
|
context7: z.boolean(),
|
|
@@ -1447,7 +1448,8 @@ function featuresToFlags(enabledFeatures) {
|
|
|
1447
1448
|
contextMonitor: enabledFeatures.includes("context-monitor"),
|
|
1448
1449
|
commentChecker: enabledFeatures.includes("comment-checker"),
|
|
1449
1450
|
lspTools: enabledFeatures.includes("lsp-tools"),
|
|
1450
|
-
autoGitOperations: enabledFeatures.includes("auto-git-operations")
|
|
1451
|
+
autoGitOperations: enabledFeatures.includes("auto-git-operations"),
|
|
1452
|
+
todoSync: true
|
|
1451
1453
|
};
|
|
1452
1454
|
}
|
|
1453
1455
|
function mcpsToFlags(mcps) {
|
|
@@ -1711,7 +1713,8 @@ function buildMinimalConfig(answers) {
|
|
|
1711
1713
|
contextMonitor: features.enabledFeatures.includes("context-monitor"),
|
|
1712
1714
|
commentChecker: features.enabledFeatures.includes("comment-checker"),
|
|
1713
1715
|
lspTools: features.enabledFeatures.includes("lsp-tools"),
|
|
1714
|
-
autoGitOperations: false
|
|
1716
|
+
autoGitOperations: false,
|
|
1717
|
+
todoSync: true
|
|
1715
1718
|
},
|
|
1716
1719
|
mcps: {
|
|
1717
1720
|
context7: features.mcps.includes("context7"),
|
|
@@ -2330,6 +2333,18 @@ var MIGRATIONS = [
|
|
|
2330
2333
|
}
|
|
2331
2334
|
return { ...config, bmad: { ...bmad, paths } };
|
|
2332
2335
|
}
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
fromVersion: "0.8.0",
|
|
2339
|
+
toVersion: "0.9.0",
|
|
2340
|
+
description: "Add BMAD todo sync feature flag: todoSync",
|
|
2341
|
+
migrateAthena: (config) => {
|
|
2342
|
+
const features = config.features || {};
|
|
2343
|
+
if (features.todoSync === void 0) {
|
|
2344
|
+
features.todoSync = true;
|
|
2345
|
+
}
|
|
2346
|
+
return { ...config, features };
|
|
2347
|
+
}
|
|
2333
2348
|
}
|
|
2334
2349
|
];
|
|
2335
2350
|
function migrateLegacyFiles() {
|