briefops 1.0.2 → 2.0.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 +12 -0
- package/README.md +55 -50
- package/SECURITY.md +4 -3
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/bootstrap.d.ts +2 -0
- package/dist/commands/bootstrap.js +59 -0
- package/dist/commands/bootstrap.js.map +1 -0
- package/dist/commands/continue.js +5 -4
- package/dist/commands/continue.js.map +1 -1
- package/dist/commands/doctor.js +16 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/finish.js +9 -1
- package/dist/commands/finish.js.map +1 -1
- package/dist/commands/skill.js +1 -1
- package/dist/commands/skill.js.map +1 -1
- package/dist/core/bootstrap.d.ts +25 -0
- package/dist/core/bootstrap.js +69 -0
- package/dist/core/bootstrap.js.map +1 -0
- package/dist/core/codex.js +32 -5
- package/dist/core/codex.js.map +1 -1
- package/dist/core/codexPlugin.js +13 -12
- package/dist/core/codexPlugin.js.map +1 -1
- package/dist/core/exportTargets.js +21 -18
- package/dist/core/exportTargets.js.map +1 -1
- package/dist/core/prime.js +16 -9
- package/dist/core/prime.js.map +1 -1
- package/dist/core/stabilityDoctor.d.ts +14 -0
- package/dist/core/stabilityDoctor.js +356 -0
- package/dist/core/stabilityDoctor.js.map +1 -0
- package/dist/core/workflow.d.ts +4 -0
- package/dist/core/workflow.js +21 -2
- package/dist/core/workflow.js.map +1 -1
- package/dist/core/workspace.js +13 -1
- package/dist/core/workspace.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/codex-resume.md +1 -1
- package/docs/compatibility.md +6 -6
- package/docs/concept.md +2 -2
- package/docs/handoff-briefs.md +1 -1
- package/docs/integrations/harnesses.md +5 -6
- package/docs/memory-lifecycle.md +11 -5
- package/docs/privacy-model.md +7 -3
- package/docs/quickstart.md +8 -6
- package/docs/release-checklist.md +5 -3
- package/docs/superpowers/plans/2026-06-08-briefops-oss-readiness.md +1 -1
- package/package.json +1 -1
- package/plugins/briefops-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/briefops-codex/README.md +6 -6
- package/plugins/briefops-codex/skills/briefops-continue-worker/SKILL.md +3 -3
- package/plugins/briefops-codex/skills/briefops-finish-task/SKILL.md +4 -4
- package/plugins/briefops-codex/skills/briefops-prime-context/SKILL.md +4 -4
- package/plugins/briefops-codex/skills/briefops-review-memory/SKILL.md +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
- No changes yet.
|
|
6
6
|
|
|
7
|
+
## 2.0.0 - 2026-06-14
|
|
8
|
+
|
|
9
|
+
- Make `briefops finish` apply durable directory-local memory by default while retaining proposal files as an audit trail.
|
|
10
|
+
- Add `--memory-review` for explicit pending memory queues.
|
|
11
|
+
- Update Codex/plugin/router guidance to treat `.briefops/` memory as local repo state and reserve confirmation for external sharing or skill patches.
|
|
12
|
+
|
|
13
|
+
## 1.1.0 - 2026-06-10
|
|
14
|
+
|
|
15
|
+
- Add `briefops doctor --stability` for bounded read-only workspace integrity checks.
|
|
16
|
+
- Detect invalid workspace schemas, duplicate memory ids, broken references, managed-path symlinks, and orphaned review artifacts.
|
|
17
|
+
- Keep detailed stability diagnostics out of `prime`, handoff, resume, and pack context so local checks do not increase prompt volume.
|
|
18
|
+
|
|
7
19
|
## 1.0.2 - 2026-06-10
|
|
8
20
|
|
|
9
21
|
- Include work-log lessons in local handoff, Codex resume, and worker recent-work context before durable memory approval.
|
package/README.md
CHANGED
|
@@ -6,13 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
BriefOps is a local-first CLI for AI coding agents with persistent memory, handoffs, and token-aware context.
|
|
8
8
|
|
|
9
|
-
The goal is not just to generate a good brief. The goal is to let a user finish an AI coding task, carry recent work into the next handoff immediately, promote
|
|
9
|
+
The goal is not just to generate a good brief. The goal is to let a user finish an AI coding task, carry recent work into the next handoff immediately, promote useful items into directory-local durable memory, and start a fresh Codex or Claude Code thread where the same worker can continue with prior decisions, lessons, risks, and judgment profile.
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
briefops prime --task "Start the next task." --format codex --max-tokens 800
|
|
13
13
|
briefops finish ...
|
|
14
|
-
briefops memory proposal-show latest
|
|
15
|
-
briefops memory proposal-apply latest
|
|
16
14
|
briefops continue --worker <worker> --task "<next task>" --pack
|
|
17
15
|
```
|
|
18
16
|
|
|
@@ -23,7 +21,7 @@ It should not maximize context. It preserves continuity by selecting the smalles
|
|
|
23
21
|
|
|
24
22
|
- a local CLI
|
|
25
23
|
- a file-based skill, project, memory, worker, and work-log store
|
|
26
|
-
- a deterministic memory
|
|
24
|
+
- a deterministic directory-local memory promotion workflow
|
|
27
25
|
- a token-aware brief, handoff, Codex mission, and resume generator
|
|
28
26
|
- a compact first-context primer for fresh Codex threads
|
|
29
27
|
- a persistent worker continuity layer for fresh AI coding threads
|
|
@@ -48,12 +46,12 @@ BriefOps can generate Codex skill-plugin assets, but the plugin calls the local
|
|
|
48
46
|
|
|
49
47
|
## Release Status
|
|
50
48
|
|
|
51
|
-
BriefOps
|
|
49
|
+
BriefOps 2.0 is intended for developers who want a local-first memory and context ledger for AI coding agents. The public CLI behavior and workspace file-format policy are documented in `docs/compatibility.md` and `docs/file-format.md`. The core safety principles are stable:
|
|
52
50
|
|
|
53
51
|
- local files first
|
|
54
52
|
- no hosted service required
|
|
55
53
|
- no required MCP server
|
|
56
|
-
-
|
|
54
|
+
- directory-local memory by default
|
|
57
55
|
- shared-only export controls
|
|
58
56
|
- deterministic CLI behavior
|
|
59
57
|
|
|
@@ -66,7 +64,7 @@ Before publishing a repository or sharing generated context, review:
|
|
|
66
64
|
- `SECURITY.md` for vulnerability reporting and local data handling.
|
|
67
65
|
- `CONTRIBUTING.md` for development checks and safety rules.
|
|
68
66
|
- `CHANGELOG.md` for release notes.
|
|
69
|
-
- `docs/file-format.md` and `docs/compatibility.md` for the
|
|
67
|
+
- `docs/file-format.md` and `docs/compatibility.md` for the local data contract.
|
|
70
68
|
- `docs/privacy-model.md` for export-policy and local data boundaries.
|
|
71
69
|
|
|
72
70
|
## Install
|
|
@@ -99,22 +97,22 @@ This is the primary BriefOps workflow.
|
|
|
99
97
|
### 1. Initialize
|
|
100
98
|
|
|
101
99
|
```bash
|
|
102
|
-
briefops
|
|
100
|
+
briefops bootstrap
|
|
103
101
|
```
|
|
104
102
|
|
|
105
|
-
This creates a local `.briefops/` workspace.
|
|
103
|
+
This creates a local `.briefops/` workspace, installs Codex first-context guidance into `AGENTS.md`, writes `.briefops/codex/prompts/`, installs the deterministic local plugin bundle under `.briefops/codex/plugin/briefops`, adds `.briefops/` to `.gitignore`, and runs bounded privacy/stability checks.
|
|
106
104
|
|
|
107
|
-
|
|
105
|
+
If you want the manual path instead:
|
|
108
106
|
|
|
109
107
|
```bash
|
|
108
|
+
briefops init
|
|
110
109
|
briefops codex install
|
|
111
110
|
briefops codex plugin install
|
|
111
|
+
briefops doctor --privacy --fix-gitignore
|
|
112
|
+
briefops doctor --stability
|
|
112
113
|
```
|
|
113
114
|
|
|
114
|
-
|
|
115
|
-
`briefops codex plugin install` writes a deterministic local plugin bundle under `.briefops/codex/plugin/briefops`. It does not publish to a marketplace and does not write to global Codex folders by default.
|
|
116
|
-
|
|
117
|
-
### 3. Create A Skill
|
|
115
|
+
### 2. Create A Skill
|
|
118
116
|
|
|
119
117
|
```bash
|
|
120
118
|
briefops skill create risk-review \
|
|
@@ -124,7 +122,7 @@ briefops skill create risk-review \
|
|
|
124
122
|
|
|
125
123
|
A skill is a reusable working protocol.
|
|
126
124
|
|
|
127
|
-
###
|
|
125
|
+
### 3. Create Project Context
|
|
128
126
|
|
|
129
127
|
```bash
|
|
130
128
|
briefops project create atlas-q \
|
|
@@ -134,7 +132,7 @@ briefops project create atlas-q \
|
|
|
134
132
|
|
|
135
133
|
A project stores durable facts and constraints.
|
|
136
134
|
|
|
137
|
-
###
|
|
135
|
+
### 4. Create A Worker
|
|
138
136
|
|
|
139
137
|
```bash
|
|
140
138
|
briefops worker create quant-reviewer \
|
|
@@ -147,7 +145,7 @@ briefops worker use quant-reviewer
|
|
|
147
145
|
|
|
148
146
|
A worker is the persistent identity BriefOps carries across fresh threads: default project, skill bundle, style, lessons, risks, and judgment profile. `worker use` makes it the default worker for start-of-thread priming.
|
|
149
147
|
|
|
150
|
-
###
|
|
148
|
+
### 5. Prime A Fresh Codex Thread
|
|
151
149
|
|
|
152
150
|
```bash
|
|
153
151
|
briefops prime \
|
|
@@ -156,11 +154,11 @@ briefops prime \
|
|
|
156
154
|
--max-tokens 800
|
|
157
155
|
```
|
|
158
156
|
|
|
159
|
-
Paste the compact prime context into Codex first.
|
|
157
|
+
Paste the compact prime context into Codex first. Repos bootstrapped with BriefOps also get `AGENTS.md` guidance that tells Codex to run this before broad repo/history inspection.
|
|
160
158
|
|
|
161
|
-
Codex-format prime output includes an operating note for Codex: use the selected worker/project context, inspect only files needed for the task, and
|
|
159
|
+
Codex-format prime output includes an operating note for Codex: use the selected worker/project context, inspect only files needed for the task, treat `.briefops/` memory as local repo state, and ask before exporting private memory or applying skill patches.
|
|
162
160
|
|
|
163
|
-
###
|
|
161
|
+
### 6. Start A Codex Mission When Needed
|
|
164
162
|
|
|
165
163
|
```bash
|
|
166
164
|
briefops codex mission \
|
|
@@ -173,7 +171,7 @@ briefops codex mission \
|
|
|
173
171
|
|
|
174
172
|
Paste the generated mission prompt into Codex.
|
|
175
173
|
|
|
176
|
-
###
|
|
174
|
+
### 7. Finish The Task
|
|
177
175
|
|
|
178
176
|
When Codex finishes, record what happened:
|
|
179
177
|
|
|
@@ -193,27 +191,25 @@ briefops finish \
|
|
|
193
191
|
|
|
194
192
|
`finish` always writes a work log when `--task` and `--result` are valid. If the log has no durable memory candidates, `finish` warns and still prints the next `briefops continue` command.
|
|
195
193
|
|
|
196
|
-
###
|
|
194
|
+
### 8. Local Memory Is Applied
|
|
197
195
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
briefops memory proposal-show latest
|
|
202
|
-
```
|
|
196
|
+
`finish` applies durable memory candidates into `.briefops/memory/` by default and keeps the proposal file as an audit trail. The output reports how many memory items were created or skipped as duplicates.
|
|
203
197
|
|
|
204
|
-
|
|
198
|
+
Use review mode only when you explicitly want a pending local queue:
|
|
205
199
|
|
|
206
200
|
```bash
|
|
207
|
-
briefops memory
|
|
201
|
+
briefops finish --memory-review ...
|
|
208
202
|
```
|
|
209
203
|
|
|
210
|
-
|
|
204
|
+
Inspect, apply, or reject queued proposals when needed:
|
|
211
205
|
|
|
212
206
|
```bash
|
|
213
|
-
briefops
|
|
207
|
+
briefops memory proposal-show latest
|
|
208
|
+
briefops memory proposal-apply latest
|
|
209
|
+
briefops memory proposal-reject latest
|
|
214
210
|
```
|
|
215
211
|
|
|
216
|
-
###
|
|
212
|
+
### 9. Continue In A Fresh Thread
|
|
217
213
|
|
|
218
214
|
```bash
|
|
219
215
|
briefops continue \
|
|
@@ -222,7 +218,7 @@ briefops continue \
|
|
|
222
218
|
--pack
|
|
223
219
|
```
|
|
224
220
|
|
|
225
|
-
`continue --pack` checks continuity health,
|
|
221
|
+
`continue --pack` checks continuity health, notes any optional pending memory proposals, refreshes worker intelligence, saves a handoff, saves a Codex resume prompt, saves a portable resume pack, and prints all generated paths.
|
|
226
222
|
|
|
227
223
|
## Shared-Only Export Path
|
|
228
224
|
|
|
@@ -239,7 +235,7 @@ It omits private memory, local project file details, raw work logs, open risks,
|
|
|
239
235
|
|
|
240
236
|
`local-private` is intended for local terminal/Codex use only and may include local private continuity context.
|
|
241
237
|
|
|
242
|
-
BriefOps
|
|
238
|
+
BriefOps may update directory-local memory during normal local work. Explicit confirmation is reserved for sharing private memory outside the workspace or applying skill patches.
|
|
243
239
|
|
|
244
240
|
## Local Harness Export
|
|
245
241
|
|
|
@@ -252,7 +248,7 @@ briefops export cursor-rules
|
|
|
252
248
|
briefops export all
|
|
253
249
|
```
|
|
254
250
|
|
|
255
|
-
Exports are routers, not memory dumps. They tell local AI tools to run `briefops prime`, `briefops finish`,
|
|
251
|
+
Exports are routers, not memory dumps. They tell local AI tools to run `briefops prime`, `briefops finish`, and `briefops continue --pack`.
|
|
256
252
|
|
|
257
253
|
They do not copy `.briefops` memory, raw logs, private decisions, incidents, handoffs, or worker summaries into `AGENTS.md`, `CLAUDE.md`, or Cursor rules. Export commands default to `--export-policy shared-only` because these files are often committed.
|
|
258
254
|
|
|
@@ -292,12 +288,15 @@ Run this before publishing a repository, sharing a pack, or attaching BriefOps c
|
|
|
292
288
|
```bash
|
|
293
289
|
briefops doctor --privacy
|
|
294
290
|
briefops doctor --privacy --fix-gitignore
|
|
291
|
+
briefops doctor --stability
|
|
295
292
|
```
|
|
296
293
|
|
|
297
294
|
BriefOps is local-first, but `.briefops/` may contain private logs and memory. Keep `.briefops/` out of source control unless you intentionally curated the contents.
|
|
298
295
|
|
|
299
296
|
`doctor --privacy` checks local memory sharing hazards, including `.briefops/` gitignore coverage, private/exportable memory, and secret-like memory strings.
|
|
300
297
|
|
|
298
|
+
`doctor --stability` checks local workspace integrity, schema validity, duplicate memory ids, broken references, managed-path symlinks, and orphaned review artifacts. It keeps diagnostics bounded and does not add detailed doctor output to `prime`, handoff, resume, or pack context.
|
|
299
|
+
|
|
301
300
|
## Pre-Publish Readiness
|
|
302
301
|
|
|
303
302
|
Before `npm publish`, run the local release checks and review the package contents:
|
|
@@ -326,13 +325,13 @@ BriefOps works best as a local memory ledger beside stronger harnesses such as C
|
|
|
326
325
|
|
|
327
326
|
`finish` records what happened.
|
|
328
327
|
|
|
329
|
-
It writes a work log,
|
|
328
|
+
It writes a work log, applies durable directory-local memory when the log contains useful candidates, keeps a proposal audit file, can propose a skill patch, can refresh the worker summary, and prints the next `briefops continue` command.
|
|
330
329
|
|
|
331
|
-
Recent work logs are available to the next local handoff immediately. Durable memory is
|
|
330
|
+
Recent work logs are available to the next local handoff immediately. Durable memory is the long-lived layer: lessons, decisions, incidents, and reusable rules are promoted locally by default unless `--memory-review` is used.
|
|
332
331
|
|
|
333
332
|
`continue` prepares the same worker for a fresh thread.
|
|
334
333
|
|
|
335
|
-
It inspects continuity health,
|
|
334
|
+
It inspects continuity health, notes optional pending memory proposals, refreshes the worker summary, generates a handoff, and saves a Codex resume prompt. Add `--pack` when you also want one self-contained markdown file.
|
|
336
335
|
|
|
337
336
|
```bash
|
|
338
337
|
briefops finish \
|
|
@@ -350,7 +349,7 @@ briefops continue \
|
|
|
350
349
|
--pack
|
|
351
350
|
```
|
|
352
351
|
|
|
353
|
-
You can continue
|
|
352
|
+
You can continue even if older or review-mode memory proposals are still pending. The handoff still includes recent local work such as results, lessons, decisions, open risks, incidents, and next steps. If pending memory proposals exist, `continue` prints inspect, apply, and reject commands without blocking the flow.
|
|
354
353
|
|
|
355
354
|
## Portable Resume Pack
|
|
356
355
|
|
|
@@ -383,11 +382,11 @@ exportable: false
|
|
|
383
382
|
|
|
384
383
|
BriefOps does not add cloud sync or encryption.
|
|
385
384
|
|
|
386
|
-
##
|
|
385
|
+
## Local Memory Queue And Skill Patches
|
|
387
386
|
|
|
388
|
-
|
|
387
|
+
`briefops finish` applies durable memory locally by default. Pending memory proposals still exist for audit/review mode and older workspaces.
|
|
389
388
|
|
|
390
|
-
Use explicit proposal commands:
|
|
389
|
+
Use explicit proposal commands when you choose to inspect the queue:
|
|
391
390
|
|
|
392
391
|
```bash
|
|
393
392
|
briefops memory proposal-show latest
|
|
@@ -399,7 +398,7 @@ briefops skill apply-patch risk-review --patch latest
|
|
|
399
398
|
briefops skill reject-patch latest
|
|
400
399
|
```
|
|
401
400
|
|
|
402
|
-
|
|
401
|
+
The convenience approval command remains available for pending queue items:
|
|
403
402
|
|
|
404
403
|
```bash
|
|
405
404
|
briefops approve latest
|
|
@@ -407,7 +406,7 @@ briefops approve memory latest
|
|
|
407
406
|
briefops approve skill-patch latest
|
|
408
407
|
```
|
|
409
408
|
|
|
410
|
-
`briefops approve <id|latest>` tries memory first. If no matching memory proposal exists, it tries a skill patch. It applies at most one item.
|
|
409
|
+
`briefops approve <id|latest>` tries memory first. If no matching memory proposal exists, it tries a skill patch. It applies at most one item. Skill patches should be applied only with explicit user direction.
|
|
411
410
|
|
|
412
411
|
## Inbox
|
|
413
412
|
|
|
@@ -432,8 +431,8 @@ briefops inbox --skill risk-review
|
|
|
432
431
|
| Worker Summary | Refreshed worker intelligence | `.briefops/workers/summaries/*.summary.md` |
|
|
433
432
|
| Work Log | Completed task record | `.briefops/logs/*.yaml` |
|
|
434
433
|
| Memory | Curated facts, decisions, lessons, incidents | `.briefops/memory/*.yaml` |
|
|
435
|
-
| Memory Proposal |
|
|
436
|
-
| Skill Patch |
|
|
434
|
+
| Memory Proposal | Audit/review memory candidate | `.briefops/memory-proposals/*.yaml` |
|
|
435
|
+
| Skill Patch | Explicit-review skill improvement | `.briefops/patches/*.patch.yaml` |
|
|
437
436
|
| Handoff | Fresh-thread continuity brief | `.briefops/handoffs/*.md` |
|
|
438
437
|
| Codex Prompt | Mission or resume prompt | `.briefops/codex/prompts/*.md` |
|
|
439
438
|
| Portable Pack | Self-contained resume markdown | `.briefops/codex/prompts/*resume-pack*.md` |
|
|
@@ -483,7 +482,7 @@ briefops memory show <memory-id>
|
|
|
483
482
|
briefops memory update-status <memory-id> --status archived
|
|
484
483
|
```
|
|
485
484
|
|
|
486
|
-
Promote useful work-log items through a proposal:
|
|
485
|
+
Promote useful work-log items through a proposal. `briefops finish` does this automatically by default; these commands are for manual or review-mode flows:
|
|
487
486
|
|
|
488
487
|
```bash
|
|
489
488
|
briefops memory propose-from-log latest
|
|
@@ -493,7 +492,7 @@ briefops memory proposal-apply <proposal-id|latest>
|
|
|
493
492
|
briefops memory proposal-reject <proposal-id|latest>
|
|
494
493
|
```
|
|
495
494
|
|
|
496
|
-
Extraction is deterministic and local. Lessons, decisions, incidents, open risks, prefixed notes, and policy-like next steps can become proposal items. Proposal generation and
|
|
495
|
+
Extraction is deterministic and local. Lessons, decisions, incidents, open risks, prefixed notes, and policy-like next steps can become proposal items. Proposal generation and application are local file-backed operations protected by workspace locks.
|
|
497
496
|
|
|
498
497
|
## Skills And Skill Patches
|
|
499
498
|
|
|
@@ -596,6 +595,7 @@ briefops handoff inspect latest
|
|
|
596
595
|
|
|
597
596
|
```bash
|
|
598
597
|
briefops doctor
|
|
598
|
+
briefops doctor --stability
|
|
599
599
|
briefops doctor --privacy
|
|
600
600
|
briefops doctor --security
|
|
601
601
|
briefops doctor --security --fix-stale-locks
|
|
@@ -606,7 +606,7 @@ briefops inspect retrieval --project atlas-q --worker quant-reviewer --task "Con
|
|
|
606
606
|
briefops inspect continuity --project atlas-q --worker quant-reviewer
|
|
607
607
|
```
|
|
608
608
|
|
|
609
|
-
`doctor --security --fix-stale-locks` removes stale locks only; it does not remove fresh locks or other workspace files.
|
|
609
|
+
`doctor --stability` is read-only and bounded: it reports counts plus a small set of examples instead of dumping workspace contents. `doctor --security --fix-stale-locks` removes stale locks only; it does not remove fresh locks or other workspace files.
|
|
610
610
|
|
|
611
611
|
Evals are deterministic checklist checks. They do not call an LLM judge.
|
|
612
612
|
|
|
@@ -655,6 +655,9 @@ When generated briefs, handoffs, or resumes are too large, BriefOps trims lower-
|
|
|
655
655
|
+-- briefs/
|
|
656
656
|
+-- codex/
|
|
657
657
|
| +-- prompts/
|
|
658
|
+
| +-- prime.md
|
|
659
|
+
| +-- mission.md
|
|
660
|
+
| +-- plan.md
|
|
658
661
|
+-- evals/
|
|
659
662
|
| +-- results/
|
|
660
663
|
+-- patches/
|
|
@@ -671,8 +674,10 @@ Because `.briefops/` is local/private, Codex does not automatically see it. Prov
|
|
|
671
674
|
## Command Reference
|
|
672
675
|
|
|
673
676
|
```bash
|
|
677
|
+
briefops bootstrap
|
|
674
678
|
briefops init
|
|
675
679
|
briefops doctor
|
|
680
|
+
briefops doctor --stability
|
|
676
681
|
briefops doctor --privacy
|
|
677
682
|
briefops doctor --security
|
|
678
683
|
briefops inbox
|
|
@@ -763,7 +768,7 @@ Workspace not found:
|
|
|
763
768
|
briefops init
|
|
764
769
|
```
|
|
765
770
|
|
|
766
|
-
|
|
771
|
+
Optional pending memory before continuing:
|
|
767
772
|
|
|
768
773
|
```bash
|
|
769
774
|
briefops memory proposal-list --status proposed
|
package/SECURITY.md
CHANGED
|
@@ -6,8 +6,9 @@ BriefOps is a local-first CLI. It stores project memory, work logs, generated pr
|
|
|
6
6
|
|
|
7
7
|
| Version | Supported |
|
|
8
8
|
| --- | --- |
|
|
9
|
-
|
|
|
10
|
-
|
|
|
9
|
+
| 2.x | Security fixes accepted |
|
|
10
|
+
| 1.x | Security fixes accepted for critical issues |
|
|
11
|
+
| 0.2.x alpha | Not supported; upgrade to 2.x |
|
|
11
12
|
|
|
12
13
|
## Reporting A Vulnerability
|
|
13
14
|
|
|
@@ -44,7 +45,7 @@ See `docs/privacy-model.md` for the full 1.0 privacy contract.
|
|
|
44
45
|
|
|
45
46
|
`briefops export agents-md`, `briefops export claude-md`, `briefops export cursor-rules`, and `briefops export all` generate router files for local AI coding harnesses.
|
|
46
47
|
|
|
47
|
-
These files are intended to be safe to commit by default. They should contain command guidance and
|
|
48
|
+
These files are intended to be safe to commit by default. They should contain command guidance and explicit export/skill-patch boundaries, not raw `.briefops/` memory, work logs, handoffs, resume packs, private decisions, private incidents, or worker summaries.
|
|
48
49
|
|
|
49
50
|
If you use `--export-policy local-private`, review the generated files before sharing them outside the local machine.
|
|
50
51
|
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import { registerApproveCommand } from "./commands/approve.js";
|
|
3
3
|
import { registerBriefCommands } from "./commands/brief.js";
|
|
4
|
+
import { registerBootstrapCommand } from "./commands/bootstrap.js";
|
|
4
5
|
import { registerCodexCommands } from "./commands/codex.js";
|
|
5
6
|
import { registerCompareCommands } from "./commands/compare.js";
|
|
6
7
|
import { registerContinueCommand } from "./commands/continue.js";
|
|
@@ -26,6 +27,7 @@ export function buildProgram() {
|
|
|
26
27
|
.name("briefops")
|
|
27
28
|
.description("Local-first, token-aware brief compiler for AI coding workflows.")
|
|
28
29
|
.version(briefopsVersion);
|
|
30
|
+
registerBootstrapCommand(program);
|
|
29
31
|
registerInitCommand(program);
|
|
30
32
|
registerDoctorCommand(program);
|
|
31
33
|
registerPrimeCommand(program);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,kEAAkE,CAAC;SAC/E,OAAO,CAAC,eAAe,CAAC,CAAC;IAE5B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAEjC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc;IACvC,MAAM,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { bootstrapWorkspace } from "../core/bootstrap.js";
|
|
2
|
+
import { printTable } from "./shared.js";
|
|
3
|
+
export function registerBootstrapCommand(program) {
|
|
4
|
+
program
|
|
5
|
+
.command("bootstrap")
|
|
6
|
+
.description("Initialize BriefOps and install first-context Codex guidance for this repo.")
|
|
7
|
+
.option("--force", "Update existing generated guidance/plugin files when safe.")
|
|
8
|
+
.option("--no-codex", "Skip AGENTS.md Codex guidance and prompt pack installation.")
|
|
9
|
+
.option("--no-plugin", "Skip local Codex plugin bundle installation.")
|
|
10
|
+
.option("--no-fix-gitignore", "Do not add `.briefops/` to .gitignore.")
|
|
11
|
+
.option("--no-doctor", "Skip privacy and stability doctor checks.")
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
const result = await bootstrapWorkspace({
|
|
14
|
+
force: Boolean(options.force),
|
|
15
|
+
codex: options.codex,
|
|
16
|
+
plugin: options.plugin,
|
|
17
|
+
fixGitignore: options.fixGitignore,
|
|
18
|
+
doctor: options.doctor
|
|
19
|
+
});
|
|
20
|
+
console.log("BriefOps bootstrap complete.");
|
|
21
|
+
printTable([
|
|
22
|
+
["Item", "Status", "Path"],
|
|
23
|
+
["Workspace", "ready", result.root],
|
|
24
|
+
["Codex guidance", result.agentsPath ? "installed" : "skipped", result.agentsPath ?? "-"],
|
|
25
|
+
["Codex prompts", result.promptDir ? "ready" : "skipped", result.promptDir ?? "-"],
|
|
26
|
+
["Codex plugin", result.pluginRoot ? "installed" : "skipped", result.pluginRoot ?? "-"],
|
|
27
|
+
[".gitignore", result.gitignorePath ? "updated" : "skipped", result.gitignorePath ?? "-"],
|
|
28
|
+
[
|
|
29
|
+
"Stability doctor",
|
|
30
|
+
result.stability ? (result.stability.ok ? "ok" : "fail") : "skipped",
|
|
31
|
+
result.stability ? `${result.stability.checks.length} check(s)` : "-"
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
"Privacy doctor",
|
|
35
|
+
result.privacy ? (result.privacy.ok ? "ok" : "fail") : "skipped",
|
|
36
|
+
result.privacy ? `${result.privacy.checks.length} check(s)` : "-"
|
|
37
|
+
]
|
|
38
|
+
]);
|
|
39
|
+
if (result.warnings.length > 0) {
|
|
40
|
+
console.log("");
|
|
41
|
+
console.log("Warnings:");
|
|
42
|
+
for (const warning of result.warnings) {
|
|
43
|
+
console.log(`- ${warning}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
console.log("");
|
|
47
|
+
console.log("Next commands:");
|
|
48
|
+
for (const command of result.nextCommands) {
|
|
49
|
+
console.log(`- ${command}`);
|
|
50
|
+
}
|
|
51
|
+
if (result.stability && !result.stability.ok) {
|
|
52
|
+
process.exitCode = 1;
|
|
53
|
+
}
|
|
54
|
+
if (result.privacy && !result.privacy.ok) {
|
|
55
|
+
process.exitCode = 1;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/commands/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,16 +38,17 @@ export function registerContinueCommand(program) {
|
|
|
38
38
|
}
|
|
39
39
|
if (result.pendingMemoryProposals > 0) {
|
|
40
40
|
console.log("");
|
|
41
|
-
console.log("Pending memory proposals
|
|
41
|
+
console.log("Pending local memory proposals found.");
|
|
42
|
+
console.log("They do not block continuing; apply or reject them when useful.");
|
|
42
43
|
console.log("");
|
|
43
|
-
console.log("
|
|
44
|
+
console.log("Inspect:");
|
|
44
45
|
console.log("briefops memory proposal-list --status proposed");
|
|
45
46
|
console.log("briefops memory proposal-show latest");
|
|
46
47
|
console.log("");
|
|
47
|
-
console.log("Apply
|
|
48
|
+
console.log("Apply locally:");
|
|
48
49
|
console.log("briefops memory proposal-apply latest");
|
|
49
50
|
console.log("");
|
|
50
|
-
console.log("Reject
|
|
51
|
+
console.log("Reject:");
|
|
51
52
|
console.log("briefops memory proposal-reject latest");
|
|
52
53
|
}
|
|
53
54
|
console.log("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/commands/continue.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,oGAAoG,CAAC;SACjH,MAAM,CAAC,qBAAqB,EAAE,+CAA+C,CAAC;SAC9E,cAAc,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SAC3D,cAAc,CAAC,eAAe,EAAE,YAAY,CAAC;SAC7C,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,IAAI,CAAC;SAC3E,MAAM,CAAC,eAAe,EAAE,mBAAmB,EAAE,MAAM,CAAC;SACpD,MAAM,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;SACrE,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SACxE,MAAM,CAAC,SAAS,EAAE,6CAA6C,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;YAChC,OAAO,EAAE,OAAO,CAAC,OAA6B;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAgB;YAChC,IAAI,EAAE,OAAO,CAAC,IAAc;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAgB;YAChC,IAAI,EAAE,OAAO,CAAC,IAA0B;YACxC,iBAAiB,EAAE,OAAO,CAAC,iBAAuC;YAClE,UAAU,EAAE,OAAO,CAAC,MAAM;gBACxB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAgB,CAAC;gBACvD,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"continue.js","sourceRoot":"","sources":["../../src/commands/continue.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -2,12 +2,15 @@ import { cleanStaleLocks } from "../core/lock.js";
|
|
|
2
2
|
import { memoryCategories, workspacePaths } from "../core/paths.js";
|
|
3
3
|
import { fixBriefOpsGitignore, runPrivacyDoctor } from "../core/privacyDoctor.js";
|
|
4
4
|
import { runSecurityDoctor } from "../core/securityDoctor.js";
|
|
5
|
+
import { runStabilityDoctor } from "../core/stabilityDoctor.js";
|
|
5
6
|
import { pathExists } from "../core/storage.js";
|
|
6
7
|
import { printTable } from "./shared.js";
|
|
7
8
|
export function registerDoctorCommand(program) {
|
|
8
9
|
program
|
|
9
10
|
.command("doctor")
|
|
10
11
|
.description("Check the local BriefOps workspace structure.")
|
|
12
|
+
.option("--stability", "Run bounded workspace integrity checks without changing prompt context.")
|
|
13
|
+
.option("--verbose", "Show more stability examples while keeping output bounded.")
|
|
11
14
|
.option("--security", "Run security, export, and local conflict checks.")
|
|
12
15
|
.option("--fix-stale-locks", "Remove stale BriefOps workspace locks before reporting security checks.")
|
|
13
16
|
.option("--privacy", "Run privacy checks for local memory and share safety.")
|
|
@@ -29,6 +32,19 @@ export function registerDoctorCommand(program) {
|
|
|
29
32
|
}
|
|
30
33
|
return;
|
|
31
34
|
}
|
|
35
|
+
if (options.stability) {
|
|
36
|
+
const result = await runStabilityDoctor({
|
|
37
|
+
maxExamples: options.verbose ? 25 : 5
|
|
38
|
+
});
|
|
39
|
+
printTable([
|
|
40
|
+
["Check", "Status", "Detail"],
|
|
41
|
+
...result.checks.map((check) => [check.name, check.status, check.detail])
|
|
42
|
+
]);
|
|
43
|
+
if (!result.ok) {
|
|
44
|
+
process.exitCode = 1;
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
32
48
|
if (options.security) {
|
|
33
49
|
if (options.fixStaleLocks) {
|
|
34
50
|
const removed = await cleanStaleLocks();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/finish.js
CHANGED
|
@@ -19,6 +19,7 @@ export function registerFinishCommand(program) {
|
|
|
19
19
|
.option("--notes <notes>", "Additional notes.")
|
|
20
20
|
.option("--importance <importance>", "trivial|normal|durable|incident", "normal")
|
|
21
21
|
.option("--no-memory-proposal", "Skip memory proposal generation.")
|
|
22
|
+
.option("--memory-review", "Leave durable memory as a pending review proposal instead of applying it locally.")
|
|
22
23
|
.option("--propose-skill-patch", "Also propose a skill patch from log lessons.")
|
|
23
24
|
.option("--refresh-worker", "Refresh the worker summary after logging.")
|
|
24
25
|
.option("--continue-task <task>", "Task text to use in the printed continue command.")
|
|
@@ -39,6 +40,7 @@ export function registerFinishCommand(program) {
|
|
|
39
40
|
notes: options.notes,
|
|
40
41
|
importance: options.importance,
|
|
41
42
|
noMemoryProposal: Boolean(options.noMemoryProposal),
|
|
43
|
+
memoryReview: Boolean(options.memoryReview),
|
|
42
44
|
proposeSkillPatch: Boolean(options.proposeSkillPatch),
|
|
43
45
|
refreshWorker: Boolean(options.refreshWorker),
|
|
44
46
|
continueTask: options.continueTask
|
|
@@ -46,7 +48,13 @@ export function registerFinishCommand(program) {
|
|
|
46
48
|
console.log(`Added work log: ${result.logId}`);
|
|
47
49
|
console.log(result.logPath);
|
|
48
50
|
if (result.memoryProposalId && result.memoryProposalPath) {
|
|
49
|
-
|
|
51
|
+
if (result.memoryProposalStatus === "applied") {
|
|
52
|
+
console.log(`Applied local memory: ${result.memoryProposalId}`);
|
|
53
|
+
console.log(`Memory items: ${result.memoryCreated ?? 0} created, ${result.memorySkipped ?? 0} skipped`);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log(`Created memory review proposal: ${result.memoryProposalId}`);
|
|
57
|
+
}
|
|
50
58
|
console.log(result.memoryProposalPath);
|
|
51
59
|
}
|
|
52
60
|
if (result.skillPatchId && result.skillPatchPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/commands/finish.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+EAA+E,CAAC;SAC5F,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;SACxC,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,cAAc,CAAC,eAAe,EAAE,6BAA6B,CAAC;SAC9D,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC;SACnD,MAAM,CAAC,mBAAmB,EAAE,kCAAkC,EAAE,eAAe,EAAE,EAAE,CAAC;SACpF,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,EAAE,eAAe,EAAE,EAAE,CAAC;SACtF,MAAM,CAAC,oBAAoB,EAAE,uCAAuC,EAAE,eAAe,EAAE,EAAE,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,EAAE,eAAe,EAAE,EAAE,CAAC;SACnF,MAAM,CAAC,mBAAmB,EAAE,+CAA+C,EAAE,eAAe,EAAE,EAAE,CAAC;SACjG,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC3D,MAAM,CAAC,uBAAuB,EAAE,+BAA+B,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SAC9C,MAAM,CAAC,2BAA2B,EAAE,iCAAiC,EAAE,QAAQ,CAAC;SAChF,MAAM,CAAC,sBAAsB,EAAE,kCAAkC,CAAC;SAClE,MAAM,CAAC,uBAAuB,EAAE,8CAA8C,CAAC;SAC/E,MAAM,CAAC,kBAAkB,EAAE,2CAA2C,CAAC;SACvE,MAAM,CAAC,wBAAwB,EAAE,mDAAmD,CAAC;SACrF,MAAM,CAAC,KAAK,EAAE,OAAgC,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,OAAO,EAAE,OAAO,CAAC,OAA6B;YAC9C,KAAK,EAAE,OAAO,CAAC,KAA2B;YAC1C,MAAM,EAAE,OAAO,CAAC,MAA4B;YAC5C,IAAI,EAAE,OAAO,CAAC,IAAc;YAC5B,MAAM,EAAE,OAAO,CAAC,MAAgB;YAChC,OAAO,EAAE,OAAO,CAAC,MAA8B;YAC/C,SAAS,EAAE,OAAO,CAAC,QAAgC;YACnD,SAAS,EAAE,OAAO,CAAC,QAAgC;YACnD,SAAS,EAAE,OAAO,CAAC,QAAgC;YACnD,SAAS,EAAE,OAAO,CAAC,QAAgC;YACnD,KAAK,EAAE,OAAO,CAAC,KAA2B;YAC1C,QAAQ,EAAE,OAAO,CAAC,QAA8B;YAChD,KAAK,EAAE,OAAO,CAAC,KAA2B;YAC1C,UAAU,EAAE,OAAO,CAAC,UAAgC;YACpD,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;YACnD,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC;YACrD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;YAC7C,YAAY,EAAE,OAAO,CAAC,YAAkC;SACzD,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"finish.js","sourceRoot":"","sources":["../../src/commands/finish.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/skill.js
CHANGED
|
@@ -85,7 +85,7 @@ export function registerSkillCommands(program) {
|
|
|
85
85
|
});
|
|
86
86
|
skill
|
|
87
87
|
.command("propose-patch")
|
|
88
|
-
.description("Create
|
|
88
|
+
.description("Create an explicit-review skill patch proposal from a work log lesson.")
|
|
89
89
|
.requiredOption("--skill <skill>", "Skill name.")
|
|
90
90
|
.option("--from-log <id>", "Work log id or latest.", "latest")
|
|
91
91
|
.action(async (options) => {
|