opensocrates 1.3.0 → 1.4.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 +40 -1
- package/README.ko.md +69 -500
- package/README.md +85 -551
- package/SECURITY.md +59 -141
- package/VERSION +1 -1
- package/installer/opensocrates.mjs +570 -1346
- package/installer/windows.ps1 +45 -0
- package/package.json +6 -12
package/README.md
CHANGED
|
@@ -1,577 +1,111 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
|
|
3
|
-
> OpenSocrates 1.3.0: decision-point retrieval and conservative Guided EN/KO presentation.
|
|
4
|
-
> See [release evidence and support limits](docs/v1.3.0-recovery/PROGRESS.md) and
|
|
5
|
-
> [migration and delivery modes](docs/decision-points.md).
|
|
6
|
-
|
|
7
2
|
<img src="https://raw.githubusercontent.com/ParkerHwang/OpenSocrates/main/docs/assets/opensocrates-banner.jpg" alt="OpenSocrates" width="820">
|
|
8
3
|
</p>
|
|
9
4
|
|
|
10
|
-
|
|
11
|
-
300-second final-delivery timeouts, even when the requested file existed.
|
|
12
|
-
This release does not promise a fixed response time or demonstrated quality,
|
|
13
|
-
naturalness, token-cost or latency improvement. See the linked release evidence
|
|
14
|
-
for every attempt and its source/configuration boundary.
|
|
5
|
+
# OpenSocrates
|
|
15
6
|
|
|
7
|
+
**A method for the judgment your Codex agent is making.**
|
|
16
8
|
|
|
17
|
-
|
|
9
|
+
OpenSocrates brings 48 authored reasoning methods to Codex. Examine assumptions,
|
|
10
|
+
compare options, and weigh evidence within the task you are already doing.
|
|
18
11
|
|
|
19
12
|
**English** | [한국어](README.ko.md)
|
|
20
13
|
|
|
21
14
|
[](https://github.com/ParkerHwang/OpenSocrates/actions/workflows/ci.yml)
|
|
22
15
|
[](https://www.npmjs.com/package/opensocrates)
|
|
23
|
-
[](https://github.com/ParkerHwang/OpenSocrates/releases)
|
|
24
16
|
[](LICENSE)
|
|
25
17
|
|
|
26
|
-
|
|
27
|
-
Google Antigravity, Claude, Codex, Cursor, Grok Build, and OpenCode. It preserves
|
|
28
|
-
each host's delivery model: Claude/Codex hidden trusted context leads with
|
|
29
|
-
teacher questions, Antigravity/Cursor/Grok expose question-led complete
|
|
30
|
-
procedures through skills, and OpenCode injects one such procedure in the same
|
|
31
|
-
turn with the native skill as fallback. Straightforward factual and mechanical
|
|
32
|
-
work can pass through unchanged.
|
|
33
|
-
|
|
34
|
-
Version `1.2.0` added first-class OpenCode support to the 48 reasoning systems,
|
|
35
|
-
including stable same-turn activation, a native skill fallback, coordinated
|
|
36
|
-
multi-host lifecycle management, and opt-in automatic updates on
|
|
37
|
-
Apple-silicon macOS (`darwin-arm64`). It uses your existing host login and does
|
|
38
|
-
not require an API key or an OpenSocrates backend.
|
|
39
|
-
|
|
40
|
-
The native plugin archives intentionally ship only `bin/launch.sh`. That
|
|
41
|
-
launcher accepts `darwin-arm64` only; macOS Intel, Linux, and Windows launchers
|
|
42
|
-
and runtimes are not shipped or supported in this release.
|
|
43
|
-
|
|
44
|
-
> **OpenSocrates 1.3.0 release contents:** in-turn selective retrieval, unchanged
|
|
45
|
-
> canonical procedures, protected presentation-only EN/KO guidance and explicit
|
|
46
|
-
> host evidence levels. Chat cloud activation remains unvalidated.
|
|
47
|
-
|
|
48
|
-
## Host support
|
|
49
|
-
|
|
50
|
-
| Host surface | Automatic selection | User-facing entry | Validation status |
|
|
51
|
-
| --- | --- | --- | --- |
|
|
52
|
-
| Google Antigravity CLI | No; explicit skill only | `opensocrates` skill | [Experimental content-only plugin; `agy 1.0.6` validation passed](docs/antigravity-support.md) |
|
|
53
|
-
| Cursor IDE and CLI | Cursor may discover the skill; no separate OpenSocrates selector call | `/opensocrates` | [Experimental content-only Agent Plugin; official package contract checked, no live Cursor receipt](docs/cursor-support.md) |
|
|
54
|
-
| Grok Build `grok -p` | Yes; native same-turn skill selection | `/opensocrates` | [Automatic and explicit native skill validated on Grok Build 1.0.3](docs/grok-support.md) |
|
|
55
|
-
| Grok Build TUI | Native plugin is shared with headless; activation receipt pending | `/opensocrates` | [TUI hook execution verified, native skill marker test pending; shipped package has no hooks](docs/grok-support.md) |
|
|
56
|
-
| OpenCode TUI and `opencode run` | Yes; stable same-turn local bridge | Native `opensocrates` skill | [OpenCode 1.18.18 TUI, `opencode run`, and DeepSeek V4 Flash live smoke validated](docs/opencode-support.md) |
|
|
57
|
-
| Codex CLI and Desktop | Yes, after one-time in-app hook approval | OpenSocrates plugin | Package and launcher release-validated on `darwin-arm64`; no live Codex hook-delivery receipt |
|
|
58
|
-
| Claude Code CLI | Yes, through `UserPromptSubmit` | Plugin: `/opensocrates:opensocrates` | Locally validated on `darwin-arm64` |
|
|
59
|
-
| Claude Code desktop app, Local mode | Yes, where Claude Code plugins run | Plugin: `/opensocrates:opensocrates` | [Authenticated hook lifecycle locally validated](docs/claude-desktop-live-probe.md) |
|
|
60
|
-
| Claude Cowork with the local plugin | Yes, in the tested local plugin upload | Plugin: `/opensocrates:opensocrates` | [Native hook lifecycle locally validated; direct release upload, no marketplace sync](docs/claude-cowork-live-probe.md) |
|
|
61
|
-
| Claude web and Desktop Chat | No OpenSocrates hooks | Standalone skill: `/opensocrates` | [v1.3 archive export validated; cloud activation unvalidated](docs/claude-chat-upload-probe.md) |
|
|
62
|
-
|
|
63
|
-
The status column uses four distinct levels. Do not read them as
|
|
64
|
-
interchangeable:
|
|
65
|
-
|
|
66
|
-
- **Implemented** — the integration exists in code and ships in the package.
|
|
67
|
-
- **Locally validated** — exercised end to end on a maintainer machine, but
|
|
68
|
-
not on every build.
|
|
69
|
-
- **Release-validated** — exercised by the release gate on every build. For
|
|
70
|
-
Codex this currently covers the package and launcher, not live hook delivery.
|
|
71
|
-
- **Experimental / no live probe receipt** — implemented, but no captured
|
|
72
|
-
receipt shows the host actually delivering the hook. `os capabilities show`
|
|
73
|
-
reports these capabilities as `unknown`, not as available.
|
|
74
|
-
|
|
75
|
-
The Claude plugin's canonical explicit command is
|
|
76
|
-
`/opensocrates:opensocrates`, following Anthropic's
|
|
77
|
-
[plugin namespace contract](https://code.claude.com/docs/en/plugins). A current
|
|
78
|
-
Claude version can also offer `/opensocrates` as a bare alias when no other
|
|
79
|
-
command owns that name, but the alias is not the canonical plugin contract and
|
|
80
|
-
does not prove which skill source answered. The separately uploaded Chat ZIP
|
|
81
|
-
is a standalone skill and canonically uses `/opensocrates`. Chat surfaces do
|
|
82
|
-
not run the packaged OpenSocrates hooks; automatic per-prompt selection is
|
|
83
|
-
available only on Claude Code and Cowork surfaces that execute the plugin
|
|
84
|
-
runtime. OpenSocrates fails open if a hook or selector is unavailable.
|
|
85
|
-
|
|
86
|
-
Keep three Claude provenance states separate: the installer-managed local
|
|
87
|
-
plugin, a standalone ZIP manually uploaded to Chat, and any pre-existing
|
|
88
|
-
synced/custom skill. Local plugin status cannot prove or update either Cloud
|
|
89
|
-
state. Historical records report local plugin version 1.2.1, while the
|
|
90
|
-
pre-existing synced/custom observation is 1.1.2; neither is evidence that an
|
|
91
|
-
exact v1.2.1 standalone release ZIP was uploaded.
|
|
92
|
-
|
|
93
|
-
The published v1.1.2 Claude plugin archive exceeded Cowork's documented
|
|
94
|
-
compressed limit and observed uncompressed limit. A pre-release v1.1.3
|
|
95
|
-
candidate was 13.8 MB compressed and 34.1 MB uncompressed, contained neither
|
|
96
|
-
the Codex runtime nor a nested ZIP, and passed Cowork's local upload. Its
|
|
97
|
-
UserPromptSubmit, PostToolUse(Read), authenticated grounding receipt, Stop, and
|
|
98
|
-
cleanup lifecycle is locally validated. Version 1.1.4 is the first release to
|
|
99
|
-
ship that reviewed package boundary. The repository still has no Cowork
|
|
100
|
-
marketplace manifest, so Cowork installation uses the local plugin upload path
|
|
101
|
-
rather than repository sync.
|
|
102
|
-
|
|
103
|
-
## Install
|
|
104
|
-
|
|
105
|
-
Before installing, sign in to the host and make sure its command is available:
|
|
106
|
-
|
|
107
|
-
- Antigravity: `agy 1.0.0` or later; support is explicit-skill only;
|
|
108
|
-
- Cursor: Cursor `2.5.0` or later; support is explicit-skill first;
|
|
109
|
-
- Claude: Claude Code `2.1.205` or later and the `claude` command;
|
|
110
|
-
- Codex: an OAuth-authenticated `codex` command.
|
|
111
|
-
- Grok Build: `grok 1.0.3` or later; existing Grok authentication, with no additional API key.
|
|
112
|
-
- OpenCode: OpenCode `1.18.18` or later; any configured provider/model is accepted.
|
|
113
|
-
|
|
114
|
-
Node.js 20 or later is required. The published `opensocrates` npm package is a
|
|
115
|
-
small, dependency-free installer. It downloads the matching package from
|
|
116
|
-
GitHub Releases and verifies the release checksum and every file checksum
|
|
117
|
-
before registering an owner-marked managed marketplace.
|
|
118
|
-
|
|
119
|
-
### Install every ready host
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
npx --yes opensocrates@1.3.0 install --host all
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
The all-host path detects supported, authenticated host CLIs, completes every
|
|
126
|
-
preflight before changing any host, verifies and stages every selected package,
|
|
127
|
-
and then activates one release transactionally. If one activation fails, every
|
|
128
|
-
host already changed in that transaction is restored to its previous managed
|
|
129
|
-
registration.
|
|
130
|
-
|
|
131
|
-
Use the same host value for the complete lifecycle:
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
npx --yes opensocrates@1.3.0 status --host all
|
|
135
|
-
npx --yes opensocrates@1.3.0 update --host all
|
|
136
|
-
npx --yes opensocrates@1.3.0 remove --host all
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Remove a registration, purge owned payloads, or reset Codex trust
|
|
140
|
-
|
|
141
|
-
Ordinary `remove` keeps its backward-compatible, narrow contract: it removes
|
|
142
|
-
the selected exact host registration and installer-managed root and reconciles
|
|
143
|
-
the updater, but it may leave host-owned OpenSocrates plugin caches and the
|
|
144
|
-
installer desired-state file. Its output names every remaining known
|
|
145
|
-
OpenSocrates path and the purge command to run next; it does not describe that
|
|
146
|
-
result as a complete uninstall.
|
|
18
|
+
## Get started
|
|
147
19
|
|
|
148
|
-
|
|
20
|
+
Version **1.4.0 supports Codex only**, on **Apple-silicon macOS and Windows x64**.
|
|
21
|
+
Install Node.js 20 or later, make the Codex CLI available, and sign in to Codex.
|
|
22
|
+
The native runtime is bundled; users do not need Python.
|
|
149
23
|
|
|
150
|
-
```
|
|
151
|
-
npx --yes opensocrates@1.
|
|
152
|
-
# One host: npx --yes opensocrates@1.3.0 remove --host claude --purge
|
|
153
|
-
# Also reset only OpenSocrates Codex hook trust:
|
|
154
|
-
npx --yes opensocrates@1.3.0 remove --host all --purge --reset-trust
|
|
155
|
-
# Codex only: npx --yes opensocrates@1.3.0 remove --host codex --purge --reset-trust
|
|
24
|
+
```sh
|
|
25
|
+
npx --yes opensocrates@1.4.0 install
|
|
156
26
|
```
|
|
157
27
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
lifecycle lock is released—the final known installer state files and an empty
|
|
164
|
-
state directory. It never recursively deletes broad host parents such as
|
|
165
|
-
`~/.claude/plugins`, `~/.codex/plugins`, or `~/.opensocrates`.
|
|
166
|
-
|
|
167
|
-
An active Claude cache with a live `.in_use/<pid>`, a missing host CLI that
|
|
168
|
-
prevents registration verification, a symlink, an invalid marker or manifest,
|
|
169
|
-
nonempty unverified plugin data, or a cleanup/permission failure makes the
|
|
170
|
-
result `pending` or failed and the command exits unsuccessfully. Close the
|
|
171
|
-
host or resolve the reported path and rerun the same purge command; a completed
|
|
172
|
-
purge is idempotent. Other plugins and user task, project, chat, plan, and
|
|
173
|
-
history data are preserved byte-for-byte.
|
|
174
|
-
|
|
175
|
-
The four removal surfaces remain separate:
|
|
176
|
-
|
|
177
|
-
- **Plugin registration:** ordinary remove and purge ask the selected host to
|
|
178
|
-
remove only the exact `opensocrates@opensocrates` registration.
|
|
179
|
-
- **Payload and installer state:** `--purge` verifies ownership before removing
|
|
180
|
-
the exact cache/data/managed-state paths described above.
|
|
181
|
-
- **Host security trust:** Codex hook approval is not payload. Purge preserves
|
|
182
|
-
it by default and reports that fact. Add `--reset-trust` explicitly with
|
|
183
|
-
`--host codex` or `--host all` to reset only the seven canonical
|
|
184
|
-
OpenSocrates hook approvals.
|
|
185
|
-
- **User history:** task, project, chat, plan, session, and history content is
|
|
186
|
-
never a removal target and remains byte-for-byte unchanged.
|
|
187
|
-
|
|
188
|
-
Codex CLI 0.145.0 has no supported narrow trust-removal command, so this opt-in
|
|
189
|
-
fallback targets only the exact `CODEX_HOME/config.toml`. It removes canonical
|
|
190
|
-
OpenSocrates sections for `pre_tool_use`, `post_tool_use`, `pre_compact`,
|
|
191
|
-
`session_start`, `session_end`, `user_prompt_submit`, and `stop`, without
|
|
192
|
-
hard-coding or printing their hashes. Other settings, plugins, comments, order,
|
|
193
|
-
whitespace, and LF/CRLF style are preserved. A symlink, noncanonical matching
|
|
194
|
-
section, unexpected key, invalid config, unsupported Codex validator, concurrent
|
|
195
|
-
change, or write/validation failure makes the purge partial. The original
|
|
196
|
-
config is retained or transactionally restored when rollback remains safe. If
|
|
197
|
-
a later external edit makes automatic rollback unsafe, that edit is not
|
|
198
|
-
overwritten and the owner-only recovery copy is preserved. No complete result
|
|
199
|
-
is claimed. Reinstallation is expected to present those seven hooks as new
|
|
200
|
-
approvals; that live approval flow still requires separate host evidence.
|
|
201
|
-
|
|
202
|
-
A private `~/.opensocrates/desired-state.json` manifest records the selected
|
|
203
|
-
channel, installed hosts, and desired active version. `status --host all`
|
|
204
|
-
reports the desired and available versions, last check, last successful
|
|
205
|
-
automatic update, and per-host drift.
|
|
28
|
+
Start a new interactive Codex session and review the seven OpenSocrates command
|
|
29
|
+
hooks. Approve those hooks before relying on native discovery. Non-interactive
|
|
30
|
+
`codex exec` skips untrusted hooks; installation alone does not establish hook
|
|
31
|
+
approval or actual delivery. You can explicitly ask Codex to use the
|
|
32
|
+
`opensocrates` controller skill.
|
|
206
33
|
|
|
207
|
-
|
|
34
|
+
If you previously disabled these hooks, enable them in Codex's `/hooks` view.
|
|
35
|
+
Updating the plugin preserves your hook enablement and trust preferences.
|
|
208
36
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
npx --yes opensocrates@1.3.0 install
|
|
213
|
-
# Equivalent: npx --yes opensocrates@1.3.0 install --host codex
|
|
214
|
-
npx --yes opensocrates@1.3.0 install --host antigravity
|
|
215
|
-
npx --yes opensocrates@1.3.0 install --host claude
|
|
216
|
-
npx --yes opensocrates@1.3.0 install --host cursor
|
|
217
|
-
npx --yes opensocrates@1.3.0 install --host grok
|
|
218
|
-
npx --yes opensocrates@1.3.0 install --host opencode
|
|
37
|
+
```sh
|
|
38
|
+
npx --yes opensocrates@1.4.0 status
|
|
39
|
+
npx --yes opensocrates@1.4.0 update
|
|
219
40
|
```
|
|
220
41
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
hook, launcher, native runtime, background service, telemetry, or extra model
|
|
224
|
-
selector call. See the [Antigravity support boundary](docs/antigravity-support.md).
|
|
225
|
-
Cursor installs a content-only Agent Plugin at
|
|
226
|
-
`~/.cursor/plugins/local/opensocrates`. It includes one skill and no hook,
|
|
227
|
-
launcher, native runtime, background service, telemetry, or separate selector
|
|
228
|
-
model call. See the [Cursor support boundary](docs/cursor-support.md).
|
|
229
|
-
Grok Build installs a native content-only plugin at
|
|
230
|
-
`~/.grok/plugins/opensocrates`. It exposes one auto-selectable and explicitly
|
|
231
|
-
invocable `/opensocrates` skill with 48 internal procedures. The package has no
|
|
232
|
-
hooks, command, agent, MCP server, launcher, runtime, or nested selector call.
|
|
233
|
-
The installer reads Grok's machine-readable inspection state but owns only that
|
|
234
|
-
exact directory and never modifies or removes a Claude installation. See the
|
|
235
|
-
[Grok Build support boundary](docs/grok-support.md).
|
|
236
|
-
Existing `--host codex` and `--host claude` lifecycle commands remain
|
|
237
|
-
supported. A host-specific update can intentionally create drift; a later
|
|
238
|
-
`update --host all` or successful automatic reconciliation brings every host
|
|
239
|
-
recorded in desired state back to one version.
|
|
240
|
-
|
|
241
|
-
OpenCode installation owns only `plugins/opensocrates.js`, its sidecar, and
|
|
242
|
-
`skills/opensocrates/` beneath `~/.config/opencode`; it never rewrites
|
|
243
|
-
`opencode.json` or unrelated plugins and skills. See the
|
|
244
|
-
[OpenCode support and evidence boundary](docs/opencode-support.md).
|
|
245
|
-
|
|
246
|
-
For Claude, status distinguishes an enabled installation from an
|
|
247
|
-
installed-but-disabled plugin. A disabled desired installation is reported as
|
|
248
|
-
drift. Running `install` or `update` intentionally installs the verified
|
|
249
|
-
package enabled again; if activation fails, rollback restores the previous
|
|
250
|
-
enabled or disabled state. The installer accepts only the observed direct JSON
|
|
251
|
-
arrays and explicit `marketplaces`/`plugins` wrappers from Claude's list
|
|
252
|
-
commands. The privacy-safe 2.1.226 fixture is under
|
|
253
|
-
`installer/fixtures/claude-cli/`.
|
|
254
|
-
|
|
255
|
-
### Opt-in automatic updates
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
npx --yes opensocrates@1.3.0 auto-update enable --host all
|
|
259
|
-
npx --yes opensocrates@1.3.0 auto-update status
|
|
260
|
-
npx --yes opensocrates@1.3.0 auto-update disable
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
Automatic updates are disabled until explicitly enabled. The macOS LaunchAgent
|
|
264
|
-
starts a bounded hourly poll; desired state applies the configured interval
|
|
265
|
-
(24 hours by default) with jitter and a single-instance lock. The job invokes
|
|
266
|
-
the selected npm channel, verifies release and package checksums, stages every
|
|
267
|
-
managed host, and reconciles them as one transaction. Major-version upgrades
|
|
268
|
-
are blocked by default; use `--allow-major` only when that policy is intended.
|
|
269
|
-
|
|
270
|
-
Passing one host to `auto-update enable` narrows only the automatic-update
|
|
271
|
-
scope. It never removes another installed host from desired state;
|
|
272
|
-
`status --host all` continues to track every installation, and a later
|
|
273
|
-
`update --host all` still reconciles the complete installed set.
|
|
274
|
-
|
|
275
|
-
The updater keeps a private receipt with version, time, per-host result, and an
|
|
276
|
-
error category only. It never records prompts, transcripts, credentials, or
|
|
277
|
-
workspace paths. `auto-update disable` unloads and removes the LaunchAgent;
|
|
278
|
-
`remove --host all` does the same before removing the managed hosts.
|
|
279
|
-
|
|
280
|
-
### Claude web and Desktop Chat skills
|
|
281
|
-
|
|
282
|
-
These surfaces can use a separately uploaded standalone skill but do not run
|
|
283
|
-
the local plugin hooks.
|
|
284
|
-
|
|
285
|
-
Chat standalone export: **archive contract validated; live activation unvalidated.**
|
|
286
|
-
|
|
287
|
-
The complete v1.3.0 standalone ZIP ships with all 48 methods in EN/KO. Its
|
|
288
|
-
layout/reference integrity and public release provenance are separate from an
|
|
289
|
-
account-level upload. Older custom/synced skills are not automatically upgraded
|
|
290
|
-
by the local installer. See [version-bound support evidence](docs/claude-chat-upload-probe.md).
|
|
291
|
-
|
|
292
|
-
When the exact release is published, verify its checksum before using Claude's
|
|
293
|
-
**Customize → Skills → Upload skill** UI. The ZIP must contain one top-level
|
|
294
|
-
`opensocrates/` folder with `SKILL.md` directly inside. It is not the Claude
|
|
295
|
-
Code/Cowork plugin archive. The standalone package exposes exactly one
|
|
296
|
-
canonical `/opensocrates` skill; its 48 method procedures, rigor, evidence, and
|
|
297
|
-
trace controls are internal supporting references. Automatic hook selection is
|
|
298
|
-
absent because Chat does not execute the packaged hooks. See Anthropic's
|
|
299
|
-
[custom skill guide](https://support.claude.com/en/articles/12512180-use-skills-in-claude).
|
|
300
|
-
|
|
301
|
-
### Install from a tagged GitHub source
|
|
302
|
-
|
|
303
|
-
The same host option works without the npm registry by using the published tag:
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host all
|
|
307
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host antigravity
|
|
308
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host claude
|
|
309
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host codex
|
|
310
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host cursor
|
|
311
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host grok
|
|
312
|
-
npx --yes github:ParkerHwang/OpenSocrates#v1.3.0 install --host opencode
|
|
313
|
-
```
|
|
42
|
+
`--host codex` is optional. The compatibility alias `--host all` now means Codex
|
|
43
|
+
only. Other host names are rejected before installation or removal.
|
|
314
44
|
|
|
315
|
-
|
|
45
|
+
## Upgrading from a multi-host release
|
|
316
46
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
47
|
+
Claude Code, Cowork, Claude Chat, Antigravity, Cursor, Grok Build, and OpenCode
|
|
48
|
+
integrations and archives are removed in 1.4.0. Existing non-Codex installations
|
|
49
|
+
are not silently erased. If your previous desired state includes another host,
|
|
50
|
+
first use the version that installed it to remove that host, then update Codex:
|
|
321
51
|
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
--checksum opensocrates-1.3.0-claude-plugin.zip.sha256
|
|
52
|
+
```sh
|
|
53
|
+
# Example for an installation managed by 1.3.1:
|
|
54
|
+
npx --yes opensocrates@1.3.1 remove --host claude --purge
|
|
55
|
+
npx --yes opensocrates@1.4.0 update --host codex
|
|
327
56
|
```
|
|
328
57
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
The following describes the compatibility selector path, not the v1.3 default
|
|
385
|
-
discovery-only hook. In that legacy path, Claude hook surfaces prefer an owner-only `.opensocrates` artifact area inside
|
|
386
|
-
the current workspace so Claude can read the selected content without an extra
|
|
387
|
-
directory permission. Its self-contained `.gitignore` keeps the area out of
|
|
388
|
-
`git status`; files are removed on turn/session cleanup. If the workspace is
|
|
389
|
-
unusable, OpenSocrates falls back to the owner-only OS temporary directory.
|
|
390
|
-
Because the preferred area is inside the workspace, a separate backup or sync
|
|
391
|
-
tool that ignores neither `.gitignore` nor hidden directories could observe the
|
|
392
|
-
authored OpenSocrates artifact while it exists. Artifacts never contain the raw
|
|
393
|
-
prompt, transcript, workspace content, credentials, or selector reasoning.
|
|
394
|
-
|
|
395
|
-
On Claude hook surfaces, a Read-only `PostToolUse` hook records an authenticated
|
|
396
|
-
receipt only when the exact current-turn file is read from its first line
|
|
397
|
-
through a terminal marker. At `Stop`, a missing receipt or audit line requests
|
|
398
|
-
one bounded repair pass; `stop_hook_active` prevents a continuation loop. A
|
|
399
|
-
partial, truncated, failed, or wrong-file read is not accepted. Claude Chat
|
|
400
|
-
does not run these hooks, so its grounding contract remains skills-only.
|
|
401
|
-
|
|
402
|
-
The receipt records that a successful `Read` callback for that exact file
|
|
403
|
-
returned content reaching the terminal marker. It is not a proof that every byte
|
|
404
|
-
was delivered, and the gate fails open. See [SECURITY.md](SECURITY.md) for the
|
|
405
|
-
boundary this does and does not defend.
|
|
406
|
-
|
|
407
|
-
There is no fixed selection-count limit. The selector has a 30-second internal
|
|
408
|
-
deadline, does not retry, and fails open. A timeout, host error, invalid output,
|
|
409
|
-
non-intervention decision, unsafe context, or unavailable hook produces no
|
|
410
|
-
injection and does not block the user's task.
|
|
411
|
-
|
|
412
|
-
On Claude, explicitly invoke the same controller when desired:
|
|
413
|
-
|
|
414
|
-
```text
|
|
415
|
-
/opensocrates:opensocrates <request>
|
|
416
|
-
/opensocrates:opensocrates auto <request>
|
|
417
|
-
/opensocrates:opensocrates trace
|
|
418
|
-
/opensocrates:opensocrates status
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
Those commands are for the Claude Code/Cowork plugin. The standalone Chat ZIP
|
|
422
|
-
uses `/opensocrates` instead. The plugin's registered command inventory names
|
|
423
|
-
`/opensocrates:opensocrates`; do not use a bare alias as source evidence. The
|
|
424
|
-
controller selects and loads internal method references, so users do not need
|
|
425
|
-
to browse the 48-system implementation catalog.
|
|
426
|
-
|
|
427
|
-
The Claude selector uses one `claude --safe-mode -p` process with no session
|
|
428
|
-
persistence. Safe mode disables user, project, and plugin customizations:
|
|
429
|
-
`CLAUDE.md`, skills, plugins, hooks, MCP servers, custom commands, and agents.
|
|
430
|
-
OpenSocrates additionally passes `--tools ""`, `--disallowedTools "mcp__*"`,
|
|
431
|
-
and `--strict-mcp-config` so that no built-in or MCP tool remains available. It
|
|
432
|
-
receives only the current prompt and the authored selection catalog.
|
|
433
|
-
|
|
434
|
-
Managed policy settings are part of the host trust boundary and are **not**
|
|
435
|
-
disabled by safe mode. Anthropic's
|
|
436
|
-
[CLI reference](https://code.claude.com/docs/en/cli-reference) states that under
|
|
437
|
-
`--safe-mode` "managed settings policy still applies, including
|
|
438
|
-
policy-configured hooks". On a machine where an administrator configures a
|
|
439
|
-
managed `UserPromptSubmit` hook, that hook runs inside the selector process,
|
|
440
|
-
receives the current prompt on standard input, and can return
|
|
441
|
-
`additionalContext` that enters selection. Managed plugins, managed skills,
|
|
442
|
-
managed `CLAUDE.md`, and policy-configured MCP servers do not load. If your
|
|
443
|
-
organization configures managed hooks, treat the selector prompt as visible to
|
|
444
|
-
them and disable OpenSocrates selection if that is unacceptable.
|
|
445
|
-
|
|
446
|
-
The Codex selector can additionally use bounded transcript context unless
|
|
447
|
-
disabled:
|
|
448
|
-
|
|
449
|
-
```bash
|
|
450
|
-
export OPENSOCRATES_SELECTOR_TRANSCRIPT_ACCESS=0
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
## Privacy and security
|
|
454
|
-
|
|
455
|
-
OpenSocrates runs its integration locally and uses the existing Claude or
|
|
456
|
-
Codex login. Host model requests are still processed by the selected host
|
|
457
|
-
service under that service's terms. OpenSocrates does not host a backend, add
|
|
458
|
-
telemetry, store an API key, or execute the user's requested task.
|
|
459
|
-
|
|
460
|
-
Temporary instruction files contain authored OpenSocrates content only. Raw
|
|
461
|
-
prompts, transcripts, workspace files, tool data, credentials, and selector
|
|
462
|
-
reasoning are not written to OpenSocrates records, logs, metrics, diagnostics,
|
|
463
|
-
or instruction files. The complete Read response is inspected only in memory
|
|
464
|
-
for its terminal marker and is not retained. The owner-only grounding receipt
|
|
465
|
-
stores only an artifact digest, content revision, selected method IDs, and
|
|
466
|
-
keyed authentication/tool-use tags—never a prompt, tool output, workspace path,
|
|
467
|
-
or artifact path. Turn files and receipts are removed on `Stop`. If `Stop` never
|
|
468
|
-
arrives, the next `UserPromptSubmit` in the same session removes every prior
|
|
469
|
-
`prompt_id` tree before selecting for the new turn while preserving the new
|
|
470
|
-
active tree. `SessionEnd` removes anything still left in the session, and the
|
|
471
|
-
next `SessionStart` removes crash leftovers older than 24 hours.
|
|
472
|
-
|
|
473
|
-
Claude selector attempts increment one owner-only local aggregate using only
|
|
474
|
-
the fixed labels `executable_missing`, `request_rejected`, `spawn_failed`,
|
|
475
|
-
`timeout`, `nonzero_exit`, `invalid_output`, `selector_closed`,
|
|
476
|
-
`no_intervention`, and `selected`. `diagnose` reports those cumulative counts.
|
|
477
|
-
The aggregate contains no timestamp, prompt, transcript, session or turn ID,
|
|
478
|
-
path, model output, credential, or reasoning, and is never uploaded.
|
|
479
|
-
If the aggregate is unreadable, `diagnose` reports it as `unavailable` instead
|
|
480
|
-
of asserting zero attempts. The next valid selector outcome replaces a
|
|
481
|
-
malformed current-schema aggregate with a fresh bounded count document; an
|
|
482
|
-
unknown future schema is preserved for the newer runtime that owns it.
|
|
483
|
-
|
|
484
|
-
The packaged `diagnose` command also verifies the installed file inventory
|
|
485
|
-
against `checksums.sha256` and checks that the release manifest identifies the
|
|
486
|
-
running version, host, and content revision. It reports `verified`, `mismatch`,
|
|
487
|
-
`unavailable`, or `unverified` rather than inferring success from file presence.
|
|
488
|
-
These hashes detect local change or damage; the manifest and checksum file are
|
|
489
|
-
not signed and therefore are not an authenticity proof against an attacker who
|
|
490
|
-
can replace the whole package.
|
|
491
|
-
|
|
492
|
-
When enabled, the updater stores only desired lifecycle state and the concise
|
|
493
|
-
receipt described above, under owner-only permissions. It does not inspect or
|
|
494
|
-
terminate running Claude or Codex sessions; a running task keeps its loaded
|
|
495
|
-
plugin, and a new task naturally loads the reconciled version.
|
|
496
|
-
|
|
497
|
-
See [SECURITY.md](SECURITY.md) for vulnerability reporting and the measured
|
|
498
|
-
support boundary.
|
|
499
|
-
|
|
500
|
-
## Develop
|
|
501
|
-
|
|
502
|
-
The source repository intentionally excludes native binaries and intermediate
|
|
503
|
-
build output. Install [uv](https://docs.astral.sh/uv/), Python 3.12, and Node.js
|
|
504
|
-
20 or later, then run:
|
|
505
|
-
|
|
506
|
-
Before merging a release candidate, follow the
|
|
507
|
-
[clean Apple-silicon Mac acceptance procedure](docs/clean-machine-acceptance.md)
|
|
508
|
-
to exercise the real authenticated Claude Code and Codex homes and return a
|
|
509
|
-
privacy-safe evidence bundle.
|
|
510
|
-
|
|
511
|
-
The selector's authenticated Claude subprocess contract has a separate
|
|
512
|
-
[opt-in check](docs/real-claude-selector.md). The authenticated v1.1.2 receipt
|
|
513
|
-
passes the real subprocess isolation and structured-output contract; the live
|
|
514
|
-
call is never rerun by the ordinary offline suite.
|
|
515
|
-
|
|
516
|
-
Repeated `--max-turns 1` structured-output behavior has a separate
|
|
517
|
-
[aggregate reliability matrix](docs/claude-structured-output-reliability.md).
|
|
518
|
-
The authenticated Claude Code 2.1.226 `host-default` row passed 20/20 attempts;
|
|
519
|
-
no unobserved named model is claimed supported.
|
|
520
|
-
|
|
521
|
-
Packaged Claude PostToolUse receipt and Stop cleanup latency has a reproducible
|
|
522
|
-
[Apple-silicon timing receipt](docs/claude-hook-timing.md). The observed v1.1.2
|
|
523
|
-
p95 results retain more than half of the 3-second hook budget, so the timeout is
|
|
524
|
-
unchanged.
|
|
525
|
-
|
|
526
|
-
```bash
|
|
527
|
-
make bootstrap
|
|
528
|
-
make format-check
|
|
529
|
-
make lint
|
|
530
|
-
make generated-check
|
|
531
|
-
make content-check
|
|
532
|
-
make docs-check
|
|
533
|
-
make governance-check
|
|
534
|
-
make security-scan
|
|
535
|
-
make smoke
|
|
536
|
-
npm test
|
|
537
|
-
npm pack --dry-run
|
|
538
|
-
make release-check
|
|
539
|
-
```
|
|
540
|
-
|
|
541
|
-
| Path | Purpose |
|
|
542
|
-
| --- | --- |
|
|
543
|
-
| `src/opensocrates/` | Shared Python 3.12 runtime and host-native selectors |
|
|
544
|
-
| `content/` | Policies, localized messages, methods, theory, and examples |
|
|
545
|
-
| `plugin-src/claude/` | Claude plugin templates |
|
|
546
|
-
| `plugin-src/codex/` | Codex plugin templates |
|
|
547
|
-
| `plugin-src/antigravity/` | Experimental Antigravity content-only plugin templates |
|
|
548
|
-
| `plugin-src/cursor/` | Experimental Cursor Agent Plugin templates |
|
|
549
|
-
| `plugin-src/grok/` | Native Grok Build content-only plugin templates |
|
|
550
|
-
| `plugin-src/opencode/` | OpenCode stable bridge and native skill templates |
|
|
551
|
-
| `schemas/source/` | Canonical schema definitions |
|
|
552
|
-
| `schemas/v1/` | Generated, versioned public schemas |
|
|
553
|
-
| `installer/` | Dependency-free Node.js GitHub/npx installer |
|
|
554
|
-
| `tools/` | Build, validation, lifecycle, security, and release tools |
|
|
555
|
-
| `packaging/` | Native launcher and packaging configuration |
|
|
556
|
-
| `build/`, `dist/` | Generated locally and published as release assets |
|
|
557
|
-
|
|
558
|
-
Generated schemas and compiled content must be changed through their canonical
|
|
559
|
-
sources and generators. Release binaries belong in GitHub Releases, not in Git
|
|
560
|
-
history.
|
|
561
|
-
|
|
562
|
-
## Contributing
|
|
563
|
-
|
|
564
|
-
Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) before
|
|
565
|
-
opening a pull request, and use the issue templates for bugs and feature
|
|
566
|
-
requests. The project follows the [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
567
|
-
|
|
568
|
-
## License
|
|
569
|
-
|
|
570
|
-
OpenSocrates is available under the [MIT License](LICENSE). You may use,
|
|
571
|
-
modify, distribute, sublicense, and sell copies, provided the copyright and
|
|
572
|
-
license notice are preserved.
|
|
573
|
-
|
|
574
|
-
OpenSocrates is an independent open-source project and is not affiliated with
|
|
575
|
-
or endorsed by Anthropic or OpenAI.
|
|
576
|
-
|
|
577
|
-
Chat standalone export: **archive contract validated; live activation unvalidated.**
|
|
58
|
+
Use the corresponding old host name for each retired integration. Review any
|
|
59
|
+
pending cleanup reported by the old installer. User conversation history and
|
|
60
|
+
unrelated files must be preserved. See [installation and removal](docs/advanced-usage.md).
|
|
61
|
+
|
|
62
|
+
## What it does
|
|
63
|
+
|
|
64
|
+
- Choose a method for a judgment: compare alternatives, check a causal claim,
|
|
65
|
+
examine assumptions, or identify evidence that could change a recommendation.
|
|
66
|
+
- Revisit a decision when the facts change, including multiple decision points
|
|
67
|
+
within one request. Mechanical steps need no method.
|
|
68
|
+
- Read complete instructions, examples, applicability limits, and required public
|
|
69
|
+
results. All 48 methods retain their English and Korean procedure bodies.
|
|
70
|
+
- Keep conclusions connected to evidence, uncertainty, and reopening conditions
|
|
71
|
+
while preserving the user's requested format.
|
|
72
|
+
|
|
73
|
+
Codex hooks provide lightweight discovery guidance. The active agent retrieves
|
|
74
|
+
eligible methods through the packaged native decision command. A constrained
|
|
75
|
+
complete-reference fallback remains when the runtime is unavailable. This path
|
|
76
|
+
makes no separate selector-model call and adds no prompt or transcript storage.
|
|
77
|
+
The integration fails open so ordinary work can continue when it is unavailable.
|
|
78
|
+
See [decision-point retrieval](docs/decision-points.md) for the exact contract.
|
|
79
|
+
|
|
80
|
+
## Platforms and limits
|
|
81
|
+
|
|
82
|
+
| Platform | Package | Updates |
|
|
83
|
+
| --- | --- | --- |
|
|
84
|
+
| Apple-silicon macOS | Native runtime and `bin/launch.sh` | Manual; optional macOS LaunchAgent |
|
|
85
|
+
| Windows x64 | Native `.exe` and `node bin/launch.mjs` | Manual only |
|
|
86
|
+
|
|
87
|
+
Windows does not require WSL or a Unix shell. Windows automatic updates,
|
|
88
|
+
Windows ARM64, Windows 10, macOS Intel, and Linux native packages are not claimed
|
|
89
|
+
as validated. Signing and SmartScreen reputation are unvalidated.
|
|
90
|
+
See the [Windows guide](docs/windows-support.md).
|
|
91
|
+
|
|
92
|
+
## Privacy and evidence
|
|
93
|
+
|
|
94
|
+
OpenSocrates runs locally, adds no product telemetry, and has no hosted backend or
|
|
95
|
+
separate account. Your ordinary Codex model requests use Codex authentication and
|
|
96
|
+
its service terms. Read [SECURITY.md](SECURITY.md) for integrity, rollback,
|
|
97
|
+
permissions, and the retained legacy selector boundary.
|
|
98
|
+
|
|
99
|
+
Package verification, hook delivery, complete reference reads, and actual method
|
|
100
|
+
application are distinct evidence levels. No general quality, token-cost, or
|
|
101
|
+
response-time improvement is claimed. Current release validation is tracked in
|
|
102
|
+
[PR #93](https://github.com/ParkerHwang/OpenSocrates/pull/93) and the
|
|
103
|
+
[release plan](docs/v1.4.0-release-plan.md); older evidence describes older versions.
|
|
104
|
+
|
|
105
|
+
- [Installation, updates, removal, and runtime reference](docs/advanced-usage.md)
|
|
106
|
+
- [Authored method catalog](content/methods/)
|
|
107
|
+
- [Changelog](CHANGELOG.md)
|
|
108
|
+
- [Contributing](CONTRIBUTING.md) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
109
|
+
|
|
110
|
+
OpenSocrates is [MIT licensed](LICENSE), independent of OpenAI, and not endorsed
|
|
111
|
+
by OpenAI.
|