opensocrates 1.5.0 → 1.5.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 +24 -0
- package/README.ja.md +129 -0
- package/README.ko.md +62 -22
- package/README.md +66 -22
- package/README.zh.md +113 -0
- package/VERSION +1 -1
- package/installer/managed-hosts.mjs +15 -6
- package/installer/opensocrates.mjs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.5.1] - 2026-10-13
|
|
4
|
+
|
|
5
|
+
- Add Simplified Chinese (`zh`) and Japanese (`ja`) alongside English and Korean
|
|
6
|
+
across the 48 authored reasoning methods, canonical examples, teacher-question
|
|
7
|
+
overlay, locale messages and four host instruction packages. Ship 192 complete
|
|
8
|
+
procedure files and 576 teacher questions; content revision 4 preserves the
|
|
9
|
+
original English/Korean authored method text.
|
|
10
|
+
- Resolve reasoning locale through explicit preference, stored preference and
|
|
11
|
+
current-input script detection. Kana identifies Japanese; Han-only text
|
|
12
|
+
defaults to Chinese and needs an explicit Japanese preference when ambiguous.
|
|
13
|
+
Empty, Latin-only and tied inputs fall back to English.
|
|
14
|
+
- Add Chinese/Japanese READMEs and version-pinned installation commands. Preserve
|
|
15
|
+
v1.5.0 host/platform boundaries, conditional attribution, privacy, fail-open
|
|
16
|
+
behavior and lifecycle ownership. Windows ARM64 remains separate v1.6.0 work.
|
|
17
|
+
- 사고 방법 48개, 정본 사례·교사 질문·언어 메시지·네 호스트 지시문에 간체
|
|
18
|
+
중국어(`zh`)와 일본어(`ja`)를 추가합니다. 전체 절차 192개와 교사 질문
|
|
19
|
+
576개를 제공하며 콘텐츠 리비전 4에서 기존 영어·한국어 방법 본문을 유지합니다.
|
|
20
|
+
- 명시적 선호 → 저장된 선호 → 현재 입력의 문자 순으로 언어를 선택합니다.
|
|
21
|
+
가나가 있으면 일본어, 한자만 있으면 기본 중국어이며 일본어를 명시할 수
|
|
22
|
+
있습니다. 빈 입력·라틴 문자만 있는 입력·동률은 영어로 돌아갑니다.
|
|
23
|
+
- 중국어·일본어 README와 버전 고정 설치 안내를 추가합니다. v1.5.0의 호스트·
|
|
24
|
+
플랫폼·조건부 사용 표기·개인정보·fail-open·설치 소유권 경계를 유지합니다.
|
|
25
|
+
Windows ARM64는 별도 v1.6.0 범위입니다.
|
|
26
|
+
|
|
3
27
|
## [1.5.0] - 2026-10-10
|
|
4
28
|
|
|
5
29
|
- Preserve the v1.4 Codex baseline and all 48 authored reasoning methods with
|
package/README.ja.md
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/ParkerHwang/OpenSocrates/main/docs/assets/opensocrates-banner.jpg" alt="OpenSocrates" width="820">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# OpenSocrates
|
|
6
|
+
|
|
7
|
+
**理解し、評価し、使える結果を得るための思考支援。**
|
|
8
|
+
|
|
9
|
+
OpenSocrates は、資料の統合、関係者の視点の理解、選択肢の比較、メッセージの
|
|
10
|
+
作成を支える 48 種類の思考法を提供します。v1.5.1 では簡体字中国語(`zh`)と
|
|
11
|
+
日本語(`ja`)を追加し、既存の英語・韓国語の方法本文を維持します。4 言語で
|
|
12
|
+
完全な手順ファイルは 192 個、各方法・言語にエージェント向けの問いが 3 個ずつ、
|
|
13
|
+
合計 576 個あります。コンテンツリビジョンは 4 です。プログラミング専用の
|
|
14
|
+
方法は今回の更新には含みません。
|
|
15
|
+
|
|
16
|
+
[English](README.md) | [한국어](README.ko.md) | [简体中文](README.zh.md) | **日本語**
|
|
17
|
+
|
|
18
|
+
## 対応環境とアプリ
|
|
19
|
+
|
|
20
|
+
| アプリ | 提供方式 | 環境と有効化 |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Codex | 既存のフック、コントローラー、ネイティブ判断ランタイム | Apple Silicon Mac、Windows x64。対話セッションで 7 個のフックの信頼状態を確認 |
|
|
23
|
+
| Claude Code CLI / Desktop のローカル Code | 状態を保持しないネイティブ入口と完全なローカル参照 | Apple Silicon Mac。Claude CLI、ログイン、プラグインとフックの権限が必要 |
|
|
24
|
+
| Claude Web / Desktop Chat / Cowork | 実行コードを含まないアカウント用スキル ZIP | Mac または Windows でエクスポート後、別途アップロード、有効化、アカウント指示を設定 |
|
|
25
|
+
| Antigravity の会話アプリ | モジュール形式のルールとスキル | Apple Silicon Mac、Windows x64。ワークスペースまたはグローバルを選択 |
|
|
26
|
+
|
|
27
|
+
対応環境は v1.5.0 を引き継ぎます。Windows のネイティブ Claude Code は対象外
|
|
28
|
+
です。Windows ARM64 対応は別の v1.6.0 作業に属します。アカウント用スキルの
|
|
29
|
+
導入でネイティブ Claude 連携がインストールされるわけではありません。
|
|
30
|
+
|
|
31
|
+
## インストールと更新
|
|
32
|
+
|
|
33
|
+
Node.js 20 以降を用意し、利用するアプリをインストールしてログインします。
|
|
34
|
+
ネイティブランタイムは同梱されており、Python の追加インストールは不要です。
|
|
35
|
+
[v1.5.1 リリース](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.1)から
|
|
36
|
+
アーカイブと SHA-256 ファイルを取得するか、次のバージョン固定コマンドを使います。
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
npx --yes opensocrates@1.5.1 install --host codex
|
|
40
|
+
npx --yes opensocrates@1.5.1 status --host codex
|
|
41
|
+
# 既存の Codex インストールを更新:
|
|
42
|
+
npx --yes opensocrates@1.5.1 update --host codex
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
対話型 Codex で `/hooks` を入力し、OpenSocrates の 7 個のフックを確認して、
|
|
46
|
+
アプリの信頼手順に従い必要な承認を行います。その後、新しい会話を始めます。
|
|
47
|
+
`status` はインストールと整合性の状態を示します。フックの承認や実際の課題への
|
|
48
|
+
適用を証明するものではありません。
|
|
49
|
+
|
|
50
|
+
Apple Silicon Mac で Claude Code 連携を導入する場合:
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
npx --yes opensocrates@1.5.1 install --host claude
|
|
54
|
+
npx --yes opensocrates@1.5.1 status --host claude
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Antigravity のワークスペースには、既存ディレクトリの絶対パスを指定します。
|
|
58
|
+
`--workspace` を省略するとグローバル範囲になります。同じ課題に両方の副本を
|
|
59
|
+
重複して適用しないようにします。
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
npx --yes opensocrates@1.5.1 install --host antigravity --workspace /absolute/path/to/workspace
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Windows では `"C:\Work\Reading Workshop"` のようなローカルドライブの絶対パスを
|
|
66
|
+
引用符で囲みます。Claude アカウント用スキルは、既存フォルダー内の絶対 ZIP
|
|
67
|
+
パスにエクスポートします。
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
npx --yes opensocrates@1.5.1 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.1-account.zip
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
その後 Claude の **Customize → Skills** でアップロードして有効化します。
|
|
74
|
+
既存の OpenSocrates スキルを置き換える前にダウンロードしてバックアップし、
|
|
75
|
+
有効状態を記録します。エクスポート成功とアップロード、有効化、自動選択は
|
|
76
|
+
別の状態です。次の指示を **Settings → General → Instructions for Claude** に
|
|
77
|
+
追加し、既存の指示を維持します。旧 Cowork では **Settings → Cowork → Global
|
|
78
|
+
instructions** を使います。Web と Desktop のアカウントが異なる場合は、それぞれ
|
|
79
|
+
設定します。
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
資料の統合、選択肢の比較、判断、メッセージの作成など、解釈や判断が必要な
|
|
83
|
+
依頼では、私が名前を挙げなくても有効な OpenSocrates スキルを読み込み、
|
|
84
|
+
その指示に従ってください。思考法を適用する前に手順全体を読み、適用条件を
|
|
85
|
+
確認してください。書式変換などの機械的な作業に不要な手順を追加しないでください。
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
保存後に新しい会話を始めます。アカウント用スキルの選択はアプリのモデルが行う
|
|
89
|
+
ため、選択されない場合があります。ネイティブフックや毎メッセージの強制適用は
|
|
90
|
+
追加されません。既定値と `--host all` は引き続き Codex だけを選択します。
|
|
91
|
+
他のアプリは明示的に指定します。新しい連携には purge、信頼状態のリセット、
|
|
92
|
+
自動更新の機能はありません。
|
|
93
|
+
[設定ガイド(英語)](docs/setup-guide.md)で画面上の手順を確認できます。
|
|
94
|
+
[Mac ガイド](docs/macos-v1.5.md)と [Windows ガイド](docs/windows-v1.5.md)は
|
|
95
|
+
v1.5.0 の導入・復旧の基準を保持しています。現在のコマンドには上記の 1.5.1 を使います。
|
|
96
|
+
|
|
97
|
+
## 指示の言語
|
|
98
|
+
|
|
99
|
+
明示的に指定した言語、保存した言語設定、現在の入力の文字判定の順に選びます。
|
|
100
|
+
ひらがな・カタカナが含まれる場合は日本語を選びます。それ以外はハングルが
|
|
101
|
+
優勢なら韓国語、漢字が優勢なら中国語です。漢字だけの入力では中国語と日本語を
|
|
102
|
+
確実に区別できず、中国語が既定になります。日本語が必要な場合は明示的に指定
|
|
103
|
+
してください。空の入力、ラテン文字だけの入力、判定が同数の場合は英語になります。
|
|
104
|
+
|
|
105
|
+
思考指示の言語は、npm インストーラーのコマンド出力やアプリの表示言語とは
|
|
106
|
+
別です。今回の更新はすべてのインストーラーメッセージの翻訳を約束するものでは
|
|
107
|
+
ありません。ランタイムの `locale` 設定コマンドと明示的な JSON リクエストは
|
|
108
|
+
[言語と対応範囲のガイド(英語)](docs/v1.5.1.md)を参照してください。
|
|
109
|
+
|
|
110
|
+
## 出典表示とプライバシー
|
|
111
|
+
|
|
112
|
+
適用条件を満たす正典の思考法の手順全体を読み、実際に回答へ適用した場合に限り、
|
|
113
|
+
最終回答の末尾に同じ英語の行 `Powered by OpenSocrates` を付けます。読者向けの
|
|
114
|
+
案内だけを使った場合や機械的な作業では表示しません。この行は出典表示であり、
|
|
115
|
+
ネイティブ適用の成功や回答品質の向上を証明するものではありません。
|
|
116
|
+
|
|
117
|
+
既定の判断経路は追加の選択モデルを呼び出さず、生のプロンプト、会話、画像、
|
|
118
|
+
隠れた推論を保存しません。Claude のネイティブ入口は会話を読まず、データベースを
|
|
119
|
+
初期化しません。アカウント用スキルには実行コードがありません。通常の会話には
|
|
120
|
+
アプリ自身の認証、権限、保存設定、利用規約が適用されます。
|
|
121
|
+
[セキュリティ方針](SECURITY.md)に境界を記載しています。インストール、読み込み、
|
|
122
|
+
全体の読了、適用、結果の有用性は別々の証拠です。一般的な品質、費用、速度の
|
|
123
|
+
改善は主張していません。
|
|
124
|
+
|
|
125
|
+
- [方法の本文](content/methods/) · [判断点の契約](docs/decision-points.md)
|
|
126
|
+
- [変更履歴](CHANGELOG.md) · [貢献ガイド](CONTRIBUTING.md) · [行動規範](CODE_OF_CONDUCT.md)
|
|
127
|
+
|
|
128
|
+
OpenSocrates は [MIT ライセンス](LICENSE)の独立したプロジェクトです。
|
|
129
|
+
OpenAI、Anthropic、Google の公式製品ではなく、各社の推奨や保証を受けていません。
|
package/README.ko.md
CHANGED
|
@@ -12,37 +12,40 @@ OpenSocrates는 진행 중인 작업에 직접 작성한 48개 사고 방법을
|
|
|
12
12
|
v1.5의 독자 안내는 결론을 맥락과 다음 행동에 연결합니다. 코딩 전문가 전용
|
|
13
13
|
기능은 이번 버전에 포함하지 않습니다.
|
|
14
14
|
|
|
15
|
-
[English](README.md) | **한국어**
|
|
15
|
+
[English](README.md) | **한국어** | [简体中文](README.zh.md) | [日本語](README.ja.md)
|
|
16
16
|
|
|
17
17
|
[](https://github.com/ParkerHwang/OpenSocrates/actions/workflows/ci.yml)
|
|
18
18
|
[](https://www.npmjs.com/package/opensocrates)
|
|
19
19
|
[](LICENSE)
|
|
20
20
|
|
|
21
|
-
## Mac과 Windows에서 쓰는 v1.5.
|
|
21
|
+
## Mac과 Windows에서 쓰는 v1.5.1
|
|
22
22
|
|
|
23
|
-
v1.5.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
[v1.5.
|
|
27
|
-
받거나 [npm 설치기](https://www.npmjs.com/package/opensocrates/v/1.5.
|
|
23
|
+
v1.5.1은 기존 네 호스트 프로필의 영어·한국어 사고 지시문에 간체 중국어
|
|
24
|
+
(`zh`)와 일본어(`ja`)를 추가합니다. v1.5.0의 Apple Silicon Mac·Windows x64
|
|
25
|
+
지원 범위를 유지하며 Claude Code 네이티브 연동은 Mac만 지원합니다. 배포 파일과 SHA-256 파일은
|
|
26
|
+
[v1.5.1 릴리스](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.1)에서
|
|
27
|
+
받거나 [npm 설치기](https://www.npmjs.com/package/opensocrates/v/1.5.1)를 사용하세요.
|
|
28
28
|
|
|
29
29
|
| 호스트 | 전달 방식 | 플랫폼과 활성화 |
|
|
30
30
|
| --- | --- | --- |
|
|
31
31
|
| Codex | 기존 훅·컨트롤러·네이티브 판단 런타임 | Apple Silicon Mac·Windows x64; 대화형 세션에서 훅 7개 검토 |
|
|
32
32
|
| Claude Code CLI / Desktop의 로컬 Code | 상태를 저장하지 않는 네이티브 진입과 설치된 전체 참조 | Apple Silicon Mac; Claude CLI·호스트 로그인·플러그인과 훅 권한 필요 |
|
|
33
|
-
| Claude 웹 / Desktop Chat / Cowork | 실행 코드가 없는 독립 계정 스킬 ZIP | Mac·Windows에서 내보낸 뒤
|
|
33
|
+
| Claude 웹 / Desktop Chat / Cowork | 실행 코드가 없는 독립 계정 스킬 ZIP | Mac·Windows에서 내보낸 뒤 업로드·활성화하고 아래 계정 지침을 한 번 추가 |
|
|
34
34
|
| Antigravity 대화 애플리케이션 | 소유 범위가 명확한 모듈형 규칙과 스킬 | Apple Silicon Mac·Windows x64; 작업공간 또는 전역 선택 |
|
|
35
35
|
|
|
36
36
|
Windows 터미널이나 Desktop Code의 Claude Code 네이티브 연동은 이번 릴리스
|
|
37
37
|
범위에서 제외합니다. 계정 콘텐츠는 네이티브 Claude 연동을 설치하지 않습니다.
|
|
38
38
|
[Mac 안내](docs/macos-v1.5.ko.md)와 [Windows 안내](docs/windows-v1.5.ko.md)를 참고하세요.
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
신뢰된 네이티브 훅과 Antigravity 상시 규칙은 일반 요청에서 진입 안내를
|
|
41
|
+
제공합니다. Claude 계정 스킬은 아래 상시 지침을 추가해 이름을 반복하지 않고
|
|
42
|
+
사용하도록 설정하세요. 선택은 여전히 호스트 모델에 맡겨져 누락될 수 있습니다.
|
|
43
|
+
설치·불러오기·전체 읽기·실제 적용·
|
|
43
44
|
결과의 유용성은 서로 다른 증거이며, 일반적인 품질·토큰 비용·속도 향상을
|
|
44
45
|
주장하지 않습니다.
|
|
45
46
|
|
|
47
|
+
**설치 다음 단계:** [화면으로 보는 설정 가이드](docs/setup-guide.ko.md)에서 훅 승인, 계정 스킬 켜기, 앱별 완료 상태를 확인하세요. 에이전트에게 붙여 넣을 설치 요청문도 포함합니다.
|
|
48
|
+
|
|
46
49
|
## 설치 또는 업데이트
|
|
47
50
|
|
|
48
51
|
Node.js 20 이상과 사용할 호스트를 설치하고 그 호스트에 로그인하세요.
|
|
@@ -50,14 +53,14 @@ Node.js 20 이상과 사용할 호스트를 설치하고 그 호스트에 로그
|
|
|
50
53
|
지원하는 두 플랫폼에서 Codex를 설치하는 예입니다.
|
|
51
54
|
|
|
52
55
|
```sh
|
|
53
|
-
npx --yes opensocrates@1.5.
|
|
54
|
-
npx --yes opensocrates@1.5.
|
|
56
|
+
npx --yes opensocrates@1.5.1 install --host codex
|
|
57
|
+
npx --yes opensocrates@1.5.1 status --host codex
|
|
55
58
|
```
|
|
56
59
|
|
|
57
|
-
|
|
60
|
+
v1.5.0을 포함한 기존 Codex 설치는 다음 명령으로 업데이트합니다.
|
|
58
61
|
|
|
59
62
|
```sh
|
|
60
|
-
npx --yes opensocrates@1.5.
|
|
63
|
+
npx --yes opensocrates@1.5.1 update --host codex
|
|
61
64
|
```
|
|
62
65
|
|
|
63
66
|
대화형 세션에서 Codex 훅 7개를 검토하고 새 대화를 시작하세요. 비대화형 실행은
|
|
@@ -67,14 +70,14 @@ npx --yes opensocrates@1.5.0 update --host codex
|
|
|
67
70
|
Apple Silicon Mac에서는 Claude 네이티브 연동을 설치할 수 있습니다.
|
|
68
71
|
|
|
69
72
|
```sh
|
|
70
|
-
npx --yes opensocrates@1.5.
|
|
71
|
-
npx --yes opensocrates@1.5.
|
|
73
|
+
npx --yes opensocrates@1.5.1 install --host claude
|
|
74
|
+
npx --yes opensocrates@1.5.1 status --host claude
|
|
72
75
|
```
|
|
73
76
|
|
|
74
77
|
Antigravity는 이미 존재하는 작업공간의 절대 경로를 선택합니다.
|
|
75
78
|
|
|
76
79
|
```sh
|
|
77
|
-
npx --yes opensocrates@1.5.
|
|
80
|
+
npx --yes opensocrates@1.5.1 install --host antigravity --workspace /absolute/path/to/workspace
|
|
78
81
|
```
|
|
79
82
|
|
|
80
83
|
Windows에서는 `C:\Work\Reading Workshop`처럼 로컬 드라이브의 절대 경로로
|
|
@@ -83,12 +86,33 @@ Claude 계정 콘텐츠는 이미 존재하는 폴더의 절대 ZIP 경로로
|
|
|
83
86
|
Claude의 Customize > Skills 화면에서 업로드하고 활성화합니다.
|
|
84
87
|
|
|
85
88
|
```sh
|
|
86
|
-
npx --yes opensocrates@1.5.
|
|
89
|
+
npx --yes opensocrates@1.5.1 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.1-account.zip
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Claude Chat·Cowork: 계정 지침을 한 번 추가하기
|
|
93
|
+
|
|
94
|
+
요청마다 `/opensocrates`를 입력하지 않고 사용하려면 계정 스킬을 켜고
|
|
95
|
+
**Settings → General → Instructions for Claude**에 아래 지침을 추가하세요.
|
|
96
|
+
기존 지침은 보존합니다. 이전 Cowork 화면에서는
|
|
97
|
+
**Settings → Cowork → Global instructions**를 사용합니다. 웹과 Desktop의
|
|
98
|
+
계정이 다르면 사용하는 각 계정에 설정하세요.
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
자료 종합, 선택지 비교, 판단, 메시지 작성처럼 해석이나 판단이 필요한
|
|
102
|
+
요청에서는 내가 이름을 언급하지 않아도 활성화된 OpenSocrates 스킬을 먼저
|
|
103
|
+
불러와 그 지침을 따르세요. 적용할 사고 방법의 전체 절차를 읽고 조건을
|
|
104
|
+
확인하세요. 단순 서식 변환 같은 기계적인 작업에는 불필요한 절차를
|
|
105
|
+
추가하지 마세요.
|
|
87
106
|
```
|
|
88
107
|
|
|
108
|
+
한 번 저장한 뒤 새 대화에서 평소처럼 작업을 요청하세요. 이 지침은 모델의
|
|
109
|
+
스킬 선택을 안내하며 네이티브 훅이나 매 턴 강제 적용을 추가하지 않습니다.
|
|
110
|
+
[단계별 설정 안내](docs/setup-guide.ko.md#claude-standing-instructions)와
|
|
111
|
+
[Claude 공식 지침 설정](https://support.claude.com/en/articles/10185728-understanding-claude-s-personalization-features)을 참고하세요.
|
|
112
|
+
|
|
89
113
|
플랫폼별 안내에는 Windows 경로, 계정 스킬 교체, 업데이트·비활성화·제거와
|
|
90
114
|
검증한 로컬 파일 사용법을 설명합니다. 로컬 파일 옵션을 생략하면 설치기는
|
|
91
|
-
GitHub Releases에서 버전을 고정한 v1.5.
|
|
115
|
+
GitHub Releases에서 버전을 고정한 v1.5.1 ZIP과 체크섬을 받습니다.
|
|
92
116
|
|
|
93
117
|
새 연동에는 `--host claude`, `--host antigravity`, `--host claude-chat`를
|
|
94
118
|
명시해야 합니다. 기본값과 `--host all`은 계속 Codex를 선택하며 새 호스트를
|
|
@@ -98,10 +122,25 @@ GitHub Releases에서 버전을 고정한 v1.5.0 ZIP과 체크섬을 받습니
|
|
|
98
122
|
정확한 출처와 소유 범위를 확인하세요. 기존 OpenSocrates 계정 스킬은 교체 전에
|
|
99
123
|
백업하고 활성화 상태를 보존합니다.
|
|
100
124
|
|
|
125
|
+
## 사고 지시문 언어
|
|
126
|
+
|
|
127
|
+
48개 방법마다 영어·한국어·간체 중국어·일본어의 전체 절차와 사례를 제공합니다.
|
|
128
|
+
전체 절차 파일은 192개이며 방법·언어마다 교사 질문 3개씩 총 576개입니다.
|
|
129
|
+
콘텐츠 리비전 4에서 두 언어를 추가하고 원래 영어·한국어 방법 본문은 유지합니다.
|
|
130
|
+
|
|
131
|
+
언어는 명시적 요청, 저장한 언어 선호, 현재 입력의 문자 판별 순서로 선택합니다.
|
|
132
|
+
가나가 있으면 일본어를 선택하고, 그 외에는 한글이 우세하면 한국어, 한자가
|
|
133
|
+
우세하면 중국어를 선택합니다. 한자만 있는 입력은 중국어·일본어 구분이
|
|
134
|
+
모호하므로 일본어가 필요할 때 명시하세요. 빈 입력·라틴 문자만 있는 입력·동률은
|
|
135
|
+
영어로 돌아갑니다. 정확한 호출·선호 설정은 [언어 안내](docs/v1.5.1.ko.md)를
|
|
136
|
+
참고하세요. npm 설치기의 명령 출력은 사고 지시문 언어와 별개이며 이번
|
|
137
|
+
릴리스가 모든 설치기 메시지나 호스트 화면을 번역하는 것은 아닙니다.
|
|
138
|
+
Windows ARM64 지원은 별도 v1.6.0 작업으로 유지합니다.
|
|
139
|
+
|
|
101
140
|
## 사용 표기가 나오는 조건
|
|
102
141
|
|
|
103
142
|
적격한 사고 방법의 정본 전체를 읽고 현재 답변에 실제로 적용했을 때만 답변
|
|
104
|
-
마지막에 `Powered by OpenSocrates`를 한 줄로 그대로 표시합니다.
|
|
143
|
+
마지막에 `Powered by OpenSocrates`를 한 줄로 그대로 표시합니다. 네 언어에서
|
|
105
144
|
같은 문구를 사용합니다. 독자 안내만 사용하거나 기계적인 작업만 했다면 표시하지
|
|
106
145
|
않습니다. 이 문구는 출처 표기이며 네이티브 적용이나 더 나은 결과의 증명은 아닙니다.
|
|
107
146
|
|
|
@@ -116,7 +155,8 @@ GitHub Releases에서 버전을 고정한 v1.5.0 ZIP과 체크섬을 받습니
|
|
|
116
155
|
- [Mac 설치와 증거의 범위](docs/macos-v1.5.ko.md)
|
|
117
156
|
- [Windows 설치와 증거의 범위](docs/windows-v1.5.ko.md)
|
|
118
157
|
- [사고 방법 원문](content/methods/) · [판단 지점 계약](docs/decision-points.ko.md)
|
|
119
|
-
- [
|
|
158
|
+
- [v1.5.1 언어 선택과 지원 범위](docs/v1.5.1.ko.md)
|
|
159
|
+
- [v1.5.0 구현 기준](docs/v1.5.0/IMPLEMENTATION_PLAN.md)
|
|
120
160
|
- [변경 이력](CHANGELOG.md) · [기여 안내](CONTRIBUTING.md) · [행동 강령](CODE_OF_CONDUCT.md)
|
|
121
161
|
|
|
122
162
|
OpenSocrates는 [MIT 라이선스](LICENSE)를 따르는 독립 프로젝트이며
|
package/README.md
CHANGED
|
@@ -12,37 +12,41 @@ and write useful messages. The original English/Korean procedures remain intact.
|
|
|
12
12
|
The v1.5 reader guides connect conclusions to context and next actions;
|
|
13
13
|
dedicated coding-specialist features are outside this version.
|
|
14
14
|
|
|
15
|
-
**English** | [한국어](README.ko.md)
|
|
15
|
+
**English** | [한국어](README.ko.md) | [简体中文](README.zh.md) | [日本語](README.ja.md)
|
|
16
16
|
|
|
17
17
|
[](https://github.com/ParkerHwang/OpenSocrates/actions/workflows/ci.yml)
|
|
18
18
|
[](https://www.npmjs.com/package/opensocrates)
|
|
19
19
|
[](LICENSE)
|
|
20
20
|
|
|
21
|
-
## v1.5.
|
|
21
|
+
## v1.5.1 on Mac and Windows
|
|
22
22
|
|
|
23
|
-
Version 1.5.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
Version 1.5.1 adds Simplified Chinese (`zh`) and Japanese (`ja`) reasoning
|
|
24
|
+
instructions alongside English and Korean, across all four existing host
|
|
25
|
+
profiles. It preserves the v1.5.0 platform scope: Apple-silicon Mac and Windows
|
|
26
|
+
x64, with native Claude Code on Mac only. Download archives and SHA-256 files from the
|
|
27
|
+
[v1.5.1 release](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.1),
|
|
28
|
+
or use the [npm installer](https://www.npmjs.com/package/opensocrates/v/1.5.1).
|
|
28
29
|
|
|
29
30
|
| Host | Delivery | Platform and activation |
|
|
30
31
|
| --- | --- | --- |
|
|
31
32
|
| Codex | Existing hooks, controller and native decision runtime | Apple-silicon Mac and Windows x64; review the seven hooks in an interactive session |
|
|
32
33
|
| Claude Code CLI / Desktop local Code | Stateless native entry and complete installed references | Apple-silicon Mac; requires the Claude CLI, host login and plugin/hook permissions |
|
|
33
|
-
| Claude web / Desktop Chat / Cowork | Standalone content-only account skill ZIP | Export on Mac or Windows; upload and
|
|
34
|
+
| Claude web / Desktop Chat / Cowork | Standalone content-only account skill ZIP | Export on Mac or Windows; upload, enable and add the one-time account instructions below |
|
|
34
35
|
| Antigravity conversation application | Owned modular rule and skill | Apple-silicon Mac and Windows x64; choose workspace or global scope |
|
|
35
36
|
|
|
36
37
|
Windows native Claude Code in a terminal or Desktop Code is outside this
|
|
37
38
|
release's scope. Account content does not install a native Claude integration.
|
|
38
39
|
See the [Mac guide](docs/macos-v1.5.md) and [Windows guide](docs/windows-v1.5.md).
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
Trusted native hooks and Antigravity's standing rule provide entry during normal
|
|
42
|
+
requests. For Claude account skills, add the standing instruction below to use
|
|
43
|
+
OpenSocrates without repeating its name. Selection still depends on the host
|
|
44
|
+
model and can be missed. Installation, loading, complete reads, application,
|
|
43
45
|
and useful outcomes are separate evidence levels. No general quality, token-cost,
|
|
44
46
|
or latency improvement is claimed.
|
|
45
47
|
|
|
48
|
+
**After installation:** follow the [visual setup guide](docs/setup-guide.md) for hook review, account skill switches, and host readiness. It also includes a request you can paste into an agent.
|
|
49
|
+
|
|
46
50
|
## Install or update
|
|
47
51
|
|
|
48
52
|
Install Node.js 20+, make the chosen host available, and sign in to that host.
|
|
@@ -50,14 +54,14 @@ Native runtimes are bundled; installation does not require Python. Start with
|
|
|
50
54
|
Codex on either supported platform:
|
|
51
55
|
|
|
52
56
|
```sh
|
|
53
|
-
npx --yes opensocrates@1.5.
|
|
54
|
-
npx --yes opensocrates@1.5.
|
|
57
|
+
npx --yes opensocrates@1.5.1 install --host codex
|
|
58
|
+
npx --yes opensocrates@1.5.1 status --host codex
|
|
55
59
|
```
|
|
56
60
|
|
|
57
|
-
For an existing
|
|
61
|
+
For an existing Codex installation, including v1.5.0, use:
|
|
58
62
|
|
|
59
63
|
```sh
|
|
60
|
-
npx --yes opensocrates@1.5.
|
|
64
|
+
npx --yes opensocrates@1.5.1 update --host codex
|
|
61
65
|
```
|
|
62
66
|
|
|
63
67
|
Review the seven Codex hooks in an interactive session and start a fresh
|
|
@@ -67,14 +71,14 @@ reports installation and integrity; it does not prove automatic delivery.
|
|
|
67
71
|
On Apple-silicon Mac, install the native Claude companion with:
|
|
68
72
|
|
|
69
73
|
```sh
|
|
70
|
-
npx --yes opensocrates@1.5.
|
|
71
|
-
npx --yes opensocrates@1.5.
|
|
74
|
+
npx --yes opensocrates@1.5.1 install --host claude
|
|
75
|
+
npx --yes opensocrates@1.5.1 status --host claude
|
|
72
76
|
```
|
|
73
77
|
|
|
74
78
|
For Antigravity, choose an existing absolute workspace directory:
|
|
75
79
|
|
|
76
80
|
```sh
|
|
77
|
-
npx --yes opensocrates@1.5.
|
|
81
|
+
npx --yes opensocrates@1.5.1 install --host antigravity --workspace /absolute/path/to/workspace
|
|
78
82
|
```
|
|
79
83
|
|
|
80
84
|
On Windows, replace the directory with an absolute local-drive path such as
|
|
@@ -83,12 +87,34 @@ For Claude account content, export to an absolute ZIP filename in an existing
|
|
|
83
87
|
folder, then upload and enable the ZIP in Claude's Customize > Skills interface:
|
|
84
88
|
|
|
85
89
|
```sh
|
|
86
|
-
npx --yes opensocrates@1.5.
|
|
90
|
+
npx --yes opensocrates@1.5.1 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.1-account.zip
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Claude Chat and Cowork: one-time account instructions
|
|
94
|
+
|
|
95
|
+
For use without typing `/opensocrates` on each request, enable the account skill
|
|
96
|
+
and append this instruction in **Settings → General → Instructions for Claude**.
|
|
97
|
+
Preserve your existing instructions. In older Cowork interfaces, use
|
|
98
|
+
**Settings → Cowork → Global instructions**; if Web and Desktop use different
|
|
99
|
+
accounts, configure each account you use.
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
For requests that require interpretation or judgment, such as synthesizing
|
|
103
|
+
sources, comparing options, making decisions or drafting messages, load the
|
|
104
|
+
enabled OpenSocrates skill and follow its instructions even when I do not
|
|
105
|
+
mention it. Read the complete procedure and check applicability before applying
|
|
106
|
+
a reasoning method. Do not add unnecessary procedures to mechanical work such
|
|
107
|
+
as formatting.
|
|
87
108
|
```
|
|
88
109
|
|
|
110
|
+
Save once, then start a fresh conversation and describe your task normally.
|
|
111
|
+
The instruction guides model-selected skill use; it adds no native hook or
|
|
112
|
+
guaranteed every-turn enforcement. See the [step-by-step setup guide](docs/setup-guide.md#claude-standing-instructions)
|
|
113
|
+
and [Claude's official instruction settings](https://support.claude.com/en/articles/10185728-understanding-claude-s-personalization-features).
|
|
114
|
+
|
|
89
115
|
The platform guides cover Windows paths, account replacement, updates, disabling,
|
|
90
116
|
removal, and verified local-archive alternatives. With no local asset flags,
|
|
91
|
-
the installer downloads the pinned v1.5.
|
|
117
|
+
the installer downloads the pinned v1.5.1 archive and checksum from GitHub Releases.
|
|
92
118
|
|
|
93
119
|
New profiles require explicit `--host claude`, `--host antigravity`, or
|
|
94
120
|
`--host claude-chat`. The default and `--host all` continue to select Codex;
|
|
@@ -99,11 +125,28 @@ Old multi-host installations are not silently adopted or erased. Reconcile their
|
|
|
99
125
|
exact origin and ownership before installing a new profile. Back up an existing
|
|
100
126
|
OpenSocrates account skill and its enabled state before replacing it.
|
|
101
127
|
|
|
128
|
+
## Reasoning instruction languages
|
|
129
|
+
|
|
130
|
+
All 48 methods include complete English, Korean, Simplified Chinese and Japanese
|
|
131
|
+
procedures and examples: 192 procedure files and three teacher questions per
|
|
132
|
+
method per language, 576 questions in total. Content revision 4 adds the two
|
|
133
|
+
languages while preserving the original English/Korean method text.
|
|
134
|
+
|
|
135
|
+
Language selection prefers an explicit request over a stored locale preference,
|
|
136
|
+
then uses the current input's script. Kana selects Japanese; otherwise a dominant
|
|
137
|
+
Hangul script selects Korean and dominant Han characters select Chinese.
|
|
138
|
+
Han-only text is ambiguous, so explicitly choose Japanese when needed. Empty,
|
|
139
|
+
Latin-only and tied inputs fall back to English. See the
|
|
140
|
+
[language guide](docs/v1.5.1.md) for exact invocation and preference details.
|
|
141
|
+
The npm installer's command output is separate from reasoning instruction
|
|
142
|
+
language; this release does not translate every installer message or host UI.
|
|
143
|
+
Windows ARM64 support remains separate v1.6.0 work.
|
|
144
|
+
|
|
102
145
|
## When attribution appears
|
|
103
146
|
|
|
104
147
|
A final answer ends with the exact line `Powered by OpenSocrates` only when an
|
|
105
148
|
eligible authored method was read in full and actually applied to that answer.
|
|
106
|
-
The wording is the same in
|
|
149
|
+
The wording is the same in all four languages. Reader guidance alone and
|
|
107
150
|
mechanical work do not qualify. The line is attribution, not proof of native
|
|
108
151
|
application or a better result.
|
|
109
152
|
|
|
@@ -119,7 +162,8 @@ See [SECURITY.md](SECURITY.md).
|
|
|
119
162
|
- [Mac installation and evidence boundaries](docs/macos-v1.5.md)
|
|
120
163
|
- [Windows installation and evidence boundaries](docs/windows-v1.5.md)
|
|
121
164
|
- [Authored methods](content/methods/) · [Decision-point contract](docs/decision-points.md)
|
|
122
|
-
- [
|
|
165
|
+
- [v1.5.1 languages, selection and scope](docs/v1.5.1.md)
|
|
166
|
+
- [v1.5.0 implementation baseline](docs/v1.5.0/IMPLEMENTATION_PLAN.md)
|
|
123
167
|
- [Changelog](CHANGELOG.md) · [Contributing](CONTRIBUTING.md) · [Code of Conduct](CODE_OF_CONDUCT.md)
|
|
124
168
|
|
|
125
169
|
OpenSocrates is [MIT licensed](LICENSE), independent of OpenAI, Anthropic, and
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/ParkerHwang/OpenSocrates/main/docs/assets/opensocrates-banner.jpg" alt="OpenSocrates" width="820">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# OpenSocrates
|
|
6
|
+
|
|
7
|
+
**帮助你得到能够理解、评估并使用的推理结果。**
|
|
8
|
+
|
|
9
|
+
OpenSocrates 为资料综合、观点理解、方案比较和消息撰写提供 48 种完整的推理
|
|
10
|
+
方法。v1.5.1 新增简体中文(`zh`)和日语(`ja`),并保留原有英文、韩文方法
|
|
11
|
+
正文。四种语言共有 192 份完整步骤文件;每种方法每种语言有 3 个面向代理的
|
|
12
|
+
教师问题,共 576 个。内容修订号为 4。此版本不新增编程专用方法。
|
|
13
|
+
|
|
14
|
+
[English](README.md) | [한국어](README.ko.md) | **简体中文** | [日本語](README.ja.md)
|
|
15
|
+
|
|
16
|
+
## 支持的平台与应用
|
|
17
|
+
|
|
18
|
+
| 应用 | 交付方式 | 平台与启用要求 |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Codex | 现有钩子、控制器和原生判断运行时 | Apple Silicon Mac、Windows x64;在交互会话中检查 7 个钩子的信任状态 |
|
|
21
|
+
| Claude Code CLI / Desktop 本地 Code | 无状态原生入口及完整本地参考文件 | Apple Silicon Mac;需要 Claude CLI、登录及插件和钩子权限 |
|
|
22
|
+
| Claude 网页版 / Desktop Chat / Cowork | 不含可执行代码的账户技能 ZIP | 在 Mac 或 Windows 导出后,另行上传、启用并保存账户指令 |
|
|
23
|
+
| Antigravity 对话应用 | 模块化规则与技能 | Apple Silicon Mac、Windows x64;选择工作区或全局范围 |
|
|
24
|
+
|
|
25
|
+
平台范围沿用 v1.5.0。Windows 原生 Claude Code 不在此版本范围内;Windows
|
|
26
|
+
ARM64 支持属于独立的 v1.6.0 工作。账户技能不会安装原生 Claude 集成。
|
|
27
|
+
|
|
28
|
+
## 安装或更新
|
|
29
|
+
|
|
30
|
+
准备 Node.js 20 或更高版本,安装并登录所需应用。安装包内含原生运行时,
|
|
31
|
+
无需另装 Python。从 [v1.5.1 发布页](https://github.com/ParkerHwang/OpenSocrates/releases/tag/v1.5.1)
|
|
32
|
+
获取归档和 SHA-256 校验文件,或使用版本固定的 npm 安装器。
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
npx --yes opensocrates@1.5.1 install --host codex
|
|
36
|
+
npx --yes opensocrates@1.5.1 status --host codex
|
|
37
|
+
# 更新现有 Codex 安装:
|
|
38
|
+
npx --yes opensocrates@1.5.1 update --host codex
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
在交互式 Codex 中输入 `/hooks`,检查 OpenSocrates 的 7 个钩子,按应用提供的
|
|
42
|
+
信任流程完成必要审批,然后开始新对话。`status` 说明安装及完整性状态,不能
|
|
43
|
+
证明钩子已被信任或指令已在真实任务中应用。
|
|
44
|
+
|
|
45
|
+
在 Apple Silicon Mac 安装 Claude Code 集成:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
npx --yes opensocrates@1.5.1 install --host claude
|
|
49
|
+
npx --yes opensocrates@1.5.1 status --host claude
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
为 Antigravity 指定已存在的工作区绝对路径;省略 `--workspace` 则选择全局范围。
|
|
53
|
+
同一任务避免同时使用工作区和全局副本。
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
npx --yes opensocrates@1.5.1 install --host antigravity --workspace /absolute/path/to/workspace
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Windows 使用本地驱动器绝对路径并加引号,例如 `"C:\Work\Reading Workshop"`。
|
|
60
|
+
Claude 账户技能需导出到已存在文件夹内的绝对 ZIP 路径:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
npx --yes opensocrates@1.5.1 export --host claude-chat --output /absolute/path/to/opensocrates-1.5.1-account.zip
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
随后在 Claude 的 **Customize → Skills** 上传并启用。替换已有 OpenSocrates
|
|
67
|
+
技能前,下载备份并记录其启用状态。导出成功不等于上传、启用或自动选择成功。
|
|
68
|
+
在 **Settings → General → Instructions for Claude** 追加以下指令,保留原有
|
|
69
|
+
指令;旧版 Cowork 可使用 **Settings → Cowork → Global instructions**。
|
|
70
|
+
网页版和 Desktop 若使用不同账户,应分别设置。
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
对于需要解释或判断的任务,例如综合资料、比较方案、作出决策或撰写消息,
|
|
74
|
+
即使我没有提到名称,也请加载已启用的 OpenSocrates 技能并遵循其指令。
|
|
75
|
+
应用推理方法前,先完整阅读其步骤并确认适用条件。对于格式转换等机械性
|
|
76
|
+
工作,不要增加不必要的推理步骤。
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
保存后开始新对话。账户技能由应用模型选择,可能遗漏;它不新增原生钩子,也
|
|
80
|
+
不保证每条消息都会调用。默认安装和 `--host all` 仍只选择 Codex,其他应用
|
|
81
|
+
必须显式指定。新集成不新增 purge、信任重置或自动更新操作。
|
|
82
|
+
[设置指南(英文)](docs/setup-guide.md)说明后续界面步骤;
|
|
83
|
+
[Mac 指南](docs/macos-v1.5.md)和 [Windows 指南](docs/windows-v1.5.md)保留
|
|
84
|
+
v1.5.0 的安装与恢复基线,当前命令请使用上述 1.5.1 版本。
|
|
85
|
+
|
|
86
|
+
## 指令语言
|
|
87
|
+
|
|
88
|
+
优先使用明确指定的语言,其次使用已保存的语言偏好,再根据当前输入的文字
|
|
89
|
+
判断。含平假名或片假名时选择日语;否则韩文占优时选择韩语,汉字占优时
|
|
90
|
+
选择中文。只有汉字的输入无法可靠区分中文与日语,默认使用中文,需要日语
|
|
91
|
+
时应明确指定。空输入、只有拉丁字符或字符数量持平时回退到英文。
|
|
92
|
+
|
|
93
|
+
推理指令语言与 npm 安装器的命令输出、应用界面语言分开。本次更新不承诺
|
|
94
|
+
翻译每条安装器消息。关于运行时 `locale` 偏好命令和显式 JSON 请求,请参阅
|
|
95
|
+
[语言与范围指南(英文)](docs/v1.5.1.md)。
|
|
96
|
+
|
|
97
|
+
## 使用标注与隐私
|
|
98
|
+
|
|
99
|
+
只有完整读取并实际应用了适用的正典方法,最终答案才以完全相同的英文行
|
|
100
|
+
`Powered by OpenSocrates` 结尾。仅使用阅读指导或完成机械性工作不满足条件。
|
|
101
|
+
该行是来源标注,不能证明原生应用成功或答案质量提升。
|
|
102
|
+
|
|
103
|
+
默认判断路径不额外调用选择模型,不保存原始提示、对话、截图或隐藏推理。
|
|
104
|
+
Claude 原生入口不读取对话,也不初始化数据库;账户技能不含可执行代码。
|
|
105
|
+
应用本身的认证、权限、留存设置及条款仍适用于正常对话。
|
|
106
|
+
[安全政策](SECURITY.md)说明相关边界。安装、加载、完整阅读、实际应用和结果
|
|
107
|
+
是否有用属于不同的证据;本项目不宣称普遍的质量、成本或速度提升。
|
|
108
|
+
|
|
109
|
+
- [方法正文](content/methods/) · [判断点约定](docs/decision-points.md)
|
|
110
|
+
- [版本变更](CHANGELOG.md) · [贡献指南](CONTRIBUTING.md) · [行为准则](CODE_OF_CONDUCT.md)
|
|
111
|
+
|
|
112
|
+
OpenSocrates 采用 [MIT 许可证](LICENSE),是独立项目,不隶属于 OpenAI、
|
|
113
|
+
Anthropic 或 Google,也未获其背书。
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.5.
|
|
1
|
+
1.5.1
|
|
@@ -15,6 +15,7 @@ const NAMESPACE = "opensocrates-macos";
|
|
|
15
15
|
const PLUGIN_ID = `opensocrates@${NAMESPACE}`;
|
|
16
16
|
const SHA = /^(?:sha256:)?[a-f0-9]{64}$/u;
|
|
17
17
|
const METHOD = /^[a-z0-9]+(?:-[a-z0-9]+)*$/u;
|
|
18
|
+
const LOCALES = ["en", "ko", "zh", "ja"];
|
|
18
19
|
const MAX_FILES = 10_000;
|
|
19
20
|
const MAX_JSON_BYTES = 8 * 1024 * 1024;
|
|
20
21
|
|
|
@@ -152,13 +153,20 @@ function equalInventory(actual, expected) {
|
|
|
152
153
|
const names = Object.keys(actual).sort();
|
|
153
154
|
return JSON.stringify(names) === JSON.stringify(Object.keys(expected).sort()) && names.every((name) => actual[name] === expected[name]);
|
|
154
155
|
}
|
|
156
|
+
function packageLocales(version) {
|
|
157
|
+
const match = /^(\d+)\.(\d+)\.(\d+)$/u.exec(version);
|
|
158
|
+
if (!match) fail("package_identity_mismatch", "Invalid package version.");
|
|
159
|
+
const [major, minor, patch] = match.slice(1).map(Number);
|
|
160
|
+
return major > 1 || (major === 1 && (minor > 5 || (minor === 5 && patch >= 1))) ? LOCALES : ["en", "ko"];
|
|
161
|
+
}
|
|
155
162
|
function canonical(manifest, expected, skillRoot) {
|
|
163
|
+
const locales = packageLocales(manifest.product_version);
|
|
156
164
|
const ids = manifest.method_ids;
|
|
157
165
|
if (manifest.method_count !== 48 || !Array.isArray(ids) || ids.length !== 48 || new Set(ids).size !== 48 || ids.some((id) => typeof id !== "string" || !METHOD.test(id))) fail("invalid_canonical_content", "Expected 48 unique canonical methods.");
|
|
158
|
-
if (!Array.isArray(manifest.canonical_methods) || manifest.canonical_methods.length !==
|
|
166
|
+
if (!Array.isArray(manifest.canonical_methods) || manifest.canonical_methods.length !== 48 * locales.length) fail("invalid_canonical_content", "Expected the complete canonical procedure inventory for this version.");
|
|
159
167
|
const seen = new Set();
|
|
160
168
|
for (const row of manifest.canonical_methods) {
|
|
161
|
-
if (!object(row) || Object.keys(row).sort().join(",") !== "locale,method_id,path,sha256" || !ids.includes(row.method_id) || !
|
|
169
|
+
if (!object(row) || Object.keys(row).sort().join(",") !== "locale,method_id,path,sha256" || !ids.includes(row.method_id) || !locales.includes(row.locale)) fail("invalid_canonical_content", "Canonical procedure identity is invalid.");
|
|
162
170
|
const name = `${skillRoot}/references/decision/methods/${row.locale}/${row.method_id}.md`;
|
|
163
171
|
const key = `${row.locale}:${row.method_id}`;
|
|
164
172
|
if (row.path !== name || seen.has(key) || expected[name] !== digest(row.sha256)) fail("invalid_canonical_content", "Canonical procedure path or hash is inconsistent.");
|
|
@@ -200,12 +208,13 @@ async function verifyPackage(root, host, version) {
|
|
|
200
208
|
const launcher = join(root, "bin/launch.sh");
|
|
201
209
|
if ((process.platform !== "win32" && !((await regular(launcher)).mode & 0o111)) || JSON.stringify(manifest.launchers) !== '["bin/launch.sh"]') fail("invalid_runtime", "The Mac launcher identity is invalid.");
|
|
202
210
|
await regular(launcher);
|
|
203
|
-
const
|
|
211
|
+
const locales = packageLocales(version);
|
|
212
|
+
const localeIds = Object.fromEntries(locales.map((locale) => [locale, new Set()]));
|
|
204
213
|
for (const name of Object.keys(expected)) {
|
|
205
|
-
const match = /^skills\/opensocrates\/references\/decision\/methods\/(en|ko)\/([a-z0-9-]+)\.md$/u.exec(name);
|
|
206
|
-
if (match) localeIds[match[1]].add(match[2]);
|
|
214
|
+
const match = /^skills\/opensocrates\/references\/decision\/methods\/(en|ko|zh|ja)\/([a-z0-9-]+)\.md$/u.exec(name);
|
|
215
|
+
if (match && Object.hasOwn(localeIds, match[1])) localeIds[match[1]].add(match[2]);
|
|
207
216
|
}
|
|
208
|
-
for (const locale of
|
|
217
|
+
for (const locale of locales) if (localeIds[locale].size !== 48 || manifest.method_ids.some((id) => !localeIds[locale].has(id))) fail("invalid_canonical_content", "The native companion is missing a complete required locale of canonical procedures.");
|
|
209
218
|
} else {
|
|
210
219
|
if (manifest.schema !== "opensocrates.content-host-manifest/1.0.0" || !equalInventory(rest, expected)) fail("inventory_mismatch", "Content package has modified, missing or unknown files.");
|
|
211
220
|
const skillRoot = host === "claude-chat" ? "opensocrates" : ".agents/skills/opensocrates";
|
|
@@ -35,7 +35,7 @@ import { Readable } from "node:stream";
|
|
|
35
35
|
import { pipeline } from "node:stream/promises";
|
|
36
36
|
import { fileURLToPath } from "node:url";
|
|
37
37
|
|
|
38
|
-
export const PRODUCT_VERSION = "1.5.
|
|
38
|
+
export const PRODUCT_VERSION = "1.5.1";
|
|
39
39
|
export const REPOSITORY = "ParkerHwang/OpenSocrates";
|
|
40
40
|
export const MARKETPLACE_NAME = "opensocrates";
|
|
41
41
|
export const PLUGIN_NAME = "opensocrates";
|