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.
- package/CHANGELOG.md +36 -0
- package/CODE_OF_CONDUCT.md +13 -0
- package/CONTRIBUTING.md +53 -0
- package/LICENSE +21 -0
- package/README.md +801 -0
- package/SECURITY.md +59 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +54 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/approve.d.ts +2 -0
- package/dist/commands/approve.js +38 -0
- package/dist/commands/approve.js.map +1 -0
- package/dist/commands/brief.d.ts +2 -0
- package/dist/commands/brief.js +81 -0
- package/dist/commands/brief.js.map +1 -0
- package/dist/commands/codex.d.ts +2 -0
- package/dist/commands/codex.js +163 -0
- package/dist/commands/codex.js.map +1 -0
- package/dist/commands/compare.d.ts +2 -0
- package/dist/commands/compare.js +48 -0
- package/dist/commands/compare.js.map +1 -0
- package/dist/commands/continue.d.ts +2 -0
- package/dist/commands/continue.js +66 -0
- package/dist/commands/continue.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +90 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/eval.d.ts +2 -0
- package/dist/commands/eval.js +89 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/export.d.ts +2 -0
- package/dist/commands/export.js +105 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/finish.d.ts +2 -0
- package/dist/commands/finish.js +71 -0
- package/dist/commands/finish.js.map +1 -0
- package/dist/commands/handoff.d.ts +2 -0
- package/dist/commands/handoff.js +77 -0
- package/dist/commands/handoff.js.map +1 -0
- package/dist/commands/inbox.d.ts +2 -0
- package/dist/commands/inbox.js +36 -0
- package/dist/commands/inbox.js.map +1 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.js +13 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/inspect.d.ts +2 -0
- package/dist/commands/inspect.js +226 -0
- package/dist/commands/inspect.js.map +1 -0
- package/dist/commands/log.d.ts +2 -0
- package/dist/commands/log.js +96 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/memory.d.ts +2 -0
- package/dist/commands/memory.js +236 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/pack.d.ts +2 -0
- package/dist/commands/pack.js +42 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/commands/prime.d.ts +4 -0
- package/dist/commands/prime.js +44 -0
- package/dist/commands/prime.js.map +1 -0
- package/dist/commands/project.d.ts +2 -0
- package/dist/commands/project.js +50 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/shared.d.ts +3 -0
- package/dist/commands/shared.js +24 -0
- package/dist/commands/shared.js.map +1 -0
- package/dist/commands/skill.d.ts +2 -0
- package/dist/commands/skill.js +146 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/worker.d.ts +2 -0
- package/dist/commands/worker.js +128 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/core/adapter.d.ts +22 -0
- package/dist/core/adapter.js +167 -0
- package/dist/core/adapter.js.map +1 -0
- package/dist/core/approval.d.ts +26 -0
- package/dist/core/approval.js +86 -0
- package/dist/core/approval.js.map +1 -0
- package/dist/core/brief.d.ts +47 -0
- package/dist/core/brief.js +411 -0
- package/dist/core/brief.js.map +1 -0
- package/dist/core/codex.d.ts +53 -0
- package/dist/core/codex.js +286 -0
- package/dist/core/codex.js.map +1 -0
- package/dist/core/codexPlugin.d.ts +51 -0
- package/dist/core/codexPlugin.js +228 -0
- package/dist/core/codexPlugin.js.map +1 -0
- package/dist/core/compatibility.d.ts +2 -0
- package/dist/core/compatibility.js +16 -0
- package/dist/core/compatibility.js.map +1 -0
- package/dist/core/config.d.ts +19 -0
- package/dist/core/config.js +77 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/contextBudget.d.ts +12 -0
- package/dist/core/contextBudget.js +22 -0
- package/dist/core/contextBudget.js.map +1 -0
- package/dist/core/contextCompare.d.ts +27 -0
- package/dist/core/contextCompare.js +97 -0
- package/dist/core/contextCompare.js.map +1 -0
- package/dist/core/continuity.d.ts +25 -0
- package/dist/core/continuity.js +73 -0
- package/dist/core/continuity.js.map +1 -0
- package/dist/core/errors.d.ts +4 -0
- package/dist/core/errors.js +12 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/eval.d.ts +38 -0
- package/dist/core/eval.js +180 -0
- package/dist/core/eval.js.map +1 -0
- package/dist/core/exportPolicy.d.ts +7 -0
- package/dist/core/exportPolicy.js +17 -0
- package/dist/core/exportPolicy.js.map +1 -0
- package/dist/core/exportTargets.d.ts +25 -0
- package/dist/core/exportTargets.js +292 -0
- package/dist/core/exportTargets.js.map +1 -0
- package/dist/core/handoff.d.ts +48 -0
- package/dist/core/handoff.js +611 -0
- package/dist/core/handoff.js.map +1 -0
- package/dist/core/inbox.d.ts +15 -0
- package/dist/core/inbox.js +56 -0
- package/dist/core/inbox.js.map +1 -0
- package/dist/core/lock.d.ts +11 -0
- package/dist/core/lock.js +99 -0
- package/dist/core/lock.js.map +1 -0
- package/dist/core/log.d.ts +38 -0
- package/dist/core/log.js +93 -0
- package/dist/core/log.js.map +1 -0
- package/dist/core/memory.d.ts +86 -0
- package/dist/core/memory.js +353 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/memoryHygiene.d.ts +25 -0
- package/dist/core/memoryHygiene.js +95 -0
- package/dist/core/memoryHygiene.js.map +1 -0
- package/dist/core/memoryProposal.d.ts +40 -0
- package/dist/core/memoryProposal.js +279 -0
- package/dist/core/memoryProposal.js.map +1 -0
- package/dist/core/output.d.ts +7 -0
- package/dist/core/output.js +18 -0
- package/dist/core/output.js.map +1 -0
- package/dist/core/patch.d.ts +37 -0
- package/dist/core/patch.js +220 -0
- package/dist/core/patch.js.map +1 -0
- package/dist/core/paths.d.ts +33 -0
- package/dist/core/paths.js +84 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/prime.d.ts +17 -0
- package/dist/core/prime.js +298 -0
- package/dist/core/prime.js.map +1 -0
- package/dist/core/privacyDoctor.d.ts +14 -0
- package/dist/core/privacyDoctor.js +59 -0
- package/dist/core/privacyDoctor.js.map +1 -0
- package/dist/core/project.d.ts +16 -0
- package/dist/core/project.js +73 -0
- package/dist/core/project.js.map +1 -0
- package/dist/core/securityDoctor.d.ts +14 -0
- package/dist/core/securityDoctor.js +96 -0
- package/dist/core/securityDoctor.js.map +1 -0
- package/dist/core/skill.d.ts +16 -0
- package/dist/core/skill.js +81 -0
- package/dist/core/skill.js.map +1 -0
- package/dist/core/storage.d.ts +20 -0
- package/dist/core/storage.js +112 -0
- package/dist/core/storage.js.map +1 -0
- package/dist/core/tokens.d.ts +5 -0
- package/dist/core/tokens.js +24 -0
- package/dist/core/tokens.js.map +1 -0
- package/dist/core/worker.d.ts +51 -0
- package/dist/core/worker.js +312 -0
- package/dist/core/worker.js.map +1 -0
- package/dist/core/workflow.d.ts +61 -0
- package/dist/core/workflow.js +308 -0
- package/dist/core/workflow.js.map +1 -0
- package/dist/core/workspace.d.ts +7 -0
- package/dist/core/workspace.js +214 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/brief.d.ts +12 -0
- package/dist/schemas/brief.js +2 -0
- package/dist/schemas/brief.js.map +1 -0
- package/dist/schemas/eval.d.ts +96 -0
- package/dist/schemas/eval.js +30 -0
- package/dist/schemas/eval.js.map +1 -0
- package/dist/schemas/handoff.d.ts +33 -0
- package/dist/schemas/handoff.js +13 -0
- package/dist/schemas/handoff.js.map +1 -0
- package/dist/schemas/log.d.ts +51 -0
- package/dist/schemas/log.js +19 -0
- package/dist/schemas/log.js.map +1 -0
- package/dist/schemas/memory.d.ts +112 -0
- package/dist/schemas/memory.js +21 -0
- package/dist/schemas/memory.js.map +1 -0
- package/dist/schemas/memoryProposal.d.ts +181 -0
- package/dist/schemas/memoryProposal.js +46 -0
- package/dist/schemas/memoryProposal.js.map +1 -0
- package/dist/schemas/patch.d.ts +38 -0
- package/dist/schemas/patch.js +15 -0
- package/dist/schemas/patch.js.map +1 -0
- package/dist/schemas/project.d.ts +23 -0
- package/dist/schemas/project.js +8 -0
- package/dist/schemas/project.js.map +1 -0
- package/dist/schemas/skill.d.ts +26 -0
- package/dist/schemas/skill.js +9 -0
- package/dist/schemas/skill.js.map +1 -0
- package/dist/schemas/worker.d.ts +29 -0
- package/dist/schemas/worker.js +12 -0
- package/dist/schemas/worker.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/docs/codex-resume.md +13 -0
- package/docs/compatibility.md +49 -0
- package/docs/concept.md +13 -0
- package/docs/evals.md +18 -0
- package/docs/file-format.md +67 -0
- package/docs/handoff-briefs.md +9 -0
- package/docs/integrations/harnesses.md +74 -0
- package/docs/memory-lifecycle.md +23 -0
- package/docs/persistent-worker.md +15 -0
- package/docs/privacy-model.md +40 -0
- package/docs/quickstart.md +74 -0
- package/docs/release-checklist.md +68 -0
- package/docs/roadmap.md +33 -0
- package/docs/superpowers/plans/2026-06-08-briefops-oss-readiness.md +1272 -0
- package/docs/superpowers/plans/2026-06-08-codex-first-context-optimization.md +1176 -0
- package/docs/token-budget.md +63 -0
- package/examples/atlas-q/README.md +15 -0
- package/examples/codex-first-context/README.md +48 -0
- package/examples/codex-first-context/after-briefops-prime.md +40 -0
- package/examples/codex-first-context/before-manual-history-dump.md +18 -0
- package/examples/persistent-worker-demo/README.md +15 -0
- package/examples/persistent-worker-demo/after-codex-resume.md +17 -0
- package/examples/persistent-worker-demo/before-context-dump.md +5 -0
- package/examples/persistent-worker-demo/briefops-workspace/codex/prompts/resume_demo.md +29 -0
- package/examples/persistent-worker-demo/briefops-workspace/handoffs/handoff_demo.md +50 -0
- package/examples/persistent-worker-demo/briefops-workspace/logs/log_20260604_001.yaml +14 -0
- package/examples/persistent-worker-demo/briefops-workspace/logs/log_20260604_002.yaml +12 -0
- package/examples/persistent-worker-demo/briefops-workspace/memory/decisions.yaml +12 -0
- package/examples/persistent-worker-demo/briefops-workspace/memory/deprecated.yaml +1 -0
- package/examples/persistent-worker-demo/briefops-workspace/memory/facts.yaml +12 -0
- package/examples/persistent-worker-demo/briefops-workspace/memory/incidents.yaml +12 -0
- package/examples/persistent-worker-demo/briefops-workspace/memory/lessons.yaml +12 -0
- package/examples/persistent-worker-demo/briefops-workspace/memory-proposals/memprop_demo_001.memory-proposal.yaml +23 -0
- package/examples/persistent-worker-demo/briefops-workspace/projects/atlas-q.project.md +18 -0
- package/examples/persistent-worker-demo/briefops-workspace/skills/backtest-validation.skill.md +13 -0
- package/examples/persistent-worker-demo/briefops-workspace/skills/risk-review.skill.md +15 -0
- package/examples/persistent-worker-demo/briefops-workspace/workers/quant-reviewer.worker.yaml +12 -0
- package/examples/persistent-worker-demo/briefops-workspace/workers/summaries/quant-reviewer.summary.md +44 -0
- package/package.json +59 -0
- package/plugins/briefops-codex/.codex-plugin/plugin.json +39 -0
- package/plugins/briefops-codex/README.md +44 -0
- package/plugins/briefops-codex/skills/briefops-continue-worker/SKILL.md +22 -0
- package/plugins/briefops-codex/skills/briefops-finish-task/SKILL.md +22 -0
- package/plugins/briefops-codex/skills/briefops-prime-context/SKILL.md +24 -0
- package/plugins/briefops-codex/skills/briefops-review-memory/SKILL.md +27 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const skillPatchStatuses: readonly ["proposed", "applied", "rejected"];
|
|
3
|
+
export declare const skillPatchSchema: z.ZodObject<{
|
|
4
|
+
id: z.ZodString;
|
|
5
|
+
created_at: z.ZodString;
|
|
6
|
+
skill: z.ZodString;
|
|
7
|
+
from_log: z.ZodString;
|
|
8
|
+
status: z.ZodDefault<z.ZodEnum<["proposed", "applied", "rejected"]>>;
|
|
9
|
+
target_section: z.ZodDefault<z.ZodString>;
|
|
10
|
+
lessons: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
11
|
+
additions: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
12
|
+
applied_at: z.ZodOptional<z.ZodString>;
|
|
13
|
+
rejected_at: z.ZodOptional<z.ZodString>;
|
|
14
|
+
}, "strip", z.ZodTypeAny, {
|
|
15
|
+
lessons: string[];
|
|
16
|
+
id: string;
|
|
17
|
+
created_at: string;
|
|
18
|
+
skill: string;
|
|
19
|
+
status: "proposed" | "applied" | "rejected";
|
|
20
|
+
from_log: string;
|
|
21
|
+
target_section: string;
|
|
22
|
+
additions: string[];
|
|
23
|
+
applied_at?: string | undefined;
|
|
24
|
+
rejected_at?: string | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
id: string;
|
|
27
|
+
created_at: string;
|
|
28
|
+
skill: string;
|
|
29
|
+
from_log: string;
|
|
30
|
+
lessons?: string[] | undefined;
|
|
31
|
+
status?: "proposed" | "applied" | "rejected" | undefined;
|
|
32
|
+
applied_at?: string | undefined;
|
|
33
|
+
rejected_at?: string | undefined;
|
|
34
|
+
target_section?: string | undefined;
|
|
35
|
+
additions?: string[] | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
export type SkillPatch = z.infer<typeof skillPatchSchema>;
|
|
38
|
+
export type SkillPatchStatus = (typeof skillPatchStatuses)[number];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const skillPatchStatuses = ["proposed", "applied", "rejected"];
|
|
3
|
+
export const skillPatchSchema = z.object({
|
|
4
|
+
id: z.string().min(1),
|
|
5
|
+
created_at: z.string().datetime(),
|
|
6
|
+
skill: z.string().min(1),
|
|
7
|
+
from_log: z.string().min(1),
|
|
8
|
+
status: z.enum(skillPatchStatuses).default("proposed"),
|
|
9
|
+
target_section: z.string().default("Check"),
|
|
10
|
+
lessons: z.array(z.string()).default([]),
|
|
11
|
+
additions: z.array(z.string()).default([]),
|
|
12
|
+
applied_at: z.string().datetime().optional(),
|
|
13
|
+
rejected_at: z.string().datetime().optional()
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=patch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/schemas/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAU,CAAC;AAE/E,MAAM,CAAC,MAAM,gBAAgB,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,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const projectFrontmatterSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
description: z.ZodDefault<z.ZodString>;
|
|
5
|
+
max_tokens: z.ZodDefault<z.ZodNumber>;
|
|
6
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
name: string;
|
|
9
|
+
tags: string[];
|
|
10
|
+
description: string;
|
|
11
|
+
max_tokens: number;
|
|
12
|
+
}, {
|
|
13
|
+
name: string;
|
|
14
|
+
tags?: string[] | undefined;
|
|
15
|
+
description?: string | undefined;
|
|
16
|
+
max_tokens?: number | undefined;
|
|
17
|
+
}>;
|
|
18
|
+
export type ProjectFrontmatter = z.infer<typeof projectFrontmatterSchema>;
|
|
19
|
+
export type ProjectDocument = {
|
|
20
|
+
data: ProjectFrontmatter;
|
|
21
|
+
body: string;
|
|
22
|
+
raw: string;
|
|
23
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const projectFrontmatterSchema = z.object({
|
|
3
|
+
name: z.string().min(1),
|
|
4
|
+
description: z.string().default(""),
|
|
5
|
+
max_tokens: z.number().int().positive().default(500),
|
|
6
|
+
tags: z.array(z.string()).default([])
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schemas/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const skillFrontmatterSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
version: z.ZodDefault<z.ZodString>;
|
|
5
|
+
description: z.ZodDefault<z.ZodString>;
|
|
6
|
+
max_tokens: z.ZodDefault<z.ZodNumber>;
|
|
7
|
+
tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
name: string;
|
|
10
|
+
tags: string[];
|
|
11
|
+
version: string;
|
|
12
|
+
description: string;
|
|
13
|
+
max_tokens: number;
|
|
14
|
+
}, {
|
|
15
|
+
name: string;
|
|
16
|
+
tags?: string[] | undefined;
|
|
17
|
+
version?: string | undefined;
|
|
18
|
+
description?: string | undefined;
|
|
19
|
+
max_tokens?: number | undefined;
|
|
20
|
+
}>;
|
|
21
|
+
export type SkillFrontmatter = z.infer<typeof skillFrontmatterSchema>;
|
|
22
|
+
export type SkillDocument = {
|
|
23
|
+
data: SkillFrontmatter;
|
|
24
|
+
body: string;
|
|
25
|
+
raw: string;
|
|
26
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const skillFrontmatterSchema = z.object({
|
|
3
|
+
name: z.string().min(1),
|
|
4
|
+
version: z.string().default("0.1.0"),
|
|
5
|
+
description: z.string().default(""),
|
|
6
|
+
max_tokens: z.number().int().positive().default(700),
|
|
7
|
+
tags: z.array(z.string()).default([])
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/schemas/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACtC,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const workerStatuses: readonly ["active", "draft", "archived"];
|
|
3
|
+
export declare const workerProfileSchema: z.ZodObject<{
|
|
4
|
+
name: z.ZodString;
|
|
5
|
+
description: z.ZodDefault<z.ZodString>;
|
|
6
|
+
project: z.ZodOptional<z.ZodString>;
|
|
7
|
+
default_skills: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
8
|
+
style: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
9
|
+
max_tokens: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
status: z.ZodDefault<z.ZodEnum<["active", "draft", "archived"]>>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
status: "active" | "archived" | "draft";
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
max_tokens: number;
|
|
16
|
+
default_skills: string[];
|
|
17
|
+
style: string[];
|
|
18
|
+
project?: string | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
name: string;
|
|
21
|
+
project?: string | undefined;
|
|
22
|
+
status?: "active" | "archived" | "draft" | undefined;
|
|
23
|
+
description?: string | undefined;
|
|
24
|
+
max_tokens?: number | undefined;
|
|
25
|
+
default_skills?: string[] | undefined;
|
|
26
|
+
style?: string[] | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
export type WorkerProfile = z.infer<typeof workerProfileSchema>;
|
|
29
|
+
export type WorkerStatus = (typeof workerStatuses)[number];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const workerStatuses = ["active", "draft", "archived"];
|
|
3
|
+
export const workerProfileSchema = z.object({
|
|
4
|
+
name: z.string().min(1),
|
|
5
|
+
description: z.string().default(""),
|
|
6
|
+
project: z.string().optional(),
|
|
7
|
+
default_skills: z.array(z.string()).default([]),
|
|
8
|
+
style: z.array(z.string()).default([]),
|
|
9
|
+
max_tokens: z.number().int().positive().default(300),
|
|
10
|
+
status: z.enum(workerStatuses).default("active")
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/schemas/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAU,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACpD,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;CACjD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const briefopsVersion = "1.0.0";
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Codex Resume
|
|
2
|
+
|
|
3
|
+
`briefops codex resume` combines a handoff brief with a Codex execution contract.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
briefops codex resume --worker quant-reviewer --task "Continue the rebalance review and identify remaining risks." --save
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Use `--export-policy shared-only` when the resume prompt may be pasted outside the local Codex workspace.
|
|
10
|
+
|
|
11
|
+
Shared-only resume output includes selected shared/exportable memory and omits private memory, local project file details, raw work logs, open risks, local next steps, private worker history, and private metadata counts.
|
|
12
|
+
|
|
13
|
+
The generated prompt includes continuity rules, evidence gates, a completion signal, and after-completion logging instructions.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# BriefOps 1.0 Compatibility Policy
|
|
2
|
+
|
|
3
|
+
BriefOps follows semantic versioning for the public CLI and local file formats.
|
|
4
|
+
|
|
5
|
+
## Stable In 1.0
|
|
6
|
+
|
|
7
|
+
- Public commands documented in `README.md`.
|
|
8
|
+
- `.briefops/` source file formats documented in `docs/file-format.md`.
|
|
9
|
+
- `shared-only` and `local-private` export policy names.
|
|
10
|
+
- Human-approved memory proposal and skill patch flow.
|
|
11
|
+
- Workspace lock behavior for local write operations.
|
|
12
|
+
- Harness router export targets: `agents-md`, `claude-md`, `cursor-rules`, and `all`.
|
|
13
|
+
|
|
14
|
+
## Compatible Changes
|
|
15
|
+
|
|
16
|
+
Minor and patch releases may:
|
|
17
|
+
|
|
18
|
+
- Add optional fields with safe defaults.
|
|
19
|
+
- Add new commands or flags.
|
|
20
|
+
- Add new generated artifact sections.
|
|
21
|
+
- Improve deterministic selection, trimming, and warnings.
|
|
22
|
+
- Add new doctor checks that warn without rewriting user data.
|
|
23
|
+
|
|
24
|
+
## Breaking Changes
|
|
25
|
+
|
|
26
|
+
Breaking changes require a new major version. Examples:
|
|
27
|
+
|
|
28
|
+
- Removing or renaming stable CLI commands or flags.
|
|
29
|
+
- Changing required fields in documented `.briefops/` source formats.
|
|
30
|
+
- Changing `shared-only` so it includes private local content or private metadata counts.
|
|
31
|
+
- Auto-applying memory proposals or skill patches.
|
|
32
|
+
- Requiring a hosted service, network dependency, agent runtime, MCP server, vector database, or cloud sync.
|
|
33
|
+
|
|
34
|
+
## Workspace Version Support
|
|
35
|
+
|
|
36
|
+
New 1.0 workspaces write `version: 1.0.0` in `.briefops/config.yaml`.
|
|
37
|
+
|
|
38
|
+
BriefOps 1.0 can read legacy `0.x` workspace configs on a best-effort compatibility basis. Future `2.x` workspace configs fail with an explicit upgrade error instead of silently reading incompatible data.
|
|
39
|
+
|
|
40
|
+
## Migration Policy
|
|
41
|
+
|
|
42
|
+
BriefOps does not rewrite workspace data during normal reads. Commands that mutate user data are explicit, local, file-backed, and protected by workspace locks.
|
|
43
|
+
|
|
44
|
+
If a future release needs a migration, it must provide:
|
|
45
|
+
|
|
46
|
+
- a documented command or manual procedure,
|
|
47
|
+
- dry-run or inspection guidance,
|
|
48
|
+
- no automatic approval of memory or skill patches,
|
|
49
|
+
- tests covering old fixtures.
|
package/docs/concept.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# BriefOps Concept
|
|
2
|
+
|
|
3
|
+
BriefOps is a local-first, token-aware persistent work history layer for AI coding agents.
|
|
4
|
+
|
|
5
|
+
It does not run Codex, Claude Code, or other agents. It prepares compact continuity artifacts so a fresh thread can start with the usable parts of prior work: project constraints, worker style, active decisions, lessons, incidents, and recent logs.
|
|
6
|
+
|
|
7
|
+
The core loop is:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
brief -> work -> log -> proposal -> approved memory -> worker summary -> handoff/resume
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Raw logs remain audit records. Memory is curated operational knowledge that requires human approval.
|
package/docs/evals.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Evals
|
|
2
|
+
|
|
3
|
+
BriefOps evals are deterministic checklist cases for generated artifacts.
|
|
4
|
+
|
|
5
|
+
Use them to verify that important context appears in generated briefs:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
briefops eval create continuity-rebalance --worker quant-reviewer --input "Continue rebalance review" --expected "turnover warning threshold"
|
|
9
|
+
briefops eval run --worker quant-reviewer
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Continuity evals should check for prior lessons, decisions, and sections that a fresh thread needs before acting.
|
|
13
|
+
|
|
14
|
+
Prime-context evals should also check that the compact output is materially smaller than a manual history dump:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npm test -- tests/prime.test.ts
|
|
18
|
+
```
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# BriefOps File Format Contract
|
|
2
|
+
|
|
3
|
+
BriefOps stores all user data under `.briefops/`. Version 1.0 treats these files as the durable local data contract.
|
|
4
|
+
|
|
5
|
+
## Workspace
|
|
6
|
+
|
|
7
|
+
- `.briefops/config.yaml`
|
|
8
|
+
- `version`: workspace schema version. New 1.0 workspaces use `1.0.0`.
|
|
9
|
+
- `created_at`: ISO datetime.
|
|
10
|
+
- `defaults.project`: optional default project name.
|
|
11
|
+
- `defaults.worker`: optional default worker name.
|
|
12
|
+
- `token_budgets.prime`: default prime budget.
|
|
13
|
+
- `token_budgets.resume`: default resume/pack budget.
|
|
14
|
+
- `memory_categories`: supported memory categories.
|
|
15
|
+
|
|
16
|
+
## Source Files
|
|
17
|
+
|
|
18
|
+
- `.briefops/projects/<name>.project.md`
|
|
19
|
+
- Markdown with YAML frontmatter.
|
|
20
|
+
- Stable frontmatter: `name`, `description`, `max_tokens`, `tags`.
|
|
21
|
+
- Body is local project context. Shared-only exports omit it.
|
|
22
|
+
|
|
23
|
+
- `.briefops/skills/<name>.skill.md`
|
|
24
|
+
- Markdown with YAML frontmatter.
|
|
25
|
+
- Stable frontmatter: `name`, `version`, `description`, `max_tokens`, `tags`.
|
|
26
|
+
- Skill patches append checklist items and changelog entries only after approval.
|
|
27
|
+
|
|
28
|
+
- `.briefops/workers/<name>.worker.yaml`
|
|
29
|
+
- Stable fields: `name`, `description`, `project`, `default_skills`, `style`, `max_tokens`, `status`.
|
|
30
|
+
|
|
31
|
+
## Memory And Logs
|
|
32
|
+
|
|
33
|
+
- `.briefops/memory/<category>.yaml`
|
|
34
|
+
- Shape: `items: MemoryItem[]`.
|
|
35
|
+
- Stable item fields: `id`, `type`, `status`, `project`, `skill`, `content`, `source`, `created_at`, `tags`, `visibility`, `exportable`.
|
|
36
|
+
- Supported statuses: `active`, `stale`, `deprecated`, `superseded`, `archived`.
|
|
37
|
+
- Supported visibility values: `private`, `shared`, `public`.
|
|
38
|
+
|
|
39
|
+
- `.briefops/logs/*.yaml`
|
|
40
|
+
- Stable fields: `id`, `created_at`, `project`, `skill`, `worker`, `task`, `result`, `lessons`, `open_risks`, `next_steps`, `decisions`, `incidents`, `files_changed`, `commands_run`, `notes`.
|
|
41
|
+
- Logs are private local history. Shared-only exports omit raw logs.
|
|
42
|
+
|
|
43
|
+
## Review Queues
|
|
44
|
+
|
|
45
|
+
- `.briefops/memory-proposals/*.memory-proposal.yaml`
|
|
46
|
+
- Stable fields: `id`, `created_at`, `from_log`, `status`, `project`, `skill`, `worker`, `items`, `applied_at`, `rejected_at`.
|
|
47
|
+
- Legacy `proposals` arrays remain readable and are normalized to `items`.
|
|
48
|
+
- Proposal entries use memory item fields plus `category` and `rationale`.
|
|
49
|
+
|
|
50
|
+
- `.briefops/patches/*.patch.yaml`
|
|
51
|
+
- Stable fields: `id`, `created_at`, `skill`, `from_log`, `status`, `target_section`, `lessons`, `additions`, `applied_at`, `rejected_at`.
|
|
52
|
+
|
|
53
|
+
## Generated Artifacts
|
|
54
|
+
|
|
55
|
+
- `.briefops/handoffs/*.md`
|
|
56
|
+
- `.briefops/codex/prompts/*.md`
|
|
57
|
+
- `.briefops/briefs/*.md`
|
|
58
|
+
|
|
59
|
+
Generated artifacts are reproducible outputs, not the canonical data store. Their command names, privacy behavior, and frontmatter metadata are stable in 1.0, but users should keep durable facts in source files, memory, logs, proposals, and patches.
|
|
60
|
+
|
|
61
|
+
## Harness Router Files
|
|
62
|
+
|
|
63
|
+
- `AGENTS.md`
|
|
64
|
+
- `CLAUDE.md`
|
|
65
|
+
- `.cursor/rules/briefops-*.mdc`
|
|
66
|
+
|
|
67
|
+
`briefops export` generates router files. They contain command routing and safety boundaries only. They must not copy raw memory, logs, worker summaries, handoffs, incidents, or private decisions.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Handoff Briefs
|
|
2
|
+
|
|
3
|
+
Handoff briefs prepare a fresh AI coding thread to continue without restarting from zero.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
briefops handoff generate --worker quant-reviewer --task "Continue rebalance review" --adapter codex --save
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
A handoff includes project context, worker summary, recent work, active decisions, lessons, incidents, deprecated notes when relevant, a recommended start, after-completion commands, and token accounting.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Harness Integrations
|
|
2
|
+
|
|
3
|
+
BriefOps is not an agent harness. It does not run models, manage subscriptions, install hooks, expose MCP tools, or route work across agents.
|
|
4
|
+
|
|
5
|
+
BriefOps is a local memory and context ledger that a harness can read before work and update after work.
|
|
6
|
+
|
|
7
|
+
## Recommended Pattern
|
|
8
|
+
|
|
9
|
+
Before a task:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
briefops prime --task "<task>" --format codex --max-tokens 800
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
After meaningful work:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
briefops finish --worker <worker> --task "<task>" --result "<result>"
|
|
19
|
+
briefops memory proposal-show latest
|
|
20
|
+
briefops approve latest
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
For a fresh thread:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
briefops continue --worker <worker> --task "<next task>" --pack
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
For portable or shared context:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
briefops prime --task "<task>" --format codex --export-policy shared-only
|
|
33
|
+
briefops pack resume --worker <worker> --task "<task>" --export-policy shared-only
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
To generate always-visible harness router files:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
briefops export agents-md
|
|
40
|
+
briefops export claude-md
|
|
41
|
+
briefops export cursor-rules
|
|
42
|
+
briefops export all
|
|
43
|
+
```
|
|
44
|
+
|
|
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
|
+
|
|
47
|
+
## LazyCodex / OmO
|
|
48
|
+
|
|
49
|
+
Use LazyCodex or OmO for orchestration, hooks, LSP/MCP, and autonomous execution. Use BriefOps for durable local continuity.
|
|
50
|
+
|
|
51
|
+
Suggested human workflow:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
briefops prime --task "Implement the next scoped change." --format codex --max-tokens 800
|
|
55
|
+
codex "Use the BriefOps prime context, then run ultrawork for this task."
|
|
56
|
+
briefops finish --worker <worker> --task "Implement the next scoped change." --result "<verified result>"
|
|
57
|
+
briefops memory proposal-show latest
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Do not let a harness auto-run `briefops approve latest`. Approval should remain human-confirmed.
|
|
61
|
+
|
|
62
|
+
## Codex App And Codex CLI
|
|
63
|
+
|
|
64
|
+
Use `briefops codex plugin install` to generate local plugin assets under `.briefops/codex/plugin/briefops`.
|
|
65
|
+
|
|
66
|
+
This command does not write to global Codex folders by default.
|
|
67
|
+
|
|
68
|
+
## Claude Code
|
|
69
|
+
|
|
70
|
+
BriefOps can coexist with `CLAUDE.md`. Keep `CLAUDE.md` for always-loaded project instructions and use BriefOps for task history, approved memory, handoffs, and shared-only packs.
|
|
71
|
+
|
|
72
|
+
## Cursor
|
|
73
|
+
|
|
74
|
+
BriefOps can coexist with Cursor rules and memories. Keep Cursor rules for editor behavior and use BriefOps for auditable cross-thread work history.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Memory Lifecycle
|
|
2
|
+
|
|
3
|
+
BriefOps separates raw logs from durable memory.
|
|
4
|
+
|
|
5
|
+
Allowed flow:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
log -> memory proposal -> human approval -> memory
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Commands:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
briefops memory propose-from-log latest
|
|
15
|
+
briefops memory proposal-list
|
|
16
|
+
briefops memory proposal-show <proposal-id>
|
|
17
|
+
briefops memory proposal-apply <proposal-id>
|
|
18
|
+
briefops memory proposal-reject <proposal-id>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Extraction is deterministic and local. Lessons become lesson memory. Notes prefixed with `decision:` or `fact:` become matching memory candidates. Results containing risk or failure language become incident candidates.
|
|
22
|
+
|
|
23
|
+
Proposal generation and approval are local file-backed operations protected by workspace locks. BriefOps never auto-approves memory or skill patches.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Persistent Worker
|
|
2
|
+
|
|
3
|
+
A BriefOps worker is not roleplay. It is a durable bundle of:
|
|
4
|
+
|
|
5
|
+
- default project
|
|
6
|
+
- default skills
|
|
7
|
+
- style constraints
|
|
8
|
+
- recent work history
|
|
9
|
+
- active lessons
|
|
10
|
+
- known failure patterns
|
|
11
|
+
- judgment rules
|
|
12
|
+
|
|
13
|
+
Use `briefops worker refresh-summary <worker>` to compile this into `.briefops/workers/summaries/<worker>.summary.md`.
|
|
14
|
+
|
|
15
|
+
Handoffs and Codex resume prompts prefer this summary when it exists, so fresh threads inherit worker intelligence without dumping every prior log.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# BriefOps Privacy Model
|
|
2
|
+
|
|
3
|
+
BriefOps is local-first. It stores work history, memory, proposals, patches, generated prompts, and plugin assets under `.briefops/` in the current repository.
|
|
4
|
+
|
|
5
|
+
## Export Policies
|
|
6
|
+
|
|
7
|
+
`local-private` is for local terminal and local Codex/Claude/Cursor use. It may include private project details, approved private memory, local work logs, risks, next steps, worker history, and metadata counts.
|
|
8
|
+
|
|
9
|
+
`shared-only` is for artifacts that may leave the local workspace. It includes only memory items marked `visibility: shared` and `exportable: true`.
|
|
10
|
+
|
|
11
|
+
Shared-only omits:
|
|
12
|
+
|
|
13
|
+
- private memory,
|
|
14
|
+
- local project file details,
|
|
15
|
+
- raw work logs,
|
|
16
|
+
- open risks,
|
|
17
|
+
- local next steps,
|
|
18
|
+
- private worker lessons,
|
|
19
|
+
- private incidents,
|
|
20
|
+
- recent work history,
|
|
21
|
+
- private worker history,
|
|
22
|
+
- private metadata counts.
|
|
23
|
+
|
|
24
|
+
## Router Exports
|
|
25
|
+
|
|
26
|
+
`briefops export agents-md`, `briefops export claude-md`, `briefops export cursor-rules`, and `briefops export all` generate router files. Router files point AI harnesses to BriefOps commands. They do not copy `.briefops` memory, logs, worker summaries, handoffs, incidents, or private decisions.
|
|
27
|
+
|
|
28
|
+
## Human Approval
|
|
29
|
+
|
|
30
|
+
BriefOps never auto-approves memory proposals or skill patches. Approval is always an explicit user action through `briefops approve`, `briefops memory proposal-apply`, or `briefops skill apply-patch`.
|
|
31
|
+
|
|
32
|
+
## Doctor Checks
|
|
33
|
+
|
|
34
|
+
`briefops doctor --privacy` checks local memory sharing hazards:
|
|
35
|
+
|
|
36
|
+
- `.briefops/` gitignore coverage,
|
|
37
|
+
- private memory marked exportable,
|
|
38
|
+
- secret-like local memory strings.
|
|
39
|
+
|
|
40
|
+
`briefops doctor --security --fix-stale-locks` removes stale lock files only. It does not remove fresh locks or other workspace files.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Quickstart
|
|
2
|
+
|
|
3
|
+
## Codex First Context Path
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
briefops init
|
|
7
|
+
briefops codex install
|
|
8
|
+
briefops codex plugin install
|
|
9
|
+
briefops skill create risk-review --description "Review risk and governance."
|
|
10
|
+
briefops project create atlas-q --description "Rule-based quantitative system."
|
|
11
|
+
briefops worker create quant-reviewer --project atlas-q --skills "risk-review" --style "skeptical,verify before completion"
|
|
12
|
+
briefops worker use quant-reviewer
|
|
13
|
+
briefops export all --worker quant-reviewer --force
|
|
14
|
+
briefops memory add --type lessons --project atlas-q --skill risk-review --content "Always verify turnover warning threshold."
|
|
15
|
+
briefops prime --task "Continue rebalance review" --format codex --max-tokens 800
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
`briefops codex plugin install` is local and deterministic. It does not publish to a marketplace and does not write to global Codex folders by default.
|
|
19
|
+
|
|
20
|
+
`briefops export all` writes router files for Codex, Claude Code, and Cursor. These files point harnesses at BriefOps commands and do not copy `.briefops` memory, logs, handoffs, or worker summaries.
|
|
21
|
+
|
|
22
|
+
## Persistent Worker Path
|
|
23
|
+
|
|
24
|
+
After work finishes, log the result and promote only useful lessons:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
briefops finish --project atlas-q --skill risk-review --worker quant-reviewer --task "Review rebalance" --result "Found missing turnover warning check." --lesson "Always verify turnover warning threshold."
|
|
28
|
+
briefops approve latest
|
|
29
|
+
briefops continue --worker quant-reviewer --task "Continue rebalance review" --pack
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
BriefOps skills must never auto-approve memory proposals or skill patches. Approval is a human step.
|
|
33
|
+
|
|
34
|
+
For small or exploratory work, keep durable memory clean:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
briefops finish --task "Fix typo" --result "Fixed typo." --importance trivial
|
|
38
|
+
briefops finish --task "Try discarded approach" --result "Discarded." --no-memory-proposal
|
|
39
|
+
briefops memory hygiene
|
|
40
|
+
briefops memory prune --dry-run
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Shared-Only Export Path
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
briefops prime --task "Continue unresolved checks." --format codex --export-policy shared-only
|
|
47
|
+
briefops pack resume --worker quant-reviewer --task "Continue unresolved checks." --export-policy shared-only
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
`shared-only` 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.
|
|
51
|
+
|
|
52
|
+
`local-private` is intended for local terminal/Codex use only.
|
|
53
|
+
|
|
54
|
+
## Privacy Check
|
|
55
|
+
|
|
56
|
+
Before publishing a repository or sharing generated context, run:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
briefops doctor --privacy
|
|
60
|
+
briefops doctor --privacy --fix-gitignore
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
`.briefops/` can contain private local work logs and memory. Keep it ignored unless you intentionally curated the contents for sharing.
|
|
64
|
+
|
|
65
|
+
`doctor --privacy` checks local memory sharing hazards, including `.briefops/` gitignore coverage, private/exportable memory, and secret-like memory strings.
|
|
66
|
+
|
|
67
|
+
## Context Budget Check
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
briefops inspect budget
|
|
71
|
+
briefops compare context --worker quant-reviewer --task "Continue rebalance review"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Use these before adding more always-loaded instructions. BriefOps works best when `prime` stays compact and full resume packs are generated only when needed.
|