opensocrates 1.3.0 → 1.3.1
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 +19 -1
- package/README.ko.md +75 -497
- package/README.md +89 -545
- package/VERSION +1 -1
- package/installer/opensocrates.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,20 +1,14 @@
|
|
|
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 agent is making.**
|
|
16
8
|
|
|
17
|
-
|
|
9
|
+
OpenSocrates brings 48 authored reasoning methods to Claude, Codex, OpenCode,
|
|
10
|
+
Grok Build, Cursor and Google Antigravity. Use it to examine assumptions, compare
|
|
11
|
+
options and weigh evidence while you work in your existing agent.
|
|
18
12
|
|
|
19
13
|
**English** | [한국어](README.ko.md)
|
|
20
14
|
|
|
@@ -23,555 +17,105 @@ for every attempt and its source/configuration boundary.
|
|
|
23
17
|
[](https://github.com/ParkerHwang/OpenSocrates/releases)
|
|
24
18
|
[](LICENSE)
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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.
|
|
147
|
-
|
|
148
|
-
After closing active hosts, request the explicit owned-payload purge:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
npx --yes opensocrates@1.3.0 remove --host all --purge
|
|
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
|
|
156
|
-
```
|
|
20
|
+
[Website](https://opensocrates.parker-j-hwang.chatgpt.site) ·
|
|
21
|
+
[v1.3.1 release](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.3.1) ·
|
|
22
|
+
[Installation reference](docs/advanced-usage.md)
|
|
157
23
|
|
|
158
|
-
|
|
159
|
-
identity, manifests, checksums, and installer ownership markers before deleting
|
|
160
|
-
anything. It covers the managed roots, exact Claude/Codex cache versions, empty
|
|
161
|
-
Claude OpenSocrates plugin-data directories, OpenCode's owned skill/bridge/
|
|
162
|
-
sidecar, the OpenSocrates LaunchAgent, known transaction residue, and—after the
|
|
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`.
|
|
24
|
+
## Get started
|
|
166
25
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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.
|
|
26
|
+
Sign in to your host and make its CLI available. You need Node.js 20 or later.
|
|
27
|
+
The distributed native runtimes support **Apple-silicon macOS**; see each host's
|
|
28
|
+
support documentation before installing on another platform.
|
|
174
29
|
|
|
175
|
-
|
|
30
|
+
```sh
|
|
31
|
+
# Install for every supported, ready host
|
|
32
|
+
npx --yes opensocrates@1.3.1 install --host all
|
|
176
33
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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.
|
|
206
|
-
|
|
207
|
-
### Install one host explicitly
|
|
208
|
-
|
|
209
|
-
Codex remains the default host for backward compatibility:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
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
|
|
34
|
+
# Or choose one host
|
|
35
|
+
npx --yes opensocrates@1.3.1 install --host codex
|
|
36
|
+
npx --yes opensocrates@1.3.1 install --host claude
|
|
219
37
|
```
|
|
220
38
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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).
|
|
39
|
+
Start a new task after installation. In Codex, approve the OpenSocrates hooks in
|
|
40
|
+
an interactive session before relying on native discovery. OpenSocrates uses your
|
|
41
|
+
host's existing authentication and provider configuration; it needs no separate
|
|
42
|
+
OpenSocrates account or API key.
|
|
245
43
|
|
|
246
|
-
For
|
|
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/`.
|
|
44
|
+
For an existing installation:
|
|
254
45
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
|
46
|
+
```sh
|
|
47
|
+
npx --yes opensocrates@1.3.1 update --host all
|
|
48
|
+
npx --yes opensocrates@1.3.1 status --host all
|
|
261
49
|
```
|
|
262
50
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
the
|
|
51
|
+
## What it does
|
|
52
|
+
|
|
53
|
+
- **Choose a method for a judgment.** Compare alternatives, check a causal claim,
|
|
54
|
+
examine assumptions or decide which evidence would change a recommendation.
|
|
55
|
+
- **Revisit a decision when the facts change.** v1.3.1 supports method retrieval
|
|
56
|
+
at multiple decision points within one request. Mechanical steps need no method.
|
|
57
|
+
- **Read the complete procedure.** Each method has authored instructions,
|
|
58
|
+
examples, applicability limits and required public results, in English and Korean.
|
|
59
|
+
- **Keep the answer connected to its evidence.** Guided writing instructions
|
|
60
|
+
preserve uncertainty, permissions and the user's format, with separate conclusions
|
|
61
|
+
and reopening conditions for separate questions.
|
|
62
|
+
|
|
63
|
+
For example, ask your agent to compare two vendors under a fixed budget, reconsider
|
|
64
|
+
its choice after a new audit, or distinguish what a small pilot supports from what
|
|
65
|
+
it leaves unknown. These are use cases, not measured outcome guarantees.
|
|
66
|
+
|
|
67
|
+
## How v1.3.1 works
|
|
68
|
+
|
|
69
|
+
Claude/Codex hooks provide lightweight discovery guidance. The active agent then
|
|
70
|
+
uses the packaged native selector to retrieve eligible complete methods as needed.
|
|
71
|
+
If the runtime is unavailable, a constrained reference-file fallback remains.
|
|
72
|
+
Other hosts use the delivery paths below. OpenSocrates fails open when its
|
|
73
|
+
integration is unavailable so ordinary work can continue.
|
|
74
|
+
|
|
75
|
+
The release retains all **48 methods and 96 English/Korean procedure bodies**.
|
|
76
|
+
Its writing policy is guidance, not automatic rewriting. See
|
|
77
|
+
[decision-point retrieval and migration](docs/decision-points.md) for the exact
|
|
78
|
+
selection, fallback and method-availability contracts.
|
|
79
|
+
|
|
80
|
+
## Supported hosts
|
|
81
|
+
|
|
82
|
+
| Host | Delivery and entry point | Details |
|
|
83
|
+
| --- | --- | --- |
|
|
84
|
+
| Claude Code / Cowork | Plugin discovery where hooks run; `/opensocrates:opensocrates` | [Claude support](docs/decision-points.md) |
|
|
85
|
+
| Codex CLI / Desktop | Discovery after hook approval; `opensocrates` controller | [Delivery modes](docs/decision-points.md) |
|
|
86
|
+
| OpenCode | Local same-turn bridge; native skill fallback | [OpenCode support](docs/opencode-support.md) |
|
|
87
|
+
| Grok Build | Native skill selection or `/opensocrates` | [Grok support](docs/grok-support.md) |
|
|
88
|
+
| Cursor | Agent Plugin skill discovery or explicit invocation | [Cursor support](docs/cursor-support.md) |
|
|
89
|
+
| Google Antigravity | Explicit content skill | [Antigravity support](docs/antigravity-support.md) |
|
|
90
|
+
|
|
91
|
+
Claude web and Desktop Chat use a **separate standalone skill ZIP**, not the local
|
|
92
|
+
plugin hooks. Download it from the [v1.3.1 release](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.3.1)
|
|
93
|
+
and follow the [Chat installation guide](docs/claude-chat-upload-probe.md).
|
|
284
94
|
|
|
285
95
|
Chat standalone export: **archive contract validated; live activation unvalidated.**
|
|
286
96
|
|
|
287
|
-
|
|
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
|
-
```
|
|
314
|
-
|
|
315
|
-
### Manual release verification
|
|
316
|
-
|
|
317
|
-
After publication, download `opensocrates.mjs`, the host package, and its
|
|
318
|
-
`.sha256` file from the
|
|
319
|
-
[v1.3.0 release](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.3.0).
|
|
320
|
-
Verify the named published assets before installation; for Claude:
|
|
97
|
+
## Privacy and support boundaries
|
|
321
98
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
--checksum opensocrates-1.3.0-claude-plugin.zip.sha256
|
|
327
|
-
```
|
|
328
|
-
|
|
329
|
-
Replace `claude` with `antigravity`, `codex`, `cursor`, `grok`, or `opencode` for the matching package.
|
|
330
|
-
|
|
331
|
-
### Migrating a pre-1.0 Claude plugin
|
|
332
|
-
|
|
333
|
-
Some development builds used a case-sensitive marketplace named
|
|
334
|
-
`OpenSocrates`. The new marketplace is `opensocrates`. The installer detects
|
|
335
|
-
the old registration and refuses to remove it automatically. After reviewing
|
|
336
|
-
what is installed, remove it explicitly:
|
|
337
|
-
|
|
338
|
-
```bash
|
|
339
|
-
claude plugin uninstall opensocrates@OpenSocrates --scope user
|
|
340
|
-
claude plugin marketplace remove OpenSocrates --scope user
|
|
341
|
-
npx --yes opensocrates@1.3.0 install --host claude
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
Updating a managed v1.1.0 Claude installation replaces the complete package
|
|
345
|
-
tree. Its old 48 top-level method skills, `rigor`, `trace`, and duplicate
|
|
346
|
-
commands are therefore removed rather than left visible as stale entries.
|
|
347
|
-
|
|
348
|
-
## Use
|
|
349
|
-
|
|
350
|
-
Use any supported host normally. OpenSocrates may participate when a request
|
|
351
|
-
needs judgment, interpretation, diagnosis, explanation, planning, evidence
|
|
352
|
-
reconciliation, or another structured reasoning process. On Claude/Codex
|
|
353
|
-
native-runtime surfaces it:
|
|
354
|
-
|
|
355
|
-
1. emits lightweight native discovery guidance without choosing an initial method;
|
|
356
|
-
2. lets the active agent retrieve eligible complete methods when a judgment changes;
|
|
357
|
-
3. preserves goals, permissions, evidence/stop requirements and requested output;
|
|
358
|
-
4. offers Guided locale-specific presentation rules without rewriting protected content; and
|
|
359
|
-
5. distinguishes delivery and agent-reported availability from actual application.
|
|
360
|
-
|
|
361
|
-
Use the installed launcher with `decision codex --stream` for a persistent volatile
|
|
362
|
-
lookup session; a new process or context must not inherit an old read assertion.
|
|
363
|
-
|
|
364
|
-
On OpenCode, the dependency-free stable hook instead selects locally and
|
|
365
|
-
injects one complete authored procedure directly into the same message turn.
|
|
366
|
-
That compiled procedure starts with its three teacher questions, and the native
|
|
367
|
-
`/opensocrates` fallback reads the same procedure without a duplicate preamble;
|
|
368
|
-
the bridge creates no artifact and makes no extra model call. See the
|
|
369
|
-
[OpenCode support boundary](docs/opencode-support.md).
|
|
370
|
-
|
|
371
|
-
Antigravity and Cursor use their explicit content skills; Grok Build uses native
|
|
372
|
-
skill selection or `/opensocrates`. In all three packages, a generated complete
|
|
373
|
-
procedure begins with teacher questions for the active agent to settle before
|
|
374
|
-
using the rest as a check. These content-only paths make no OpenSocrates hook
|
|
375
|
-
delivery claim.
|
|
376
|
-
|
|
377
|
-
After installing for Codex, open one interactive Codex session and approve the
|
|
378
|
-
OpenSocrates hooks before relying on native discovery guidance. Until that one-time
|
|
379
|
-
approval, non-interactive surfaces such as `codex exec` may silently continue
|
|
380
|
-
without running the untrusted hooks.
|
|
381
|
-
|
|
382
|
-
### Retained legacy receipt adapter
|
|
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.
|
|
99
|
+
The integration runs locally, adds no product telemetry and has no OpenSocrates
|
|
100
|
+
backend. Model requests still use your selected host service under its terms.
|
|
101
|
+
No separate OpenSocrates account is required. Read [SECURITY.md](SECURITY.md)
|
|
102
|
+
for the host trust boundaries and retained legacy adapter behavior.
|
|
433
103
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
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.
|
|
104
|
+
v1.3.1 fixes multi-line decision input and checks packaged examples before release. Package verification
|
|
105
|
+
does not establish every host's live behavior or the model's actual application
|
|
106
|
+
of a method. Synthetic tests include final-delivery timeouts and repetitive output;
|
|
107
|
+
no general quality, naturalness, token-cost or response-time improvement is claimed.
|
|
108
|
+
The complete [release evidence](docs/v1.3.1-release.md) and
|
|
109
|
+
[publication verification](https://github.com/ParkerHwang/OpenSocrates/pull/92)
|
|
110
|
+
retain the measured results and limitations.
|
|
445
111
|
|
|
446
|
-
|
|
447
|
-
disabled:
|
|
112
|
+
## More information
|
|
448
113
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
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.
|
|
114
|
+
- [Detailed installation, updates, removal and runtime behavior](docs/advanced-usage.md)
|
|
115
|
+
- [Authored method catalog](content/methods/)
|
|
116
|
+
- [Changelog](CHANGELOG.md)
|
|
117
|
+
- [Contributing and development checks](CONTRIBUTING.md)
|
|
118
|
+
- [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
515
119
|
|
|
516
|
-
|
|
517
|
-
|
|
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.**
|
|
120
|
+
OpenSocrates is [MIT licensed](LICENSE). It is an independent open-source project,
|
|
121
|
+
not affiliated with or endorsed by its supported host providers.
|