severally-mcp 2.1.0 → 2.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/CODE_OF_CONDUCT.md +83 -0
- package/CONFIG.md +10 -6
- package/README.ja.md +146 -69
- package/README.md +150 -73
- package/bin/severally-mcp.mjs +17 -2
- package/config.example.json +26 -0
- package/docs/how-it-works.ja.md +4 -2
- package/docs/how-it-works.md +5 -3
- package/docs/install.ja.md +59 -24
- package/docs/install.md +60 -24
- package/package.json +16 -4
- package/plugins/severally/.claude-plugin/plugin.json +1 -1
- package/plugins/severally/.codex-plugin/plugin.json +1 -1
- package/plugins/severally/dist/severally-mcp.mjs +29220 -27764
- package/plugins/severally/skills/_template/SKILL.md.tmpl +16 -22
- package/plugins/severally/skills/_template/reference.md.tmpl +11 -5
- package/plugins/severally/skills/antigravity/severally/SKILL.md +16 -22
- package/plugins/severally/skills/antigravity/severally/reference.md +11 -5
- package/plugins/severally/skills/claude/severally/SKILL.md +16 -22
- package/plugins/severally/skills/claude/severally/reference.md +11 -5
- package/plugins/severally/skills/codex/severally/SKILL.md +16 -22
- package/plugins/severally/skills/codex/severally/reference.md +11 -5
- package/plugins/severally/skills/opencode/severally/SKILL.md +16 -22
- package/plugins/severally/skills/opencode/severally/reference.md +11 -5
- package/scripts/build.mjs +31 -26
- package/scripts/doctor.mjs +52 -17
- package/scripts/init-config.mjs +8 -6
- package/scripts/install.mjs +342 -84
- package/scripts/live-check.mjs +52 -19
- package/scripts/live-mcp-check.mjs +42 -12
- package/scripts/test.mjs +10 -4
- package/src/adapters/antigravity-sandbox.mjs +39 -23
- package/src/adapters/antigravity.mjs +34 -16
- package/src/adapters/claude-code.mjs +73 -21
- package/src/adapters/codex.mjs +69 -27
- package/src/adapters/opencode-sandbox.mjs +40 -21
- package/src/adapters/opencode.mjs +31 -13
- package/src/brief.mjs +65 -41
- package/src/consultants.mjs +99 -30
- package/src/export.mjs +49 -12
- package/src/expose-paths.mjs +162 -44
- package/src/failures.mjs +23 -13
- package/src/jobs.mjs +420 -140
- package/src/parse-result.mjs +85 -30
- package/src/platform.mjs +5 -7
- package/src/policy.mjs +139 -32
- package/src/redact.mjs +38 -14
- package/src/run.mjs +104 -22
- package/src/schema.mjs +76 -22
- package/src/server.mjs +176 -166
- package/src/status.mjs +132 -0
- package/src/store.mjs +164 -19
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behavior that contributes to a positive environment for our community include:
|
|
12
|
+
|
|
13
|
+
* Demonstrating empathy and kindness toward other people
|
|
14
|
+
* Being respectful of differing opinions, viewpoints, and experiences
|
|
15
|
+
* Giving and gracefully accepting constructive feedback
|
|
16
|
+
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
|
17
|
+
* Focusing on what is best not just for us as individuals, but for the overall community
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behavior include:
|
|
20
|
+
|
|
21
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
22
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
23
|
+
* Public or private harassment
|
|
24
|
+
* Publishing others' private information, such as a physical or email address, without their explicit permission
|
|
25
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
|
|
32
|
+
|
|
33
|
+
## Scope
|
|
34
|
+
|
|
35
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
|
|
36
|
+
|
|
37
|
+
## Enforcement
|
|
38
|
+
|
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at coz.a.github@gmail.com. All complaints will be reviewed and investigated promptly and fairly.
|
|
40
|
+
|
|
41
|
+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
|
42
|
+
|
|
43
|
+
## Enforcement Guidelines
|
|
44
|
+
|
|
45
|
+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
|
|
46
|
+
|
|
47
|
+
### 1. Correction
|
|
48
|
+
|
|
49
|
+
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
|
|
50
|
+
|
|
51
|
+
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
|
|
52
|
+
|
|
53
|
+
### 2. Warning
|
|
54
|
+
|
|
55
|
+
**Community Impact**: A violation through a single incident or series of actions.
|
|
56
|
+
|
|
57
|
+
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
|
|
58
|
+
|
|
59
|
+
### 3. Temporary Ban
|
|
60
|
+
|
|
61
|
+
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
|
|
62
|
+
|
|
63
|
+
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
|
|
64
|
+
|
|
65
|
+
### 4. Permanent Ban
|
|
66
|
+
|
|
67
|
+
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
|
|
68
|
+
|
|
69
|
+
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
|
70
|
+
|
|
71
|
+
## Attribution
|
|
72
|
+
|
|
73
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
|
74
|
+
|
|
75
|
+
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
|
76
|
+
|
|
77
|
+
For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations].
|
|
78
|
+
|
|
79
|
+
[homepage]: https://www.contributor-covenant.org
|
|
80
|
+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
|
81
|
+
[Mozilla CoC]: https://github.com/mozilla/diversity
|
|
82
|
+
[FAQ]: https://www.contributor-covenant.org/faq
|
|
83
|
+
[translations]: https://www.contributor-covenant.org/translations
|
package/CONFIG.md
CHANGED
|
@@ -16,10 +16,13 @@ executable path with forward slashes (`"bin": "C:/Tools/claude.exe"`) or escaped
|
|
|
16
16
|
(`"bin": "C:\\Tools\\claude.exe"`). Where a key also has an
|
|
17
17
|
environment variable (a CLI's `bin`, the server-wide limits), the variable wins over the file.
|
|
18
18
|
|
|
19
|
-
**A mistake
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
**A mistake is kept to where it is.** A mistake inside one consultant (an unknown key, a missing `cli` or
|
|
20
|
+
`model`, `effort` on an Antigravity consultant) takes only that consultant out of use; asking for it is refused
|
|
21
|
+
with `target_unavailable` and the reason. A mistake inside `clis.<cli>` turns that CLI off. Everything else keeps
|
|
22
|
+
working, and each mistake is written to stderr at startup and listed under `config_mistakes` in the limits a
|
|
23
|
+
refused request returns. A mistake in the file as a whole (a syntax error, an unknown top-level key, `clis`,
|
|
24
|
+
`consultants` or `ranking` of the wrong shape) still refuses every `consult_start` with `config_invalid`. None of
|
|
25
|
+
them falls back to defaults, because that would quietly re-enable a CLI you turned off.
|
|
23
26
|
|
|
24
27
|
**Comments are fine.** `//` and `/* */` comments and trailing commas are stripped before parsing, in both a
|
|
25
28
|
`.json` and a `.jsonc` file — use whichever extension your editor is happy with (if it flags comments in
|
|
@@ -200,13 +203,14 @@ server only from Claude Code and Antigravity.
|
|
|
200
203
|
| `max_rounds` | 5 (1 initial + 4 follow-ups) | 1–20 | `SEVERALLY_MAX_ROUNDS` | Rounds per consultation chain, the first one included. |
|
|
201
204
|
| `max_concurrent` | 9 | 1–9 | `SEVERALLY_MAX_CONCURRENT` | Consultations running at once, counted across every severally process that shares this home (one runs per client session); a request that would go over it is refused. A "consult everyone" fan-out takes one per consultant, and is refused if that is over the cap. |
|
|
202
205
|
| `max_jobs_retained` | 200 | 20–2000 | `SEVERALLY_MAX_JOBS_RETAINED` | Jobs the running server keeps in memory; older finished ones are dropped from memory, never from the history on disk. |
|
|
203
|
-
| `max_wait_ms` | 45000 | 0–600000 | `SEVERALLY_MAX_WAIT_MS` | Longest `wait_ms` a single `consult_get` may block for. Keep it under your client's tool-call timeout. A `consult_get` with no `wait_ms` waits for this long, or 45000 if this is higher, unless the environment variable is set: it belongs to one client's registration, so it also sets that client's default wait (and takes precedence over this key). The
|
|
206
|
+
| `max_wait_ms` | 45000 | 0–600000 | `SEVERALLY_MAX_WAIT_MS` | Longest `wait_ms` a single `consult_get` may block for. Keep it under your client's tool-call timeout. A `consult_get` with no `wait_ms` waits for this long, or 45000 if this is higher, unless the environment variable is set: it belongs to one client's registration, so it also sets that client's default wait (and takes precedence over this key). The installer's registrations for Claude Code, Codex and OpenCode set the environment variable to 600000: Claude Code and OpenCode wait on a tool call far longer, and for Codex the installer raises its tool-call timeout to 660 s (in the plugin manifest, or as `tool_timeout_sec` in `config.toml` for a `--manual` registration). Antigravity stops a tool call at 3 minutes whatever the progress, so the installer registers it with 165000. While it waits, `consult_get` sends a progress notification every 15 s when the client asks for them, and stops waiting if the client cancels the call. |
|
|
204
207
|
| `timeout_ms` | 1800000 | 1000–7200000 | `SEVERALLY_TIMEOUT_MS` | Wall-clock budget per consultation, for every consultant without its own `timeout_ms`. |
|
|
205
208
|
| `kill_grace_ms` | 5000 | 500–60000 | `SEVERALLY_KILL_GRACE_MS` | Time between asking a stopped consultant to exit and killing it; also how long the server waits for running consultants when it shuts down. |
|
|
206
209
|
| `max_auto_retries` | 2 | 0–3 | `SEVERALLY_MAX_AUTO_RETRIES` | How many times a consultation that failed with `rate_limited` or `cli_error` is run again automatically, inside its original time budget. `0` turns it off. |
|
|
210
|
+
| `network` | `"on"` | `"on"` or `"off"` | `SEVERALLY_NETWORK` | `"off"` takes web search and browsing away from every consultation, whatever the request's own `network` says; `"on"` leaves it to each request. Unlike the other keys, `"off"` from either the file or the environment wins, so one cannot reopen what the other closed. Any other value is a config mistake that refuses every consultation. |
|
|
207
211
|
| `retry_backoff_ms` | 5000 | 0–60000 | `SEVERALLY_RETRY_BACKOFF_MS` | Wait before the first automatic re-run; each later one waits three times longer. |
|
|
208
212
|
|
|
209
|
-
A
|
|
213
|
+
A number outside its range is clamped to it.
|
|
210
214
|
|
|
211
215
|
## Environment only
|
|
212
216
|
|
package/README.ja.md
CHANGED
|
@@ -21,12 +21,21 @@ AI エージェントが、ほかのコーディングエージェントに独
|
|
|
21
21
|
severally は、独立した複数の相談相手に質問し、答えを 1 つにまとめずに相談相手ごとに返します。意見が割れたこと
|
|
22
22
|
自体にも意味があるからです。エージェントは割れた理由を確かめたうえで、どう受け止めるかを決めます。
|
|
23
23
|
|
|
24
|
+
遅い商品ページを 5 分キャッシュしてよいかを聞くと、3 人の相談相手がそれぞれ次のように答えました(全体は
|
|
25
|
+
[使い方の例](#使い方の例)にあります)。
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
codex do_not_proceed 価格は会員のランクで変わるので、最初の訪問者の価格が全員に出る
|
|
29
|
+
claude-code do_not_proceed 最初にキャッシュを埋めた人の価格が、5 分間ほかの全員に出る
|
|
30
|
+
antigravity alternative 会員割引がほかの利用者に漏れる。クエリを直せばキャッシュは要らないかもしれない
|
|
31
|
+
```
|
|
32
|
+
|
|
24
33
|
## 目次
|
|
25
34
|
|
|
26
|
-
- [
|
|
27
|
-
- [仕組み](#仕組み)
|
|
35
|
+
- [背景](#背景)
|
|
28
36
|
- [インストール](#インストール)
|
|
29
37
|
- [必要なもの](#必要なもの)
|
|
38
|
+
- [コマンドライン](#コマンドライン)
|
|
30
39
|
- [更新](#更新)
|
|
31
40
|
- [アンインストール](#アンインストール)
|
|
32
41
|
- [使い方](#使い方)
|
|
@@ -34,65 +43,15 @@ severally は、独立した複数の相談相手に質問し、答えを 1 つ
|
|
|
34
43
|
- [答えが返ったあと](#答えが返ったあと)
|
|
35
44
|
- [モード](#モード)
|
|
36
45
|
- [履歴と記録](#履歴と記録)
|
|
46
|
+
- [使い方の例](#使い方の例)
|
|
47
|
+
- [おすすめの構成](#おすすめの構成)
|
|
37
48
|
- [設定](#設定)
|
|
38
49
|
- [相談相手が読めるものとできること](#相談相手が読めるものとできること)
|
|
39
50
|
- [API](#api)
|
|
40
51
|
- [貢献](#貢献)
|
|
41
52
|
- [ライセンス](#ライセンス)
|
|
42
53
|
|
|
43
|
-
##
|
|
44
|
-
|
|
45
|
-
severally を使うと、エージェントの仕事の進め方がどう変わるかを、1 つの場面で示します。エージェントが変更を
|
|
46
|
-
思いつき、あなたに承認を求める前に、相談相手の意見を聞く場面です。
|
|
47
|
-
|
|
48
|
-
例に使うのは、小さなネットショップの API です。商品ページを返す `GET /products/:id` が遅く、約 800 ms
|
|
49
|
-
かかっています。この API は、商品に在庫とレビューを結合して読み込んでいます。また、商品の価格は会員の
|
|
50
|
-
ランクで変わり、ゴールド会員には 10% の割引が付きます。
|
|
51
|
-
|
|
52
|
-
Claude Code で動くエージェントは、「レスポンスをメモリ上の Map に 5 分間保持する」というよくある修正を
|
|
53
|
-
考えました。あなたに「進めてよいですか」と尋ねる前に、この計画を 3 人の相談相手に見せます。Codex、
|
|
54
|
-
Antigravity、新しい Claude Code のセッション(エージェント自身の CLI の新しいセッションで、会話は
|
|
55
|
-
引き継がない)です。計画と一緒に、関係するコードの読み取り専用の写しも渡します。答えは相談相手ごとに、
|
|
56
|
-
横に並んで返ってきます(サンプルの API に対する実際の実行結果の抜粋を訳したもの)。
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
codex do_not_proceed 価格は会員のランクで変わるので、商品 ID だけで保持すると、最初に来た人の
|
|
60
|
-
価格が全員に返る。結合で在庫数が水増しされている。4 つのワーカーが別々に保持するので、
|
|
61
|
-
注文で在庫が変わっても古い値が消えない
|
|
62
|
-
claude-code do_not_proceed 最初にキャッシュに入った人の価格が、5 分間ほかの全員に返る。4 つのワーカーがそれぞれ
|
|
63
|
-
保持するので、注文のあとも在庫が古いまま残る。結合の不具合も先に直す
|
|
64
|
-
antigravity alternative 会員の割引がほかの利用者に漏れる。800 ms の原因は在庫とレビューの結合で、在庫数も
|
|
65
|
-
狂わせている。クエリを書き直せば、キャッシュなしで十分に速くなる見込みがある
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
どの答えも結論から始まります。結論は `proceed`(進めてよい)、`do_not_proceed`(進めない)、`alternative`
|
|
69
|
-
(代わりに別のことをする)、`undetermined`(決められない)のどれかです。3 人は、価格の漏れ、在庫の水増し、
|
|
70
|
-
ワーカーごとのキャッシュという同じ問題を、それぞれ独立に見つけました。違うのはその先です。Codex と
|
|
71
|
-
Claude Code は、クエリを直したうえで、利用者によらない部分だけをキャッシュするよう勧めています。
|
|
72
|
-
Antigravity は、クエリを直せばキャッシュ自体が要らないかもしれないと言っています。答えを 1 つにまとめると、
|
|
73
|
-
この違いは埋もれてしまいます。
|
|
74
|
-
|
|
75
|
-
相談したエージェント(以下、*主担当*)は、指摘を読んだあと、自分のリポジトリで確かめます。2 つの指摘の
|
|
76
|
-
うち、1 つはそのとおりに再現しました。もう 1 つは、今はまだ起きていないと分かり、対応が変わりました。
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
指摘 クエリが在庫とレビューを一緒に結合しているので、在庫数がレビューの数だけ掛け算される
|
|
80
|
-
確認 テスト用のデータベースでクエリを実行: 在庫 5 個、レビュー 4 件 -> 在庫数が 20 になる
|
|
81
|
-
判断 キャッシュより先に、クエリを直す
|
|
82
|
-
|
|
83
|
-
指摘 ゴールド会員の 10% 割引がゲストにも返る
|
|
84
|
-
確認 ログインの仕組みはまだ組み込まれていないので、今は全員が基本価格になる。
|
|
85
|
-
漏れはログインを足した日から始まる
|
|
86
|
-
判断 キャッシュするのは利用者によらない商品の情報だけにし、価格はリクエストごとに計算する
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
あなたに返ってくるのは「反対 2、代案 1」という票の数ではありません。何を確かめたか、主担当が何を勧めるか、
|
|
90
|
-
まだ何を確かめていないかです。この例でまだ確かめていないのは、直したクエリがキャッシュなしで十分に速いか
|
|
91
|
-
(本番に近いデータが要る)と、注文のあと在庫の表示がどれだけ古くてもよいか(あなたが決めること)です。
|
|
92
|
-
判断はあなたがします。確かめた結果は指摘の隣に残り、Markdown としてリポジトリに書き出せます
|
|
93
|
-
([履歴と記録](#履歴と記録)を参照)。
|
|
94
|
-
|
|
95
|
-
## 仕組み
|
|
54
|
+
## 背景
|
|
96
55
|
|
|
97
56
|
```mermaid
|
|
98
57
|
flowchart TB
|
|
@@ -121,25 +80,56 @@ flowchart TB
|
|
|
121
80
|
|
|
122
81
|
### 必要なもの
|
|
123
82
|
|
|
124
|
-
- Node.js
|
|
83
|
+
- Node.js 22 以降
|
|
125
84
|
- インストールしてログインした CLI(4 つのうち少なくとも 1 つ)。1 つで足り、Claude Code だけでも、新しい
|
|
126
85
|
Claude Code のセッションに相談できます。
|
|
127
|
-
|
|
128
|
-
|
|
86
|
+
|
|
87
|
+
インストーラとサーバは Linux・macOS・Windows でテストしています。Claude Code と Codex のマーケットプレイスからの
|
|
88
|
+
導入と、実際の CLI での動作を試したのは Linux だけです。
|
|
129
89
|
|
|
130
90
|
macOS、Linux、Windows(PowerShell またはコマンドプロンプト)のどれでも、次の 1 行で入れられます。
|
|
131
91
|
|
|
132
92
|
```bash
|
|
133
|
-
npx -y severally-mcp@2.
|
|
93
|
+
npx -y severally-mcp@2.4.0 install
|
|
134
94
|
```
|
|
135
95
|
|
|
136
96
|
インストーラは、`PATH` で見つかった CLI のそれぞれに severally を登録します。末尾に `--dry-run` を付けると、何も
|
|
137
97
|
変えずに変更内容だけを表示します。終わったら、クライアントを再起動してください。動いているセッションは、新しい
|
|
138
98
|
登録を読み直しません。
|
|
139
99
|
|
|
100
|
+
Claude Code だけで使うなら、プラグインマーケットプレイスから入れることもできます。Claude Code で
|
|
101
|
+
`/plugin marketplace add coz-a/severally`、続けて `/plugin install severally@severally` を実行し、Claude Code を
|
|
102
|
+
再起動します。見つかった CLI すべてに登録できる上の 1 行が基本の方法です。詳しくは
|
|
103
|
+
[docs/install.ja.md](docs/install.ja.md#claude-code-のプラグインマーケットプレイスから入れる) にあります。
|
|
104
|
+
|
|
105
|
+
macOS と Linux の既定のインストールは、`npm install -g` で `severally-mcp` コマンドを `PATH` に置きます。要るのは
|
|
106
|
+
Codex のプラグインだけです。npm がグローバルに入れられないとき(たとえば sudo が要る、npm のグローバルのフォルダが
|
|
107
|
+
`PATH` に無い)は、インストーラが代わりに Codex を直接登録し、そう表示します。ほかに必要なことはありません。
|
|
108
|
+
|
|
140
109
|
Claude Code のプラグインマーケットプレイスから入れる方法、クローンから入れる方法、登録の確かめ方、インストーラが
|
|
141
110
|
変えるものは、[docs/install.ja.md](docs/install.ja.md) にあります。
|
|
142
111
|
|
|
112
|
+
### コマンドライン
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-global] [--allow-local-tools]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
| オプション | すること |
|
|
119
|
+
|---|---|
|
|
120
|
+
| `--dry-run` | 何を変えるかを表示するだけで、何も変えない |
|
|
121
|
+
| `--manual` | プラグインを入れる代わりに、MCP サーバを登録して Skill を写す(Windows の既定) |
|
|
122
|
+
| `--force` | すでに登録してあっても、そのままにせず登録し直す |
|
|
123
|
+
| `--skip-global` | プラグイン方式で npm のグローバルなインストールを飛ばす。`PATH` 上の `severally-mcp` がすでにこのインストールを指しているときだけ使える |
|
|
124
|
+
| `--allow-local-tools` | severally の手元で完結する 5 つのツールを、確認なしで Claude Code の許可リストに足す。`consult_start` は確認を残す |
|
|
125
|
+
|
|
126
|
+
方式ごとに何が変わるかは [docs/install.ja.md](docs/install.ja.md#2-つのインストール方式) にあります。
|
|
127
|
+
|
|
128
|
+
`npx -y severally-mcp@latest status` を実行すると、相談を始めずに、設定ファイル・この機械から使える相談相手・
|
|
129
|
+
入っている写しの版・どのクライアントに登録されているか・各 CLI にログインしているかを表示します。ログインの確認は
|
|
130
|
+
CLI 自身の状態確認コマンドを読むだけで、プロンプトは送りません。使用枠を使い切っていないかは確かめません。それは
|
|
131
|
+
最初の相談で分かります。
|
|
132
|
+
|
|
143
133
|
### 更新
|
|
144
134
|
|
|
145
135
|
次の 1 行で、最新版に入れ替わります。バージョン番号を調べる必要はありません。
|
|
@@ -149,8 +139,8 @@ npx -y severally-mcp@latest install
|
|
|
149
139
|
```
|
|
150
140
|
|
|
151
141
|
`@latest` を付けると、npx は毎回 npm に最新版を問い合わせます。手元に古い写しがあっても、それは使いません。
|
|
152
|
-
|
|
153
|
-
[docs/install.ja.md](docs/install.ja.md#更新)
|
|
142
|
+
Claude Code にマーケットプレイス版の severally が入っていれば、同じ 1 行でその写しも更新されます(詳しくは
|
|
143
|
+
[docs/install.ja.md](docs/install.ja.md#更新))。終わったら、クライアントを再起動してください。版ごとの変更点は
|
|
154
144
|
[リリース](https://github.com/coz-a/severally/releases)にあります。
|
|
155
145
|
|
|
156
146
|
### アンインストール
|
|
@@ -179,6 +169,9 @@ npx -y severally-mcp@latest install
|
|
|
179
169
|
- 頼まなくても、エージェントは自分から相談します。調査が行き詰まったとき、甲乙つけがたい選択に当たったとき、
|
|
180
170
|
巻き戻しにくい変更の承認を求める前です。
|
|
181
171
|
|
|
172
|
+
あなたに返ってくるのは、相談相手の答えそのものではなく、主担当の報告です。確かめたことと結果、勧めること、
|
|
173
|
+
まだ確かめていないことが並びます。報告の例は[使い方の例](#使い方の例)にあります。
|
|
174
|
+
|
|
182
175
|
相談が向いているのは、重要な設計判断、巻き戻しにくい選択、同じ不具合で 2 回以上失敗したときです。相談 1 回に
|
|
183
176
|
数分から 10 分ほどと実際の使用量がかかるので、小さな修正には向きません。
|
|
184
177
|
|
|
@@ -187,7 +180,8 @@ npx -y severally-mcp@latest install
|
|
|
187
180
|
相談を始めても、エージェントは答えを待たずに、答えに左右されない作業を進められます。答えはふつう 1〜10 分で
|
|
188
181
|
そろいます(いちばん時間がかかるのは Antigravity です)。
|
|
189
182
|
|
|
190
|
-
|
|
183
|
+
どの答えにも同じ形を求めます。結論、根拠つきの指摘、決められなかったこと、判断が変わる条件、確かめ方です。
|
|
184
|
+
結論や指摘の根拠などが欠けた答えは、そのことを注意書き(caveat)で知らせます。
|
|
191
185
|
相談相手が失敗したときは、理由(`usage_limit`、`timeout` など)を付けて失敗として返します。「問題なし」として
|
|
192
186
|
返すことはありません。
|
|
193
187
|
|
|
@@ -200,7 +194,7 @@ npx -y severally-mcp@latest install
|
|
|
200
194
|
こともできます。
|
|
201
195
|
|
|
202
196
|
- `explore`:計画を見せずに聞く。相談相手は、まず自分のやり方で答える
|
|
203
|
-
- `review
|
|
197
|
+
- `review`:計画を見せて、どこがまずいかを聞く([使い方の例](#使い方の例)はこれ)
|
|
204
198
|
- `debate`:計画と反対の主張を見せて、比べてもらう
|
|
205
199
|
|
|
206
200
|
最初の答えのあと、同じ相談相手に追加の質問を送れます。既定では 4 回まで、合わせて 5 往復です。全員に聞いた相談に追加の質問を送ると、全員にもう一度聞けます。それぞれの相談相手とのやりとりは別々に続きます。
|
|
@@ -213,12 +207,92 @@ npx -y severally-mcp@latest install
|
|
|
213
207
|
|
|
214
208
|
相談相手の呼び方、相談の進み方、記録の詳細は [docs/how-it-works.ja.md](docs/how-it-works.ja.md) にあります。
|
|
215
209
|
|
|
210
|
+
## 使い方の例
|
|
211
|
+
|
|
212
|
+
severally を使うと、エージェントの仕事の進め方がどう変わるかを、1 つの場面で示します。エージェントが変更を
|
|
213
|
+
思いつき、あなたに承認を求める前に、相談相手の意見を聞く場面です。
|
|
214
|
+
|
|
215
|
+
例に使うのは、小さなネットショップの API です。商品ページを返す `GET /products/:id` が遅く、約 800 ms
|
|
216
|
+
かかっています。この API は、商品に在庫とレビューを結合して読み込んでいます。また、商品の価格は会員の
|
|
217
|
+
ランクで変わり、ゴールド会員には 10% の割引が付きます。
|
|
218
|
+
|
|
219
|
+
Claude Code で動くエージェントは、「レスポンスをメモリ上の Map に 5 分間保持する」というよくある修正を
|
|
220
|
+
考えました。あなたに「進めてよいですか」と尋ねる前に、この計画を 3 人の相談相手に見せます。Codex、
|
|
221
|
+
Antigravity、新しい Claude Code のセッション(エージェント自身の CLI の新しいセッションで、会話は
|
|
222
|
+
引き継がない)です。計画と一緒に、関係するコードの読み取り専用の写しも渡します。答えは相談相手ごとに、
|
|
223
|
+
横に並んで返ってきます(サンプルの API に対する実際の実行結果の抜粋を訳したもの)。
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
codex do_not_proceed 価格は会員のランクで変わるので、商品 ID だけで保持すると、最初に来た人の
|
|
227
|
+
価格が全員に返る。結合で在庫数が水増しされている。4 つのワーカーが別々に保持するので、
|
|
228
|
+
注文で在庫が変わっても古い値が消えない
|
|
229
|
+
claude-code do_not_proceed 最初にキャッシュに入った人の価格が、5 分間ほかの全員に返る。4 つのワーカーがそれぞれ
|
|
230
|
+
保持するので、注文のあとも在庫が古いまま残る。結合の不具合も先に直す
|
|
231
|
+
antigravity alternative 会員の割引がほかの利用者に漏れる。800 ms の原因は在庫とレビューの結合で、在庫数も
|
|
232
|
+
狂わせている。クエリを書き直せば、キャッシュなしで十分に速くなる見込みがある
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
どの答えも結論から始まります。結論は `proceed`(進めてよい)、`do_not_proceed`(進めない)、`alternative`
|
|
236
|
+
(代わりに別のことをする)、`undetermined`(決められない)のどれかです。3 人は、価格の漏れ、在庫の水増し、
|
|
237
|
+
ワーカーごとのキャッシュという同じ問題を、それぞれ独立に見つけました。違うのはその先です。Codex と
|
|
238
|
+
Claude Code は、クエリを直したうえで、利用者によらない部分だけをキャッシュするよう勧めています。
|
|
239
|
+
Antigravity は、クエリを直せばキャッシュ自体が要らないかもしれないと言っています。答えを 1 つにまとめると、
|
|
240
|
+
この違いは埋もれてしまいます。
|
|
241
|
+
|
|
242
|
+
相談したエージェント(以下、*主担当*)は、指摘を読んだあと、自分のリポジトリで確かめます。2 つの指摘の
|
|
243
|
+
うち、1 つはそのとおりに再現しました。もう 1 つは、今はまだ起きていないと分かり、対応が変わりました。
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
指摘 クエリが在庫とレビューを一緒に結合しているので、在庫数がレビューの数だけ掛け算される
|
|
247
|
+
確認 テスト用のデータベースでクエリを実行: 在庫 5 個、レビュー 4 件 -> 在庫数が 20 になる
|
|
248
|
+
判断 キャッシュより先に、クエリを直す
|
|
249
|
+
|
|
250
|
+
指摘 ゴールド会員の 10% 割引がゲストにも返る
|
|
251
|
+
確認 ログインの仕組みはまだ組み込まれていないので、今は全員が基本価格になる。
|
|
252
|
+
漏れはログインを足した日から始まる
|
|
253
|
+
判断 キャッシュするのは利用者によらない商品の情報だけにし、価格はリクエストごとに計算する
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
あなたに返ってくるのは「反対 2、代案 1」という票の数ではありません。何を確かめたか、主担当が何を勧めるか、
|
|
257
|
+
まだ何を確かめていないかです。この例でまだ確かめていないのは、直したクエリがキャッシュなしで十分に速いか
|
|
258
|
+
(本番に近いデータが要る)と、注文のあと在庫の表示がどれだけ古くてもよいか(あなたが決めること)です。
|
|
259
|
+
判断はあなたがします。確かめた結果は指摘の隣に残り、Markdown としてリポジトリに書き出せます
|
|
260
|
+
([履歴と記録](#履歴と記録)を参照)。
|
|
261
|
+
|
|
262
|
+
## おすすめの構成
|
|
263
|
+
|
|
264
|
+
各ベンダーの最上位のモデルを相談相手に登録しておき、ふだんの作業は Claude Code の Sonnet のような安価なモデルで
|
|
265
|
+
進める、という使い方です。コードの編集、テストの実行、検索など、作業の大半は安価なモデルで足ります。
|
|
266
|
+
設計の選択や巻き戻しにくい変更など、判断を誤ったときの損が大きい場面では、主担当が最上位のモデルにそれぞれ
|
|
267
|
+
独立に相談します。最上位のモデルを使うのは相談のときだけです。そのため、使用量の大半は安価なモデルの側に
|
|
268
|
+
収まり、重要な判断には最上位のモデルの意見が入ります。
|
|
269
|
+
|
|
270
|
+
この構成の `~/.severally/config.json` の例です。
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"consultants": {
|
|
275
|
+
"opus": { "cli": "claude-code", "model": "claude-opus-5-5" },
|
|
276
|
+
"gpt": { "cli": "codex", "model": "gpt-6.1-sol" },
|
|
277
|
+
"gemini": { "cli": "antigravity", "model": "gemini-4-argon-high" }
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
モデルの ID は新しいモデルが出るたびに変わるので、使っている CLI に合わせて書き換えてください。`effort` を
|
|
283
|
+
書かなければ、相談相手は effort `high` で動きます。ただし Antigravity はモデル名で決まり(`gemini-4-argon-high`)、
|
|
284
|
+
`effort` を書くと設定の誤りになります。
|
|
285
|
+
|
|
286
|
+
そのうえで、主担当を安価なモデルで起動します(`claude --model sonnet`、動いているセッションなら
|
|
287
|
+
`/model sonnet`)。主担当は、[頼み方](#頼み方)に挙げた場面で自分から相談します。「マージする前にみんなに
|
|
288
|
+
聞いて」のように頼むこともできます。相談相手は、それぞれの CLI のログインと利用枠を使います。
|
|
289
|
+
|
|
216
290
|
## 設定
|
|
217
291
|
|
|
218
292
|
**既定のままなら設定は要りません**。サーバは起動時に `PATH` にある CLI を探し、見つかった CLI をそれぞれ、既定の
|
|
219
293
|
モデルで動く相談相手にします。CLI を止める、ほかのモデルの相談相手を足す、といったときは
|
|
220
294
|
`~/.severally/config.json` を置きます。クローンから入れた場合は、`npm run init-config` でひな形を作れます。キーは
|
|
221
|
-
すべて [CONFIG.md](CONFIG.md)(英語)にあり、[config.example.json](config.example.json)
|
|
295
|
+
すべて [CONFIG.md](CONFIG.md)(英語)にあり、[config.example.json](config.example.json) は書き換えて使う例です(パス・モデル・メモは架空のものです)。
|
|
222
296
|
設定を変えたら、クライアントを再起動してください。
|
|
223
297
|
|
|
224
298
|
API キーで呼び出すモデル(OpenRouter や、OpenAI 互換のほかの API)やローカルのモデルに相談するには、OpenCode を入れて、
|
|
@@ -242,13 +316,15 @@ API キーで呼び出すモデル(OpenRouter や、OpenAI 互換のほかの
|
|
|
242
316
|
| Antigravity | できる(`view_file`) | 拒否(ツールのフック) | なし | できない | できる(`network: "off"` のときを除く) |
|
|
243
317
|
| OpenCode | できる(`read` / `glob` / `grep`) | 拒否(権限の規則) | なし(Code Mode の `execute` は拒否) | できない | できる(`network: "off"` のときを除く) |
|
|
244
318
|
|
|
245
|
-
|
|
319
|
+
どの相談相手も、渡したファイルの写しだけが入った専用の作業ディレクトリで始まり、サーバはあなたのリポジトリの
|
|
320
|
+
場所を伝えません。それでも、あなたの
|
|
246
321
|
ユーザーアカウントで読めるファイルは、表で「拒否」とした秘密のパスを除いて読めます。Codex はファイルの名前では
|
|
247
322
|
拒否しないので、あなたのリポジトリにある `.env` は Codex から読めます。
|
|
248
323
|
|
|
249
324
|
**ディスクを読めて Web も閲覧できる相談相手は、読んだ内容を URL に載せて外に持ち出せます**。開いたページに、
|
|
250
325
|
そうするよう書かれていた場合などです。それを防ぎたいときは、エージェントが `network: "off"` を渡します。その回の
|
|
251
|
-
どの相談相手も、Web
|
|
326
|
+
どの相談相手も、Web の検索と閲覧ができなくなります。すべての相談でそうするには、
|
|
327
|
+
[設定ファイル](CONFIG.md#server-wide-keys)に `"server": { "network": "off" }` と書きます。依頼の側からは戻せません。それでも、ブリーフと相談相手が読んだ内容は、その CLI の
|
|
252
328
|
モデルに送られます。
|
|
253
329
|
|
|
254
330
|
CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-it-works.ja.md#相談相手を読み取りだけにとどめる仕組み) にあります。
|
|
@@ -262,9 +338,9 @@ CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-i
|
|
|
262
338
|
|---|---|
|
|
263
339
|
| `consult_start` | 1 人(`target`)または複数(`targets`)の相談相手に相談を始め、`job_id` か `group_id` をすぐに返す |
|
|
264
340
|
| `consult_get` | 相談を待ち、状態か答えを返す。`ids` を付けると、答えのうちその指摘だけを返す |
|
|
265
|
-
| `consult_cancel` |
|
|
341
|
+
| `consult_cancel` | 相談、または全員に聞いた相談をまとめて止め、相談相手のプロセスも止める。別のセッションが始めた相談も止められる |
|
|
266
342
|
| `consult_record` | 答えの指摘ごとの主担当の判定と、答えから新しく分かったことを書く |
|
|
267
|
-
| `consult_list` |
|
|
343
|
+
| `consult_list` | 前のセッションのものも含めて最近の相談を並べる。使用量は、このセッションで各相談相手が報告した分 |
|
|
268
344
|
| `consult_export` | 相談を、追加の質問と判定を含めて Markdown で返す |
|
|
269
345
|
|
|
270
346
|
`consult_start` の主な引数は次のとおりです。
|
|
@@ -273,7 +349,8 @@ CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-i
|
|
|
273
349
|
ディレクトリは、git が一覧するファイル(追跡中のものと、`.gitignore` で外していない未追跡のもの)だけを写す
|
|
274
350
|
- `context.expose_diff`: `{ repo, base? }`。変更中の差分をブリーフに入れ、差分が触るファイルを写す
|
|
275
351
|
- `network`: `"off"` にすると、その回のどの相談相手も Web の検索と閲覧ができない
|
|
276
|
-
- `followup_to`: 追加の質問のもとになる答えの `job_id`。全員に聞いた相談の `group_id`
|
|
352
|
+
- `followup_to`: 追加の質問のもとになる答えの `job_id`。全員に聞いた相談の `group_id` を渡すと、全員にもう一度聞く。
|
|
353
|
+
追加の質問はこれと `question` だけでよく、相談相手・モード・前の回の前提は、渡し直さなければそのまま引き継ぐ
|
|
277
354
|
|
|
278
355
|
## 貢献
|
|
279
356
|
|