@osovv/vv-opencode 0.2.1 → 0.2.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.
- package/README.md +9 -2
- package/dist/commands/doctor.js +3 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/install.d.ts +5 -0
- package/dist/commands/install.js +15 -3
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/status.js +3 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +4 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/opencode.d.ts +17 -0
- package/dist/lib/opencode.js +67 -0
- package/dist/lib/opencode.js.map +1 -1
- package/dist/lib/vvoc-paths.d.ts +3 -0
- package/dist/lib/vvoc-paths.js +24 -1
- package/dist/lib/vvoc-paths.js.map +1 -1
- package/dist/plugins/memory-store.d.ts +6 -0
- package/dist/plugins/memory-store.js +35 -15
- package/dist/plugins/memory-store.js.map +1 -1
- package/package.json +3 -5
- package/AGENTS.md +0 -176
- package/dist/lib/opencode.test.d.ts +0 -1
- package/dist/lib/opencode.test.js +0 -64
- package/dist/lib/opencode.test.js.map +0 -1
- package/dist/plugins/memory.test.d.ts +0 -1
- package/dist/plugins/memory.test.js +0 -151
- package/dist/plugins/memory.test.js.map +0 -1
- package/docs/development-plan.xml +0 -235
- package/docs/knowledge-graph.xml +0 -66
- package/docs/operational-packets.xml +0 -106
- package/docs/requirements.xml +0 -77
- package/docs/technology.xml +0 -60
- package/docs/verification-plan.xml +0 -212
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
<VerificationPlan VERSION="0.3.0">
|
|
2
|
-
<GlobalPolicy>
|
|
3
|
-
<log-format>[service][function][block] message</log-format>
|
|
4
|
-
<deterministic-first>true</deterministic-first>
|
|
5
|
-
<module-level-focus>Fast deterministic checks for vvoc config layout, Guardian config rendering, memory CRUD, and reviewer registration.</module-level-focus>
|
|
6
|
-
<wave-level-focus>Typecheck, lint, format-check, and test the merged CLI + plugin surface after each coordinated change.</wave-level-focus>
|
|
7
|
-
<phase-level-focus>Buildable package output plus stable command behavior for installation, Guardian review, and explicit memory workflows.</phase-level-focus>
|
|
8
|
-
<redaction>Never log secrets, credentials, raw tokens, or high-risk payloads outside the existing Guardian truncation policy.</redaction>
|
|
9
|
-
</GlobalPolicy>
|
|
10
|
-
|
|
11
|
-
<CriticalFlows>
|
|
12
|
-
<VF-PLUGIN-INSTALL NAME="PluginInstall" USE_CASES="UC-001" DATA_FLOW="DF-PLUGIN-INSTALL" PRIORITY="high">
|
|
13
|
-
<scenario>User installs the package into a fresh global or project config root.</scenario>
|
|
14
|
-
<expected-outcome>The package name is present in the resolved OpenCode `plugin` array and Guardian config lives under the vvoc config root.</expected-outcome>
|
|
15
|
-
<required-signals>
|
|
16
|
-
<trace-sequence>resolvePaths -> ensurePackageInstalled -> installGuardianConfig -> status reports configured</trace-sequence>
|
|
17
|
-
</required-signals>
|
|
18
|
-
</VF-PLUGIN-INSTALL>
|
|
19
|
-
<VF-CONFIG-SYNC NAME="ManagedConfigSync" USE_CASES="UC-002" DATA_FLOW="DF-CONFIG-SYNC" PRIORITY="high">
|
|
20
|
-
<scenario>User syncs a managed Guardian config after changing package versions or moving to another device.</scenario>
|
|
21
|
-
<expected-outcome>The managed file is rewritten canonically and current values survive the rewrite.</expected-outcome>
|
|
22
|
-
<required-signals>
|
|
23
|
-
<trace-sequence>inspect managed file -> parse current values -> render canonical JSONC</trace-sequence>
|
|
24
|
-
</required-signals>
|
|
25
|
-
</VF-CONFIG-SYNC>
|
|
26
|
-
<VF-GUARDIAN-REVIEW NAME="GuardianReview" USE_CASES="UC-001" DATA_FLOW="DF-GUARDIAN-REVIEW" PRIORITY="high">
|
|
27
|
-
<scenario>OpenCode asks for a permission decision while Guardian is active.</scenario>
|
|
28
|
-
<expected-outcome>Low-risk actions may be auto-approved and higher-risk actions fall back to manual approval.</expected-outcome>
|
|
29
|
-
<required-signals>
|
|
30
|
-
<log-marker>guardian review started</log-marker>
|
|
31
|
-
<log-marker>guardian review completed</log-marker>
|
|
32
|
-
</required-signals>
|
|
33
|
-
</VF-GUARDIAN-REVIEW>
|
|
34
|
-
<VF-MEMORY-ACCESS NAME="MemoryAccess" USE_CASES="UC-003" DATA_FLOW="DF-MEMORY-ACCESS" PRIORITY="high">
|
|
35
|
-
<scenario>User stores and retrieves explicit memory across session, branch, project, and shared scopes.</scenario>
|
|
36
|
-
<expected-outcome>Entries are written to `.vvoc/memory`, later searchable, and never injected into prompts automatically, while the agent still receives a short system reminder to use memory tools proactively.</expected-outcome>
|
|
37
|
-
<required-signals>
|
|
38
|
-
<trace-sequence>system reminder appended -> loadMemoryRuntimeConfig -> putMemory/listMemories/searchMemories -> correct file layout</trace-sequence>
|
|
39
|
-
</required-signals>
|
|
40
|
-
</VF-MEMORY-ACCESS>
|
|
41
|
-
<VF-MEMORY-REVIEW NAME="MemoryReview" USE_CASES="UC-004" DATA_FLOW="DF-MEMORY-REVIEW" PRIORITY="medium">
|
|
42
|
-
<scenario>User invokes `@memory-reviewer` to audit existing memory.</scenario>
|
|
43
|
-
<expected-outcome>The reviewer can inspect memory with read-only tools and returns a report without changing entries.</expected-outcome>
|
|
44
|
-
<required-signals>
|
|
45
|
-
<trace-sequence>plugin config registers memory-reviewer -> reviewer uses memory_list/get/search only</trace-sequence>
|
|
46
|
-
</required-signals>
|
|
47
|
-
</VF-MEMORY-REVIEW>
|
|
48
|
-
</CriticalFlows>
|
|
49
|
-
|
|
50
|
-
<ModuleVerification>
|
|
51
|
-
<V-M-CLI-CONFIG MODULE="M-CLI-CONFIG" PRIORITY="high">
|
|
52
|
-
<test-files>
|
|
53
|
-
<file>src/lib/opencode.test.ts</file>
|
|
54
|
-
</test-files>
|
|
55
|
-
<module-checks>
|
|
56
|
-
<check-1>bun test src/lib/opencode.test.ts</check-1>
|
|
57
|
-
<check-2>bun x tsc --noEmit</check-2>
|
|
58
|
-
<check-3>bun run lint</check-3>
|
|
59
|
-
<check-4>bun run fmt:check</check-4>
|
|
60
|
-
</module-checks>
|
|
61
|
-
<scenarios>
|
|
62
|
-
<scenario-1 kind="success">Fresh install config renders with schema and plugin array.</scenario-1>
|
|
63
|
-
<scenario-2 kind="success">Existing JSONC comments survive plugin insertion.</scenario-2>
|
|
64
|
-
<scenario-3 kind="success">Guardian config round-trips explicit override values.</scenario-3>
|
|
65
|
-
<scenario-4 kind="success">Global path resolution separates `opencode/` and `vvoc/` roots.</scenario-4>
|
|
66
|
-
</scenarios>
|
|
67
|
-
<required-log-markers />
|
|
68
|
-
<required-trace-assertions>
|
|
69
|
-
<assertion-1>Sync must not overwrite unmanaged Guardian config without force.</assertion-1>
|
|
70
|
-
</required-trace-assertions>
|
|
71
|
-
<wave-follow-up>Smoke command output for `status` and `doctor` after build.</wave-follow-up>
|
|
72
|
-
<phase-follow-up>Extend tests to cover more path and scope permutations.</phase-follow-up>
|
|
73
|
-
</V-M-CLI-CONFIG>
|
|
74
|
-
|
|
75
|
-
<V-M-CLI-COMMANDS MODULE="M-CLI-COMMANDS" PRIORITY="medium">
|
|
76
|
-
<test-files>
|
|
77
|
-
<file>src/lib/opencode.test.ts</file>
|
|
78
|
-
</test-files>
|
|
79
|
-
<module-checks>
|
|
80
|
-
<check-1>bun run lint</check-1>
|
|
81
|
-
<check-2>bun run fmt:check</check-2>
|
|
82
|
-
<check-3>bun run build</check-3>
|
|
83
|
-
<check-4>bun test</check-4>
|
|
84
|
-
</module-checks>
|
|
85
|
-
<scenarios>
|
|
86
|
-
<scenario-1 kind="success">CLI compiles and registers all planned top-level subcommands.</scenario-1>
|
|
87
|
-
<scenario-2 kind="success">`guardian config --print` emits valid JSONC content.</scenario-2>
|
|
88
|
-
</scenarios>
|
|
89
|
-
<required-log-markers />
|
|
90
|
-
<required-trace-assertions>
|
|
91
|
-
<assertion-1>Command handlers should delegate file mutation to helper utilities instead of duplicating filesystem logic.</assertion-1>
|
|
92
|
-
</required-trace-assertions>
|
|
93
|
-
<wave-follow-up>Verify `vvoc install`, `vvoc sync`, and `vvoc doctor` against a temp config home.</wave-follow-up>
|
|
94
|
-
<phase-follow-up>Add command-level smoke tests once temp-dir fixtures are introduced.</phase-follow-up>
|
|
95
|
-
</V-M-CLI-COMMANDS>
|
|
96
|
-
|
|
97
|
-
<V-M-PLUGIN-GUARDIAN MODULE="M-PLUGIN-GUARDIAN" PRIORITY="high">
|
|
98
|
-
<test-files>
|
|
99
|
-
<file>typecheck-only in v1</file>
|
|
100
|
-
</test-files>
|
|
101
|
-
<module-checks>
|
|
102
|
-
<check-1>bun x tsc --noEmit</check-1>
|
|
103
|
-
</module-checks>
|
|
104
|
-
<scenarios>
|
|
105
|
-
<scenario-1 kind="success">Guardian plugin exports compile against current OpenCode plugin and SDK types.</scenario-1>
|
|
106
|
-
<scenario-2 kind="failure">Review failures fall back to manual approval instead of silently allowing.</scenario-2>
|
|
107
|
-
</scenarios>
|
|
108
|
-
<required-log-markers>
|
|
109
|
-
<marker-1>guardian plugin initialized</marker-1>
|
|
110
|
-
<marker-2>guardian review started</marker-2>
|
|
111
|
-
<marker-3>guardian review completed</marker-3>
|
|
112
|
-
</required-log-markers>
|
|
113
|
-
<required-trace-assertions>
|
|
114
|
-
<assertion-1>Auto-allow only occurs when Guardian returns a risk score below the configured threshold.</assertion-1>
|
|
115
|
-
</required-trace-assertions>
|
|
116
|
-
<wave-follow-up>Add isolated behavioral tests around assessment parsing and decision thresholds.</wave-follow-up>
|
|
117
|
-
<phase-follow-up>Consider extracting pure Guardian parsing helpers for direct unit coverage.</phase-follow-up>
|
|
118
|
-
</V-M-PLUGIN-GUARDIAN>
|
|
119
|
-
|
|
120
|
-
<V-M-PLUGIN-MEMORY-STORE MODULE="M-PLUGIN-MEMORY-STORE" PRIORITY="high">
|
|
121
|
-
<test-files>
|
|
122
|
-
<file>src/plugins/memory.test.ts</file>
|
|
123
|
-
</test-files>
|
|
124
|
-
<module-checks>
|
|
125
|
-
<check-1>bun test src/plugins/memory.test.ts</check-1>
|
|
126
|
-
<check-2>bun x tsc --noEmit</check-2>
|
|
127
|
-
</module-checks>
|
|
128
|
-
<scenarios>
|
|
129
|
-
<scenario-1 kind="success">Scoped memory entries are stored in the expected `.vvoc/memory` layout.</scenario-1>
|
|
130
|
-
<scenario-2 kind="success">Search returns the best lexical match in the requested scope.</scenario-2>
|
|
131
|
-
<scenario-3 kind="success">Update and delete preserve store consistency and clean empty directories.</scenario-3>
|
|
132
|
-
</scenarios>
|
|
133
|
-
<required-log-markers />
|
|
134
|
-
<required-trace-assertions>
|
|
135
|
-
<assertion-1>Memory stays explicit-only and no store operation injects entries into prompts automatically.</assertion-1>
|
|
136
|
-
</required-trace-assertions>
|
|
137
|
-
<wave-follow-up>Watch performance if the number of JSON entries grows significantly.</wave-follow-up>
|
|
138
|
-
<phase-follow-up>Consider indexing only when the simple file scan becomes a measured problem.</phase-follow-up>
|
|
139
|
-
</V-M-PLUGIN-MEMORY-STORE>
|
|
140
|
-
|
|
141
|
-
<V-M-PLUGIN-MEMORY MODULE="M-PLUGIN-MEMORY" PRIORITY="high">
|
|
142
|
-
<test-files>
|
|
143
|
-
<file>src/plugins/memory.test.ts</file>
|
|
144
|
-
</test-files>
|
|
145
|
-
<module-checks>
|
|
146
|
-
<check-1>bun test src/plugins/memory.test.ts</check-1>
|
|
147
|
-
<check-2>bun x tsc --noEmit</check-2>
|
|
148
|
-
</module-checks>
|
|
149
|
-
<scenarios>
|
|
150
|
-
<scenario-1 kind="success">MemoryPlugin registers all six memory tools.</scenario-1>
|
|
151
|
-
<scenario-2 kind="success">Plugin config registers the `memory-reviewer` subagent.</scenario-2>
|
|
152
|
-
<scenario-3 kind="success">Plugin appends a short system instruction encouraging proactive memory tool usage without injecting stored entries.</scenario-3>
|
|
153
|
-
<scenario-4 kind="failure">Disabled memory config blocks tool use instead of pretending memory exists.</scenario-4>
|
|
154
|
-
</scenarios>
|
|
155
|
-
<required-log-markers>
|
|
156
|
-
<marker-1>memory plugin initialized</marker-1>
|
|
157
|
-
</required-log-markers>
|
|
158
|
-
<required-trace-assertions>
|
|
159
|
-
<assertion-1>The reviewer agent must not have write/delete memory tools enabled.</assertion-1>
|
|
160
|
-
<assertion-2>The system reminder must not include stored memory entries or imply that memory is already loaded.</assertion-2>
|
|
161
|
-
</required-trace-assertions>
|
|
162
|
-
<wave-follow-up>Consider adding a smoke test around custom tool execution in a live OpenCode session.</wave-follow-up>
|
|
163
|
-
<phase-follow-up>Add coverage for memory config warnings and disabled mode if the config surface grows.</phase-follow-up>
|
|
164
|
-
</V-M-PLUGIN-MEMORY>
|
|
165
|
-
</ModuleVerification>
|
|
166
|
-
|
|
167
|
-
<PhaseGates>
|
|
168
|
-
<Gate-Phase-1 PHASE="Phase-1">
|
|
169
|
-
<goal>CLI foundation is buildable and the helper layer has deterministic checks.</goal>
|
|
170
|
-
<commands>
|
|
171
|
-
<command-1>bun x tsc --noEmit</command-1>
|
|
172
|
-
<command-2>bun run lint</command-2>
|
|
173
|
-
<command-3>bun run fmt:check</command-3>
|
|
174
|
-
<command-4>bun test</command-4>
|
|
175
|
-
</commands>
|
|
176
|
-
<required-evidence>
|
|
177
|
-
<evidence-1>Config merge and Guardian config rendering are covered by module-local tests.</evidence-1>
|
|
178
|
-
</required-evidence>
|
|
179
|
-
</Gate-Phase-1>
|
|
180
|
-
<Gate-Phase-2 PHASE="Phase-2">
|
|
181
|
-
<goal>Guardian is packaged from the repo and exported without behavior drift.</goal>
|
|
182
|
-
<commands>
|
|
183
|
-
<command-1>bun x tsc --noEmit</command-1>
|
|
184
|
-
<command-2>bun run lint</command-2>
|
|
185
|
-
<command-3>bun run fmt:check</command-3>
|
|
186
|
-
<command-4>bun run build</command-4>
|
|
187
|
-
</commands>
|
|
188
|
-
<required-evidence>
|
|
189
|
-
<evidence-1>`src/plugins/guardian.ts` is present and package root exports `GuardianPlugin`.</evidence-1>
|
|
190
|
-
</required-evidence>
|
|
191
|
-
</Gate-Phase-2>
|
|
192
|
-
<Gate-Phase-3 PHASE="Phase-3">
|
|
193
|
-
<goal>Explicit memory is packaged from the repo and stored under `.vvoc/memory` with a report-only reviewer agent.</goal>
|
|
194
|
-
<commands>
|
|
195
|
-
<command-1>bun x tsc --noEmit</command-1>
|
|
196
|
-
<command-2>bun run lint</command-2>
|
|
197
|
-
<command-3>bun run fmt:check</command-3>
|
|
198
|
-
<command-4>bun test</command-4>
|
|
199
|
-
<command-5>bun run build</command-5>
|
|
200
|
-
</commands>
|
|
201
|
-
<required-evidence>
|
|
202
|
-
<evidence-1>`src/plugins/memory.ts` and `src/plugins/memory-store.ts` are present and package root exports `MemoryPlugin`.</evidence-1>
|
|
203
|
-
</required-evidence>
|
|
204
|
-
</Gate-Phase-3>
|
|
205
|
-
</PhaseGates>
|
|
206
|
-
|
|
207
|
-
<FailurePackets>
|
|
208
|
-
<packet-template>
|
|
209
|
-
<expected-fields>scenario, expected-evidence, observed-evidence, first-divergent-block, next-action</expected-fields>
|
|
210
|
-
</packet-template>
|
|
211
|
-
</FailurePackets>
|
|
212
|
-
</VerificationPlan>
|