briefops 2.0.0 → 2.1.2

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 (68) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +48 -1
  3. package/dist/cli.js +4 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/doctor.js +27 -0
  6. package/dist/commands/doctor.js.map +1 -1
  7. package/dist/commands/harness.d.ts +2 -0
  8. package/dist/commands/harness.js +56 -0
  9. package/dist/commands/harness.js.map +1 -0
  10. package/dist/commands/memory.js +20 -3
  11. package/dist/commands/memory.js.map +1 -1
  12. package/dist/commands/obs.d.ts +2 -0
  13. package/dist/commands/obs.js +51 -0
  14. package/dist/commands/obs.js.map +1 -0
  15. package/dist/core/codex.js +18 -2
  16. package/dist/core/codex.js.map +1 -1
  17. package/dist/core/codexPlugin.js +49 -1
  18. package/dist/core/codexPlugin.js.map +1 -1
  19. package/dist/core/exportTargets.js +20 -3
  20. package/dist/core/exportTargets.js.map +1 -1
  21. package/dist/core/harness.d.ts +27 -0
  22. package/dist/core/harness.js +342 -0
  23. package/dist/core/harness.js.map +1 -0
  24. package/dist/core/lock.d.ts +1 -0
  25. package/dist/core/lock.js +18 -4
  26. package/dist/core/lock.js.map +1 -1
  27. package/dist/core/memory.d.ts +4 -1
  28. package/dist/core/memory.js +54 -2
  29. package/dist/core/memory.js.map +1 -1
  30. package/dist/core/memoryHygiene.d.ts +11 -0
  31. package/dist/core/memoryHygiene.js +93 -0
  32. package/dist/core/memoryHygiene.js.map +1 -1
  33. package/dist/core/memoryProposal.js +21 -8
  34. package/dist/core/memoryProposal.js.map +1 -1
  35. package/dist/core/observability.d.ts +36 -0
  36. package/dist/core/observability.js +70 -0
  37. package/dist/core/observability.js.map +1 -0
  38. package/dist/core/securityDoctor.js +3 -5
  39. package/dist/core/securityDoctor.js.map +1 -1
  40. package/dist/core/strictDoctor.d.ts +22 -0
  41. package/dist/core/strictDoctor.js +95 -0
  42. package/dist/core/strictDoctor.js.map +1 -0
  43. package/dist/schemas/memory.d.ts +100 -0
  44. package/dist/schemas/memory.js +9 -1
  45. package/dist/schemas/memory.js.map +1 -1
  46. package/dist/schemas/memoryProposal.d.ts +115 -0
  47. package/dist/schemas/memoryProposal.js +2 -1
  48. package/dist/schemas/memoryProposal.js.map +1 -1
  49. package/dist/version.d.ts +1 -1
  50. package/dist/version.js +1 -1
  51. package/docs/compatibility.md +7 -3
  52. package/docs/file-format.md +3 -1
  53. package/docs/impact-report.md +140 -0
  54. package/docs/integrations/harnesses.md +9 -0
  55. package/docs/master-harness.md +610 -0
  56. package/docs/privacy-model.md +2 -0
  57. package/docs/quickstart.md +25 -0
  58. package/docs/release-checklist.md +16 -2
  59. package/docs/roadmap.md +12 -5
  60. package/docs/token-budget.md +8 -0
  61. package/package.json +2 -2
  62. package/plugins/briefops-codex/.codex-plugin/plugin.json +2 -1
  63. package/plugins/briefops-codex/README.md +10 -0
  64. package/plugins/briefops-codex/skills/briefops-continue-worker/SKILL.md +2 -0
  65. package/plugins/briefops-codex/skills/briefops-finish-task/SKILL.md +2 -0
  66. package/plugins/briefops-codex/skills/briefops-prime-context/SKILL.md +9 -1
  67. package/plugins/briefops-codex/skills/briefops-review-memory/SKILL.md +2 -0
  68. package/plugins/briefops-codex/skills/briefops-route-task/SKILL.md +35 -0
@@ -32,7 +32,8 @@ BriefOps stores all user data under `.briefops/`. Version 1.0 treats these files
32
32
 
33
33
  - `.briefops/memory/<category>.yaml`
34
34
  - Shape: `items: MemoryItem[]`.
