briefops 1.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.
Files changed (255) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/CODE_OF_CONDUCT.md +13 -0
  3. package/CONTRIBUTING.md +53 -0
  4. package/LICENSE +21 -0
  5. package/README.md +801 -0
  6. package/SECURITY.md +59 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.js +54 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/approve.d.ts +2 -0
  11. package/dist/commands/approve.js +38 -0
  12. package/dist/commands/approve.js.map +1 -0
  13. package/dist/commands/brief.d.ts +2 -0
  14. package/dist/commands/brief.js +81 -0
  15. package/dist/commands/brief.js.map +1 -0
  16. package/dist/commands/codex.d.ts +2 -0
  17. package/dist/commands/codex.js +163 -0
  18. package/dist/commands/codex.js.map +1 -0
  19. package/dist/commands/compare.d.ts +2 -0
  20. package/dist/commands/compare.js +48 -0
  21. package/dist/commands/compare.js.map +1 -0
  22. package/dist/commands/continue.d.ts +2 -0
  23. package/dist/commands/continue.js +66 -0
  24. package/dist/commands/continue.js.map +1 -0
  25. package/dist/commands/doctor.d.ts +2 -0
  26. package/dist/commands/doctor.js +90 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/eval.d.ts +2 -0
  29. package/dist/commands/eval.js +89 -0
  30. package/dist/commands/eval.js.map +1 -0
  31. package/dist/commands/export.d.ts +2 -0
  32. package/dist/commands/export.js +105 -0
  33. package/dist/commands/export.js.map +1 -0
  34. package/dist/commands/finish.d.ts +2 -0
  35. package/dist/commands/finish.js +71 -0
  36. package/dist/commands/finish.js.map +1 -0
  37. package/dist/commands/handoff.d.ts +2 -0
  38. package/dist/commands/handoff.js +77 -0
  39. package/dist/commands/handoff.js.map +1 -0
  40. package/dist/commands/inbox.d.ts +2 -0
  41. package/dist/commands/inbox.js +36 -0
  42. package/dist/commands/inbox.js.map +1 -0
  43. package/dist/commands/init.d.ts +2 -0
  44. package/dist/commands/init.js +13 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/inspect.d.ts +2 -0
  47. package/dist/commands/inspect.js +226 -0
  48. package/dist/commands/inspect.js.map +1 -0
  49. package/dist/commands/log.d.ts +2 -0
  50. package/dist/commands/log.js +96 -0
  51. package/dist/commands/log.js.map +1 -0
  52. package/dist/commands/memory.d.ts +2 -0
  53. package/dist/commands/memory.js +236 -0
  54. package/dist/commands/memory.js.map +1 -0
  55. package/dist/commands/pack.d.ts +2 -0
  56. package/dist/commands/pack.js +42 -0
  57. package/dist/commands/pack.js.map +1 -0
  58. package/dist/commands/prime.d.ts +4 -0
  59. package/dist/commands/prime.js +44 -0
  60. package/dist/commands/prime.js.map +1 -0
  61. package/dist/commands/project.d.ts +2 -0
  62. package/dist/commands/project.js +50 -0
  63. package/dist/commands/project.js.map +1 -0
  64. package/dist/commands/shared.d.ts +3 -0
  65. package/dist/commands/shared.js +24 -0
  66. package/dist/commands/shared.js.map +1 -0
  67. package/dist/commands/skill.d.ts +2 -0
  68. package/dist/commands/skill.js +146 -0
  69. package/dist/commands/skill.js.map +1 -0
  70. package/dist/commands/worker.d.ts +2 -0
  71. package/dist/commands/worker.js +128 -0
  72. package/dist/commands/worker.js.map +1 -0
  73. package/dist/core/adapter.d.ts +22 -0
  74. package/dist/core/adapter.js +167 -0
  75. package/dist/core/adapter.js.map +1 -0
  76. package/dist/core/approval.d.ts +26 -0
  77. package/dist/core/approval.js +86 -0
  78. package/dist/core/approval.js.map +1 -0
  79. package/dist/core/brief.d.ts +47 -0
  80. package/dist/core/brief.js +411 -0
  81. package/dist/core/brief.js.map +1 -0
  82. package/dist/core/codex.d.ts +53 -0
  83. package/dist/core/codex.js +286 -0
  84. package/dist/core/codex.js.map +1 -0
  85. package/dist/core/codexPlugin.d.ts +51 -0
  86. package/dist/core/codexPlugin.js +228 -0
  87. package/dist/core/codexPlugin.js.map +1 -0
  88. package/dist/core/compatibility.d.ts +2 -0
  89. package/dist/core/compatibility.js +16 -0
  90. package/dist/core/compatibility.js.map +1 -0
  91. package/dist/core/config.d.ts +19 -0
  92. package/dist/core/config.js +77 -0
  93. package/dist/core/config.js.map +1 -0
  94. package/dist/core/contextBudget.d.ts +12 -0
  95. package/dist/core/contextBudget.js +22 -0
  96. package/dist/core/contextBudget.js.map +1 -0
  97. package/dist/core/contextCompare.d.ts +27 -0
  98. package/dist/core/contextCompare.js +97 -0
  99. package/dist/core/contextCompare.js.map +1 -0
  100. package/dist/core/continuity.d.ts +25 -0
  101. package/dist/core/continuity.js +73 -0
  102. package/dist/core/continuity.js.map +1 -0
  103. package/dist/core/errors.d.ts +4 -0
  104. package/dist/core/errors.js +12 -0
  105. package/dist/core/errors.js.map +1 -0
  106. package/dist/core/eval.d.ts +38 -0
  107. package/dist/core/eval.js +180 -0
  108. package/dist/core/eval.js.map +1 -0
  109. package/dist/core/exportPolicy.d.ts +7 -0
  110. package/dist/core/exportPolicy.js +17 -0
  111. package/dist/core/exportPolicy.js.map +1 -0
  112. package/dist/core/exportTargets.d.ts +25 -0
  113. package/dist/core/exportTargets.js +292 -0
  114. package/dist/core/exportTargets.js.map +1 -0
  115. package/dist/core/handoff.d.ts +48 -0
  116. package/dist/core/handoff.js +611 -0
  117. package/dist/core/handoff.js.map +1 -0
  118. package/dist/core/inbox.d.ts +15 -0
  119. package/dist/core/inbox.js +56 -0
  120. package/dist/core/inbox.js.map +1 -0
  121. package/dist/core/lock.d.ts +11 -0
  122. package/dist/core/lock.js +99 -0
  123. package/dist/core/lock.js.map +1 -0
  124. package/dist/core/log.d.ts +38 -0
  125. package/dist/core/log.js +93 -0
  126. package/dist/core/log.js.map +1 -0
  127. package/dist/core/memory.d.ts +86 -0
  128. package/dist/core/memory.js +353 -0
  129. package/dist/core/memory.js.map +1 -0
  130. package/dist/core/memoryHygiene.d.ts +25 -0
  131. package/dist/core/memoryHygiene.js +95 -0
  132. package/dist/core/memoryHygiene.js.map +1 -0
  133. package/dist/core/memoryProposal.d.ts +40 -0
  134. package/dist/core/memoryProposal.js +279 -0
  135. package/dist/core/memoryProposal.js.map +1 -0
  136. package/dist/core/output.d.ts +7 -0
  137. package/dist/core/output.js +18 -0
  138. package/dist/core/output.js.map +1 -0
  139. package/dist/core/patch.d.ts +37 -0
  140. package/dist/core/patch.js +220 -0
  141. package/dist/core/patch.js.map +1 -0
  142. package/dist/core/paths.d.ts +33 -0
  143. package/dist/core/paths.js +84 -0
  144. package/dist/core/paths.js.map +1 -0
  145. package/dist/core/prime.d.ts +17 -0
  146. package/dist/core/prime.js +298 -0
  147. package/dist/core/prime.js.map +1 -0
  148. package/dist/core/privacyDoctor.d.ts +14 -0
  149. package/dist/core/privacyDoctor.js +59 -0
  150. package/dist/core/privacyDoctor.js.map +1 -0
  151. package/dist/core/project.d.ts +16 -0
  152. package/dist/core/project.js +73 -0
  153. package/dist/core/project.js.map +1 -0
  154. package/dist/core/securityDoctor.d.ts +14 -0
  155. package/dist/core/securityDoctor.js +96 -0
  156. package/dist/core/securityDoctor.js.map +1 -0
  157. package/dist/core/skill.d.ts +16 -0
  158. package/dist/core/skill.js +81 -0
  159. package/dist/core/skill.js.map +1 -0
  160. package/dist/core/storage.d.ts +20 -0
  161. package/dist/core/storage.js +112 -0
  162. package/dist/core/storage.js.map +1 -0
  163. package/dist/core/tokens.d.ts +5 -0
  164. package/dist/core/tokens.js +24 -0
  165. package/dist/core/tokens.js.map +1 -0
  166. package/dist/core/worker.d.ts +51 -0
  167. package/dist/core/worker.js +312 -0
  168. package/dist/core/worker.js.map +1 -0
  169. package/dist/core/workflow.d.ts +61 -0
  170. package/dist/core/workflow.js +308 -0
  171. package/dist/core/workflow.js.map +1 -0
  172. package/dist/core/workspace.d.ts +7 -0
  173. package/dist/core/workspace.js +214 -0
  174. package/dist/core/workspace.js.map +1 -0
  175. package/dist/index.d.ts +2 -0
  176. package/dist/index.js +16 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/schemas/brief.d.ts +12 -0
  179. package/dist/schemas/brief.js +2 -0
  180. package/dist/schemas/brief.js.map +1 -0
  181. package/dist/schemas/eval.d.ts +96 -0
  182. package/dist/schemas/eval.js +30 -0
  183. package/dist/schemas/eval.js.map +1 -0
  184. package/dist/schemas/handoff.d.ts +33 -0
  185. package/dist/schemas/handoff.js +13 -0
  186. package/dist/schemas/handoff.js.map +1 -0
  187. package/dist/schemas/log.d.ts +51 -0
  188. package/dist/schemas/log.js +19 -0
  189. package/dist/schemas/log.js.map +1 -0
  190. package/dist/schemas/memory.d.ts +112 -0
  191. package/dist/schemas/memory.js +21 -0
  192. package/dist/schemas/memory.js.map +1 -0
  193. package/dist/schemas/memoryProposal.d.ts +181 -0
  194. package/dist/schemas/memoryProposal.js +46 -0
  195. package/dist/schemas/memoryProposal.js.map +1 -0
  196. package/dist/schemas/patch.d.ts +38 -0
  197. package/dist/schemas/patch.js +15 -0
  198. package/dist/schemas/patch.js.map +1 -0
  199. package/dist/schemas/project.d.ts +23 -0
  200. package/dist/schemas/project.js +8 -0
  201. package/dist/schemas/project.js.map +1 -0
  202. package/dist/schemas/skill.d.ts +26 -0
  203. package/dist/schemas/skill.js +9 -0
  204. package/dist/schemas/skill.js.map +1 -0
  205. package/dist/schemas/worker.d.ts +29 -0
  206. package/dist/schemas/worker.js +12 -0
  207. package/dist/schemas/worker.js.map +1 -0
  208. package/dist/version.d.ts +1 -0
  209. package/dist/version.js +3 -0
  210. package/dist/version.js.map +1 -0
  211. package/docs/codex-resume.md +13 -0
  212. package/docs/compatibility.md +49 -0
  213. package/docs/concept.md +13 -0
  214. package/docs/evals.md +18 -0
  215. package/docs/file-format.md +67 -0
  216. package/docs/handoff-briefs.md +9 -0
  217. package/docs/integrations/harnesses.md +74 -0
  218. package/docs/memory-lifecycle.md +23 -0
  219. package/docs/persistent-worker.md +15 -0
  220. package/docs/privacy-model.md +40 -0
  221. package/docs/quickstart.md +74 -0
  222. package/docs/release-checklist.md +68 -0
  223. package/docs/roadmap.md +33 -0
  224. package/docs/superpowers/plans/2026-06-08-briefops-oss-readiness.md +1272 -0
  225. package/docs/superpowers/plans/2026-06-08-codex-first-context-optimization.md +1176 -0
  226. package/docs/token-budget.md +63 -0
  227. package/examples/atlas-q/README.md +15 -0
  228. package/examples/codex-first-context/README.md +48 -0
  229. package/examples/codex-first-context/after-briefops-prime.md +40 -0
  230. package/examples/codex-first-context/before-manual-history-dump.md +18 -0
  231. package/examples/persistent-worker-demo/README.md +15 -0
  232. package/examples/persistent-worker-demo/after-codex-resume.md +17 -0
  233. package/examples/persistent-worker-demo/before-context-dump.md +5 -0
  234. package/examples/persistent-worker-demo/briefops-workspace/codex/prompts/resume_demo.md +29 -0
  235. package/examples/persistent-worker-demo/briefops-workspace/handoffs/handoff_demo.md +50 -0
  236. package/examples/persistent-worker-demo/briefops-workspace/logs/log_20260604_001.yaml +14 -0
  237. package/examples/persistent-worker-demo/briefops-workspace/logs/log_20260604_002.yaml +12 -0
  238. package/examples/persistent-worker-demo/briefops-workspace/memory/decisions.yaml +12 -0
  239. package/examples/persistent-worker-demo/briefops-workspace/memory/deprecated.yaml +1 -0
  240. package/examples/persistent-worker-demo/briefops-workspace/memory/facts.yaml +12 -0
  241. package/examples/persistent-worker-demo/briefops-workspace/memory/incidents.yaml +12 -0
  242. package/examples/persistent-worker-demo/briefops-workspace/memory/lessons.yaml +12 -0
  243. package/examples/persistent-worker-demo/briefops-workspace/memory-proposals/memprop_demo_001.memory-proposal.yaml +23 -0
  244. package/examples/persistent-worker-demo/briefops-workspace/projects/atlas-q.project.md +18 -0
  245. package/examples/persistent-worker-demo/briefops-workspace/skills/backtest-validation.skill.md +13 -0
  246. package/examples/persistent-worker-demo/briefops-workspace/skills/risk-review.skill.md +15 -0
  247. package/examples/persistent-worker-demo/briefops-workspace/workers/quant-reviewer.worker.yaml +12 -0
  248. package/examples/persistent-worker-demo/briefops-workspace/workers/summaries/quant-reviewer.summary.md +44 -0
  249. package/package.json +59 -0
  250. package/plugins/briefops-codex/.codex-plugin/plugin.json +39 -0
  251. package/plugins/briefops-codex/README.md +44 -0
  252. package/plugins/briefops-codex/skills/briefops-continue-worker/SKILL.md +22 -0
  253. package/plugins/briefops-codex/skills/briefops-finish-task/SKILL.md +22 -0
  254. package/plugins/briefops-codex/skills/briefops-prime-context/SKILL.md +24 -0
  255. package/plugins/briefops-codex/skills/briefops-review-memory/SKILL.md +27 -0
