severally-mcp 2.0.0 → 2.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/CODE_OF_CONDUCT.md +83 -0
- package/CONFIG.md +13 -7
- package/README.ja.md +157 -77
- package/README.md +162 -81
- package/bin/severally-mcp.mjs +3 -0
- package/config.example.json +26 -0
- package/docs/how-it-works.ja.md +11 -3
- package/docs/how-it-works.md +12 -4
- package/docs/install.ja.md +25 -6
- package/docs/install.md +30 -7
- package/package.json +5 -3
- package/plugins/severally/.claude-plugin/plugin.json +1 -1
- package/plugins/severally/.codex-plugin/plugin.json +4 -2
- package/plugins/severally/.mcp.json +2 -1
- package/plugins/severally/dist/severally-mcp.mjs +29639 -28215
- package/plugins/severally/skills/_template/SKILL.md.tmpl +19 -23
- package/plugins/severally/skills/_template/reference.md.tmpl +22 -10
- package/plugins/severally/skills/antigravity/severally/SKILL.md +19 -23
- package/plugins/severally/skills/antigravity/severally/reference.md +22 -10
- package/plugins/severally/skills/claude/severally/SKILL.md +19 -23
- package/plugins/severally/skills/claude/severally/reference.md +22 -10
- package/plugins/severally/skills/codex/severally/SKILL.md +19 -23
- package/plugins/severally/skills/codex/severally/reference.md +22 -10
- package/plugins/severally/skills/opencode/severally/SKILL.md +19 -23
- package/plugins/severally/skills/opencode/severally/reference.md +22 -10
- package/scripts/init-config.mjs +1 -1
- package/scripts/install.mjs +124 -9
- package/src/adapters/antigravity-sandbox.mjs +5 -1
- package/src/adapters/codex.mjs +17 -6
- package/src/brief.mjs +38 -16
- package/src/consultants.mjs +31 -10
- package/src/expose-paths.mjs +68 -5
- package/src/jobs.mjs +294 -56
- package/src/policy.mjs +49 -11
- package/src/redact.mjs +20 -1
- package/src/run.mjs +38 -5
- package/src/schema.mjs +35 -12
- package/src/server.mjs +96 -120
- package/src/status.mjs +63 -0
- package/src/store.mjs +44 -1
|
@@ -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
|
|
@@ -79,6 +82,8 @@ A name is lower-case letters, digits, `.` and `-`, at most 64 characters; `all`
|
|
|
79
82
|
| `enabled` | boolean | `true` | Turns this one consultant off, leaving the others on its CLI. |
|
|
80
83
|
| `note` | string | – | Why it is off, as for `clis`. |
|
|
81
84
|
|
|
85
|
+
### API keys and other model families, through OpenCode
|
|
86
|
+
|
|
82
87
|
OpenCode is the way to consult other model families. Any `provider/model` that `opencode models` lists can be
|
|
83
88
|
a consultant. Checked on 2026-10-17 with opencode 2.0.24: `opencode/deepseek-v4.1-flash-free` (DeepSeek) and
|
|
84
89
|
`opencode/nemotron-3-ultra-free#` (NVIDIA Nemotron, which has no effort variant) both answered as consultants,
|
|
@@ -198,13 +203,14 @@ server only from Claude Code and Antigravity.
|
|
|
198
203
|
| `max_rounds` | 5 (1 initial + 4 follow-ups) | 1–20 | `SEVERALLY_MAX_ROUNDS` | Rounds per consultation chain, the first one included. |
|
|
199
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. |
|
|
200
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. |
|
|
201
|
-
| `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. |
|
|
202
|
-
| `timeout_ms` |
|
|
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. |
|
|
207
|
+
| `timeout_ms` | 1800000 | 1000–7200000 | `SEVERALLY_TIMEOUT_MS` | Wall-clock budget per consultation, for every consultant without its own `timeout_ms`. |
|
|
203
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. |
|
|
204
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. |
|
|
205
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. |
|
|
206
212
|
|
|
207
|
-
A
|
|
213
|
+
A number outside its range is clamped to it.
|
|
208
214
|
|
|
209
215
|
## Environment only
|
|
210
216
|
|
package/README.ja.md
CHANGED
|
@@ -6,26 +6,36 @@
|
|
|
6
6
|
</h1>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<
|
|
9
|
+
<a href="https://github.com/coz-a/severally/actions/workflows/test.yml"><img src="https://github.com/coz-a/severally/actions/workflows/test.yml/badge.svg" alt="Test"></a>
|
|
10
10
|
</p>
|
|
11
11
|
|
|
12
12
|
<p align="center"><a href="README.md">English</a> | 日本語</p>
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
AI エージェントが、ほかのコーディングエージェントに独立した意見を求め、答えを相談相手ごとに受け取るためのプラグインです。
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
相談相手は Codex・Claude Code・Antigravity・OpenCode です。エージェントは、調査に行き詰まったときや、甲乙つけがたい選択に当たったときに、相談相手に意見を
|
|
17
17
|
求めます。返ってきた指摘は自分で確かめ、その結果をもとに作業を続けます。巻き戻しにくい変更のような
|
|
18
|
-
|
|
18
|
+
重要な判断では、承認を求める前に相談し、あなたが決めるべきことだけを訊きます。あなたから
|
|
19
19
|
「Codex に聞いて」と頼むこともできます。
|
|
20
20
|
|
|
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
|
- [インストール](#インストール)
|
|
37
|
+
- [必要なもの](#必要なもの)
|
|
38
|
+
- [コマンドライン](#コマンドライン)
|
|
29
39
|
- [更新](#更新)
|
|
30
40
|
- [アンインストール](#アンインストール)
|
|
31
41
|
- [使い方](#使い方)
|
|
@@ -33,65 +43,15 @@ severally は、独立した複数の相談相手に質問し、答えを 1 つ
|
|
|
33
43
|
- [答えが返ったあと](#答えが返ったあと)
|
|
34
44
|
- [モード](#モード)
|
|
35
45
|
- [履歴と記録](#履歴と記録)
|
|
46
|
+
- [使い方の例](#使い方の例)
|
|
47
|
+
- [おすすめの構成](#おすすめの構成)
|
|
36
48
|
- [設定](#設定)
|
|
37
49
|
- [相談相手が読めるものとできること](#相談相手が読めるものとできること)
|
|
38
50
|
- [API](#api)
|
|
39
51
|
- [貢献](#貢献)
|
|
40
52
|
- [ライセンス](#ライセンス)
|
|
41
53
|
|
|
42
|
-
##
|
|
43
|
-
|
|
44
|
-
severally を使うと、エージェントの仕事の進め方がどう変わるかを、1 つの場面で示します。エージェントが変更を
|
|
45
|
-
思いつき、あなたに承認を求める前に、相談相手の意見を聞く場面です。
|
|
46
|
-
|
|
47
|
-
例に使うのは、小さなネットショップの API です。商品ページを返す `GET /products/:id` が遅く、約 800 ms
|
|
48
|
-
かかっています。この API は、商品に在庫とレビューを結合して読み込んでいます。また、商品の価格は会員の
|
|
49
|
-
ランクで変わり、ゴールド会員には 10% の割引が付きます。
|
|
50
|
-
|
|
51
|
-
Claude Code で動くエージェントは、「レスポンスをメモリ上の Map に 5 分間保持する」というよくある修正を
|
|
52
|
-
考えました。あなたに「進めてよいですか」と尋ねる前に、この計画を 3 人の相談相手に見せます。Codex、
|
|
53
|
-
Antigravity、新しい Claude Code のセッション(エージェント自身の CLI の新しいセッションで、会話は
|
|
54
|
-
引き継がない)です。計画と一緒に、関係するコードの読み取り専用の写しも渡します。答えは相談相手ごとに、
|
|
55
|
-
横に並んで返ってきます(サンプルの API に対する実際の実行結果の抜粋を訳したもの)。
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
codex do_not_proceed 価格は会員のランクで変わるので、商品 ID だけで保持すると、最初に来た人の
|
|
59
|
-
価格が全員に返る。結合で在庫数が水増しされている。4 つのワーカーが別々に保持するので、
|
|
60
|
-
注文で在庫が変わっても古い値が消えない
|
|
61
|
-
claude-code do_not_proceed 最初にキャッシュに入った人の価格が、5 分間ほかの全員に返る。4 つのワーカーがそれぞれ
|
|
62
|
-
保持するので、注文のあとも在庫が古いまま残る。結合の不具合も先に直す
|
|
63
|
-
antigravity alternative 会員の割引がほかの利用者に漏れる。800 ms の原因は在庫とレビューの結合で、在庫数も
|
|
64
|
-
狂わせている。クエリを書き直せば、キャッシュなしで十分に速くなる見込みがある
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
どの答えも結論から始まります。結論は `proceed`(進めてよい)、`do_not_proceed`(進めない)、`alternative`
|
|
68
|
-
(代わりに別のことをする)、`undetermined`(決められない)のどれかです。3 人は、価格の漏れ、在庫の水増し、
|
|
69
|
-
ワーカーごとのキャッシュという同じ問題を、それぞれ独立に見つけました。違うのはその先です。Codex と
|
|
70
|
-
Claude Code は、クエリを直したうえで、利用者によらない部分だけをキャッシュするよう勧めています。
|
|
71
|
-
Antigravity は、クエリを直せばキャッシュ自体が要らないかもしれないと言っています。答えを 1 つにまとめると、
|
|
72
|
-
この違いは埋もれてしまいます。
|
|
73
|
-
|
|
74
|
-
相談したエージェント(以下、*主担当*)は、指摘を読んだあと、自分のリポジトリで確かめます。2 つの指摘の
|
|
75
|
-
うち、1 つはそのとおりに再現しました。もう 1 つは、今はまだ起きていないと分かり、対応が変わりました。
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
指摘 クエリが在庫とレビューを一緒に結合しているので、在庫数がレビューの数だけ掛け算される
|
|
79
|
-
確認 テスト用のデータベースでクエリを実行: 在庫 5 個、レビュー 4 件 -> 在庫数が 20 になる
|
|
80
|
-
判断 キャッシュより先に、クエリを直す
|
|
81
|
-
|
|
82
|
-
指摘 ゴールド会員の 10% 割引がゲストにも返る
|
|
83
|
-
確認 ログインの仕組みはまだ組み込まれていないので、今は全員が基本価格になる。
|
|
84
|
-
漏れはログインを足した日から始まる
|
|
85
|
-
判断 キャッシュするのは利用者によらない商品の情報だけにし、価格はリクエストごとに計算する
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
あなたに返ってくるのは「反対 2、代案 1」という票の数ではありません。何を確かめたか、主担当が何を勧めるか、
|
|
89
|
-
まだ何を確かめていないかです。この例でまだ確かめていないのは、直したクエリがキャッシュなしで十分に速いか
|
|
90
|
-
(本番に近いデータが要る)と、注文のあと在庫の表示がどれだけ古くてもよいか(あなたが決めること)です。
|
|
91
|
-
判断はあなたがします。確かめた結果は指摘の隣に残り、Markdown としてリポジトリに書き出せます
|
|
92
|
-
([履歴と記録](#履歴と記録)を参照)。
|
|
93
|
-
|
|
94
|
-
## 仕組み
|
|
54
|
+
## 背景
|
|
95
55
|
|
|
96
56
|
```mermaid
|
|
97
57
|
flowchart TB
|
|
@@ -118,13 +78,21 @@ flowchart TB
|
|
|
118
78
|
|
|
119
79
|
## インストール
|
|
120
80
|
|
|
121
|
-
|
|
122
|
-
|
|
81
|
+
### 必要なもの
|
|
82
|
+
|
|
83
|
+
- Node.js 22 以降
|
|
84
|
+
- インストールしてログインした CLI(4 つのうち少なくとも 1 つ)。1 つで足り、Claude Code だけでも、新しい
|
|
85
|
+
Claude Code のセッションに相談できます。
|
|
86
|
+
- macOS と Linux では、npm のグローバルの実行ディレクトリが `PATH` にあること。既定のインストールは、Codex が
|
|
87
|
+
起動する `severally-mcp` コマンドをそこに置きます。`--manual` なら要りません。
|
|
88
|
+
|
|
89
|
+
インストーラとサーバは Linux・macOS・Windows でテストしています。Claude Code と Codex のマーケットプレイスからの
|
|
90
|
+
導入と、実際の CLI での動作を試したのは Linux だけです。
|
|
123
91
|
|
|
124
92
|
macOS、Linux、Windows(PowerShell またはコマンドプロンプト)のどれでも、次の 1 行で入れられます。
|
|
125
93
|
|
|
126
94
|
```bash
|
|
127
|
-
npx -y severally-mcp@2.
|
|
95
|
+
npx -y severally-mcp@2.3.1 install
|
|
128
96
|
```
|
|
129
97
|
|
|
130
98
|
インストーラは、`PATH` で見つかった CLI のそれぞれに severally を登録します。末尾に `--dry-run` を付けると、何も
|
|
@@ -134,6 +102,24 @@ npx -y severally-mcp@2.0.0 install
|
|
|
134
102
|
Claude Code のプラグインマーケットプレイスから入れる方法、クローンから入れる方法、登録の確かめ方、インストーラが
|
|
135
103
|
変えるものは、[docs/install.ja.md](docs/install.ja.md) にあります。
|
|
136
104
|
|
|
105
|
+
### コマンドライン
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-global]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
| オプション | すること |
|
|
112
|
+
|---|---|
|
|
113
|
+
| `--dry-run` | 何を変えるかを表示するだけで、何も変えない |
|
|
114
|
+
| `--manual` | プラグインを入れる代わりに、MCP サーバを登録して Skill を写す(Windows の既定) |
|
|
115
|
+
| `--force` | すでに登録してあっても、そのままにせず登録し直す |
|
|
116
|
+
| `--skip-global` | プラグイン方式で npm のグローバルなインストールを飛ばす。`PATH` 上の `severally-mcp` がすでにこのインストールを指しているときだけ使える |
|
|
117
|
+
|
|
118
|
+
方式ごとに何が変わるかは [docs/install.ja.md](docs/install.ja.md#2-つのインストール方式) にあります。
|
|
119
|
+
|
|
120
|
+
`npx -y severally-mcp@latest status` を実行すると、相談を始めずに、設定ファイル・この機械から使える相談相手・
|
|
121
|
+
入っている写しの版・どのクライアントに登録されているかを表示します。
|
|
122
|
+
|
|
137
123
|
### 更新
|
|
138
124
|
|
|
139
125
|
次の 1 行で、最新版に入れ替わります。バージョン番号を調べる必要はありません。
|
|
@@ -143,7 +129,9 @@ npx -y severally-mcp@latest install
|
|
|
143
129
|
```
|
|
144
130
|
|
|
145
131
|
`@latest` を付けると、npx は毎回 npm に最新版を問い合わせます。手元に古い写しがあっても、それは使いません。
|
|
146
|
-
終わったら、クライアントを再起動してください。
|
|
132
|
+
終わったら、クライアントを再起動してください。Claude Code のプラグインマーケットプレイスから入れた場合は、
|
|
133
|
+
[docs/install.ja.md](docs/install.ja.md#更新) を見てください。版ごとの変更点は
|
|
134
|
+
[リリース](https://github.com/coz-a/severally/releases)にあります。
|
|
147
135
|
|
|
148
136
|
### アンインストール
|
|
149
137
|
|
|
@@ -171,15 +159,19 @@ npx -y severally-mcp@latest install
|
|
|
171
159
|
- 頼まなくても、エージェントは自分から相談します。調査が行き詰まったとき、甲乙つけがたい選択に当たったとき、
|
|
172
160
|
巻き戻しにくい変更の承認を求める前です。
|
|
173
161
|
|
|
162
|
+
あなたに返ってくるのは、相談相手の答えそのものではなく、主担当の報告です。確かめたことと結果、勧めること、
|
|
163
|
+
まだ確かめていないことが並びます。報告の例は[使い方の例](#使い方の例)にあります。
|
|
164
|
+
|
|
174
165
|
相談が向いているのは、重要な設計判断、巻き戻しにくい選択、同じ不具合で 2 回以上失敗したときです。相談 1 回に
|
|
175
|
-
|
|
166
|
+
数分から 10 分ほどと実際の使用量がかかるので、小さな修正には向きません。
|
|
176
167
|
|
|
177
168
|
### 答えが返ったあと
|
|
178
169
|
|
|
179
|
-
|
|
180
|
-
|
|
170
|
+
相談を始めても、エージェントは答えを待たずに、答えに左右されない作業を進められます。答えはふつう 1〜10 分で
|
|
171
|
+
そろいます(いちばん時間がかかるのは Antigravity です)。
|
|
181
172
|
|
|
182
|
-
|
|
173
|
+
どの答えにも同じ形を求めます。結論、根拠つきの指摘、決められなかったこと、判断が変わる条件、確かめ方です。
|
|
174
|
+
結論や指摘の根拠などが欠けた答えは、そのことを注意書き(caveat)で知らせます。
|
|
183
175
|
相談相手が失敗したときは、理由(`usage_limit`、`timeout` など)を付けて失敗として返します。「問題なし」として
|
|
184
176
|
返すことはありません。
|
|
185
177
|
|
|
@@ -192,10 +184,10 @@ npx -y severally-mcp@latest install
|
|
|
192
184
|
こともできます。
|
|
193
185
|
|
|
194
186
|
- `explore`:計画を見せずに聞く。相談相手は、まず自分のやり方で答える
|
|
195
|
-
- `review
|
|
187
|
+
- `review`:計画を見せて、どこがまずいかを聞く([使い方の例](#使い方の例)はこれ)
|
|
196
188
|
- `debate`:計画と反対の主張を見せて、比べてもらう
|
|
197
189
|
|
|
198
|
-
最初の答えのあと、同じ相談相手に追加の質問を送れます。既定では 4 回まで、合わせて 5
|
|
190
|
+
最初の答えのあと、同じ相談相手に追加の質問を送れます。既定では 4 回まで、合わせて 5 往復です。全員に聞いた相談に追加の質問を送ると、全員にもう一度聞けます。それぞれの相談相手とのやりとりは別々に続きます。
|
|
199
191
|
|
|
200
192
|
### 履歴と記録
|
|
201
193
|
|
|
@@ -205,14 +197,98 @@ npx -y severally-mcp@latest install
|
|
|
205
197
|
|
|
206
198
|
相談相手の呼び方、相談の進み方、記録の詳細は [docs/how-it-works.ja.md](docs/how-it-works.ja.md) にあります。
|
|
207
199
|
|
|
200
|
+
## 使い方の例
|
|
201
|
+
|
|
202
|
+
severally を使うと、エージェントの仕事の進め方がどう変わるかを、1 つの場面で示します。エージェントが変更を
|
|
203
|
+
思いつき、あなたに承認を求める前に、相談相手の意見を聞く場面です。
|
|
204
|
+
|
|
205
|
+
例に使うのは、小さなネットショップの API です。商品ページを返す `GET /products/:id` が遅く、約 800 ms
|
|
206
|
+
かかっています。この API は、商品に在庫とレビューを結合して読み込んでいます。また、商品の価格は会員の
|
|
207
|
+
ランクで変わり、ゴールド会員には 10% の割引が付きます。
|
|
208
|
+
|
|
209
|
+
Claude Code で動くエージェントは、「レスポンスをメモリ上の Map に 5 分間保持する」というよくある修正を
|
|
210
|
+
考えました。あなたに「進めてよいですか」と尋ねる前に、この計画を 3 人の相談相手に見せます。Codex、
|
|
211
|
+
Antigravity、新しい Claude Code のセッション(エージェント自身の CLI の新しいセッションで、会話は
|
|
212
|
+
引き継がない)です。計画と一緒に、関係するコードの読み取り専用の写しも渡します。答えは相談相手ごとに、
|
|
213
|
+
横に並んで返ってきます(サンプルの API に対する実際の実行結果の抜粋を訳したもの)。
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
codex do_not_proceed 価格は会員のランクで変わるので、商品 ID だけで保持すると、最初に来た人の
|
|
217
|
+
価格が全員に返る。結合で在庫数が水増しされている。4 つのワーカーが別々に保持するので、
|
|
218
|
+
注文で在庫が変わっても古い値が消えない
|
|
219
|
+
claude-code do_not_proceed 最初にキャッシュに入った人の価格が、5 分間ほかの全員に返る。4 つのワーカーがそれぞれ
|
|
220
|
+
保持するので、注文のあとも在庫が古いまま残る。結合の不具合も先に直す
|
|
221
|
+
antigravity alternative 会員の割引がほかの利用者に漏れる。800 ms の原因は在庫とレビューの結合で、在庫数も
|
|
222
|
+
狂わせている。クエリを書き直せば、キャッシュなしで十分に速くなる見込みがある
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
どの答えも結論から始まります。結論は `proceed`(進めてよい)、`do_not_proceed`(進めない)、`alternative`
|
|
226
|
+
(代わりに別のことをする)、`undetermined`(決められない)のどれかです。3 人は、価格の漏れ、在庫の水増し、
|
|
227
|
+
ワーカーごとのキャッシュという同じ問題を、それぞれ独立に見つけました。違うのはその先です。Codex と
|
|
228
|
+
Claude Code は、クエリを直したうえで、利用者によらない部分だけをキャッシュするよう勧めています。
|
|
229
|
+
Antigravity は、クエリを直せばキャッシュ自体が要らないかもしれないと言っています。答えを 1 つにまとめると、
|
|
230
|
+
この違いは埋もれてしまいます。
|
|
231
|
+
|
|
232
|
+
相談したエージェント(以下、*主担当*)は、指摘を読んだあと、自分のリポジトリで確かめます。2 つの指摘の
|
|
233
|
+
うち、1 つはそのとおりに再現しました。もう 1 つは、今はまだ起きていないと分かり、対応が変わりました。
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
指摘 クエリが在庫とレビューを一緒に結合しているので、在庫数がレビューの数だけ掛け算される
|
|
237
|
+
確認 テスト用のデータベースでクエリを実行: 在庫 5 個、レビュー 4 件 -> 在庫数が 20 になる
|
|
238
|
+
判断 キャッシュより先に、クエリを直す
|
|
239
|
+
|
|
240
|
+
指摘 ゴールド会員の 10% 割引がゲストにも返る
|
|
241
|
+
確認 ログインの仕組みはまだ組み込まれていないので、今は全員が基本価格になる。
|
|
242
|
+
漏れはログインを足した日から始まる
|
|
243
|
+
判断 キャッシュするのは利用者によらない商品の情報だけにし、価格はリクエストごとに計算する
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
あなたに返ってくるのは「反対 2、代案 1」という票の数ではありません。何を確かめたか、主担当が何を勧めるか、
|
|
247
|
+
まだ何を確かめていないかです。この例でまだ確かめていないのは、直したクエリがキャッシュなしで十分に速いか
|
|
248
|
+
(本番に近いデータが要る)と、注文のあと在庫の表示がどれだけ古くてもよいか(あなたが決めること)です。
|
|
249
|
+
判断はあなたがします。確かめた結果は指摘の隣に残り、Markdown としてリポジトリに書き出せます
|
|
250
|
+
([履歴と記録](#履歴と記録)を参照)。
|
|
251
|
+
|
|
252
|
+
## おすすめの構成
|
|
253
|
+
|
|
254
|
+
各ベンダーの最上位のモデルを相談相手に登録しておき、ふだんの作業は Claude Code の Sonnet のような安価なモデルで
|
|
255
|
+
進める、という使い方です。コードの編集、テストの実行、検索など、作業の大半は安価なモデルで足ります。
|
|
256
|
+
設計の選択や巻き戻しにくい変更など、判断を誤ったときの損が大きい場面では、主担当が最上位のモデルにそれぞれ
|
|
257
|
+
独立に相談します。最上位のモデルを使うのは相談のときだけです。そのため、使用量の大半は安価なモデルの側に
|
|
258
|
+
収まり、重要な判断には最上位のモデルの意見が入ります。
|
|
259
|
+
|
|
260
|
+
この構成の `~/.severally/config.json` の例です。
|
|
261
|
+
|
|
262
|
+
```json
|
|
263
|
+
{
|
|
264
|
+
"consultants": {
|
|
265
|
+
"opus": { "cli": "claude-code", "model": "claude-opus-5-5" },
|
|
266
|
+
"gpt": { "cli": "codex", "model": "gpt-6.1-sol" },
|
|
267
|
+
"gemini": { "cli": "antigravity", "model": "gemini-4-argon-high" }
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
モデルの ID は新しいモデルが出るたびに変わるので、使っている CLI に合わせて書き換えてください。`effort` を
|
|
273
|
+
書かなければ、相談相手は effort `high` で動きます。ただし Antigravity はモデル名で決まり(`gemini-4-argon-high`)、
|
|
274
|
+
`effort` を書くと設定の誤りになります。
|
|
275
|
+
|
|
276
|
+
そのうえで、主担当を安価なモデルで起動します(`claude --model sonnet`、動いているセッションなら
|
|
277
|
+
`/model sonnet`)。主担当は、[頼み方](#頼み方)に挙げた場面で自分から相談します。「マージする前にみんなに
|
|
278
|
+
聞いて」のように頼むこともできます。相談相手は、それぞれの CLI のログインと利用枠を使います。
|
|
279
|
+
|
|
208
280
|
## 設定
|
|
209
281
|
|
|
210
282
|
**既定のままなら設定は要りません**。サーバは起動時に `PATH` にある CLI を探し、見つかった CLI をそれぞれ、既定の
|
|
211
283
|
モデルで動く相談相手にします。CLI を止める、ほかのモデルの相談相手を足す、といったときは
|
|
212
284
|
`~/.severally/config.json` を置きます。クローンから入れた場合は、`npm run init-config` でひな形を作れます。キーは
|
|
213
|
-
すべて [CONFIG.md](CONFIG.md)(英語)にあり、[config.example.json](config.example.json)
|
|
285
|
+
すべて [CONFIG.md](CONFIG.md)(英語)にあり、[config.example.json](config.example.json) は書き換えて使う例です(パス・モデル・メモは架空のものです)。
|
|
214
286
|
設定を変えたら、クライアントを再起動してください。
|
|
215
287
|
|
|
288
|
+
API キーで呼び出すモデル(OpenRouter や、OpenAI 互換のほかの API)やローカルのモデルに相談するには、OpenCode を入れて、
|
|
289
|
+
そのモデルを相談相手に足します。書き方は
|
|
290
|
+
[CONFIG.md](CONFIG.md#api-keys-and-other-model-families-through-opencode) にあります。
|
|
291
|
+
|
|
216
292
|
## 相談相手が読めるものとできること
|
|
217
293
|
|
|
218
294
|
相談では、ブリーフをその CLI のモデルに送ります。あなたが自分でその CLI を使うときと同じです。あなたの会話の履歴は
|
|
@@ -230,13 +306,15 @@ npx -y severally-mcp@latest install
|
|
|
230
306
|
| Antigravity | できる(`view_file`) | 拒否(ツールのフック) | なし | できない | できる(`network: "off"` のときを除く) |
|
|
231
307
|
| OpenCode | できる(`read` / `glob` / `grep`) | 拒否(権限の規則) | なし(Code Mode の `execute` は拒否) | できない | できる(`network: "off"` のときを除く) |
|
|
232
308
|
|
|
233
|
-
|
|
309
|
+
どの相談相手も、渡したファイルの写しだけが入った専用の作業ディレクトリで始まり、サーバはあなたのリポジトリの
|
|
310
|
+
場所を伝えません。それでも、あなたの
|
|
234
311
|
ユーザーアカウントで読めるファイルは、表で「拒否」とした秘密のパスを除いて読めます。Codex はファイルの名前では
|
|
235
312
|
拒否しないので、あなたのリポジトリにある `.env` は Codex から読めます。
|
|
236
313
|
|
|
237
314
|
**ディスクを読めて Web も閲覧できる相談相手は、読んだ内容を URL に載せて外に持ち出せます**。開いたページに、
|
|
238
315
|
そうするよう書かれていた場合などです。それを防ぎたいときは、エージェントが `network: "off"` を渡します。その回の
|
|
239
|
-
どの相談相手も、Web
|
|
316
|
+
どの相談相手も、Web の検索と閲覧ができなくなります。すべての相談でそうするには、
|
|
317
|
+
[設定ファイル](CONFIG.md#server-wide-keys)に `"server": { "network": "off" }` と書きます。依頼の側からは戻せません。それでも、ブリーフと相談相手が読んだ内容は、その CLI の
|
|
240
318
|
モデルに送られます。
|
|
241
319
|
|
|
242
320
|
CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-it-works.ja.md#相談相手を読み取りだけにとどめる仕組み) にあります。
|
|
@@ -250,22 +328,24 @@ CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-i
|
|
|
250
328
|
|---|---|
|
|
251
329
|
| `consult_start` | 1 人(`target`)または複数(`targets`)の相談相手に相談を始め、`job_id` か `group_id` をすぐに返す |
|
|
252
330
|
| `consult_get` | 相談を待ち、状態か答えを返す。`ids` を付けると、答えのうちその指摘だけを返す |
|
|
253
|
-
| `consult_cancel` |
|
|
331
|
+
| `consult_cancel` | 相談、または全員に聞いた相談をまとめて止め、相談相手のプロセスも止める。別のセッションが始めた相談も止められる |
|
|
254
332
|
| `consult_record` | 答えの指摘ごとの主担当の判定と、答えから新しく分かったことを書く |
|
|
255
|
-
| `consult_list` |
|
|
333
|
+
| `consult_list` | 前のセッションのものも含めて最近の相談を並べる。使用量は、このセッションで各相談相手が報告した分 |
|
|
256
334
|
| `consult_export` | 相談を、追加の質問と判定を含めて Markdown で返す |
|
|
257
335
|
|
|
258
336
|
`consult_start` の主な引数は次のとおりです。
|
|
259
337
|
|
|
260
|
-
- `context.expose_paths`:
|
|
338
|
+
- `context.expose_paths`: 相談相手に読み取り専用で写すファイルとディレクトリ(絶対パス)。git のリポジトリの中の
|
|
339
|
+
ディレクトリは、git が一覧するファイル(追跡中のものと、`.gitignore` で外していない未追跡のもの)だけを写す
|
|
261
340
|
- `context.expose_diff`: `{ repo, base? }`。変更中の差分をブリーフに入れ、差分が触るファイルを写す
|
|
262
341
|
- `network`: `"off"` にすると、その回のどの相談相手も Web の検索と閲覧ができない
|
|
263
|
-
- `followup_to`: 追加の質問のもとになる答えの `job_id`
|
|
342
|
+
- `followup_to`: 追加の質問のもとになる答えの `job_id`。全員に聞いた相談の `group_id` を渡すと、全員にもう一度聞く。
|
|
343
|
+
追加の質問はこれと `question` だけでよく、相談相手・モード・前の回の前提は、渡し直さなければそのまま引き継ぐ
|
|
264
344
|
|
|
265
345
|
## 貢献
|
|
266
346
|
|
|
267
347
|
質問と不具合の報告は [Issues](https://github.com/coz-a/severally/issues) へどうぞ。プルリクエストも歓迎します。
|
|
268
|
-
大きな変更は、先に Issue
|
|
348
|
+
大きな変更は、先に Issue で相談してください。参加する方は、[行動規範](CODE_OF_CONDUCT.md)に従ってください。
|
|
269
349
|
|
|
270
350
|
- `npm install` のあと `npm test` を実行します。テストは本物の代わりに用意した CLI を相手にオフラインで動き、
|
|
271
351
|
実際の API は呼びません。
|