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
@@ -1,11 +1,12 @@
1
1
  import { promises as fs } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { readBriefOpsConfig } from "./config.js";
4
+ import { isStaleLockFile } from "./lock.js";
4
5
  import { listMemory } from "./memory.js";
5
6
  import { listMemoryProposals } from "./memoryProposal.js";
6
7
  import { memoryCategories, memoryFilePath, workspacePaths } from "./paths.js";
7
8
  import { listSkillPatches } from "./patch.js";
8
- import { pathExists, readTextFile, readYamlFile } from "./storage.js";
9
+ import { pathExists, readYamlFile } from "./storage.js";
9
10
  import { readWorker } from "./worker.js";
10
11
  import { memoryFileSchema } from "../schemas/memory.js";
11
12
  function check(name, status, detail) {
@@ -20,10 +21,7 @@ async function listStaleLocks(cwd, staleMs) {
20
21
  const stale = [];
21
22
  for (const entry of entries.filter((item) => item.endsWith(".lock"))) {
22
23
  const filePath = path.join(lockDir, entry);
23
- const raw = await readTextFile(filePath);
24
- const createdAt = raw.match(/^created_at: (.+)$/m)?.[1]?.trim();
25
- const created = createdAt ? Date.parse(createdAt) : Number.NaN;
26
- if (Number.isNaN(created) || Date.now() - created > staleMs) {
24
+ if (await isStaleLockFile(filePath, staleMs)) {
27
25
  stale.push(entry);
28
26
  }
29
27
  }
@@ -1 +1 @@
1
- {"version":3,"file":"securityDoctor.js","sourceRoot":"","sources":["../../src/core/securityDoctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"securityDoctor.js","sourceRoot":"","sources":["../../src/core/securityDoctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export type StrictDoctorStatus = "ok" | "warn" | "fail";
2
+ export type StrictDoctorCheck = {
3
+ source: "stability" | "security" | "privacy" | "memory-hygiene";
4
+ name: string;
5
+ status: StrictDoctorStatus;
6
+ detail: string;
7
+ };
8
+ export type StrictDoctorResult = {
9
+ ok: boolean;
10
+ releaseReady: boolean;
11
+ summary: {
12
+ checks: number;
13
+ ok: number;
14
+ warn: number;
15
+ fail: number;
16
+ };
17
+ checks: StrictDoctorCheck[];
18
+ };
19
+ export declare function runStrictDoctor(options?: {
20
+ cwd?: string;
21
+ maxExamples?: number;
22
+ }): Promise<StrictDoctorResult>;
@@ -0,0 +1,95 @@
1
+ import { inspectMemoryHygiene } from "./memoryHygiene.js";
2
+ import { runPrivacyDoctor } from "./privacyDoctor.js";
3
+ import { runSecurityDoctor } from "./securityDoctor.js";
4
+ import { runStabilityDoctor } from "./stabilityDoctor.js";
5
+ function summarize(checks) {
6
+ return {
7
+ checks: checks.length,
8
+ ok: checks.filter((check) => check.status === "ok").length,
9
+ warn: checks.filter((check) => check.status === "warn").length,
10
+ fail: checks.filter((check) => check.status === "fail").length
11
+ };
12
+ }
13
+ function failure(source, error) {
14
+ return {
15
+ source,
16
+ name: "Runtime",
17
+ status: "fail",
18
+ detail: error instanceof Error ? error.message : String(error)
19
+ };
20
+ }
21
+ export async function runStrictDoctor(options = {}) {
22
+ const cwd = options.cwd ?? process.cwd();
23
+ const checks = [];
24
+ try {
25
+ const stability = await runStabilityDoctor({
26
+ cwd,
27
+ maxExamples: options.maxExamples
28
+ });
29
+ checks.push(...stability.checks.map((check) => ({
30
+ source: "stability",
31
+ name: check.name,
32
+ status: check.status,
33
+ detail: check.detail
34
+ })));
35
+ }
36
+ catch (error) {
37
+ checks.push(failure("stability", error));
38
+ }
39
+ try {
40
+ const security = await runSecurityDoctor({ cwd });
41
+ checks.push(...security.checks.map((check) => ({
42
+ source: "security",
43
+ name: check.name,
44
+ status: check.status,
45
+ detail: check.detail
46
+ })));
47
+ }
48
+ catch (error) {
49
+ checks.push(failure("security", error));
50
+ }
51
+ try {
52
+ const privacy = await runPrivacyDoctor({ cwd });
53
+ checks.push(...privacy.checks.map((check) => ({
54
+ source: "privacy",
55
+ name: check.name,
56
+ status: check.status,
57
+ detail: check.detail
58
+ })));
59
+ }
60
+ catch (error) {
61
+ checks.push(failure("privacy", error));
62
+ }
63
+ try {
64
+ const hygiene = await inspectMemoryHygiene({ cwd });
65
+ checks.push({
66
+ source: "memory-hygiene",
67
+ name: "Memory hygiene",
68
+ status: hygiene.warnings.length > 0 ? "warn" : "ok",
69
+ detail: hygiene.warnings.length > 0 ? hygiene.warnings.join("; ") : "No memory hygiene warnings."
70
+ });
71
+ checks.push({
72
+ source: "memory-hygiene",
73
+ name: "Potential decision conflicts",
74
+ status: hygiene.potentialConflicts.length > 0 ? "warn" : "ok",
75
+ detail: `${hygiene.potentialConflicts.length} potential conflict(s).`
76
+ });
77
+ checks.push({
78
+ source: "memory-hygiene",
79
+ name: "Old active memory",
80
+ status: hygiene.oldActive.length > 0 ? "warn" : "ok",
81
+ detail: `${hygiene.oldActive.length} old active item(s).`
82
+ });
83
+ }
84
+ catch (error) {
85
+ checks.push(failure("memory-hygiene", error));
86
+ }
87
+ const summary = summarize(checks);
88
+ return {
89
+ ok: summary.fail === 0,
90
+ releaseReady: summary.fail === 0 && summary.warn === 0,
91
+ summary,
92
+ checks
93
+ };
94
+ }
95
+ //# sourceMappingURL=strictDoctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strictDoctor.js","sourceRoot":"","sources":["../../src/core/strictDoctor.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,25 @@ import { z } from "zod";
2
2
  export declare const memoryItemTypes: readonly ["fact", "decision", "lesson", "incident", "deprecated"];
3
3
  export declare const memoryStatuses: readonly ["active", "stale", "deprecated", "superseded", "archived"];
4
4
  export declare const memoryVisibilities: readonly ["private", "shared", "public"];
5
+ export declare const memoryEvidenceSchema: z.ZodObject<{
6
+ path: z.ZodString;
7
+ start_line: z.ZodOptional<z.ZodNumber>;
8
+ end_line: z.ZodOptional<z.ZodNumber>;
9
+ sha256: z.ZodOptional<z.ZodString>;
10
+ note: z.ZodOptional<z.ZodString>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ path: string;
13
+ start_line?: number | undefined;
14
+ end_line?: number | undefined;
15
+ sha256?: string | undefined;
16
+ note?: string | undefined;
17
+ }, {
18
+ path: string;
19
+ start_line?: number | undefined;
20
+ end_line?: number | undefined;
21
+ sha256?: string | undefined;
22
+ note?: string | undefined;
23
+ }>;
5
24
  export declare const memoryItemSchema: z.ZodObject<{
6
25
  id: z.ZodString;
7
26
  type: z.ZodEnum<["fact", "decision", "lesson", "incident", "deprecated"]>;
@@ -14,6 +33,25 @@ export declare const memoryItemSchema: z.ZodObject<{
14
33
  tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
15
34
  visibility: z.ZodDefault<z.ZodEnum<["private", "shared", "public"]>>;
16
35
  exportable: z.ZodDefault<z.ZodBoolean>;
36
+ evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
37
+ path: z.ZodString;
38
+ start_line: z.ZodOptional<z.ZodNumber>;
39
+ end_line: z.ZodOptional<z.ZodNumber>;
40
+ sha256: z.ZodOptional<z.ZodString>;
41
+ note: z.ZodOptional<z.ZodString>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ path: string;
44
+ start_line?: number | undefined;
45
+ end_line?: number | undefined;
46
+ sha256?: string | undefined;
47
+ note?: string | undefined;
48
+ }, {
49
+ path: string;
50
+ start_line?: number | undefined;
51
+ end_line?: number | undefined;
52
+ sha256?: string | undefined;
53
+ note?: string | undefined;
54
+ }>, "many">>;
17
55
  }, "strip", z.ZodTypeAny, {
18
56
  id: string;
19
57
  created_at: string;
@@ -24,6 +62,13 @@ export declare const memoryItemSchema: z.ZodObject<{
24
62
  tags: string[];
25
63
  visibility: "private" | "shared" | "public";
26
64
  exportable: boolean;
65
+ evidence: {
66
+ path: string;
67
+ start_line?: number | undefined;
68
+ end_line?: number | undefined;
69
+ sha256?: string | undefined;
70
+ note?: string | undefined;
71
+ }[];
27
72
  project?: string | undefined;
28
73
  skill?: string | undefined;
29
74
  }, {
@@ -38,6 +83,13 @@ export declare const memoryItemSchema: z.ZodObject<{
38
83
  tags?: string[] | undefined;
39
84
  visibility?: "private" | "shared" | "public" | undefined;
40
85
  exportable?: boolean | undefined;
86
+ evidence?: {
87
+ path: string;
88
+ start_line?: number | undefined;
89
+ end_line?: number | undefined;
90
+ sha256?: string | undefined;
91
+ note?: string | undefined;
92
+ }[] | undefined;
41
93
  }>;
42
94
  export declare const memoryFileSchema: z.ZodObject<{
43
95
  items: z.ZodDefault<z.ZodArray<z.ZodObject<{
@@ -52,6 +104,25 @@ export declare const memoryFileSchema: z.ZodObject<{
52
104
  tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
53
105
  visibility: z.ZodDefault<z.ZodEnum<["private", "shared", "public"]>>;
54
106
  exportable: z.ZodDefault<z.ZodBoolean>;
107
+ evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
108
+ path: z.ZodString;
109
+ start_line: z.ZodOptional<z.ZodNumber>;
110
+ end_line: z.ZodOptional<z.ZodNumber>;
111
+ sha256: z.ZodOptional<z.ZodString>;
112
+ note: z.ZodOptional<z.ZodString>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ path: string;
115
+ start_line?: number | undefined;
116
+ end_line?: number | undefined;
117
+ sha256?: string | undefined;
118
+ note?: string | undefined;
119
+ }, {
120
+ path: string;
121
+ start_line?: number | undefined;
122
+ end_line?: number | undefined;
123
+ sha256?: string | undefined;
124
+ note?: string | undefined;
125
+ }>, "many">>;
55
126
  }, "strip", z.ZodTypeAny, {
56
127
  id: string;
57
128
  created_at: string;
@@ -62,6 +133,13 @@ export declare const memoryFileSchema: z.ZodObject<{
62
133
  tags: string[];
63
134
  visibility: "private" | "shared" | "public";
64
135
  exportable: boolean;
136
+ evidence: {
137
+ path: string;
138
+ start_line?: number | undefined;
139
+ end_line?: number | undefined;
140
+ sha256?: string | undefined;
141
+ note?: string | undefined;
142
+ }[];
65
143
  project?: string | undefined;
66
144
  skill?: string | undefined;
67
145
  }, {
@@ -76,6 +154,13 @@ export declare const memoryFileSchema: z.ZodObject<{
76
154
  tags?: string[] | undefined;
77
155
  visibility?: "private" | "shared" | "public" | undefined;
78
156
  exportable?: boolean | undefined;
157
+ evidence?: {
158
+ path: string;
159
+ start_line?: number | undefined;
160
+ end_line?: number | undefined;
161
+ sha256?: string | undefined;
162
+ note?: string | undefined;
163
+ }[] | undefined;
79
164
  }>, "many">>;
80
165
  }, "strip", z.ZodTypeAny, {
81
166
  items: {
@@ -88,6 +173,13 @@ export declare const memoryFileSchema: z.ZodObject<{
88
173
  tags: string[];
89
174
  visibility: "private" | "shared" | "public";
90
175
  exportable: boolean;
176
+ evidence: {
177
+ path: string;
178
+ start_line?: number | undefined;
179
+ end_line?: number | undefined;
180
+ sha256?: string | undefined;
181
+ note?: string | undefined;
182
+ }[];
91
183
  project?: string | undefined;
92
184
  skill?: string | undefined;
93
185
  }[];
@@ -104,9 +196,17 @@ export declare const memoryFileSchema: z.ZodObject<{
104
196
  tags?: string[] | undefined;
105
197
  visibility?: "private" | "shared" | "public" | undefined;
106
198
  exportable?: boolean | undefined;
199
+ evidence?: {
200
+ path: string;
201
+ start_line?: number | undefined;
202
+ end_line?: number | undefined;
203
+ sha256?: string | undefined;
204
+ note?: string | undefined;
205
+ }[] | undefined;
107
206
  }[] | undefined;
108
207
  }>;
109
208
  export type MemoryItem = z.infer<typeof memoryItemSchema>;
209
+ export type MemoryEvidence = z.infer<typeof memoryEvidenceSchema>;
110
210
  export type MemoryStatus = (typeof memoryStatuses)[number];
111
211
  export type MemoryVisibility = (typeof memoryVisibilities)[number];
112
212
  export type MemoryFile = z.infer<typeof memoryFileSchema>;
@@ -2,6 +2,13 @@ import { z } from "zod";
2
2
  export const memoryItemTypes = ["fact", "decision", "lesson", "incident", "deprecated"];
3
3
  export const memoryStatuses = ["active", "stale", "deprecated", "superseded", "archived"];
4
4
  export const memoryVisibilities = ["private", "shared", "public"];
5
+ export const memoryEvidenceSchema = z.object({
6
+ path: z.string().min(1),
7
+ start_line: z.number().int().positive().optional(),
8
+ end_line: z.number().int().positive().optional(),
9
+ sha256: z.string().min(6).optional(),
10
+ note: z.string().optional()
11
+ });
5
12
  export const memoryItemSchema = z.object({
6
13
  id: z.string().min(1),
7
14
  type: z.enum(memoryItemTypes),
@@ -13,7 +20,8 @@ export const memoryItemSchema = z.object({
13
20
  created_at: z.string().datetime(),
14
21
  tags: z.array(z.string()).default([]),
15
22
  visibility: z.enum(memoryVisibilities).default("private"),
16
- exportable: z.boolean().default(false)
23
+ exportable: z.boolean().default(false),
24
+ evidence: z.array(memoryEvidenceSchema).default([])
17
25
  });
18
26
  export const memoryFileSchema = z.object({
19
27
  items: z.array(memoryItemSchema).default([])
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/schemas/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/schemas/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAU,CAAC;AACjG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAE3E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACpD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC7C,CAAC,CAAC"}
@@ -9,6 +9,25 @@ export declare const memoryProposalEntrySchema: z.ZodEffects<z.ZodObject<{
9
9
  tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
10
10
  visibility: z.ZodDefault<z.ZodEnum<["private", "shared", "public"]>>;
11
11
  exportable: z.ZodDefault<z.ZodBoolean>;
12
+ evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
13
+ path: z.ZodString;
14
+ start_line: z.ZodOptional<z.ZodNumber>;
15
+ end_line: z.ZodOptional<z.ZodNumber>;
16
+ sha256: z.ZodOptional<z.ZodString>;
17
+ note: z.ZodOptional<z.ZodString>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ path: string;
20
+ start_line?: number | undefined;
21
+ end_line?: number | undefined;
22
+ sha256?: string | undefined;
23
+ note?: string | undefined;
24
+ }, {
25
+ path: string;
26
+ start_line?: number | undefined;
27
+ end_line?: number | undefined;
28
+ sha256?: string | undefined;
29
+ note?: string | undefined;
30
+ }>, "many">>;
12
31
  rationale: z.ZodDefault<z.ZodString>;
13
32
  }, "strip", z.ZodTypeAny, {
14
33
  type: "deprecated" | "fact" | "decision" | "lesson" | "incident";
@@ -17,6 +36,13 @@ export declare const memoryProposalEntrySchema: z.ZodEffects<z.ZodObject<{
17
36
  tags: string[];
18
37
  visibility: "private" | "shared" | "public";
19
38
  exportable: boolean;
39
+ evidence: {
40
+ path: string;
41
+ start_line?: number | undefined;
42
+ end_line?: number | undefined;
43
+ sha256?: string | undefined;
44
+ note?: string | undefined;
45
+ }[];
20
46
  rationale: string;
21
47
  source?: string | undefined;
22
48
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
@@ -28,6 +54,13 @@ export declare const memoryProposalEntrySchema: z.ZodEffects<z.ZodObject<{
28
54
  tags?: string[] | undefined;
29
55
  visibility?: "private" | "shared" | "public" | undefined;
30
56
  exportable?: boolean | undefined;
57
+ evidence?: {
58
+ path: string;
59
+ start_line?: number | undefined;
60
+ end_line?: number | undefined;
61
+ sha256?: string | undefined;
62
+ note?: string | undefined;
63
+ }[] | undefined;
31
64
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
32
65
  rationale?: string | undefined;
33
66
  }>, {
@@ -38,6 +71,13 @@ export declare const memoryProposalEntrySchema: z.ZodEffects<z.ZodObject<{
38
71
  tags: string[];
39
72
  visibility: "private" | "shared" | "public";
40
73
  exportable: boolean;
74
+ evidence: {
75
+ path: string;
76
+ start_line?: number | undefined;
77
+ end_line?: number | undefined;
78
+ sha256?: string | undefined;
79
+ note?: string | undefined;
80
+ }[];
41
81
  rationale: string;
42
82
  source?: string | undefined;
43
83
  }, {
@@ -48,6 +88,13 @@ export declare const memoryProposalEntrySchema: z.ZodEffects<z.ZodObject<{
48
88
  tags?: string[] | undefined;
49
89
  visibility?: "private" | "shared" | "public" | undefined;
50
90
  exportable?: boolean | undefined;
91
+ evidence?: {
92
+ path: string;
93
+ start_line?: number | undefined;
94
+ end_line?: number | undefined;
95
+ sha256?: string | undefined;
96
+ note?: string | undefined;
97
+ }[] | undefined;
51
98
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
52
99
  rationale?: string | undefined;
53
100
  }>;
@@ -68,6 +115,25 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
68
115
  tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
69
116
  visibility: z.ZodDefault<z.ZodEnum<["private", "shared", "public"]>>;
70
117
  exportable: z.ZodDefault<z.ZodBoolean>;
118
+ evidence: z.ZodDefault<z.ZodArray<z.ZodObject<{
119
+ path: z.ZodString;
120
+ start_line: z.ZodOptional<z.ZodNumber>;
121
+ end_line: z.ZodOptional<z.ZodNumber>;
122
+ sha256: z.ZodOptional<z.ZodString>;
123
+ note: z.ZodOptional<z.ZodString>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ path: string;
126
+ start_line?: number | undefined;
127
+ end_line?: number | undefined;
128
+ sha256?: string | undefined;
129
+ note?: string | undefined;
130
+ }, {
131
+ path: string;
132
+ start_line?: number | undefined;
133
+ end_line?: number | undefined;
134
+ sha256?: string | undefined;
135
+ note?: string | undefined;
136
+ }>, "many">>;
71
137
  rationale: z.ZodDefault<z.ZodString>;
72
138
  }, "strip", z.ZodTypeAny, {
73
139
  type: "deprecated" | "fact" | "decision" | "lesson" | "incident";
@@ -76,6 +142,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
76
142
  tags: string[];
77
143
  visibility: "private" | "shared" | "public";
78
144
  exportable: boolean;
145
+ evidence: {
146
+ path: string;
147
+ start_line?: number | undefined;
148
+ end_line?: number | undefined;
149
+ sha256?: string | undefined;
150
+ note?: string | undefined;
151
+ }[];
79
152
  rationale: string;
80
153
  source?: string | undefined;
81
154
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
@@ -87,6 +160,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
87
160
  tags?: string[] | undefined;
88
161
  visibility?: "private" | "shared" | "public" | undefined;
89
162
  exportable?: boolean | undefined;
163
+ evidence?: {
164
+ path: string;
165
+ start_line?: number | undefined;
166
+ end_line?: number | undefined;
167
+ sha256?: string | undefined;
168
+ note?: string | undefined;
169
+ }[] | undefined;
90
170
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
91
171
  rationale?: string | undefined;
92
172
  }>, {
@@ -97,6 +177,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
97
177
  tags: string[];
98
178
  visibility: "private" | "shared" | "public";
99
179
  exportable: boolean;
180
+ evidence: {
181
+ path: string;
182
+ start_line?: number | undefined;
183
+ end_line?: number | undefined;
184
+ sha256?: string | undefined;
185
+ note?: string | undefined;
186
+ }[];
100
187
  rationale: string;
101
188
  source?: string | undefined;
102
189
  }, {
@@ -107,6 +194,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
107
194
  tags?: string[] | undefined;
108
195
  visibility?: "private" | "shared" | "public" | undefined;
109
196
  exportable?: boolean | undefined;
197
+ evidence?: {
198
+ path: string;
199
+ start_line?: number | undefined;
200
+ end_line?: number | undefined;
201
+ sha256?: string | undefined;
202
+ note?: string | undefined;
203
+ }[] | undefined;
110
204
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
111
205
  rationale?: string | undefined;
112
206
  }>, "many">>;
@@ -124,6 +218,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
124
218
  tags: string[];
125
219
  visibility: "private" | "shared" | "public";
126
220
  exportable: boolean;
221
+ evidence: {
222
+ path: string;
223
+ start_line?: number | undefined;
224
+ end_line?: number | undefined;
225
+ sha256?: string | undefined;
226
+ note?: string | undefined;
227
+ }[];
127
228
  rationale: string;
128
229
  source?: string | undefined;
129
230
  }[];
@@ -149,6 +250,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
149
250
  tags?: string[] | undefined;
150
251
  visibility?: "private" | "shared" | "public" | undefined;
151
252
  exportable?: boolean | undefined;
253
+ evidence?: {
254
+ path: string;
255
+ start_line?: number | undefined;
256
+ end_line?: number | undefined;
257
+ sha256?: string | undefined;
258
+ note?: string | undefined;
259
+ }[] | undefined;
152
260
  category?: "facts" | "decisions" | "lessons" | "incidents" | "deprecated" | undefined;
153
261
  rationale?: string | undefined;
154
262
  }[] | undefined;
@@ -166,6 +274,13 @@ export declare const memoryProposalSchema: z.ZodEffects<z.ZodObject<{
166
274
  tags: string[];
167
275
  visibility: "private" | "shared" | "public";
168
276
  exportable: boolean;
277
+ evidence: {
278
+ path: string;
279
+ start_line?: number | undefined;
280
+ end_line?: number | undefined;
281
+ sha256?: string | undefined;
282
+ note?: string | undefined;
283
+ }[];
169
284
  rationale: string;
170
285
  source?: string | undefined;
171
286
  }[];
@@ -1,6 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { memoryCategories } from "../core/paths.js";
3
- import { memoryItemTypes, memoryStatuses, memoryVisibilities } from "./memory.js";
3
+ import { memoryEvidenceSchema, memoryItemTypes, memoryStatuses, memoryVisibilities } from "./memory.js";
4
4
  export const memoryProposalStatuses = ["proposed", "applied", "rejected"];
5
5
  export const memoryProposalEntrySchema = z.object({
6
6
  category: z.enum(memoryCategories).optional(),
@@ -11,6 +11,7 @@ export const memoryProposalEntrySchema = z.object({
11
11
  tags: z.array(z.string()).default([]),
12
12
  visibility: z.enum(memoryVisibilities).default("private"),
13
13
  exportable: z.boolean().default(false),
14
+ evidence: z.array(memoryEvidenceSchema).default([]),
14
15
  rationale: z.string().default("")
15
16
  }).transform((entry) => ({
16
17
  ...entry,
@@ -1 +1 @@
1
- {"version":3,"file":"memoryProposal.js","sourceRoot":"","sources":["../../src/schemas/memoryProposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAElF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAEnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;IAC7B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACzD,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAClC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACvB,GAAG,KAAK;IACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAK;QAC3B,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,YAAY;KACf,CAAC,KAAK,CAAC,IAAI,CAAC;CACxB,CAAC,CAAC,CAAC;AAEJ,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IACzD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,EAAE,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"memoryProposal.js","sourceRoot":"","sources":["../../src/schemas/memoryProposal.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const briefopsVersion = "2.0.0";
1
+ export declare const briefopsVersion = "2.1.2";
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Keep this version in sync with package.json.
2
- export const briefopsVersion = "2.0.0";
2
+ export const briefopsVersion = "2.1.2";
3
3
  //# sourceMappingURL=version.js.map
@@ -1,8 +1,8 @@
1
- # BriefOps 2.0 Compatibility Policy
1
+ # BriefOps 2.1.2 Compatibility Policy
2
2
 
3
3
  BriefOps follows semantic versioning for the public CLI and local file formats.
4
4
 
5
- ## Stable In 2.0
5
+ ## Stable In 2.1.x
6
6
 
7
7
  - Public commands documented in `README.md`.
8
8
  - `.briefops/` source file formats documented in `docs/file-format.md`.
@@ -10,6 +10,10 @@ BriefOps follows semantic versioning for the public CLI and local file formats.
10
10
  - Directory-local memory promotion from `finish`, plus reviewable memory proposal and skill patch flows.
11
11
  - Workspace lock behavior for local write operations.
12
12
  - Harness router export targets: `agents-md`, `claude-md`, `cursor-rules`, and `all`.
13
+ - Master Harness routing commands: `briefops harness route` and `briefops harness matrix`.
14
+ - Read-only continuity observability through `briefops obs continuity`.
15
+ - Strict local release-readiness aggregation through `briefops doctor --strict`.
16
+ - Optional memory evidence anchors with safe defaults for older memory files.
13
17
 
14
18
  ## Compatible Changes
15
19
 
@@ -35,7 +39,7 @@ Breaking changes require a new major version. Examples:
35
39
 
36
40
  New 1.0 workspaces write `version: 1.0.0` in `.briefops/config.yaml`.
37
41
 
38
- BriefOps 2.0 keeps the workspace schema at `1.0.0` and can read legacy `0.x` workspace configs on a best-effort compatibility basis. Future unsupported workspace schema major versions fail with an explicit upgrade error instead of silently reading incompatible data.
42
+ BriefOps 2.1.2 keeps the workspace schema at `1.0.0` and can read legacy `0.x` workspace configs on a best-effort compatibility basis. Future unsupported workspace schema major versions fail with an explicit upgrade error instead of silently reading incompatible data.
39
43
 
40
44
  ## Migration Policy
41
45