package/README.md ADDED
@@ -0,0 +1,801 @@
1
+ # BriefOps
2
+
3
+ BriefOps is a local-first, token-aware persistent work history layer for AI coding agents.
4
+
5
+ The goal is not just to generate a good brief. The goal is to let a user finish an AI coding task, promote useful work history into 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.
6
+
7
+ ```bash
8
+ briefops prime --task "Start the next task." --format codex --max-tokens 800
9
+ briefops finish ...
10
+ briefops memory proposal-show latest
11
+ briefops memory proposal-apply latest
12
+ briefops continue --worker <worker> --task "<next task>" --pack
13
+ ```
14
+
15
+ BriefOps does not run agents. It prepares deterministic local context for them.
16
+ It should not maximize context. It preserves continuity by selecting the smallest useful information that should survive into the next task.
17
+
18
+ ## What BriefOps Is
19
+
20
+ - a local CLI
21
+ - a file-based skill, project, memory, worker, and work-log store
22
+ - a deterministic memory proposal and approval workflow
23
+ - a token-aware brief, handoff, Codex mission, and resume generator
24
+ - a compact first-context primer for fresh Codex threads
25
+ - a persistent worker continuity layer for fresh AI coding threads
26
+ - router exports for local harnesses like Codex, Claude Code, and Cursor
27
+
28
+ ## What BriefOps Is Not
29
+
30
+ BriefOps is intentionally scoped. It is not:
31
+
32
+ - an LLM client
33
+ - a vector database
34
+ - a SaaS product
35
+ - a web UI
36
+ - an agent runtime
37
+ - a multi-agent orchestrator
38
+ - a cloud sync service
39
+ - an MCP server
40
+
41
+ Everything important lives in local files under `.briefops/`.
42
+
43
+ BriefOps can generate Codex skill-plugin assets, but the plugin calls the local CLI and local `.briefops/` workspace. No hosted service or required marketplace is involved.
44
+
45
+ ## Release Status
46
+
47
+ BriefOps 1.0 is intended for developers who want a local-first memory and context ledger for AI coding agents. The public CLI and file-format compatibility policy is documented in `docs/compatibility.md` and `docs/file-format.md`. The core safety principles are stable:
48
+
49
+ - local files first
50
+ - no hosted service required
51
+ - no required MCP server
52
+ - human-approved memory
53
+ - shared-only export controls
54
+ - deterministic CLI behavior
55
+
56
+ For privacy guarantees, see `docs/privacy-model.md`.
57
+
58
+ ## Open Source Trust Boundary
59
+
60
+ Before publishing a repository or sharing generated context, review:
61
+
62
+ - `SECURITY.md` for vulnerability reporting and local data handling.
63
+ - `CONTRIBUTING.md` for development checks and safety rules.
64
+ - `CHANGELOG.md` for release notes.
65
+ - `docs/file-format.md` and `docs/compatibility.md` for the 1.0 local data contract.
66
+ - `docs/privacy-model.md` for export-policy and local data boundaries.
67
+
68
+ ## Install
69
+
70
+ From this repository:
71
+
72
+ ```bash
73
+ npm install
74
+ npm run build
75
+ npm link
76
+ ```
77
+
78
+ Run during development without linking:
79
+
80
+ ```bash
81
+ npm run dev -- --help
82
+ ```
83
+
84
+ Check the CLI:
85
+
86
+ ```bash
87
+ briefops --version
88
+ briefops --help
89
+ ```
90
+
91
+ ## 5-Minute Codex Quickstart
92
+
93
+ This is the primary BriefOps workflow.
94
+
95
+ ### 1. Initialize
96
+
97
+ ```bash
98
+ briefops init
99
+ ```
100
+
101
+ This creates a local `.briefops/` workspace.
102
+
103
+ ### 2. Install Codex Guidance
104
+
105
+ ```bash
106
+ briefops codex install
107
+ briefops codex plugin install
108
+ ```
109
+
110
+ This creates or updates `AGENTS.md` with BriefOps guidance and creates `.briefops/codex/prompts/`.
111
+ `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.
112
+
113
+ ### 3. Create A Skill
114
+
115
+ ```bash
116
+ briefops skill create risk-review \
117
+ --description "Review changes for risk and governance violations" \
118
+ --tags "review,risk,governance"
119
+ ```
120
+
121
+ A skill is a reusable working protocol.
122
+
123
+ ### 4. Create Project Context
124
+
125
+ ```bash
126
+ briefops project create atlas-q \
127
+ --description "Rule-based non-ML quantitative trading system" \
128
+ --tags "quant,trading"
129
+ ```
130
+
131
+ A project stores durable facts and constraints.
132
+
133
+ ### 5. Create A Worker
134
+
135
+ ```bash
136
+ briefops worker create quant-reviewer \
137
+ --project atlas-q \
138
+ --skills "risk-review" \
139
+ --style "governance-first,no strategy drift without approval"
140
+
141
+ briefops worker use quant-reviewer
142
+ ```
143
+
144
+ 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.
145
+
146
+ ### 6. Prime A Fresh Codex Thread
147
+
148
+ ```bash
149
+ briefops prime \
150
+ --task "Review this PR for risk policy violations." \
151
+ --format codex \
152
+ --max-tokens 800
153
+ ```
154
+
155
+ Paste the compact prime context into Codex first. It is smaller than a full resume pack and is designed to reduce repeated history/context lookup.
156
+
157
+ Codex-format prime output includes an operating note for Codex: use the selected worker/project context, inspect only files needed for the task, and never apply memory or skill patches without user approval.
158
+
159
+ ### 7. Start A Codex Mission When Needed
160
+
161
+ ```bash
162
+ briefops codex mission \
163
+ --worker quant-reviewer \
164
+ --task "Review this PR for risk policy violations." \
165
+ --mode loop \
166
+ --completion-promise "Deliver verified findings and no unresolved blocking risk." \
167
+ --save
168
+ ```
169
+
170
+ Paste the generated mission prompt into Codex.
171
+
172
+ ### 8. Finish The Task
173
+
174
+ When Codex finishes, record what happened:
175
+
176
+ ```bash
177
+ briefops finish \
178
+ --project atlas-q \
179
+ --skill risk-review \
180
+ --worker quant-reviewer \
181
+ --task "Review this PR for risk policy violations." \
182
+ --result "Found missing turnover warning check." \
183
+ --lesson "Verify turnover warning threshold when rebalance logic changes." \
184
+ --decision "Treat unverified slippage assumptions as blocking before merge recommendation." \
185
+ --open-risk "Slippage assumptions remain unverified." \
186
+ --next-step "Continue the review and finish unresolved slippage checks." \
187
+ --commands "npm test,npm run build"
188
+ ```
189
+
190
+ `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.
191
+
192
+ ### 9. Review And Apply Memory
193
+
194
+ Memory is human-approved. Review the proposal:
195
+
196
+ ```bash
197
+ briefops memory proposal-show latest
198
+ ```
199
+
200
+ Apply it only when useful:
201
+
202
+ ```bash
203
+ briefops memory proposal-apply latest
204
+ ```
205
+
206
+ You can also use the convenience command:
207
+
208
+ ```bash
209
+ briefops approve latest
210
+ ```
211
+
212
+ ### 10. Continue In A Fresh Thread
213
+
214
+ ```bash
215
+ briefops continue \
216
+ --worker quant-reviewer \
217
+ --task "Continue the review and finish unresolved slippage checks." \
218
+ --pack
219
+ ```
220
+
221
+ `continue --pack` checks continuity health, warns about pending memory proposals, refreshes worker intelligence, saves a handoff, saves a Codex resume prompt, saves a portable resume pack, and prints all generated paths.
222
+
223
+ ## Shared-Only Export Path
224
+
225
+ Use shared-only output when context may leave the local terminal or local Codex session:
226
+
227
+ ```bash
228
+ briefops prime --task "Continue unresolved checks." --format codex --export-policy shared-only
229
+ briefops pack resume --worker quant-reviewer --task "Continue unresolved checks." --export-policy shared-only
230
+ ```
231
+
232
+ `shared-only` includes only memory items where `visibility: shared` and `exportable: true`.
233
+
234
+ It omits private memory, local project file details, raw work logs, open risks, local next steps, private worker lessons, private incidents, recent work history, and private metadata counts.
235
+
236
+ `local-private` is intended for local terminal/Codex use only and may include local private continuity context.
237
+
238
+ BriefOps skills must never auto-approve memory proposals or skill patches.
239
+
240
+ ## Local Harness Export
241
+
242
+ Generate local harness instruction files when you want Codex, Claude Code, or Cursor to know how to call BriefOps:
243
+
244
+ ```bash
245
+ briefops export agents-md
246
+ briefops export claude-md
247
+ briefops export cursor-rules
248
+ briefops export all
249
+ ```
250
+
251
+ Exports are routers, not memory dumps. They tell local AI tools to run `briefops prime`, `briefops finish`, `briefops approve`, and `briefops continue --pack`.
252
+
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.
254
+
255
+ ## Context Minimalism
256
+
257
+ Inspect the built-in budget policy:
258
+
259
+ ```bash
260
+ briefops inspect budget
261
+ ```
262
+
263
+ Compare raw local candidate context to compact prime output:
264
+
265
+ ```bash
266
+ briefops compare context --worker quant-reviewer --task "Review this PR."
267
+ ```
268
+
269
+ BriefOps should not become the context bloat it was built to prevent. Use `prime` first, then generate a handoff or resume pack only when continuity needs more detail.
270
+
271
+ ## Memory Hygiene
272
+
273
+ Not every task deserves durable memory. Use durable memory for decisions, lessons, incidents, open risks, and reusable constraints:
274
+
275
+ ```bash
276
+ briefops finish --importance trivial --task "Fix typo" --result "Fixed typo."
277
+ briefops finish --no-memory-proposal --task "Experiment" --result "Discarded."
278
+ briefops memory hygiene
279
+ briefops memory prune --dry-run
280
+ ```
281
+
282
+ `memory hygiene` and `memory prune --dry-run` are read-only in this release. They report bloat, stale items, deprecated items, and duplicate-like memory without deleting anything.
283
+
284
+ ## Privacy Check
285
+
286
+ Run this before publishing a repository, sharing a pack, or attaching BriefOps context outside your machine:
287
+
288
+ ```bash
289
+ briefops doctor --privacy
290
+ briefops doctor --privacy --fix-gitignore
291
+ ```
292
+
293
+ BriefOps is local-first, but `.briefops/` may contain private logs and memory. Keep `.briefops/` out of source control unless you intentionally curated the contents.
294
+
295
+ `doctor --privacy` checks local memory sharing hazards, including `.briefops/` gitignore coverage, private/exportable memory, and secret-like memory strings.
296
+
297
+ ## Pre-Publish Readiness
298
+
299
+ Before `npm publish`, run the local release checks and review the package contents:
300
+
301
+ ```bash
302
+ npm run build
303
+ npm test
304
+ npm pack --dry-run
305
+ ```
306
+
307
+ Run `npm audit --audit-level=moderate` or `npm run verify:release` only from an environment where sending dependency metadata to the npm registry is acceptable.
308
+
309
+ Confirm:
310
+
311
+ - generated harness files are routers, not `.briefops` memory dumps
312
+ - `briefops --version` matches `package.json`
313
+ - `.briefops/` is ignored or intentionally curated
314
+ - `SECURITY.md`, `CHANGELOG.md`, and the release checklist reflect the shipped behavior
315
+ - `npm pack --dry-run` includes `dist`, docs, examples, plugins, README, LICENSE, SECURITY, CONTRIBUTING, CODE_OF_CONDUCT, and CHANGELOG
316
+
317
+ ## Harness Integrations
318
+
319
+ BriefOps works best as a local memory ledger beside stronger harnesses such as Codex, LazyCodex, OmO, Claude Code, Cursor, and OpenCode. See `docs/integrations/harnesses.md`.
320
+
321
+ ## Finish / Continue UX
322
+
323
+ `finish` records what happened.
324
+
325
+ It writes a work log, proposes durable memory when the log contains useful candidates, can propose a skill patch, can refresh the worker summary, and prints the next `briefops continue` command.
326
+
327
+ `continue` prepares the same worker for a fresh thread.
328
+
329
+ It inspects continuity health, warns about 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.
330
+
331
+ ```bash
332
+ briefops finish \
333
+ --worker quant-reviewer \
334
+ --project atlas-q \
335
+ --skill risk-review \
336
+ --task "Review rebalance logic." \
337
+ --result "Found missing turnover warning check." \
338
+ --lesson "Always verify turnover warning threshold." \
339
+ --next-step "Continue unresolved slippage checks."
340
+
341
+ briefops memory proposal-show latest
342
+ briefops memory proposal-apply latest
343
+
344
+ briefops continue \
345
+ --worker quant-reviewer \
346
+ --task "Continue unresolved slippage checks." \
347
+ --pack
348
+ ```
349
+
350
+ If pending memory proposals exist, `continue` prints explicit review, apply, and reject commands. It never applies memory automatically.
351
+
352
+ ## Portable Resume Pack
353
+
354
+ Use `pack resume` when Codex cannot access your local `.briefops` workspace or when you want one markdown file to paste or attach to a fresh thread.
355
+
356
+ ```bash
357
+ briefops pack resume \
358
+ --worker quant-reviewer \
359
+ --task "Continue unresolved slippage checks."
360
+ ```
361
+
362
+ Portable packs are self-contained and include continuity context directly. Review packs before sharing outside your local machine. They may include local project memory, decisions, lessons, risks, and worker history.
363
+
364
+ By default, packs include private memory because pack generation is an explicit local user action. Memory still stores `visibility` and `exportable` metadata for future filtering:
365
+
366
+ ```bash
367
+ briefops memory add \
368
+ --type lessons \
369
+ --content "Always verify turnover warning threshold." \
370
+ --visibility shared \
371
+ --exportable
372
+ ```
373
+
374
+ Defaults:
375
+
376
+ ```yaml
377
+ visibility: private
378
+ exportable: false
379
+ ```
380
+
381
+ BriefOps does not add cloud sync or encryption.
382
+
383
+ ## Approvals
384
+
385
+ Memory and skill changes are human-approved.
386
+
387
+ Use explicit proposal commands:
388
+
389
+ ```bash
390
+ briefops memory proposal-show latest
391
+ briefops memory proposal-apply latest
392
+ briefops memory proposal-reject latest
393
+
394
+ briefops skill patch-show latest
395
+ briefops skill apply-patch risk-review --patch latest
396
+ briefops skill reject-patch latest
397
+ ```
398
+
399
+ Or use the convenience approval command:
400
+
401
+ ```bash
402
+ briefops approve latest
403
+ briefops approve memory latest
404
+ briefops approve skill-patch latest
405
+ ```
406
+
407
+ `briefops approve <id|latest>` tries memory first. If no matching memory proposal exists, it tries a skill patch. It applies at most one item.
408
+
409
+ ## Inbox
410
+
411
+ Use `inbox` to see pending memory proposals, skill patches, open risks, stale or deprecated memory counts, and recommended next commands.
412
+
413
+ ```bash
414
+ briefops inbox
415
+ briefops inbox --project atlas-q
416
+ briefops inbox --worker quant-reviewer
417
+ briefops inbox --skill risk-review
418
+ ```
419
+
420
+ `inbox` is read-only. It does not mutate files.
421
+
422
+ ## Core Concepts
423
+
424
+ | Concept | What It Is | Stored At |
425
+ |---|---|---|
426
+ | Skill | Reusable task protocol | `.briefops/skills/*.skill.md` |
427
+ | Project | Durable project facts and constraints | `.briefops/projects/*.project.md` |
428
+ | Worker | Persistent skill bundle and judgment profile | `.briefops/workers/*.worker.yaml` |
429
+ | Worker Summary | Refreshed worker intelligence | `.briefops/workers/summaries/*.summary.md` |
430
+ | Work Log | Completed task record | `.briefops/logs/*.yaml` |
431
+ | Memory | Curated facts, decisions, lessons, incidents | `.briefops/memory/*.yaml` |
432
+ | Memory Proposal | Human-reviewed memory candidate | `.briefops/memory-proposals/*.yaml` |
433
+ | Skill Patch | Human-reviewed skill improvement | `.briefops/patches/*.patch.yaml` |
434
+ | Handoff | Fresh-thread continuity brief | `.briefops/handoffs/*.md` |
435
+ | Codex Prompt | Mission or resume prompt | `.briefops/codex/prompts/*.md` |
436
+ | Portable Pack | Self-contained resume markdown | `.briefops/codex/prompts/*resume-pack*.md` |
437
+ | Eval | Deterministic checklist case | `.briefops/evals/*.eval.yaml` |
438
+
439
+ ## Memory
440
+
441
+ Manual memory add:
442
+
443
+ ```bash
444
+ briefops memory add \
445
+ --type lessons \
446
+ --project atlas-q \
447
+ --skill risk-review \
448
+ --content "Always verify turnover warning threshold when rebalance logic changes." \
449
+ --tags "rebalance,turnover,risk"
450
+ ```
451
+
452
+ Memory types:
453
+
454
+ - `facts`
455
+ - `decisions`
456
+ - `lessons`
457
+ - `incidents`
458
+ - `deprecated`
459
+
460
+ Statuses:
461
+
462
+ - `active`
463
+ - `stale`
464
+ - `deprecated`
465
+ - `superseded`
466
+ - `archived`
467
+
468
+ Visibility:
469
+
470
+ - `private`
471
+ - `shared`
472
+ - `public`
473
+
474
+ List, show, and update memory:
475
+
476
+ ```bash
477
+ briefops memory list
478
+ briefops memory list --project atlas-q --status active
479
+ briefops memory show <memory-id>
480
+ briefops memory update-status <memory-id> --status archived
481
+ ```
482
+
483
+ Promote useful work-log items through a proposal:
484
+
485
+ ```bash
486
+ briefops memory propose-from-log latest
487
+ briefops memory proposal-list --status proposed
488
+ briefops memory proposal-show <proposal-id|latest>
489
+ briefops memory proposal-apply <proposal-id|latest>
490
+ briefops memory proposal-reject <proposal-id|latest>
491
+ ```
492
+
493
+ Extraction is deterministic and local. Lessons, decisions, incidents, open risks, prefixed notes, and policy-like next steps can become proposal items. Proposal generation and approval are local file-backed operations protected by workspace locks.
494
+
495
+ ## Skills And Skill Patches
496
+
497
+ Create and inspect skills:
498
+
499
+ ```bash
500
+ briefops skill create risk-review
501
+ briefops skill list
502
+ briefops skill show risk-review
503
+ briefops skill history risk-review
504
+ ```
505
+
506
+ Propose, review, apply, or reject skill patches:
507
+
508
+ ```bash
509
+ briefops skill propose-patch --skill risk-review --from-log latest
510
+ briefops skill patch-list
511
+ briefops skill patch-show <patch-id|latest>
512
+ briefops skill apply-patch risk-review --patch <patch-id|latest>
513
+ briefops skill reject-patch <patch-id|latest>
514
+ ```
515
+
516
+ Skill patches are generated from work-log lessons and are never auto-applied.
517
+
518
+ ## Projects And Workers
519
+
520
+ Projects:
521
+
522
+ ```bash
523
+ briefops project create atlas-q
524
+ briefops project list
525
+ briefops project show atlas-q
526
+ ```
527
+
528
+ Workers:
529
+
530
+ ```bash
531
+ briefops worker create quant-reviewer --project atlas-q --skills "risk-review"
532
+ briefops worker list
533
+ briefops worker show quant-reviewer
534
+ briefops worker refresh-summary quant-reviewer
535
+ briefops worker intelligence quant-reviewer
536
+ briefops worker inspect quant-reviewer
537
+ ```
538
+
539
+ Use a worker for fresh-thread continuity:
540
+
541
+ ```bash
542
+ briefops codex mission --worker quant-reviewer --task "Review this PR." --mode loop --save
543
+ briefops continue --worker quant-reviewer --task "Continue prior work." --pack
544
+ ```
545
+
546
+ ## Briefs, Handoffs, And Codex Prompts
547
+
548
+ Generate a plain brief:
549
+
550
+ ```bash
551
+ briefops brief generate \
552
+ --worker quant-reviewer \
553
+ --task "Review this PR for risk policy violations." \
554
+ --adapter codex
555
+ ```
556
+
557
+ Generate a handoff:
558
+
559
+ ```bash
560
+ briefops handoff generate \
561
+ --project atlas-q \
562
+ --worker quant-reviewer \
563
+ --task "Continue unresolved slippage checks." \
564
+ --save
565
+ ```
566
+
567
+ Add `--export-policy shared-only` to handoff or Codex resume output when the artifact may leave the local workspace. Shared-only handoffs, resumes, and packs omit private continuity content and private metadata counts.
568
+
569
+ Generate a Codex resume prompt:
570
+
571
+ ```bash
572
+ briefops codex resume \
573
+ --worker quant-reviewer \
574
+ --task "Continue unresolved slippage checks." \
575
+ --from-handoff latest \
576
+ --mode loop \
577
+ --save
578
+ ```
579
+
580
+ List and inspect saved artifacts:
581
+
582
+ ```bash
583
+ briefops brief list
584
+ briefops brief show latest
585
+ briefops brief inspect latest
586
+
587
+ briefops handoff list
588
+ briefops handoff show latest
589
+ briefops handoff inspect latest
590
+ ```
591
+
592
+ ## Inspect, Doctor, And Evals
593
+
594
+ ```bash
595
+ briefops doctor
596
+ briefops doctor --privacy
597
+ briefops doctor --security
598
+ briefops doctor --security --fix-stale-locks
599
+ briefops inspect workspace
600
+ briefops inspect memory
601
+ briefops inspect tokens --worker quant-reviewer --task "Review this PR." --budget 2500
602
+ briefops inspect retrieval --project atlas-q --worker quant-reviewer --task "Continue slippage checks."
603
+ briefops inspect continuity --project atlas-q --worker quant-reviewer
604
+ ```
605
+
606
+ `doctor --security --fix-stale-locks` removes stale locks only; it does not remove fresh locks or other workspace files.
607
+
608
+ Evals are deterministic checklist checks. They do not call an LLM judge.
609
+
610
+ ```bash
611
+ briefops eval create turnover-missing-case \
612
+ --skill risk-review \
613
+ --project atlas-q \
614
+ --input "Review rebalance logic." \
615
+ --expected "turnover warning threshold"
616
+
617
+ briefops eval run --skill risk-review --project atlas-q
618
+ briefops eval list
619
+ briefops eval show turnover-missing-case
620
+ ```
621
+
622
+ ## Token Budget Philosophy
623
+
624
+ BriefOps uses a deterministic estimate:
625
+
626
+ ```text
627
+ estimated_tokens = ceil(character_count / 4)
628
+ ```
629
+
630
+ When generated briefs, handoffs, or resumes are too large, BriefOps trims lower-priority context while preserving the task and core continuity contract. If a portable pack exceeds the requested budget, BriefOps prints a warning and preserves core continuity content.
631
+
632
+ ## File Structure
633
+
634
+ `briefops init` creates:
635
+
636
+ ```text
637
+ .briefops/
638
+ +-- config.yaml
639
+ +-- skills/
640
+ +-- projects/
641
+ +-- memory/
642
+ | +-- facts.yaml
643
+ | +-- decisions.yaml
644
+ | +-- lessons.yaml
645
+ | +-- incidents.yaml
646
+ | +-- deprecated.yaml
647
+ +-- memory-proposals/
648
+ +-- workers/
649
+ | +-- summaries/
650
+ +-- logs/
651
+ +-- handoffs/
652
+ +-- briefs/
653
+ +-- codex/
654
+ | +-- prompts/
655
+ +-- evals/
656
+ | +-- results/
657
+ +-- patches/
658
+ +-- templates/
659
+ +-- brief.generic.md
660
+ +-- brief.codex.md
661
+ +-- brief.claude-code.md
662
+ ```
663
+
664
+ By default `.briefops/` is ignored by git in this repository. This keeps local operational memory out of public commits unless you intentionally choose otherwise.
665
+
666
+ Because `.briefops/` is local/private, Codex does not automatically see it. Provide a saved Codex resume prompt or portable resume pack when starting a fresh thread that needs prior worker context.
667
+
668
+ ## Command Reference
669
+
670
+ ```bash
671
+ briefops init
672
+ briefops doctor
673
+ briefops doctor --privacy
674
+ briefops doctor --security
675
+ briefops inbox
676
+ briefops inbox --project <project>
677
+ briefops inbox --worker <worker>
678
+ briefops inbox --skill <skill>
679
+
680
+ briefops finish --worker <worker> --project <project> --skill <skill> --task "<task>" --result "<result>"
681
+ briefops continue --worker <worker> --task "<task>"
682
+ briefops continue --worker <worker> --task "<task>" --pack
683
+ briefops pack resume --worker <worker> --task "<task>"
684
+
685
+ briefops approve <id|latest>
686
+ briefops approve memory <id|latest>
687
+ briefops approve skill-patch <id|latest>
688
+
689
+ briefops skill create <name>
690
+ briefops skill list
691
+ briefops skill show <name>
692
+ briefops skill diff <name>
693
+ briefops skill history <name>
694
+ briefops skill propose-patch --skill <name> --from-log <log-id|latest>
695
+ briefops skill patch-list
696
+ briefops skill patch-show <patch-id|latest>
697
+ briefops skill apply-patch <name> --patch <patch-id|latest>
698
+ briefops skill reject-patch <patch-id|latest>
699
+
700
+ briefops project create <name>
701
+ briefops project list
702
+ briefops project show <name>
703
+
704
+ briefops memory add --type <type> --content "<content>"
705
+ briefops memory add --type lessons --content "<content>" --visibility shared --exportable
706
+ briefops memory list
707
+ briefops memory show <id>
708
+ briefops memory update-status <id> --status <status>
709
+ briefops memory propose-from-log <log-id|latest>
710
+ briefops memory proposal-list --status proposed
711
+ briefops memory proposal-show <proposal-id|latest>
712
+ briefops memory proposal-apply <proposal-id|latest>
713
+ briefops memory proposal-reject <proposal-id|latest>
714
+
715
+ briefops brief generate --skill <name> --project <name> --task "<task>" --adapter codex
716
+ briefops brief generate --worker <worker> --task "<task>" --adapter codex
717
+ briefops brief list
718
+ briefops brief show <id|latest>
719
+ briefops brief inspect <id|latest>
720
+
721
+ briefops codex install
722
+ briefops codex mission --worker <worker> --task "<task>" --mode loop --save
723
+ briefops codex plan --project <project> --idea "<what to build>" --save
724
+ briefops codex resume --worker <worker> --task "<task>" --from-handoff <id|latest> --mode loop --save
725
+
726
+ briefops log add
727
+ briefops log list
728
+ briefops log show <id|latest>
729
+
730
+ briefops worker create <worker>
731
+ briefops worker list
732
+ briefops worker show <worker>
733
+ briefops worker summary <worker>
734
+ briefops worker intelligence <worker>
735
+ briefops worker refresh-summary <worker>
736
+ briefops worker inspect <worker>
737
+
738
+ briefops handoff generate --project <project> --worker <worker> --task "<task>" --save
739
+ briefops handoff list
740
+ briefops handoff show <id|latest>
741
+ briefops handoff inspect <id|latest>
742
+
743
+ briefops inspect tokens
744
+ briefops inspect workspace
745
+ briefops inspect memory
746
+ briefops inspect retrieval --project <project> --worker <worker> --task "<task>"
747
+ briefops inspect continuity --project <project> --worker <worker>
748
+
749
+ briefops eval create <name>
750
+ briefops eval list
751
+ briefops eval run --skill <skill> --project <project>
752
+ briefops eval show <id>
753
+ ```
754
+
755
+ ## Troubleshooting
756
+
757
+ Workspace not found:
758
+
759
+ ```bash
760
+ briefops init
761
+ ```
762
+
763
+ Pending memory before continuing:
764
+
765
+ ```bash
766
+ briefops memory proposal-list --status proposed
767
+ briefops memory proposal-show latest
768
+ briefops memory proposal-apply latest
769
+ ```
770
+
771
+ Need a fresh thread without `.briefops` access:
772
+
773
+ ```bash
774
+ briefops continue --worker <worker> --task "<task>" --pack
775
+ ```
776
+
777
+ Brief or resume is too long:
778
+
779
+ ```bash
780
+ briefops inspect tokens --worker <worker> --task "<task>" --budget 2500
781
+ ```
782
+
783
+ Check continuity health:
784
+
785
+ ```bash
786
+ briefops inspect continuity --project <project> --worker <worker>
787
+ ```
788
+
789
+ ## Development
790
+
791
+ ```bash
792
+ npm install
793
+ npm run build
794
+ npm test
795
+ ```
796
+
797
+ Run the CLI in development:
798
+
799
+ ```bash
800
+ npm run dev -- --help
801
+ ```