alphacouncil-agent 0.5.3 → 0.5.5
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/.claude/commands/alpha.md +18 -10
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.grok/commands/alpha.md +18 -10
- package/.opencode/command/alpha.md +18 -10
- package/AGENTS.md +6 -6
- package/CHANGELOG.md +32 -0
- package/CONTRIBUTING.md +65 -0
- package/README.ja.md +10 -6
- package/README.md +10 -6
- package/README.zh-CN.md +10 -6
- package/SECURITY.md +28 -0
- package/commands/alpha.md +18 -10
- package/docs/INSTALL.md +295 -0
- package/docs/personas.md +5 -5
- package/mcp/lib/rpc.mjs +27 -6
- package/package.json +5 -2
- package/personas/masters/masters-adversarial/druckenmiller.md +2 -1
- package/personas/masters/masters-modern/aschenbrenner.md +2 -1
- package/personas/masters/masters-quant/asness.md +2 -1
- package/personas/masters/masters-value-classic/fisher.md +2 -1
- package/personas/masters/masters-value-classic/klarman.md +2 -1
- package/skills/alphacouncil-agent/SKILL.md +23 -19
|
@@ -22,24 +22,32 @@ Request: **$ARGUMENTS**
|
|
|
22
22
|
When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
/alpha
|
|
26
|
-
/alpha
|
|
27
|
-
/alpha
|
|
28
|
-
/alpha
|
|
29
|
-
/alpha
|
|
30
|
-
/alpha market
|
|
25
|
+
/alpha <TICKER> full council — asks which preset first
|
|
26
|
+
/alpha <TICKER> quick 4 analysts + debate, no bench, no verification
|
|
27
|
+
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
|
+
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
|
+
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
30
|
+
/alpha market <theme> what the market is talking about (no model spend)
|
|
31
|
+
|
|
32
|
+
examples
|
|
33
|
+
/alpha AAPL /alpha 0700.HK quick /alpha 7203.T news
|
|
34
|
+
/alpha NVDA screen /alpha market rates /alpha "is TSM cheap?"
|
|
31
35
|
```
|
|
32
36
|
|
|
37
|
+
Any listed equity. Filings-based modes need a US filer; for other markets say which market it
|
|
38
|
+
is and use `market_coverage`, rather than returning nothing.
|
|
39
|
+
|
|
33
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
34
41
|
they cost nothing beyond this turn. The council modes spawn one subagent per seat, and that
|
|
35
42
|
is where the spend is.
|
|
36
43
|
|
|
37
44
|
## Full council
|
|
38
45
|
|
|
39
|
-
1. **Ask which
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
1. **Ask which masters, once, then run.** Call `list_council_options` and ask only about the
|
|
47
|
+
master bench — the six schools by name with their members, plus "all" and "none". Analysts
|
|
48
|
+
default to the eight-seat fan-out; do not ask about them. After the answer, start
|
|
49
|
+
immediately: no preset question, no confirmation. **Skip the question entirely** when the
|
|
50
|
+
request already said (a named school, "everything", "no masters", "be quick").
|
|
43
51
|
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
44
52
|
workflow: a report that looks finished and skipped the bench is worse than an obviously
|
|
45
53
|
partial one.
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "AlphaCouncil plugins for public-equity research.",
|
|
9
|
-
"version": "0.5.
|
|
9
|
+
"version": "0.5.5"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "alphacouncil-agent",
|
|
14
14
|
"source": "./",
|
|
15
15
|
"description": "Multi-agent equity research: evidence packets, bull/bear debate, portfolio-manager decision.",
|
|
16
|
-
"version": "0.5.
|
|
16
|
+
"version": "0.5.5",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "Zhao73"
|
|
19
19
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alphacouncil-agent",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Multi-agent public-equity research workflow for Claude Code: spawns analyst workers, gathers sourced JSON evidence packets, runs bull/bear debate, and produces a portfolio-manager Buy/Overweight/Hold/Underweight/Sell decision with a full report.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Zhao73"
|
package/.grok/commands/alpha.md
CHANGED
|
@@ -22,24 +22,32 @@ Request: **$ARGUMENTS**
|
|
|
22
22
|
When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
/alpha
|
|
26
|
-
/alpha
|
|
27
|
-
/alpha
|
|
28
|
-
/alpha
|
|
29
|
-
/alpha
|
|
30
|
-
/alpha market
|
|
25
|
+
/alpha <TICKER> full council — asks which preset first
|
|
26
|
+
/alpha <TICKER> quick 4 analysts + debate, no bench, no verification
|
|
27
|
+
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
|
+
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
|
+
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
30
|
+
/alpha market <theme> what the market is talking about (no model spend)
|
|
31
|
+
|
|
32
|
+
examples
|
|
33
|
+
/alpha AAPL /alpha 0700.HK quick /alpha 7203.T news
|
|
34
|
+
/alpha NVDA screen /alpha market rates /alpha "is TSM cheap?"
|
|
31
35
|
```
|
|
32
36
|
|
|
37
|
+
Any listed equity. Filings-based modes need a US filer; for other markets say which market it
|
|
38
|
+
is and use `market_coverage`, rather than returning nothing.
|
|
39
|
+
|
|
33
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
34
41
|
they cost nothing beyond this turn. The council modes spawn one subagent per seat, and that
|
|
35
42
|
is where the spend is.
|
|
36
43
|
|
|
37
44
|
## Full council
|
|
38
45
|
|
|
39
|
-
1. **Ask which
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
1. **Ask which masters, once, then run.** Call `list_council_options` and ask only about the
|
|
47
|
+
master bench — the six schools by name with their members, plus "all" and "none". Analysts
|
|
48
|
+
default to the eight-seat fan-out; do not ask about them. After the answer, start
|
|
49
|
+
immediately: no preset question, no confirmation. **Skip the question entirely** when the
|
|
50
|
+
request already said (a named school, "everything", "no masters", "be quick").
|
|
43
51
|
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
44
52
|
workflow: a report that looks finished and skipped the bench is worse than an obviously
|
|
45
53
|
partial one.
|
|
@@ -22,24 +22,32 @@ Request: **$ARGUMENTS**
|
|
|
22
22
|
When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
/alpha
|
|
26
|
-
/alpha
|
|
27
|
-
/alpha
|
|
28
|
-
/alpha
|
|
29
|
-
/alpha
|
|
30
|
-
/alpha market
|
|
25
|
+
/alpha <TICKER> full council — asks which preset first
|
|
26
|
+
/alpha <TICKER> quick 4 analysts + debate, no bench, no verification
|
|
27
|
+
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
|
+
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
|
+
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
30
|
+
/alpha market <theme> what the market is talking about (no model spend)
|
|
31
|
+
|
|
32
|
+
examples
|
|
33
|
+
/alpha AAPL /alpha 0700.HK quick /alpha 7203.T news
|
|
34
|
+
/alpha NVDA screen /alpha market rates /alpha "is TSM cheap?"
|
|
31
35
|
```
|
|
32
36
|
|
|
37
|
+
Any listed equity. Filings-based modes need a US filer; for other markets say which market it
|
|
38
|
+
is and use `market_coverage`, rather than returning nothing.
|
|
39
|
+
|
|
33
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
34
41
|
they cost nothing beyond this turn. The council modes spawn one subagent per seat, and that
|
|
35
42
|
is where the spend is.
|
|
36
43
|
|
|
37
44
|
## Full council
|
|
38
45
|
|
|
39
|
-
1. **Ask which
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
1. **Ask which masters, once, then run.** Call `list_council_options` and ask only about the
|
|
47
|
+
master bench — the six schools by name with their members, plus "all" and "none". Analysts
|
|
48
|
+
default to the eight-seat fan-out; do not ask about them. After the answer, start
|
|
49
|
+
immediately: no preset question, no confirmation. **Skip the question entirely** when the
|
|
50
|
+
request already said (a named school, "everything", "no masters", "be quick").
|
|
43
51
|
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
44
52
|
workflow: a report that looks finished and skipped the bench is worse than an obviously
|
|
45
53
|
partial one.
|
package/AGENTS.md
CHANGED
|
@@ -76,12 +76,12 @@ rather than four in a menu of a hundred.
|
|
|
76
76
|
|
|
77
77
|
| Invocation | What runs | Model spend |
|
|
78
78
|
|---|---|---|
|
|
79
|
-
| `/alpha
|
|
80
|
-
| `/alpha
|
|
81
|
-
| `/alpha
|
|
82
|
-
| `/alpha
|
|
83
|
-
| `/alpha
|
|
84
|
-
| `/alpha market
|
|
79
|
+
| `/alpha <ticker>` | Full council — asks which preset first | one subagent per seat |
|
|
80
|
+
| `/alpha <ticker> quick` | 4 analysts + debate, no bench, no verification | 7 seats |
|
|
81
|
+
| `/alpha <ticker> screen` | Mechanical filings screen only | **none** |
|
|
82
|
+
| `/alpha <ticker> options` | IV term structure, skew, positioning | **none** |
|
|
83
|
+
| `/alpha <ticker> news` | Dated filings and headlines | **none** |
|
|
84
|
+
| `/alpha market <theme>` | What the market is talking about | **none** |
|
|
85
85
|
| `/alpha` | Lists the modes and stops | **none** |
|
|
86
86
|
|
|
87
87
|
The four marked **none** call keyless data tools and spawn no subagents, so they cost
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes per release. Dates are UTC.
|
|
4
4
|
|
|
5
|
+
## [0.5.5] — 2026-07-26
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- **Five masters never ran.** Aschenbrenner, Druckenmiller, Fisher, Asness and Klarman were
|
|
10
|
+
not in the `masters-core` roster, which is what the standard preset selects, while the
|
|
11
|
+
seat estimate counted every master. The menu offered 21 lenses and the run delivered 16,
|
|
12
|
+
with nothing failing and nothing warning. A test now asserts the roster equals the full
|
|
13
|
+
set rather than merely being large.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Stage 0 asks one question, about the master bench, then runs.** It previously asked which
|
|
18
|
+
preset, then which analysts, then confirmed — an interview before any work. The analysts
|
|
19
|
+
have an obvious default; the bench is the part a user has a view on and where cost varies.
|
|
20
|
+
- `list_council_options` prints the **named** roster: every analyst with what it covers, and
|
|
21
|
+
the six master schools with their members. Presets remain as shortcuts. Naming the seats is
|
|
22
|
+
what made the missing five visible.
|
|
23
|
+
- Command help uses `<TICKER>` with examples across US, Hong Kong and Tokyo listings. One
|
|
24
|
+
real ticker repeated down the column read as if the tool were about that company.
|
|
25
|
+
|
|
26
|
+
## [0.5.4] — 2026-07-26
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- `docs/INSTALL.md`, `SECURITY.md` and `CONTRIBUTING.md` were never in the package. The
|
|
31
|
+
install guide is the page an npm user reads specifically to learn how to invoke the thing,
|
|
32
|
+
and it was absent from every published version.
|
|
33
|
+
- A contract test now asserts the property rather than the entries: every tracked
|
|
34
|
+
consumer-facing file must be in the package. The gaps had been surfacing one release at a
|
|
35
|
+
time — the host agent directories in 0.5.1, the install guide in 0.5.3.
|
|
36
|
+
|
|
5
37
|
## [0.5.3] — 2026-07-26
|
|
6
38
|
|
|
7
39
|
### Fixed
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Contributing to AlphaCouncil Agent
|
|
2
|
+
|
|
3
|
+
Thanks for your interest in improving AlphaCouncil Agent!
|
|
4
|
+
|
|
5
|
+
## Development setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone https://github.com/Zhao73/alphacouncil-agent.git
|
|
9
|
+
cd alphacouncil-agent
|
|
10
|
+
node --version # must be >= 18
|
|
11
|
+
npm run check # runs node --check + the self-check (no Codex auth needed)
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
There are **no runtime dependencies** — the MCP server is plain Node.js standard
|
|
15
|
+
library. Please keep it that way unless there is no simple standard-library path.
|
|
16
|
+
|
|
17
|
+
## Before opening a pull request
|
|
18
|
+
|
|
19
|
+
- Run `npm run check` and make sure it passes.
|
|
20
|
+
- Preserve the JSON packet contracts in `mcp/server.mjs` (evidence packets and
|
|
21
|
+
debate packets). If you change a contract, update `scripts/selfcheck.mjs` and
|
|
22
|
+
the README/skill docs to match.
|
|
23
|
+
- Keep source IDs globally scoped as `<task>:<local_source_id>`.
|
|
24
|
+
- Keep the implementation small and readable.
|
|
25
|
+
|
|
26
|
+
## Scope and boundaries
|
|
27
|
+
|
|
28
|
+
- This is an **independent** plugin. Do not copy source code from other
|
|
29
|
+
multi-agent investment projects into this repo.
|
|
30
|
+
- "Public Equity Investing" and "Investment Banking" are agent instructions /
|
|
31
|
+
skills, not importable libraries.
|
|
32
|
+
- Never commit API keys, brokerage credentials, private filings, or generated
|
|
33
|
+
run artifacts (everything under `~/.alphacouncil-agent/` and `runs/` is
|
|
34
|
+
ignored by `.gitignore`).
|
|
35
|
+
|
|
36
|
+
## Reporting bugs / requesting features
|
|
37
|
+
|
|
38
|
+
Use the issue templates. Please include your OS, Node version, and whether you
|
|
39
|
+
were using the Codex headless path or the visible workflow.
|
|
40
|
+
|
|
41
|
+
## License
|
|
42
|
+
|
|
43
|
+
By contributing, you agree that your contributions are licensed under the
|
|
44
|
+
[MIT License](LICENSE).
|
|
45
|
+
|
|
46
|
+
## Commit messages
|
|
47
|
+
|
|
48
|
+
Write them from a file or a quoted heredoc, never inline in a shell string:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
git commit -F /tmp/msg.txt
|
|
52
|
+
# or
|
|
53
|
+
git commit -F - <<'MSG'
|
|
54
|
+
...
|
|
55
|
+
MSG
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Backticks in a commit message are command substitution to the shell, which silently deletes
|
|
59
|
+
the text between them before git ever sees it. It happened once here, to a sentence naming
|
|
60
|
+
a CLI subcommand; the words were simply gone from the published history. Quoting the
|
|
61
|
+
heredoc delimiter (`<<'MSG'`, not `<<MSG`) disables expansion.
|
|
62
|
+
|
|
63
|
+
If a message does go out wrong, prefer `git notes add` over `git commit --amend` once the
|
|
64
|
+
commit is an ancestor of a published tag. Rewriting it leaves the release pointing at an
|
|
65
|
+
object that no longer exists, which is a worse outcome than an imperfect message.
|
package/README.ja.md
CHANGED
|
@@ -113,16 +113,20 @@ codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
|
113
113
|
|
|
114
114
|
| 入力 | 実行内容 | モデル消費 |
|
|
115
115
|
|---|---|---|
|
|
116
|
-
| `/alpha
|
|
117
|
-
| `/alpha
|
|
118
|
-
| `/alpha
|
|
119
|
-
| `/alpha
|
|
120
|
-
| `/alpha
|
|
121
|
-
| `/alpha market
|
|
116
|
+
| `/alpha <ticker>` | フル委員会 —— 先にどのプリセットか確認します | 席ごとに 1 サブエージェント |
|
|
117
|
+
| `/alpha <ticker> quick` | アナリスト 4 名+討論。マスター陣なし、検証なし | 7 席 |
|
|
118
|
+
| `/alpha <ticker> screen` | 機械的スクリーニングのみ | **なし** |
|
|
119
|
+
| `/alpha <ticker> options` | IV ターム構造、スキュー、建玉分布 | **なし** |
|
|
120
|
+
| `/alpha <ticker> news` | 日付付きの提出書類とニュース | **なし** |
|
|
121
|
+
| `/alpha market <theme>` | 市場が語っている物語 | **なし** |
|
|
122
122
|
| `/alpha` | モード一覧を出して停止 | **なし** |
|
|
123
123
|
|
|
124
124
|
**なし** と記した 4 つはキー不要のデータツールを呼ぶだけで、サブエージェントを一切起動しません。入力したそのターン以外に消費はありません。委員会モードは席ごとにサブエージェントを起動し、それがこのプラグインのコストのすべてです。
|
|
125
125
|
|
|
126
|
+
上場銘柄なら何でも:`/alpha AAPL` · `/alpha 0700.HK quick` · `/alpha 7203.T news` · `/alpha market rates`。
|
|
127
|
+
提出書類ベースのモードは米国登録企業が必要です。他市場は黙って空を返すのではなく `market_coverage` で対応状況を示します。
|
|
128
|
+
|
|
129
|
+
|
|
126
130
|
Claude Code、OpenCode、Grok Build ではインストール後すぐ使えます。Codex の prompts はユーザースコープなので一度コピーしてください:
|
|
127
131
|
`mkdir -p ~/.codex/prompts && cp commands/alpha.md ~/.codex/prompts/`
|
|
128
132
|
|
package/README.md
CHANGED
|
@@ -130,18 +130,22 @@ rather than four in a menu of a hundred.
|
|
|
130
130
|
|
|
131
131
|
| Invocation | What runs | Model spend |
|
|
132
132
|
|---|---|---|
|
|
133
|
-
| `/alpha
|
|
134
|
-
| `/alpha
|
|
135
|
-
| `/alpha
|
|
136
|
-
| `/alpha
|
|
137
|
-
| `/alpha
|
|
138
|
-
| `/alpha market
|
|
133
|
+
| `/alpha <ticker>` | Full council — asks which preset first | one subagent per seat |
|
|
134
|
+
| `/alpha <ticker> quick` | 4 analysts + debate, no bench, no verification | 7 seats |
|
|
135
|
+
| `/alpha <ticker> screen` | Mechanical filings screen only | **none** |
|
|
136
|
+
| `/alpha <ticker> options` | IV term structure, skew, positioning | **none** |
|
|
137
|
+
| `/alpha <ticker> news` | Dated filings and headlines | **none** |
|
|
138
|
+
| `/alpha market <theme>` | What the market is talking about | **none** |
|
|
139
139
|
| `/alpha` | Lists the modes and stops | **none** |
|
|
140
140
|
|
|
141
141
|
The four marked **none** call keyless data tools and spawn no subagents, so they cost
|
|
142
142
|
nothing beyond the turn you type them in. The council modes spawn one subagent per seat, and
|
|
143
143
|
that is the entire cost of running this.
|
|
144
144
|
|
|
145
|
+
Any listed equity: `/alpha AAPL` · `/alpha 0700.HK quick` · `/alpha 7203.T news` · `/alpha market rates`.
|
|
146
|
+
Filings-based modes need a US filer; other markets are reported through `market_coverage` rather than silently returning nothing.
|
|
147
|
+
|
|
148
|
+
|
|
145
149
|
Available in Claude Code, OpenCode and Grok Build as soon as the plugin is installed. Codex keeps
|
|
146
150
|
its prompts user-scoped, so copy it once: `mkdir -p ~/.codex/prompts && cp commands/alpha.md ~/.codex/prompts/`
|
|
147
151
|
|
package/README.zh-CN.md
CHANGED
|
@@ -113,16 +113,20 @@ codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
|
113
113
|
|
|
114
114
|
| 输入 | 跑什么 | 额度消耗 |
|
|
115
115
|
|---|---|---|
|
|
116
|
-
| `/alpha
|
|
117
|
-
| `/alpha
|
|
118
|
-
| `/alpha
|
|
119
|
-
| `/alpha
|
|
120
|
-
| `/alpha
|
|
121
|
-
| `/alpha market
|
|
116
|
+
| `/alpha <ticker>` | 完整议会 —— 先问你跑哪个预设 | 每席一个子代理 |
|
|
117
|
+
| `/alpha <ticker> quick` | 4 分析师 + 辩论,无大师、无验证 | 7 席 |
|
|
118
|
+
| `/alpha <ticker> screen` | 只跑机械筛选 | **零** |
|
|
119
|
+
| `/alpha <ticker> options` | 隐含波动率期限结构、偏斜、持仓分布 | **零** |
|
|
120
|
+
| `/alpha <ticker> news` | 带日期的申报与新闻 | **零** |
|
|
121
|
+
| `/alpha market <theme>` | 市场在讲什么故事 | **零** |
|
|
122
122
|
| `/alpha` | 列出模式后停下 | **零** |
|
|
123
123
|
|
|
124
124
|
标「零」的四个只调免 key 数据工具、**不启动任何子代理**,除了你敲的这一轮之外不消耗额度。议会模式每个席位起一个子代理,那是这个插件的全部成本所在。
|
|
125
125
|
|
|
126
|
+
任何上市股票:`/alpha AAPL` · `/alpha 0700.HK quick` · `/alpha 7203.T news` · `/alpha market rates`。
|
|
127
|
+
基于申报的模式需要美国申报主体;其他市场会通过 `market_coverage` 说明覆盖情况,而不是静默返回空结果。
|
|
128
|
+
|
|
129
|
+
|
|
126
130
|
Claude Code、OpenCode、Grok Build 装完即可用。Codex 的 prompts 是用户级的,拷贝一次:
|
|
127
131
|
`mkdir -p ~/.codex/prompts && cp commands/alpha.md ~/.codex/prompts/`
|
|
128
132
|
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Reporting a vulnerability
|
|
4
|
+
|
|
5
|
+
Please **do not** open a public issue for security problems. Instead, report
|
|
6
|
+
privately via GitHub's **"Report a vulnerability"** button under the repository's
|
|
7
|
+
**Security** tab (Security advisories), or contact the maintainer directly.
|
|
8
|
+
|
|
9
|
+
We aim to acknowledge reports within a few days.
|
|
10
|
+
|
|
11
|
+
## Scope and notes
|
|
12
|
+
|
|
13
|
+
AlphaCouncil Agent runs an autonomous research workflow. Be aware that:
|
|
14
|
+
|
|
15
|
+
- The headless path spawns `codex exec` worker processes that perform **live web
|
|
16
|
+
search**. Treat fetched content as untrusted; the agents are instructed not to
|
|
17
|
+
act on embedded instructions, but you should review outputs before relying on
|
|
18
|
+
them.
|
|
19
|
+
- Run artifacts under `~/.alphacouncil-agent/runs/<run_id>/` may contain text
|
|
20
|
+
captured from third-party pages. These are **not** committed (ignored by
|
|
21
|
+
`.gitignore`) — mind what you share.
|
|
22
|
+
- Never commit API keys, tokens, brokerage credentials, or private filings.
|
|
23
|
+
- This software is for educational/research use only and is **not investment
|
|
24
|
+
advice** (see the README disclaimer).
|
|
25
|
+
|
|
26
|
+
## Supported versions
|
|
27
|
+
|
|
28
|
+
This project is pre-1.0. Only the latest `main` is supported.
|
package/commands/alpha.md
CHANGED
|
@@ -22,24 +22,32 @@ Request: **$ARGUMENTS**
|
|
|
22
22
|
When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
23
23
|
|
|
24
24
|
```
|
|
25
|
-
/alpha
|
|
26
|
-
/alpha
|
|
27
|
-
/alpha
|
|
28
|
-
/alpha
|
|
29
|
-
/alpha
|
|
30
|
-
/alpha market
|
|
25
|
+
/alpha <TICKER> full council — asks which preset first
|
|
26
|
+
/alpha <TICKER> quick 4 analysts + debate, no bench, no verification
|
|
27
|
+
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
|
+
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
|
+
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
30
|
+
/alpha market <theme> what the market is talking about (no model spend)
|
|
31
|
+
|
|
32
|
+
examples
|
|
33
|
+
/alpha AAPL /alpha 0700.HK quick /alpha 7203.T news
|
|
34
|
+
/alpha NVDA screen /alpha market rates /alpha "is TSM cheap?"
|
|
31
35
|
```
|
|
32
36
|
|
|
37
|
+
Any listed equity. Filings-based modes need a US filer; for other markets say which market it
|
|
38
|
+
is and use `market_coverage`, rather than returning nothing.
|
|
39
|
+
|
|
33
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
34
41
|
they cost nothing beyond this turn. The council modes spawn one subagent per seat, and that
|
|
35
42
|
is where the spend is.
|
|
36
43
|
|
|
37
44
|
## Full council
|
|
38
45
|
|
|
39
|
-
1. **Ask which
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
46
|
+
1. **Ask which masters, once, then run.** Call `list_council_options` and ask only about the
|
|
47
|
+
master bench — the six schools by name with their members, plus "all" and "none". Analysts
|
|
48
|
+
default to the eight-seat fan-out; do not ask about them. After the answer, start
|
|
49
|
+
immediately: no preset question, no confirmation. **Skip the question entirely** when the
|
|
50
|
+
request already said (a named school, "everything", "no masters", "be quick").
|
|
43
51
|
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
44
52
|
workflow: a report that looks finished and skipped the bench is worse than an obviously
|
|
45
53
|
partial one.
|
package/docs/INSTALL.md
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# Install AlphaCouncil Agent
|
|
2
|
+
|
|
3
|
+
AlphaCouncil Agent runs in **OpenAI Codex** and **Claude Code**. It also loads as a
|
|
4
|
+
plain MCP server in the Claude desktop app.
|
|
5
|
+
|
|
6
|
+
> ⚠️ **Disclaimer.** Educational/research use only. **Not investment advice.**
|
|
7
|
+
> AI analysis can be incomplete, outdated, or wrong. Do your own research and
|
|
8
|
+
> consult a licensed professional before any investment decision.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
## npm
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g alphacouncil-agent
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Then point any MCP host at the `alphacouncil-agent` binary. For Claude Code:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{ "mcpServers": { "alphacouncil-agent": { "command": "alphacouncil-agent" } } }
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For OpenCode, `command` takes an argv array:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{ "mcp": { "alphacouncil-agent": { "type": "local", "command": ["alphacouncil-agent"] } } }
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Or run it without installing: `npx alphacouncil-agent`.
|
|
32
|
+
|
|
33
|
+
## Configuration: none required
|
|
34
|
+
|
|
35
|
+
There is nothing to configure. Every core data source is keyless — SEC EDGAR for US
|
|
36
|
+
filings, TWSE for Taiwan, Yahoo and Stooq for quotes and macro — and the package has no
|
|
37
|
+
dependencies, so the install is the download and nothing else.
|
|
38
|
+
|
|
39
|
+
Two optional free keys widen coverage. Without them the tools still answer; they report
|
|
40
|
+
which market is missing a feed and which variable would unlock it, and analysts are told
|
|
41
|
+
that figures for those names must come from a primary document and be cited as such.
|
|
42
|
+
|
|
43
|
+
| Variable | Unlocks | Register |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| `ALPHACOUNCIL_DART_KEY` | Korean filings (Samsung, SK hynix) | <https://opendart.fss.or.kr> |
|
|
46
|
+
| `ALPHACOUNCIL_EDINET_KEY` | Japanese filings (Kioxia, Tokyo Electron) | EDINET portal |
|
|
47
|
+
| `ALPHACOUNCIL_SEC_USER_AGENT` | Your own SEC contact, advisable at volume | n/a |
|
|
48
|
+
|
|
49
|
+
Run `node scripts/doctor.mjs` at any time to see which copy is running, whether the
|
|
50
|
+
persona set loads, and what the data directory holds.
|
|
51
|
+
|
|
52
|
+
## How to invoke it once installed
|
|
53
|
+
|
|
54
|
+
One command, `/alpha`. Modes are arguments.
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
/alpha <ticker> full council — asks which preset first
|
|
58
|
+
/alpha <ticker> quick 4 analysts + debate, no bench, no verification
|
|
59
|
+
/alpha <ticker> screen mechanical filings screen only (no model spend)
|
|
60
|
+
/alpha <ticker> options IV term structure, skew, positioning (no model spend)
|
|
61
|
+
/alpha <ticker> news dated filings and headlines (no model spend)
|
|
62
|
+
/alpha market <theme> what the market is talking about (no model spend)
|
|
63
|
+
/alpha lists the modes and stops (no model spend)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The four marked *no model spend* call keyless data tools and spawn no subagents. **Start
|
|
67
|
+
there** — they show real data at no cost, so you can see the shape of the thing before
|
|
68
|
+
committing a fan-out. The council modes spawn one subagent per seat: 7 for `quick`, 32 for
|
|
69
|
+
the standard preset, 44 for deep.
|
|
70
|
+
|
|
71
|
+
Codex keeps prompts user-scoped rather than in the plugin, so copy it once:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
mkdir -p ~/.codex/prompts && cp commands/alpha.md ~/.codex/prompts/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`@alphacouncil-agent <question>` still works everywhere and does the same thing.
|
|
78
|
+
|
|
79
|
+
## Prerequisites
|
|
80
|
+
|
|
81
|
+
- **Node.js ≥ 18** (the MCP server is ESM and uses modern Node APIs).
|
|
82
|
+
- For the **headless research path** (`analyze_symbol` / `collect_evidence`):
|
|
83
|
+
an installed and authenticated **Codex CLI**, because each analyst worker is
|
|
84
|
+
launched as `codex exec`. Without it, headless workers fail; use the
|
|
85
|
+
**visible workflow** instead (the host agent does the research and records
|
|
86
|
+
packets — no `codex` binary required).
|
|
87
|
+
|
|
88
|
+
Verify:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
node --version # >= 18
|
|
92
|
+
codex --version # only needed for the headless path
|
|
93
|
+
npm run check # runs the self-check (no Codex auth required)
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Install in Codex
|
|
99
|
+
|
|
100
|
+
This repo already ships the manifests Codex expects, at the official paths:
|
|
101
|
+
`.agents/plugins/marketplace.json` (repo marketplace), `.codex-plugin/plugin.json`
|
|
102
|
+
(plugin manifest), and `.mcp.json` (MCP server) — so the one-command install below
|
|
103
|
+
works out of the box. (`.claude-plugin/marketplace.json` is kept for legacy compat.)
|
|
104
|
+
|
|
105
|
+
### A. One command — recommended ✅
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Then **fully quit and restart the Codex desktop app** (plugins load at session
|
|
112
|
+
start — see [Troubleshooting](#troubleshooting-the-plugin-doesnt-show-up--alphacouncil-agent-isnt-found)),
|
|
113
|
+
open a new session, and:
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
/plugins # switch to the "AlphaCouncil" marketplace → Install alphacouncil-agent
|
|
117
|
+
/reload-plugins
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### B. Local clone — advanced / offline only
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
git clone https://github.com/Zhao73/alphacouncil-agent.git \
|
|
124
|
+
~/.codex/plugins/alphacouncil-agent
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Then add an entry to `~/.agents/plugins/marketplace.json` whose `source.path` is the
|
|
128
|
+
**absolute** path to that clone (copy the shape from `.agents/plugins/marketplace.json`
|
|
129
|
+
in this repo; on Windows use `C:\\Users\\you\\.codex\\plugins\\alphacouncil-agent`, not
|
|
130
|
+
`./`), restart Codex, and install from `/plugins`. **Prefer A** unless you're doing
|
|
131
|
+
offline/local development — it avoids hand-editing paths.
|
|
132
|
+
|
|
133
|
+
**Use it:**
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
@alphacouncil-agent analyze AAPL as a long/short pitch
|
|
137
|
+
@alphacouncil-agent 帮我看看 NOK
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Install in Claude Code
|
|
143
|
+
|
|
144
|
+
This repo ships a Claude Code plugin manifest (`.claude-plugin/plugin.json`) and
|
|
145
|
+
acts as its own marketplace (`.claude-plugin/marketplace.json`).
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
/plugin marketplace add Zhao73/alphacouncil-agent
|
|
149
|
+
/plugin install alphacouncil-agent@alphacouncil
|
|
150
|
+
/reload-plugins
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Or wire just the MCP server, without the plugin system:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
claude mcp add alphacouncil-agent -- node /absolute/path/to/alphacouncil-agent/mcp/server.mjs
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
**Two ways to actually run the research in Claude Code:**
|
|
160
|
+
|
|
161
|
+
1. **With Codex CLI installed & authenticated** — the headless `analyze_symbol`
|
|
162
|
+
path works as-is (it shells out to `codex exec`).
|
|
163
|
+
2. **Without Codex** — use the visible path: let Claude Code's own subagents act
|
|
164
|
+
as the analysts, then record their JSON with `record_visible_packet` /
|
|
165
|
+
`record_visible_decision`. The MCP tools `plan_visible_run` /
|
|
166
|
+
`record_visible_*` never call `codex`, so this runs fully inside Claude.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Claude desktop app (MCP only)
|
|
171
|
+
|
|
172
|
+
Add the MCP server in the app's connector/MCP settings, pointing `command` to
|
|
173
|
+
`node` and `args` to the absolute path of `mcp/server.mjs`. Tools will load; the
|
|
174
|
+
headless path still needs Codex CLI as above.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Troubleshooting: the plugin doesn't show up / `@alphacouncil-agent` isn't found
|
|
179
|
+
|
|
180
|
+
Codex loads its tool list **at session start**. Installing or enabling a plugin
|
|
181
|
+
mid-session does **not** hot-add it to the current conversation — even if the files
|
|
182
|
+
are installed, `config.toml` marks it enabled, and the self-check passes.
|
|
183
|
+
|
|
184
|
+
Do this in order:
|
|
185
|
+
|
|
186
|
+
1. **Fully quit and restart the Codex desktop app** (not just a new tab) and open a **new session**.
|
|
187
|
+
2. Type `/plugins` and confirm **AlphaCouncil** is listed; enable `alphacouncil-agent`.
|
|
188
|
+
3. Type `/reload-plugins`.
|
|
189
|
+
4. Trigger it with the **exact lowercase id**: `@alphacouncil-agent ...`. The display
|
|
190
|
+
name `@AlphaCouncil Agent` (spaces + capitals) may not trigger — prefer the id.
|
|
191
|
+
|
|
192
|
+
If `/plugins` **still** doesn't list it after a full restart, your Codex build didn't
|
|
193
|
+
pick up the local marketplace. Use the official GitHub marketplace command instead (run
|
|
194
|
+
in a normal terminal), then restart Codex:
|
|
195
|
+
|
|
196
|
+
```text
|
|
197
|
+
codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
> Local-clone install (Option B): the `source.path` in your
|
|
201
|
+
> `~/.agents/plugins/marketplace.json` must be the **absolute** path to the clone
|
|
202
|
+
> (e.g. `C:\\Users\\you\\.codex\\plugins\\alphacouncil-agent`), **not** `./`. When in
|
|
203
|
+
> doubt, use the GitHub marketplace command above — it avoids hand-editing paths.
|
|
204
|
+
|
|
205
|
+
## Windows
|
|
206
|
+
|
|
207
|
+
### Prerequisites (Windows)
|
|
208
|
+
|
|
209
|
+
- **Node.js ≥ 18** — install from [nodejs.org](https://nodejs.org), or in PowerShell:
|
|
210
|
+
`winget install OpenJS.NodeJS.LTS`. Verify with `node --version`.
|
|
211
|
+
- (Headless path only) the Codex CLI installed and authenticated. v0.3.0+ supports
|
|
212
|
+
native Windows `codex.cmd` installs; WSL is only a fallback if your Codex CLI
|
|
213
|
+
itself does not work from PowerShell/CMD.
|
|
214
|
+
|
|
215
|
+
### Install in Codex desktop (Windows)
|
|
216
|
+
|
|
217
|
+
The in-app commands are identical to macOS/Linux — they run **inside Codex**, not in your
|
|
218
|
+
shell, so the OS does not matter:
|
|
219
|
+
|
|
220
|
+
```text
|
|
221
|
+
codex plugin marketplace add Zhao73/alphacouncil-agent
|
|
222
|
+
# then open Codex → /plugins → switch to the "AlphaCouncil" marketplace → Install → /reload-plugins
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Local / personal marketplace (Windows paths). In PowerShell:
|
|
226
|
+
|
|
227
|
+
```powershell
|
|
228
|
+
git clone https://github.com/Zhao73/alphacouncil-agent.git "$env:USERPROFILE\.codex\plugins\alphacouncil-agent"
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
Then add an entry to `%USERPROFILE%\.agents\plugins\marketplace.json` whose `source.path`
|
|
232
|
+
points at that folder (copy the shape from `.agents/plugins/marketplace.json` in this repo).
|
|
233
|
+
In JSON, escape Windows backslashes, e.g.:
|
|
234
|
+
|
|
235
|
+
```json
|
|
236
|
+
{ "source": { "path": "C:\\Users\\you\\.codex\\plugins\\alphacouncil-agent" } }
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Restart Codex and install from `/plugins`.
|
|
240
|
+
|
|
241
|
+
### Install in Claude Code (Windows)
|
|
242
|
+
|
|
243
|
+
Identical to other platforms (the commands run inside Claude Code):
|
|
244
|
+
|
|
245
|
+
```text
|
|
246
|
+
/plugin marketplace add Zhao73/alphacouncil-agent
|
|
247
|
+
/plugin install alphacouncil-agent@alphacouncil
|
|
248
|
+
/reload-plugins
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
The Claude Code **visible path works natively on Windows** — it never spawns the `codex`
|
|
252
|
+
binary; your Claude Code subagents do the research and record packets via
|
|
253
|
+
`record_visible_*`. **This is the recommended Windows path.**
|
|
254
|
+
|
|
255
|
+
### Runtime notes (Windows)
|
|
256
|
+
|
|
257
|
+
The **headless Codex path** (`analyze_symbol` / `collect_evidence`, which launch `codex exec`
|
|
258
|
+
workers) is supported on native Windows in v0.3.0+: the server launches through
|
|
259
|
+
`cmd.exe /d /s /c` so `codex.cmd` resolves correctly, and it sends large analyst prompts
|
|
260
|
+
through stdin (`codex exec -`) instead of putting Chinese/multiline prompts on the command
|
|
261
|
+
line. Timeout cleanup uses the normal Node process plus Windows process-tree termination.
|
|
262
|
+
|
|
263
|
+
If headless still fails, check these first:
|
|
264
|
+
|
|
265
|
+
- `node --version` is >= 18.
|
|
266
|
+
- `codex --version` works in PowerShell or CMD.
|
|
267
|
+
- Codex CLI is logged in for the same Windows user running Codex Desktop.
|
|
268
|
+
- If `codex` is not on PATH, set `ALPHACOUNCIL_AGENT_CODEX_CMD` to the absolute path of
|
|
269
|
+
`codex.cmd`.
|
|
270
|
+
|
|
271
|
+
Fallbacks:
|
|
272
|
+
|
|
273
|
+
- Use **WSL** and run Codex + the plugin inside Linux if your native Codex CLI install is broken.
|
|
274
|
+
- Use the **visible path** above when you do not want the MCP server to spawn `codex` at all.
|
|
275
|
+
|
|
276
|
+
Everything else is cross-platform: data lives under `%USERPROFILE%\.alphacouncil-agent\`
|
|
277
|
+
(via `os.homedir()`), paths use `path.join`, and the MCP wiring is plain `node`.
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## 中文速览
|
|
282
|
+
|
|
283
|
+
- 前置:Node ≥ 18;headless 真跑研究需要已登录的 Codex CLI(worker 是 `codex exec`)。Windows v0.3.0+ 原生支持 `codex.cmd`;WSL 只是 fallback。
|
|
284
|
+
- Codex 安装:`codex plugin marketplace add Zhao73/alphacouncil-agent` → `/plugins` 安装 → `/reload-plugins`;或 clone 到 `~/.codex/plugins/` 走本地 marketplace。
|
|
285
|
+
- Claude Code 安装:`/plugin marketplace add Zhao73/alphacouncil-agent` → `/plugin install alphacouncil-agent@alphacouncil` → `/reload-plugins`。
|
|
286
|
+
- 没有 Codex CLI 时:用 visible 工作流,让 Claude 子代理产出证据并用 `record_visible_*` 录入,无需 codex。
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 日本語クイックガイド
|
|
291
|
+
|
|
292
|
+
- 前提:Node ≥ 18。headless でリサーチを実走させるには、認証済みの Codex CLI が必要(worker は `codex exec`)。Windows は v0.3.0+ で `codex.cmd` をネイティブに起動可能。WSL は fallback。
|
|
293
|
+
- Codex でのインストール:`codex plugin marketplace add Zhao73/alphacouncil-agent` → `/plugins` でインストール → `/reload-plugins`。または `~/.codex/plugins/` に clone してローカル marketplace 経由でも可。
|
|
294
|
+
- Claude Code でのインストール:`/plugin marketplace add Zhao73/alphacouncil-agent` → `/plugin install alphacouncil-agent@alphacouncil` → `/reload-plugins`。
|
|
295
|
+
- Codex CLI が無い場合:visible ワークフローを使用。Claude のサブエージェントに根拠を生成させ、`record_visible_*` で記録する(codex 不要)。
|
package/docs/personas.md
CHANGED
|
@@ -26,16 +26,16 @@ To add a role, add one file. It appears in the tool schema automatically.
|
|
|
26
26
|
| `bear_researcher` | debate | yes | default | deep | Bear Researcher | short-case, rebuttal | original |
|
|
27
27
|
| `portfolio_manager` | debate | yes | default | deep | Portfolio Manager | verdict, rating, synthesis | original |
|
|
28
28
|
| `_master_base` | master | no | - | deep | Master seat preamble | shared | original |
|
|
29
|
-
| `master_aschenbrenner` | master | yes | masters-modern | deep | Aschenbrenner Lens | scaling, compute, power, timeline-pricing | original |
|
|
29
|
+
| `master_aschenbrenner` | master | yes | masters-modern, masters-core | deep | Aschenbrenner Lens | scaling, compute, power, timeline-pricing | original |
|
|
30
30
|
| `master_buffett` | master | yes | masters-value, masters-core | deep | Buffett Lens | moat, owner-earnings, circle-of-competence | ai-berkshire (MIT) |
|
|
31
31
|
| `master_graham` | master | yes | masters-value-classic, masters-core | deep | Graham Lens | margin-of-safety, balance-sheet, mr-market | original |
|
|
32
32
|
| `master_simons` | master | yes | masters-quant, masters-core | deep | Simons Lens | signal-vs-noise, no-narrative, sample-size | original |
|
|
33
33
|
| `master_soros` | master | yes | masters-adversarial, masters-core | deep | Soros Lens | reflexivity, boom-bust, test-the-thesis | original |
|
|
34
|
-
| `master_druckenmiller` | master | yes | masters-adversarial | deep | Druckenmiller Lens | liquidity, concentration, eighteen-months-ahead | original |
|
|
35
|
-
| `master_fisher` | master | yes | masters-value-classic | deep | Fisher Lens | scuttlebutt, growth-quality, r-and-d | original |
|
|
34
|
+
| `master_druckenmiller` | master | yes | masters-adversarial, masters-core | deep | Druckenmiller Lens | liquidity, concentration, eighteen-months-ahead | original |
|
|
35
|
+
| `master_fisher` | master | yes | masters-value-classic, masters-core | deep | Fisher Lens | scuttlebutt, growth-quality, r-and-d | original |
|
|
36
36
|
| `master_munger` | master | yes | masters-value, masters-core | deep | Munger Lens | inversion, mental-models, failure-paths | ai-berkshire (MIT) |
|
|
37
37
|
| `master_thorp` | master | yes | masters-quant, masters-core | deep | Thorp Lens | kelly-sizing, edge-and-odds, risk-of-ruin | original |
|
|
38
|
-
| `master_asness` | master | yes | masters-quant | deep | Asness Factor Lens | factor-exposure, value-momentum-quality, is-it-just-beta | original |
|
|
38
|
+
| `master_asness` | master | yes | masters-quant, masters-core | deep | Asness Factor Lens | factor-exposure, value-momentum-quality, is-it-just-beta | original |
|
|
39
39
|
| `master_dalio` | master | yes | masters-adversarial, masters-core | deep | Dalio Lens | debt-cycle, machine-view, regime | original |
|
|
40
40
|
| `master_duan_yongping` | master | yes | masters-value, masters-core | deep | Duan Yongping Lens | business-model, stop-doing-list, corporate-culture | ai-berkshire (MIT) |
|
|
41
41
|
| `master_lynch` | master | yes | masters-value-classic, masters-core | deep | Peter Lynch Lens | category-first, peg, story-in-two-minutes | original |
|
|
@@ -43,7 +43,7 @@ To add a role, add one file. It appears in the tool schema automatically.
|
|
|
43
43
|
| `master_marks` | master | yes | masters-value-classic, masters-core | deep | Howard Marks Lens | second-level-thinking, cycle-position, risk-is-permanent-loss | original |
|
|
44
44
|
| `master_short_seller` | master | yes | masters-adversarial, masters-core | deep | Short Seller Lens | forensic-accounting, crowding, borrow | original |
|
|
45
45
|
| `master_burry` | master | yes | masters-adversarial, masters-core | deep | Michael Burry Lens | primary-documents, contrarian, structural-short | original |
|
|
46
|
-
| `master_klarman` | master | yes | masters-value-classic | deep | Klarman Lens | absolute-return, cash-as-option, bottom-up | original |
|
|
46
|
+
| `master_klarman` | master | yes | masters-value-classic, masters-core | deep | Klarman Lens | absolute-return, cash-as-option, bottom-up | original |
|
|
47
47
|
| `master_taleb` | master | yes | masters-options, masters-core | deep | Taleb Lens (Convexity and Tails) | tail-risk, convexity, options | original |
|
|
48
48
|
| `master_natenberg` | master | yes | masters-options, masters-core | deep | Natenberg Lens (Volatility Pricing) | implied-volatility, options-pricing, market-making | original |
|
|
49
49
|
| `master_sinclair` | master | yes | masters-options, masters-core | deep | Sinclair Lens (Volatility Trading and Execution) | volatility-forecasting, edge-measurement, position-sizing, options | original |
|
package/mcp/lib/rpc.mjs
CHANGED
|
@@ -582,16 +582,37 @@ export async function handleToolCall(id, params) {
|
|
|
582
582
|
}
|
|
583
583
|
if (name === "list_council_options") {
|
|
584
584
|
const data = councilOptions({ language: args.language || "English" });
|
|
585
|
-
const
|
|
586
|
-
|
|
585
|
+
const zh = /中文|chinese|zh/i.test(String(args.language || ""));
|
|
586
|
+
// Named seats, not three abstractions. A user choosing what to spend on should see who
|
|
587
|
+
// is in the room; "standard, 32 seats" hides both the composition and the omissions --
|
|
588
|
+
// it hid five masters that the preset never actually ran.
|
|
589
|
+
const analystRows = data.analysts.map((a) => [
|
|
590
|
+
a.id, a.title, a.in_default ? (zh ? "默认" : "default") : (zh ? "可选" : "optional"), a.covers || "-",
|
|
591
|
+
]);
|
|
592
|
+
const masterRows = data.master_rosters.map((r) => [
|
|
593
|
+
r.roster, String(r.count), r.members.map((m) => m.id.replace("master_", "")).join(", "),
|
|
587
594
|
]);
|
|
588
595
|
const text = [
|
|
589
|
-
table(
|
|
596
|
+
table(
|
|
597
|
+
zh ? ["席位", "职责", "是否默认", "覆盖"] : ["Seat", "Role", "In default", "Covers"],
|
|
598
|
+
analystRows, { title: zh ? `分析师 — ${data.analysts.length} 位可选,默认 ${data.default_analysts.length} 位` : `Analysts — ${data.analysts.length} available, ${data.default_analysts.length} in the default fan-out`, zh },
|
|
599
|
+
),
|
|
600
|
+
"",
|
|
601
|
+
table(
|
|
602
|
+
zh ? ["学派名册", "人数", "成员"] : ["School", "Count", "Members"],
|
|
603
|
+
masterRows, { title: zh ? `大师议席 — 共 ${data.all_masters_count} 位` : `Master bench — ${data.all_masters_count} lenses`, zh },
|
|
604
|
+
),
|
|
590
605
|
"",
|
|
591
|
-
|
|
592
|
-
|
|
606
|
+
table(
|
|
607
|
+
zh ? ["预设", "内容", "席位", "相对成本"] : ["Preset", "What runs", "Seats", "Relative cost"],
|
|
608
|
+
data.presets.map((p) => [p.id, p.label, `${p.seats}`, `~${p.rough_minutes}`]),
|
|
609
|
+
{ title: zh ? "快捷预设(也可以自己点名)" : "Shortcuts — or name the seats yourself", zh },
|
|
610
|
+
),
|
|
593
611
|
"",
|
|
594
|
-
|
|
612
|
+
zh
|
|
613
|
+
? "把上面的名单给用户看,让他们**自己勾选**:可以按学派名册选、可以点名单个席位、也可以全选。预设只是快捷方式,不是唯一选项。用户已经说清楚要什么就别问。"
|
|
614
|
+
: "Show the user these lists and let them **pick**: by school, by individual seat, or all of them. "
|
|
615
|
+
+ "The presets are shortcuts, not the only way to choose. Do not ask if they already said.",
|
|
595
616
|
].join("\n");
|
|
596
617
|
sendResult(id, jsonContent(text, data));
|
|
597
618
|
return;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alphacouncil-agent",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Multi-agent public-equity research workflow plugin for Codex & Claude Code: sourced evidence packets, bull/bear debate, and a portfolio-manager Buy/Overweight/Hold/Underweight/Sell decision.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -60,6 +60,9 @@
|
|
|
60
60
|
"commands/",
|
|
61
61
|
".claude/commands/",
|
|
62
62
|
".opencode/command/",
|
|
63
|
-
".grok/commands/"
|
|
63
|
+
".grok/commands/",
|
|
64
|
+
"docs/INSTALL.md",
|
|
65
|
+
"SECURITY.md",
|
|
66
|
+
"CONTRIBUTING.md"
|
|
64
67
|
]
|
|
65
68
|
}
|
|
@@ -30,32 +30,36 @@ Do not ask startup option questions by default. For underspecified requests such
|
|
|
30
30
|
|
|
31
31
|
Ask only when the user explicitly requests option selection before launch. Use the inferred language for visible main-thread preflight/progress updates, visible agent prompts, evidence packets, debate packets, and final synthesis unless the user explicitly requests another language. Always pass the original user request in `prompt`, and pass the inferred language as `language` to AlphaCouncil Agent MCP tools.
|
|
32
32
|
|
|
33
|
-
## Stage 0 — Ask which
|
|
33
|
+
## Stage 0 — Ask which masters, then run
|
|
34
34
|
|
|
35
|
-
**
|
|
35
|
+
**One question, about the master bench only. Then start.**
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
The analysts have a sensible default -- the eight-seat fan-out -- and asking about them every
|
|
38
|
+
time is a question with an obvious answer. The bench is the part a user actually has a view
|
|
39
|
+
on, and it is where the cost varies most: 21 lenses or 4 is a real difference.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
1. Call `list_council_options`.
|
|
42
|
+
2. Ask **once**: which master schools? Offer the six by name with their members, plus "all"
|
|
43
|
+
and "none".
|
|
44
|
+
- **Claude Code** — `AskUserQuestion` with `multiSelect: true`, one option per school,
|
|
45
|
+
each naming its members.
|
|
46
|
+
- **Codex, OpenCode, Grok Build** — print the school table and take a plain reply.
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
Naming each host is not redundancy. Leaving it implicit is exactly how the master bench
|
|
49
|
+
ended up never running on Codex and OpenCode: the instruction existed, in a section only
|
|
50
|
+
one host read.
|
|
51
|
+
3. **Then run.** Do not ask about analysts, presets, or confirmation. The answer to "which
|
|
52
|
+
masters" is the whole configuration decision.
|
|
47
53
|
|
|
48
|
-
|
|
54
|
+
Analysts default to the eight-seat fan-out. Use all eleven only if the user asked for
|
|
55
|
+
breadth, and say so in the report rather than asking first.
|
|
49
56
|
|
|
50
|
-
|
|
51
|
-
|
|
57
|
+
**Skip the question entirely when the request already answered it** — a named school,
|
|
58
|
+
"everything", "no masters", "be quick", or a repeat of a run with the same shape. A
|
|
59
|
+
confirmation nobody needed is an interruption.
|
|
52
60
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
- The estimates are relative magnitudes, not promises. "Roughly three times the seats" is
|
|
56
|
-
honest; "about 33 minutes" is not.
|
|
57
|
-
- If they choose everything, say once that it will be noticeably slower — then run it. They
|
|
58
|
-
are allowed to spend their own time; they are not required to guess what it costs.
|
|
61
|
+
Say the cost once, in the same message as the question: each master is one subagent, so the
|
|
62
|
+
bench is the difference between roughly 11 seats and roughly 32. Do not quote minutes.
|
|
59
63
|
|
|
60
64
|
## Visible-First Workflow
|
|
61
65
|
|