35
- - Stable item fields: `id`, `type`, `status`, `project`, `skill`, `content`, `source`, `created_at`, `tags`, `visibility`, `exportable`.
35
+ - Stable item fields: `id`, `type`, `status`, `project`, `skill`, `content`, `source`, `created_at`, `tags`, `visibility`, `exportable`, `evidence`.
36
+ - `evidence` is an optional array of path anchors with stable fields: `path`, `start_line`, `end_line`, `sha256`, `note`.
36
37
  - Supported statuses: `active`, `stale`, `deprecated`, `superseded`, `archived`.
37
38
  - Supported visibility values: `private`, `shared`, `public`.
38
39
 
@@ -46,6 +47,7 @@ BriefOps stores all user data under `.briefops/`. Version 1.0 treats these files
46
47
  - Stable fields: `id`, `created_at`, `from_log`, `status`, `project`, `skill`, `worker`, `items`, `applied_at`, `rejected_at`.
47
48
  - Legacy `proposals` arrays remain readable and are normalized to `items`.
48
49
  - Proposal entries use memory item fields plus `category` and `rationale`.
50
+ - Proposal entries may carry `evidence` anchors copied from changed-file paths in the source work log.
49
51
 
50
52
  - `.briefops/patches/*.patch.yaml`
51
53
  - Stable fields: `id`, `created_at`, `skill`, `from_log`, `status`, `target_section`, `lessons`, `additions`, `applied_at`, `rejected_at`.
