alphacouncil-agent 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/alphacouncil-market.md +23 -0
- package/.claude/commands/alphacouncil-quick.md +19 -0
- package/.claude/commands/alphacouncil-screen.md +21 -0
- package/.claude/commands/alphacouncil.md +39 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +3 -2
- package/.codex-plugin/plugin.json +1 -1
- package/.grok/commands/alphacouncil-market.md +23 -0
- package/.grok/commands/alphacouncil-quick.md +19 -0
- package/.grok/commands/alphacouncil-screen.md +21 -0
- package/.grok/commands/alphacouncil.md +39 -0
- package/.opencode/command/alphacouncil-market.md +23 -0
- package/.opencode/command/alphacouncil-quick.md +19 -0
- package/.opencode/command/alphacouncil-screen.md +21 -0
- package/.opencode/command/alphacouncil.md +39 -0
- package/AGENTS.md +19 -0
- package/CHANGELOG.md +14 -0
- package/README.md +13 -0
- package/commands/alphacouncil-market.md +23 -0
- package/commands/alphacouncil-quick.md +19 -0
- package/commands/alphacouncil-screen.md +21 -0
- package/commands/alphacouncil.md +39 -0
- package/package.json +6 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: What story the market is telling itself, checked against the tape
|
|
3
|
+
argument-hint: [optional theme or sector]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — market narrative
|
|
7
|
+
|
|
8
|
+
Focus, if given: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `get_market_narrative`, adding `extra_queries` when a sector or theme is named.
|
|
11
|
+
|
|
12
|
+
Read it by the gap, not by the ranking:
|
|
13
|
+
|
|
14
|
+
- **A theme leading coverage while its series has not moved** — the story is ahead of the
|
|
15
|
+
data, or the market has stopped listening. Say which you think it is, and why.
|
|
16
|
+
- **A series that moved sharply while its theme is barely covered** — something is happening
|
|
17
|
+
that has not been narrated yet. This is the most valuable thing on the page.
|
|
18
|
+
|
|
19
|
+
Headline counts measure attention, never truth. Every claim about a theme must be followed
|
|
20
|
+
by what its market series actually did.
|
|
21
|
+
|
|
22
|
+
The lexicon is fixed, so a genuinely new narrative lands in `unclassified_headlines`
|
|
23
|
+
instead of being discovered. Read those titles and name the theme by hand if one is there.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A fast directional read: four analysts, no master bench, no verification
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — quick read
|
|
7
|
+
|
|
8
|
+
Ticker or question: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Run the `quick` preset from `list_council_options`: four analysts and the debate, with no
|
|
11
|
+
master bench and no verification pass. Do not ask which preset to use — the user chose this
|
|
12
|
+
command, which is the answer.
|
|
13
|
+
|
|
14
|
+
**Say once, in the output, what was skipped:** no master lenses and no cross-verification,
|
|
15
|
+
so the confidence is lower than a standard run and the report should say so rather than
|
|
16
|
+
reading like a full council result.
|
|
17
|
+
|
|
18
|
+
Start with `screen_ticker`, `get_quote` and `get_options_chain` — they are three calls and
|
|
19
|
+
they establish more than any amount of searching will.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mechanical filings screen only — no language model judgment
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — mechanical screen
|
|
7
|
+
|
|
8
|
+
Ticker: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `screen_ticker` with `ticker`. The CIK resolves itself.
|
|
11
|
+
|
|
12
|
+
Report the table exactly as returned, and state plainly:
|
|
13
|
+
|
|
14
|
+
- **A rule whose inputs are missing is `skipped`, never a pass.** Reporting "6/7 passed"
|
|
15
|
+
without naming the seventh misrepresents the screen.
|
|
16
|
+
- **Surviving is not a recommendation.** It means the name is worth research time.
|
|
17
|
+
- No language model judgment is involved in this screen. Every elimination names the
|
|
18
|
+
metric, the measured value and the threshold.
|
|
19
|
+
|
|
20
|
+
For a non-US ticker the SEC universe has no entry; say which market it is and use
|
|
21
|
+
`market_coverage` to say what that market supports instead of returning nothing.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the full investment council on a ticker or a question
|
|
3
|
+
argument-hint: [ticker or question]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — full council
|
|
7
|
+
|
|
8
|
+
The user asked for: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
## Do this in order
|
|
11
|
+
|
|
12
|
+
1. **Ask which council to run first.** Call `list_council_options` and present the three
|
|
13
|
+
presets with their seat counts and relative cost. A council is 7 to 44 seats and that
|
|
14
|
+
range is the user's time and money.
|
|
15
|
+
**Skip the question if they already answered** — if `$ARGUMENTS` names a roster, says
|
|
16
|
+
"everything", or says "quick", act on it. A confirmation nobody needed is an interruption.
|
|
17
|
+
|
|
18
|
+
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
19
|
+
workflow: the gates exist because a report that looks finished and skipped the bench is
|
|
20
|
+
worse than an obviously partial one.
|
|
21
|
+
|
|
22
|
+
3. **Call the tools instead of searching for numbers they can supply.** `screen_ticker` for
|
|
23
|
+
filings, `get_quote` for price, `get_options_chain` for positioning, `get_macro_snapshot`
|
|
24
|
+
for context, `get_news` for dated items. Search is for explanation and for what is not
|
|
25
|
+
yet filed.
|
|
26
|
+
|
|
27
|
+
4. Every selected master must report before the run can be complete. `out_of_scope` is a
|
|
28
|
+
conclusion, not an abstention.
|
|
29
|
+
|
|
30
|
+
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
31
|
+
changes what the bands depend on; it does not excuse leaving them out.
|
|
32
|
+
|
|
33
|
+
## Never
|
|
34
|
+
|
|
35
|
+
- Never fill a number from memory when a tool could have supplied it.
|
|
36
|
+
- Never present a rule with missing inputs as a pass — it is `skipped`.
|
|
37
|
+
- Never let social or narrative evidence enter the conclusion on its own.
|
|
38
|
+
|
|
39
|
+
This is educational software. The final report says so.
|
|
@@ -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.1"
|
|
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.1",
|
|
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.1",
|
|
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"
|
|
@@ -24,5 +24,6 @@
|
|
|
24
24
|
"${CLAUDE_PLUGIN_ROOT}/mcp/server.mjs"
|
|
25
25
|
]
|
|
26
26
|
}
|
|
27
|
-
}
|
|
27
|
+
},
|
|
28
|
+
"commands": "./commands/"
|
|
28
29
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: What story the market is telling itself, checked against the tape
|
|
3
|
+
argument-hint: [optional theme or sector]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — market narrative
|
|
7
|
+
|
|
8
|
+
Focus, if given: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `get_market_narrative`, adding `extra_queries` when a sector or theme is named.
|
|
11
|
+
|
|
12
|
+
Read it by the gap, not by the ranking:
|
|
13
|
+
|
|
14
|
+
- **A theme leading coverage while its series has not moved** — the story is ahead of the
|
|
15
|
+
data, or the market has stopped listening. Say which you think it is, and why.
|
|
16
|
+
- **A series that moved sharply while its theme is barely covered** — something is happening
|
|
17
|
+
that has not been narrated yet. This is the most valuable thing on the page.
|
|
18
|
+
|
|
19
|
+
Headline counts measure attention, never truth. Every claim about a theme must be followed
|
|
20
|
+
by what its market series actually did.
|
|
21
|
+
|
|
22
|
+
The lexicon is fixed, so a genuinely new narrative lands in `unclassified_headlines`
|
|
23
|
+
instead of being discovered. Read those titles and name the theme by hand if one is there.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A fast directional read: four analysts, no master bench, no verification
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — quick read
|
|
7
|
+
|
|
8
|
+
Ticker or question: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Run the `quick` preset from `list_council_options`: four analysts and the debate, with no
|
|
11
|
+
master bench and no verification pass. Do not ask which preset to use — the user chose this
|
|
12
|
+
command, which is the answer.
|
|
13
|
+
|
|
14
|
+
**Say once, in the output, what was skipped:** no master lenses and no cross-verification,
|
|
15
|
+
so the confidence is lower than a standard run and the report should say so rather than
|
|
16
|
+
reading like a full council result.
|
|
17
|
+
|
|
18
|
+
Start with `screen_ticker`, `get_quote` and `get_options_chain` — they are three calls and
|
|
19
|
+
they establish more than any amount of searching will.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mechanical filings screen only — no language model judgment
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — mechanical screen
|
|
7
|
+
|
|
8
|
+
Ticker: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `screen_ticker` with `ticker`. The CIK resolves itself.
|
|
11
|
+
|
|
12
|
+
Report the table exactly as returned, and state plainly:
|
|
13
|
+
|
|
14
|
+
- **A rule whose inputs are missing is `skipped`, never a pass.** Reporting "6/7 passed"
|
|
15
|
+
without naming the seventh misrepresents the screen.
|
|
16
|
+
- **Surviving is not a recommendation.** It means the name is worth research time.
|
|
17
|
+
- No language model judgment is involved in this screen. Every elimination names the
|
|
18
|
+
metric, the measured value and the threshold.
|
|
19
|
+
|
|
20
|
+
For a non-US ticker the SEC universe has no entry; say which market it is and use
|
|
21
|
+
`market_coverage` to say what that market supports instead of returning nothing.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the full investment council on a ticker or a question
|
|
3
|
+
argument-hint: [ticker or question]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — full council
|
|
7
|
+
|
|
8
|
+
The user asked for: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
## Do this in order
|
|
11
|
+
|
|
12
|
+
1. **Ask which council to run first.** Call `list_council_options` and present the three
|
|
13
|
+
presets with their seat counts and relative cost. A council is 7 to 44 seats and that
|
|
14
|
+
range is the user's time and money.
|
|
15
|
+
**Skip the question if they already answered** — if `$ARGUMENTS` names a roster, says
|
|
16
|
+
"everything", or says "quick", act on it. A confirmation nobody needed is an interruption.
|
|
17
|
+
|
|
18
|
+
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
19
|
+
workflow: the gates exist because a report that looks finished and skipped the bench is
|
|
20
|
+
worse than an obviously partial one.
|
|
21
|
+
|
|
22
|
+
3. **Call the tools instead of searching for numbers they can supply.** `screen_ticker` for
|
|
23
|
+
filings, `get_quote` for price, `get_options_chain` for positioning, `get_macro_snapshot`
|
|
24
|
+
for context, `get_news` for dated items. Search is for explanation and for what is not
|
|
25
|
+
yet filed.
|
|
26
|
+
|
|
27
|
+
4. Every selected master must report before the run can be complete. `out_of_scope` is a
|
|
28
|
+
conclusion, not an abstention.
|
|
29
|
+
|
|
30
|
+
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
31
|
+
changes what the bands depend on; it does not excuse leaving them out.
|
|
32
|
+
|
|
33
|
+
## Never
|
|
34
|
+
|
|
35
|
+
- Never fill a number from memory when a tool could have supplied it.
|
|
36
|
+
- Never present a rule with missing inputs as a pass — it is `skipped`.
|
|
37
|
+
- Never let social or narrative evidence enter the conclusion on its own.
|
|
38
|
+
|
|
39
|
+
This is educational software. The final report says so.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: What story the market is telling itself, checked against the tape
|
|
3
|
+
argument-hint: [optional theme or sector]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — market narrative
|
|
7
|
+
|
|
8
|
+
Focus, if given: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `get_market_narrative`, adding `extra_queries` when a sector or theme is named.
|
|
11
|
+
|
|
12
|
+
Read it by the gap, not by the ranking:
|
|
13
|
+
|
|
14
|
+
- **A theme leading coverage while its series has not moved** — the story is ahead of the
|
|
15
|
+
data, or the market has stopped listening. Say which you think it is, and why.
|
|
16
|
+
- **A series that moved sharply while its theme is barely covered** — something is happening
|
|
17
|
+
that has not been narrated yet. This is the most valuable thing on the page.
|
|
18
|
+
|
|
19
|
+
Headline counts measure attention, never truth. Every claim about a theme must be followed
|
|
20
|
+
by what its market series actually did.
|
|
21
|
+
|
|
22
|
+
The lexicon is fixed, so a genuinely new narrative lands in `unclassified_headlines`
|
|
23
|
+
instead of being discovered. Read those titles and name the theme by hand if one is there.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A fast directional read: four analysts, no master bench, no verification
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — quick read
|
|
7
|
+
|
|
8
|
+
Ticker or question: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Run the `quick` preset from `list_council_options`: four analysts and the debate, with no
|
|
11
|
+
master bench and no verification pass. Do not ask which preset to use — the user chose this
|
|
12
|
+
command, which is the answer.
|
|
13
|
+
|
|
14
|
+
**Say once, in the output, what was skipped:** no master lenses and no cross-verification,
|
|
15
|
+
so the confidence is lower than a standard run and the report should say so rather than
|
|
16
|
+
reading like a full council result.
|
|
17
|
+
|
|
18
|
+
Start with `screen_ticker`, `get_quote` and `get_options_chain` — they are three calls and
|
|
19
|
+
they establish more than any amount of searching will.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mechanical filings screen only — no language model judgment
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — mechanical screen
|
|
7
|
+
|
|
8
|
+
Ticker: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `screen_ticker` with `ticker`. The CIK resolves itself.
|
|
11
|
+
|
|
12
|
+
Report the table exactly as returned, and state plainly:
|
|
13
|
+
|
|
14
|
+
- **A rule whose inputs are missing is `skipped`, never a pass.** Reporting "6/7 passed"
|
|
15
|
+
without naming the seventh misrepresents the screen.
|
|
16
|
+
- **Surviving is not a recommendation.** It means the name is worth research time.
|
|
17
|
+
- No language model judgment is involved in this screen. Every elimination names the
|
|
18
|
+
metric, the measured value and the threshold.
|
|
19
|
+
|
|
20
|
+
For a non-US ticker the SEC universe has no entry; say which market it is and use
|
|
21
|
+
`market_coverage` to say what that market supports instead of returning nothing.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the full investment council on a ticker or a question
|
|
3
|
+
argument-hint: [ticker or question]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — full council
|
|
7
|
+
|
|
8
|
+
The user asked for: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
## Do this in order
|
|
11
|
+
|
|
12
|
+
1. **Ask which council to run first.** Call `list_council_options` and present the three
|
|
13
|
+
presets with their seat counts and relative cost. A council is 7 to 44 seats and that
|
|
14
|
+
range is the user's time and money.
|
|
15
|
+
**Skip the question if they already answered** — if `$ARGUMENTS` names a roster, says
|
|
16
|
+
"everything", or says "quick", act on it. A confirmation nobody needed is an interruption.
|
|
17
|
+
|
|
18
|
+
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
19
|
+
workflow: the gates exist because a report that looks finished and skipped the bench is
|
|
20
|
+
worse than an obviously partial one.
|
|
21
|
+
|
|
22
|
+
3. **Call the tools instead of searching for numbers they can supply.** `screen_ticker` for
|
|
23
|
+
filings, `get_quote` for price, `get_options_chain` for positioning, `get_macro_snapshot`
|
|
24
|
+
for context, `get_news` for dated items. Search is for explanation and for what is not
|
|
25
|
+
yet filed.
|
|
26
|
+
|
|
27
|
+
4. Every selected master must report before the run can be complete. `out_of_scope` is a
|
|
28
|
+
conclusion, not an abstention.
|
|
29
|
+
|
|
30
|
+
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
31
|
+
changes what the bands depend on; it does not excuse leaving them out.
|
|
32
|
+
|
|
33
|
+
## Never
|
|
34
|
+
|
|
35
|
+
- Never fill a number from memory when a tool could have supplied it.
|
|
36
|
+
- Never present a rule with missing inputs as a pass — it is `skipped`.
|
|
37
|
+
- Never let social or narrative evidence enter the conclusion on its own.
|
|
38
|
+
|
|
39
|
+
This is educational software. The final report says so.
|
package/AGENTS.md
CHANGED
|
@@ -69,6 +69,25 @@ Verified against a real install (grok 0.2.101) rather than from documentation:
|
|
|
69
69
|
Grok Build the workflow arrives through `AGENTS.md` plus the MCP tools, the same shape
|
|
70
70
|
that works on OpenCode.
|
|
71
71
|
|
|
72
|
+
## Slash commands
|
|
73
|
+
|
|
74
|
+
Authored once in `commands/` and generated into each host's directory by
|
|
75
|
+
`scripts/sync-personas.mjs`, so `/alphacouncil` means the same thing everywhere.
|
|
76
|
+
|
|
77
|
+
| Command | What it does |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `/alphacouncil <ticker or question>` | Full council. Asks which preset first, unless the request already says. |
|
|
80
|
+
| `/alphacouncil-quick <ticker>` | Four analysts, no bench, no verification — and says in the output what was skipped. |
|
|
81
|
+
| `/alphacouncil-screen <ticker>` | Mechanical filings screen only. No language-model judgment. |
|
|
82
|
+
| `/alphacouncil-market [theme]` | What the market is talking about, checked against the tape. |
|
|
83
|
+
|
|
84
|
+
| Host | Where it reads them |
|
|
85
|
+
|---|---|
|
|
86
|
+
| Claude Code | `commands/` via `.claude-plugin/plugin.json`, plus `.claude/commands/` for a checkout |
|
|
87
|
+
| OpenCode | `.opencode/command/` |
|
|
88
|
+
| Grok Build | `.grok/commands/`, and `.claude/commands/` as a high-priority compatibility source |
|
|
89
|
+
| Codex | `~/.codex/prompts/` is **user-scoped**, so it is installed rather than shipped: `mkdir -p ~/.codex/prompts && cp commands/*.md ~/.codex/prompts/` |
|
|
90
|
+
|
|
72
91
|
## Market data coverage
|
|
73
92
|
|
|
74
93
|
Structured financials come from each market's own regulator, and the pipeline degrades in
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes per release. Dates are UTC.
|
|
4
4
|
|
|
5
|
+
## [0.5.1] — 2026-07-26
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- **Slash commands**: `/alphacouncil`, `/alphacouncil-quick`, `/alphacouncil-screen` and
|
|
10
|
+
`/alphacouncil-market`, authored once and generated into every host's command directory.
|
|
11
|
+
0.5.0 shipped with no command directory at all, so the plugin could only be reached by
|
|
12
|
+
@-mention or by describing it in prose.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
|
|
16
|
+
- The npm package did not carry the command directories, which meant an installed copy and
|
|
17
|
+
a checkout behaved differently.
|
|
18
|
+
|
|
5
19
|
## [0.5.0] — 2026-07-26
|
|
6
20
|
|
|
7
21
|
Everything below is keyless: no API key, no account, no config file.
|
package/README.md
CHANGED
|
@@ -123,6 +123,19 @@ The concise handoff is written to `~/.alphacouncil-agent/runs/<run_id>/user_resp
|
|
|
123
123
|
The full report is written to `~/.alphacouncil-agent/runs/<run_id>/final_report.md`,
|
|
124
124
|
with analyst Markdown files and `artifact_index.md` in the same run directory.
|
|
125
125
|
|
|
126
|
+
### Slash commands
|
|
127
|
+
|
|
128
|
+
| Command | What it does |
|
|
129
|
+
|---|---|
|
|
130
|
+
| `/alphacouncil <ticker or question>` | The full council. Asks which preset first, unless your request already says. |
|
|
131
|
+
| `/alphacouncil-quick <ticker>` | A fast directional read — four analysts, no bench, no verification, and it tells you so. |
|
|
132
|
+
| `/alphacouncil-screen <ticker>` | The mechanical filings screen alone. No language-model judgment in it. |
|
|
133
|
+
| `/alphacouncil-market [theme]` | What the market is talking about, checked against what the tape actually did. |
|
|
134
|
+
|
|
135
|
+
Available in Claude Code, OpenCode and Grok Build as soon as the plugin is installed. Codex
|
|
136
|
+
keeps its prompts user-scoped, so copy them once:
|
|
137
|
+
`mkdir -p ~/.codex/prompts && cp commands/*.md ~/.codex/prompts/`
|
|
138
|
+
|
|
126
139
|
## What It Does
|
|
127
140
|
|
|
128
141
|
Default stock-analysis runs are full runs, not lite summaries:
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: What story the market is telling itself, checked against the tape
|
|
3
|
+
argument-hint: [optional theme or sector]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — market narrative
|
|
7
|
+
|
|
8
|
+
Focus, if given: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `get_market_narrative`, adding `extra_queries` when a sector or theme is named.
|
|
11
|
+
|
|
12
|
+
Read it by the gap, not by the ranking:
|
|
13
|
+
|
|
14
|
+
- **A theme leading coverage while its series has not moved** — the story is ahead of the
|
|
15
|
+
data, or the market has stopped listening. Say which you think it is, and why.
|
|
16
|
+
- **A series that moved sharply while its theme is barely covered** — something is happening
|
|
17
|
+
that has not been narrated yet. This is the most valuable thing on the page.
|
|
18
|
+
|
|
19
|
+
Headline counts measure attention, never truth. Every claim about a theme must be followed
|
|
20
|
+
by what its market series actually did.
|
|
21
|
+
|
|
22
|
+
The lexicon is fixed, so a genuinely new narrative lands in `unclassified_headlines`
|
|
23
|
+
instead of being discovered. Read those titles and name the theme by hand if one is there.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: A fast directional read: four analysts, no master bench, no verification
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — quick read
|
|
7
|
+
|
|
8
|
+
Ticker or question: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Run the `quick` preset from `list_council_options`: four analysts and the debate, with no
|
|
11
|
+
master bench and no verification pass. Do not ask which preset to use — the user chose this
|
|
12
|
+
command, which is the answer.
|
|
13
|
+
|
|
14
|
+
**Say once, in the output, what was skipped:** no master lenses and no cross-verification,
|
|
15
|
+
so the confidence is lower than a standard run and the report should say so rather than
|
|
16
|
+
reading like a full council result.
|
|
17
|
+
|
|
18
|
+
Start with `screen_ticker`, `get_quote` and `get_options_chain` — they are three calls and
|
|
19
|
+
they establish more than any amount of searching will.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mechanical filings screen only — no language model judgment
|
|
3
|
+
argument-hint: [ticker]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — mechanical screen
|
|
7
|
+
|
|
8
|
+
Ticker: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
Call `screen_ticker` with `ticker`. The CIK resolves itself.
|
|
11
|
+
|
|
12
|
+
Report the table exactly as returned, and state plainly:
|
|
13
|
+
|
|
14
|
+
- **A rule whose inputs are missing is `skipped`, never a pass.** Reporting "6/7 passed"
|
|
15
|
+
without naming the seventh misrepresents the screen.
|
|
16
|
+
- **Surviving is not a recommendation.** It means the name is worth research time.
|
|
17
|
+
- No language model judgment is involved in this screen. Every elimination names the
|
|
18
|
+
metric, the measured value and the threshold.
|
|
19
|
+
|
|
20
|
+
For a non-US ticker the SEC universe has no entry; say which market it is and use
|
|
21
|
+
`market_coverage` to say what that market supports instead of returning nothing.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run the full investment council on a ticker or a question
|
|
3
|
+
argument-hint: [ticker or question]
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AlphaCouncil — full council
|
|
7
|
+
|
|
8
|
+
The user asked for: **$ARGUMENTS**
|
|
9
|
+
|
|
10
|
+
## Do this in order
|
|
11
|
+
|
|
12
|
+
1. **Ask which council to run first.** Call `list_council_options` and present the three
|
|
13
|
+
presets with their seat counts and relative cost. A council is 7 to 44 seats and that
|
|
14
|
+
range is the user's time and money.
|
|
15
|
+
**Skip the question if they already answered** — if `$ARGUMENTS` names a roster, says
|
|
16
|
+
"everything", or says "quick", act on it. A confirmation nobody needed is an interruption.
|
|
17
|
+
|
|
18
|
+
2. Follow `skills/alphacouncil-agent/SKILL.md` from Stage 0. Do not improvise a shorter
|
|
19
|
+
workflow: the gates exist because a report that looks finished and skipped the bench is
|
|
20
|
+
worse than an obviously partial one.
|
|
21
|
+
|
|
22
|
+
3. **Call the tools instead of searching for numbers they can supply.** `screen_ticker` for
|
|
23
|
+
filings, `get_quote` for price, `get_options_chain` for positioning, `get_macro_snapshot`
|
|
24
|
+
for context, `get_news` for dated items. Search is for explanation and for what is not
|
|
25
|
+
yet filed.
|
|
26
|
+
|
|
27
|
+
4. Every selected master must report before the run can be complete. `out_of_scope` is a
|
|
28
|
+
conclusion, not an abstention.
|
|
29
|
+
|
|
30
|
+
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
31
|
+
changes what the bands depend on; it does not excuse leaving them out.
|
|
32
|
+
|
|
33
|
+
## Never
|
|
34
|
+
|
|
35
|
+
- Never fill a number from memory when a tool could have supplied it.
|
|
36
|
+
- Never present a rule with missing inputs as a pass — it is `skipped`.
|
|
37
|
+
- Never let social or narrative evidence enter the conclusion on its own.
|
|
38
|
+
|
|
39
|
+
This is educational software. The final report says so.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alphacouncil-agent",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
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",
|
|
@@ -56,6 +56,10 @@
|
|
|
56
56
|
"LICENSE",
|
|
57
57
|
"README.md",
|
|
58
58
|
"README.zh-CN.md",
|
|
59
|
-
"README.ja.md"
|
|
59
|
+
"README.ja.md",
|
|
60
|
+
"commands/",
|
|
61
|
+
".claude/commands/",
|
|
62
|
+
".opencode/command/",
|
|
63
|
+
".grok/commands/"
|
|
60
64
|
]
|
|
61
65
|
}
|