@@ -0,0 +1,140 @@
1
+ # BriefOps Impact Report v0
2
+
3
+ Use this template to record whether BriefOps impact is measured, estimated, or
4
+ unmeasured for one project task or reporting period. Keep the field names stable.
5
+
6
+ ## Report Values
7
+
8
+ project:
9
+ task_or_period:
10
+ briefops_adoption_point:
11
+ token_usage_status: unmeasured
12
+ input_tokens:
13
+ output_tokens:
14
+ total_tokens:
15
+ context_baseline:
16
+ context_used:
17
+ context_reduction_estimate:
18
+ artifact_coverage:
19
+ handoff_status:
20
+ validation_status:
21
+ conclusion: unmeasured
22
+
23
+ ## Field Definitions
24
+
25
+ `project`: Project, repository, workspace, or product area being reported.
26
+
27
+ `task_or_period`: The task, milestone, sprint, date range, or release covered by
28
+ this report. Use one report per task or period.
29
+
30
+ `briefops_adoption_point`: Where BriefOps entered the workflow, such as before
31
+ planning, before implementation, during handoff, or after validation.
32
+
33
+ `token_usage_status`: Evidence level for token usage values. Allowed values:
34
+ `measured`, `estimated`, `unmeasured`.
35
+
36
+ `input_tokens`: Input token count for the covered task or period. Leave blank or
37
+ write `unmeasured` when no credible value exists.
38
+
39
+ `output_tokens`: Output token count for the covered task or period. Leave blank
40
+ or write `unmeasured` when no credible value exists.
41
+
42
+ `total_tokens`: Input plus output tokens for the covered task or period. Leave
43
+ blank or write `unmeasured` when no credible value exists.
44
+
45
+ `context_baseline`: The size of the context that would otherwise have been used,
46
+ limited to the whole repo, whole document set, full history dump, or other
47
+ bounded source context. Include the unit used.
48
+
49
+ `context_used`: The size of the actual BriefOps brief, spec, context pack, or
50
+ other bounded context supplied to the agent. Use the same unit as
51
+ `context_baseline`.
52
+
53
+ `context_reduction_estimate`: Estimated context reduction, calculated only from
54
+ `context_baseline` and `context_used`.
55
+
56
+ `artifact_coverage`: Existence-only coverage for these eight artifacts:
57
+ `brief`, `spec`, `plan`, `tasks`, `validation`, `review`, `handoff`,
58
+ `decision-log`. Record as `<present_count>/8` plus present and missing names.
59
+
60
+ `handoff_status`: Handoff readiness for the covered task or period. Suggested
61
+ values: `complete`, `partial`, `absent`, `not_applicable`.
62
+
63
+ `validation_status`: Validation evidence for the covered task or period.
64
+ Suggested values: `validated`, `partial`, `unvalidated`, `blocked`,
65
+ `not_applicable`.
66
+
67
+ `conclusion`: Overall evidence conclusion. Allowed values only: `proven`,
68
+ `partially supported`, `unmeasured`, `not supported`.
69
+
70
+ ## Measurement Rules
71
+
72
+ ### Token Usage And Token Savings
73
+
74
+ - Mark `token_usage_status` as `measured` only when actual token usage logs exist
75
+ for the covered task or period.
76
+ - Mark `token_usage_status` as `estimated` only when token counts are derived
77
+ from a deterministic approximation, such as a tokenizer or transcript count.
78
+ - Mark `token_usage_status` as `unmeasured` when neither actual logs nor a
79
+ deterministic approximation are available.
80
+ - If actual token usage logs do not exist, token savings must be reported as
81
+ `unmeasured`.
82
+ - Do not use `context_reduction_estimate` as evidence of token savings.
83
+ - Do not combine input, output, and total tokens from different tasks, agents, or
84
+ reporting periods.
85
+
86
+ ### Context Management
87
+
88
+ - Treat context management as separate from token savings.
89
+ - Estimate context reduction only by comparing `context_baseline` with
90
+ `context_used`.
91
+ - Use the same unit for `context_baseline` and `context_used`, preferably tokens.
92
+ Bytes, lines, files, or pages are acceptable only when both values use the same
93
+ unit.
94
+ - Calculate:
95
+ `(context_baseline - context_used) / context_baseline`.
96
+ - Mark `context_reduction_estimate` as `unmeasured` when either side of the
97
+ comparison is unavailable or uses incompatible units.
98
+ - A context reduction estimate supports a context management claim only. It does
99
+ not prove token savings or quality improvement.
100
+
101
+ ### Artifact Coverage
102
+
103
+ - Calculate `artifact_coverage` only from whether each named artifact exists.
104
+ - Do not score artifact quality, length, freshness, or correctness in
105
+ `artifact_coverage`.
106
+ - Count an artifact as present only when it is discoverable in the project files
107
+ or attached work record for the covered task or period.
108
+ - If an artifact has multiple files, count the artifact type once.
109
+
110
+ ### Conclusion
111
+
112
+ - Use `proven` only when the claimed impact is backed by direct measured
113
+ evidence. Token savings can be `proven` only with actual token usage logs.
114
+ - Use `partially supported` when measured evidence is incomplete, but deterministic
115
+ context comparison, artifact coverage, handoff status, or validation status
116
+ supports a narrower BriefOps benefit.
117
+ - Use `unmeasured` when the report records adoption but lacks enough evidence to
118
+ support or reject impact.
119
+ - Use `not supported` when the available evidence contradicts the claimed impact
120
+ or shows no meaningful BriefOps effect.
121
+ - If token savings are unmeasured but context management is estimated, the
122
+ conclusion must not imply proven token savings.
123
+
124
+ ## 30-Minute Fill Procedure
125
+
126
+ 1. Identify the project and covered task or period.
127
+ 2. Check whether actual token usage logs exist.
128
+ 3. Fill token fields as measured, estimated, or unmeasured.
129
+ 4. Compare only the bounded baseline context with the actual BriefOps context
130
+ used.
131
+ 5. Count the eight artifact types by existence only.
132
+ 6. Record handoff and validation status from available work records.
133
+ 7. Choose exactly one allowed conclusion without merging token savings and
134
+ context management evidence.
135
+
136
+ ## Non-Goals
137
+
138
+ This template does not define automatic collection, JSON schema, dashboards,
139
+ cross-project comparison, migration guidance, sample reports, scoring, or a full
140
+ Spec Kit workflow.
@@ -44,6 +44,15 @@ briefops export all
44
44
 
45
45
  These files should stay compact. They teach harnesses how to call BriefOps and do not copy private memory, raw logs, handoffs, or worker summaries.
46
46
 
47
+ For local readiness and context compression checks:
48
+
49
+ ```bash
50
+ briefops doctor --strict --json
51
+ briefops obs continuity --worker <worker> --task "<task>" --json
52
+ ```
53
+
54
+ These commands are core CLI checks. They do not install MCP servers or hooks.
55
+
47
56
  ## LazyCodex / OmO
48
57
 
49
58
  Use LazyCodex or OmO for orchestration, hooks, LSP/MCP, and autonomous execution. Use BriefOps for durable local continuity.