alphacouncil-agent 0.9.0-solo-test.3 → 0.9.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/alpha.md +57 -22
- 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 +57 -22
- package/.opencode/command/alpha.md +57 -22
- package/AGENTS.md +47 -7
- package/CHANGELOG.md +52 -0
- package/CLAUDE.md +73 -26
- package/README.ja.md +49 -17
- package/README.md +57 -21
- package/README.zh-CN.md +47 -15
- package/commands/alpha.md +57 -22
- package/data/build-profile.v1.json +1 -1
- package/docs/INSTALL.md +50 -5
- package/docs/releases/v0.9.1.md +108 -0
- package/docs/report-contract.md +166 -76
- package/knowledge/ai-assisted-solo/experiments/runs/a.json +4 -4
- package/knowledge/ai-assisted-solo/experiments/runs/b.json +2 -2
- package/knowledge/ai-assisted-solo/experiments/runs/c.json +2 -2
- package/knowledge/ai-assisted-solo/experiments/runs/d13.json +16 -16
- package/knowledge/ai-assisted-solo/experiments/runs/d26.json +29 -29
- package/knowledge/ai-assisted-solo/experiments/runs/e-d13.json +19 -19
- package/knowledge/ai-assisted-solo/experiments/runs/e-d26.json +32 -32
- package/knowledge/ai-assisted-solo/experiments/runs/h_ai_reference.json +33 -33
- package/knowledge/ai-assisted-solo/experiments/simulation-input.json +79 -79
- package/knowledge/ai-assisted-solo/experiments/simulation-manifest.json +19 -19
- package/knowledge/solo-test/masters/master_ackman/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_aschenbrenner/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_asness/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_buffett/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_burry/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_cathie_wood/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_dalio/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_damodaran/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_druckenmiller/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_duan_yongping/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_fisher/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_forensic_short/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_graham/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_jhunjhunwala/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_klarman/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_li_lu/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_lynch/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_marks/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_munger/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_natenberg/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_pabrai/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_simons/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_sinclair/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_soros/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_taleb/manifest.json +1 -1
- package/knowledge/solo-test/masters/master_thorp/manifest.json +1 -1
- package/mcp/lib/abort.mjs +18 -0
- package/mcp/lib/background-recovery.mjs +1 -0
- package/mcp/lib/codex.mjs +34 -7
- package/mcp/lib/constants.mjs +62 -0
- package/mcp/lib/council-options.mjs +14 -6
- package/mcp/lib/council-selection.mjs +39 -6
- package/mcp/lib/gates.mjs +61 -6
- package/mcp/lib/grounding.mjs +8 -7
- package/mcp/lib/macro.mjs +1 -1
- package/mcp/lib/markdown.mjs +187 -14
- package/mcp/lib/markets.mjs +9 -9
- package/mcp/lib/options.mjs +2 -2
- package/mcp/lib/orchestrator.mjs +447 -45
- package/mcp/lib/packets.mjs +107 -2
- package/mcp/lib/personas-v3/ga-package-evidence.mjs +14 -2
- package/mcp/lib/prompts.mjs +18 -7
- package/mcp/lib/quotes.mjs +8 -8
- package/mcp/lib/rpc.mjs +74 -12
- package/mcp/lib/run-store.mjs +14 -0
- package/mcp/lib/screen.mjs +3 -3
- package/mcp/lib/sec.mjs +11 -11
- package/package.json +4 -3
- package/scripts/lib/packaged-host-parity.mjs +8 -1
- package/skills/agent-skills-governance/SKILL.md +51 -19
- package/skills/alphacouncil-agent/SKILL.md +96 -35
|
@@ -13,7 +13,7 @@ Request: **$ARGUMENTS**
|
|
|
13
13
|
|---|---|
|
|
14
14
|
| *(empty)* | Print the mode table below and stop. Do not start a run. |
|
|
15
15
|
| a ticker alone, or a question | **Full council.** Go to "Full council" below. |
|
|
16
|
-
| ticker + `quick` | The `
|
|
16
|
+
| ticker + `quick` | The plugin-managed headless `quick_v1` council: 4 fixed analysts, 1-4 selected methods, one parallel bull/bear round and a short PM inside a hard 10-minute ceiling. |
|
|
17
17
|
| ticker + `screen` | `screen_ticker` only. No language-model judgment, no subagents. |
|
|
18
18
|
| ticker + `options` | `get_options_chain` only. |
|
|
19
19
|
| ticker + `news` | `get_news` on the symbol, and on its CIK when it is a US filer. |
|
|
@@ -23,7 +23,7 @@ When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
/alpha <TICKER> full council — shows every master, then asks which to run
|
|
26
|
-
/alpha <TICKER> quick 4 analysts +
|
|
26
|
+
/alpha <TICKER> quick quick_v1: 4 analysts incl. news + 1-4 masters + 1 parallel debate round (<=10m)
|
|
27
27
|
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
28
|
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
29
|
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
@@ -38,34 +38,40 @@ Any listed equity. Filings-based modes need a US filer; for other markets say wh
|
|
|
38
38
|
is and use `market_coverage`, rather than returning nothing.
|
|
39
39
|
|
|
40
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
41
|
-
they cost nothing beyond this turn.
|
|
42
|
-
|
|
41
|
+
they cost nothing beyond this turn. Council modes can launch model workers; selected method
|
|
42
|
+
seats may instead complete deterministically or return a recorded `out_of_scope` result.
|
|
43
43
|
|
|
44
44
|
## Council selection gate — mandatory for full and quick
|
|
45
45
|
|
|
46
46
|
This gate happens before any research tool, run envelope, network fetch or subagent. It is
|
|
47
47
|
the same in Claude Code, Codex, OpenCode and Grok Build.
|
|
48
48
|
|
|
49
|
-
1. Call `begin_council_selection` with the symbol, original request, language and
|
|
49
|
+
1. Call `begin_council_selection` with the symbol, original request, language, host and the
|
|
50
|
+
intended `council_mode` (`full` by default; exactly `quick` for quick mode). If
|
|
50
51
|
the request explicitly names masters, also pass those stable IDs as
|
|
51
52
|
`preselected_master_ids`; this highlights them but does not confirm them.
|
|
52
53
|
2. Show **every returned master individually, in the returned order and with its stable
|
|
53
54
|
number**. Each row must include `identity`, `method`, `best_for` and `maturity`; a school
|
|
54
55
|
name or a count is not a substitute for the individual catalog.
|
|
55
|
-
3. Ask for one submission.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
3. Ask for one submission. In full mode accept one number from `1..N`, combinations,
|
|
57
|
+
ranges, stable IDs/names, or `all`. In quick mode the same complete 26-seat catalog is
|
|
58
|
+
displayed, but the submission must contain **1..4 seats** and `all` / `select_all` is
|
|
59
|
+
forbidden. A host-native multi-select is a convenience only. If it is unavailable or
|
|
60
|
+
cannot show the full catalog, use the numbered text table and plain reply on every host.
|
|
61
|
+
4. If the original full-mode request already named masters or said `all`, prefill that choice but
|
|
60
62
|
**still show the full catalog and require this run's submission**. Do not silently reuse a
|
|
61
|
-
prior choice.
|
|
63
|
+
prior choice. For quick, prefill at most four named methods and ask the user to reduce an
|
|
64
|
+
oversized/`all` request to 1-4. The submitted choice is the confirmation; do not ask a
|
|
65
|
+
second confirmation.
|
|
62
66
|
5. Call `confirm_master_selection` with the returned `selection_id`, `catalog_hash`,
|
|
63
67
|
`display_ack: true`, and exactly one of `selected_master_ids`, `select_all: true`, or
|
|
64
68
|
`selection`. Retain the returned one-use `selection_receipt`.
|
|
65
|
-
6. Only now call `plan_visible_run
|
|
66
|
-
`
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
6. Only now call `plan_visible_run` (full only), `collect_evidence` (full only), or
|
|
70
|
+
`analyze_symbol`, passing that `selection_receipt` and the same symbol, prompt, language
|
|
71
|
+
and `council_mode`. Quick must use `analyze_symbol`. Do not also pass `masters` or
|
|
72
|
+
`masters_roster`; the receipt is authoritative and mode-bound. A full receipt cannot start
|
|
73
|
+
quick and a quick receipt cannot start full. For missing, expired, stale or consumed
|
|
74
|
+
receipts, or for a mode mismatch, restart from `begin_council_selection`.
|
|
69
75
|
|
|
70
76
|
`screen`, `options`, `news` and `market` are data-only modes and skip this gate. `quick` is
|
|
71
77
|
still a council judgment, so it never skips the gate; it changes the analyst fan-out, not the
|
|
@@ -85,13 +91,42 @@ master-selection contract.
|
|
|
85
91
|
conclusion, not an abstention.
|
|
86
92
|
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
87
93
|
changes what the bands depend on; it does not excuse leaving them out.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
6. Full mode fails closed at the evidence barrier. If any mandatory evidence role still
|
|
95
|
+
fails after its bounded parse repair, do not spend more model calls on masters, bull/bear
|
|
96
|
+
or PM. Persist an `incomplete` run naming the failed evidence and skipped downstream roles.
|
|
97
|
+
|
|
98
|
+
## Quick mode — plugin-managed headless quick_v1
|
|
99
|
+
|
|
100
|
+
Quick is an explicit, bounded council contract, not an automatic downgrade of full and not a
|
|
101
|
+
visible-host orchestration. `plan_visible_run` rejects `council_mode=quick`; run it through
|
|
102
|
+
plugin-managed headless `analyze_symbol` so the server can enforce the deadline.
|
|
103
|
+
|
|
104
|
+
1. Complete Stage 0 with `council_mode: "quick"`; display all 26 methods and confirm 1-4.
|
|
105
|
+
2. Call `analyze_symbol` once with the exact same prompt/language/mode and one-use receipt,
|
|
106
|
+
`dry_run:false`, `wait_for_completion:false`, and optionally `total_timeout_ms` no greater
|
|
107
|
+
than `600000`. Do not pass `tasks`: quick fixes and starts these four roles in parallel:
|
|
108
|
+
`market_data`, `earnings_deep_dive`, `valuation_long_short`,
|
|
109
|
+
`news_industry_management`.
|
|
110
|
+
3. The news role covers the highest-impact company and industry developments from the 120
|
|
111
|
+
days ending at `as_of`; future, undated and older items are excluded from recent news.
|
|
112
|
+
4. The hard end-to-end budget starts with the durable queued run and includes a 20-second
|
|
113
|
+
grounding wait, evidence workers capped at 210 seconds each, up to four master workers in
|
|
114
|
+
parallel capped at 90 seconds each, one bull/bear statement round in parallel capped at
|
|
115
|
+
90 seconds per side, one short PM capped at 90 seconds, retries and a 20-second
|
|
116
|
+
finalization reserve. Callers may lower the total but never raise it above 600000 ms.
|
|
117
|
+
5. No round-2 rebuttal, round-3 exact Q&A or adversarial verifier fan-out runs. Scoped source
|
|
118
|
+
IDs are still checked. The report uses `quick_v1`, not `full_v2`, and
|
|
119
|
+
`full_council_equivalent` is false.
|
|
120
|
+
6. Poll the same run with `read_run`; never create a replacement run. Terminal statuses are
|
|
121
|
+
`complete`, `degraded`, `incomplete`, `needs_verification`, `needs_revision`, and `failed`.
|
|
122
|
+
7. `degraded` is a real quick terminal state, not success renamed: at least 2 of 4 evidence
|
|
123
|
+
roles completed, every failed role has a sanitized recorded packet/diagnostic, at least
|
|
124
|
+
one bull/bear side completed, the PM completed and all selected methods were recorded.
|
|
125
|
+
The system-owned degraded ledger and handoff must name every degraded task/side and cause.
|
|
126
|
+
8. The concise handoff must include rating/winner/confidence, every selected stable master ID
|
|
127
|
+
and stance, all four analyst statuses and summaries, dated recent news, valuation/position,
|
|
128
|
+
data gaps and artifact paths. Method-seat output is a recorded lens result, never a quote
|
|
129
|
+
from the named person. State explicitly that quick is not equivalent to full council.
|
|
95
130
|
|
|
96
131
|
## Screen mode
|
|
97
132
|
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "AlphaCouncil plugins for public-equity research.",
|
|
9
|
-
"version": "0.9.
|
|
9
|
+
"version": "0.9.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.9.
|
|
16
|
+
"version": "0.9.1",
|
|
17
17
|
"author": {
|
|
18
18
|
"name": "Zhao73"
|
|
19
19
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "alphacouncil-agent",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.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"
|
package/.grok/commands/alpha.md
CHANGED
|
@@ -13,7 +13,7 @@ Request: **$ARGUMENTS**
|
|
|
13
13
|
|---|---|
|
|
14
14
|
| *(empty)* | Print the mode table below and stop. Do not start a run. |
|
|
15
15
|
| a ticker alone, or a question | **Full council.** Go to "Full council" below. |
|
|
16
|
-
| ticker + `quick` | The `
|
|
16
|
+
| ticker + `quick` | The plugin-managed headless `quick_v1` council: 4 fixed analysts, 1-4 selected methods, one parallel bull/bear round and a short PM inside a hard 10-minute ceiling. |
|
|
17
17
|
| ticker + `screen` | `screen_ticker` only. No language-model judgment, no subagents. |
|
|
18
18
|
| ticker + `options` | `get_options_chain` only. |
|
|
19
19
|
| ticker + `news` | `get_news` on the symbol, and on its CIK when it is a US filer. |
|
|
@@ -23,7 +23,7 @@ When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
/alpha <TICKER> full council — shows every master, then asks which to run
|
|
26
|
-
/alpha <TICKER> quick 4 analysts +
|
|
26
|
+
/alpha <TICKER> quick quick_v1: 4 analysts incl. news + 1-4 masters + 1 parallel debate round (<=10m)
|
|
27
27
|
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
28
|
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
29
|
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
@@ -38,34 +38,40 @@ Any listed equity. Filings-based modes need a US filer; for other markets say wh
|
|
|
38
38
|
is and use `market_coverage`, rather than returning nothing.
|
|
39
39
|
|
|
40
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
41
|
-
they cost nothing beyond this turn.
|
|
42
|
-
|
|
41
|
+
they cost nothing beyond this turn. Council modes can launch model workers; selected method
|
|
42
|
+
seats may instead complete deterministically or return a recorded `out_of_scope` result.
|
|
43
43
|
|
|
44
44
|
## Council selection gate — mandatory for full and quick
|
|
45
45
|
|
|
46
46
|
This gate happens before any research tool, run envelope, network fetch or subagent. It is
|
|
47
47
|
the same in Claude Code, Codex, OpenCode and Grok Build.
|
|
48
48
|
|
|
49
|
-
1. Call `begin_council_selection` with the symbol, original request, language and
|
|
49
|
+
1. Call `begin_council_selection` with the symbol, original request, language, host and the
|
|
50
|
+
intended `council_mode` (`full` by default; exactly `quick` for quick mode). If
|
|
50
51
|
the request explicitly names masters, also pass those stable IDs as
|
|
51
52
|
`preselected_master_ids`; this highlights them but does not confirm them.
|
|
52
53
|
2. Show **every returned master individually, in the returned order and with its stable
|
|
53
54
|
number**. Each row must include `identity`, `method`, `best_for` and `maturity`; a school
|
|
54
55
|
name or a count is not a substitute for the individual catalog.
|
|
55
|
-
3. Ask for one submission.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
3. Ask for one submission. In full mode accept one number from `1..N`, combinations,
|
|
57
|
+
ranges, stable IDs/names, or `all`. In quick mode the same complete 26-seat catalog is
|
|
58
|
+
displayed, but the submission must contain **1..4 seats** and `all` / `select_all` is
|
|
59
|
+
forbidden. A host-native multi-select is a convenience only. If it is unavailable or
|
|
60
|
+
cannot show the full catalog, use the numbered text table and plain reply on every host.
|
|
61
|
+
4. If the original full-mode request already named masters or said `all`, prefill that choice but
|
|
60
62
|
**still show the full catalog and require this run's submission**. Do not silently reuse a
|
|
61
|
-
prior choice.
|
|
63
|
+
prior choice. For quick, prefill at most four named methods and ask the user to reduce an
|
|
64
|
+
oversized/`all` request to 1-4. The submitted choice is the confirmation; do not ask a
|
|
65
|
+
second confirmation.
|
|
62
66
|
5. Call `confirm_master_selection` with the returned `selection_id`, `catalog_hash`,
|
|
63
67
|
`display_ack: true`, and exactly one of `selected_master_ids`, `select_all: true`, or
|
|
64
68
|
`selection`. Retain the returned one-use `selection_receipt`.
|
|
65
|
-
6. Only now call `plan_visible_run
|
|
66
|
-
`
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
6. Only now call `plan_visible_run` (full only), `collect_evidence` (full only), or
|
|
70
|
+
`analyze_symbol`, passing that `selection_receipt` and the same symbol, prompt, language
|
|
71
|
+
and `council_mode`. Quick must use `analyze_symbol`. Do not also pass `masters` or
|
|
72
|
+
`masters_roster`; the receipt is authoritative and mode-bound. A full receipt cannot start
|
|
73
|
+
quick and a quick receipt cannot start full. For missing, expired, stale or consumed
|
|
74
|
+
receipts, or for a mode mismatch, restart from `begin_council_selection`.
|
|
69
75
|
|
|
70
76
|
`screen`, `options`, `news` and `market` are data-only modes and skip this gate. `quick` is
|
|
71
77
|
still a council judgment, so it never skips the gate; it changes the analyst fan-out, not the
|
|
@@ -85,13 +91,42 @@ master-selection contract.
|
|
|
85
91
|
conclusion, not an abstention.
|
|
86
92
|
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
87
93
|
changes what the bands depend on; it does not excuse leaving them out.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
6. Full mode fails closed at the evidence barrier. If any mandatory evidence role still
|
|
95
|
+
fails after its bounded parse repair, do not spend more model calls on masters, bull/bear
|
|
96
|
+
or PM. Persist an `incomplete` run naming the failed evidence and skipped downstream roles.
|
|
97
|
+
|
|
98
|
+
## Quick mode — plugin-managed headless quick_v1
|
|
99
|
+
|
|
100
|
+
Quick is an explicit, bounded council contract, not an automatic downgrade of full and not a
|
|
101
|
+
visible-host orchestration. `plan_visible_run` rejects `council_mode=quick`; run it through
|
|
102
|
+
plugin-managed headless `analyze_symbol` so the server can enforce the deadline.
|
|
103
|
+
|
|
104
|
+
1. Complete Stage 0 with `council_mode: "quick"`; display all 26 methods and confirm 1-4.
|
|
105
|
+
2. Call `analyze_symbol` once with the exact same prompt/language/mode and one-use receipt,
|
|
106
|
+
`dry_run:false`, `wait_for_completion:false`, and optionally `total_timeout_ms` no greater
|
|
107
|
+
than `600000`. Do not pass `tasks`: quick fixes and starts these four roles in parallel:
|
|
108
|
+
`market_data`, `earnings_deep_dive`, `valuation_long_short`,
|
|
109
|
+
`news_industry_management`.
|
|
110
|
+
3. The news role covers the highest-impact company and industry developments from the 120
|
|
111
|
+
days ending at `as_of`; future, undated and older items are excluded from recent news.
|
|
112
|
+
4. The hard end-to-end budget starts with the durable queued run and includes a 20-second
|
|
113
|
+
grounding wait, evidence workers capped at 210 seconds each, up to four master workers in
|
|
114
|
+
parallel capped at 90 seconds each, one bull/bear statement round in parallel capped at
|
|
115
|
+
90 seconds per side, one short PM capped at 90 seconds, retries and a 20-second
|
|
116
|
+
finalization reserve. Callers may lower the total but never raise it above 600000 ms.
|
|
117
|
+
5. No round-2 rebuttal, round-3 exact Q&A or adversarial verifier fan-out runs. Scoped source
|
|
118
|
+
IDs are still checked. The report uses `quick_v1`, not `full_v2`, and
|
|
119
|
+
`full_council_equivalent` is false.
|
|
120
|
+
6. Poll the same run with `read_run`; never create a replacement run. Terminal statuses are
|
|
121
|
+
`complete`, `degraded`, `incomplete`, `needs_verification`, `needs_revision`, and `failed`.
|
|
122
|
+
7. `degraded` is a real quick terminal state, not success renamed: at least 2 of 4 evidence
|
|
123
|
+
roles completed, every failed role has a sanitized recorded packet/diagnostic, at least
|
|
124
|
+
one bull/bear side completed, the PM completed and all selected methods were recorded.
|
|
125
|
+
The system-owned degraded ledger and handoff must name every degraded task/side and cause.
|
|
126
|
+
8. The concise handoff must include rating/winner/confidence, every selected stable master ID
|
|
127
|
+
and stance, all four analyst statuses and summaries, dated recent news, valuation/position,
|
|
128
|
+
data gaps and artifact paths. Method-seat output is a recorded lens result, never a quote
|
|
129
|
+
from the named person. State explicitly that quick is not equivalent to full council.
|
|
95
130
|
|
|
96
131
|
## Screen mode
|
|
97
132
|
|
|
@@ -13,7 +13,7 @@ Request: **$ARGUMENTS**
|
|
|
13
13
|
|---|---|
|
|
14
14
|
| *(empty)* | Print the mode table below and stop. Do not start a run. |
|
|
15
15
|
| a ticker alone, or a question | **Full council.** Go to "Full council" below. |
|
|
16
|
-
| ticker + `quick` | The `
|
|
16
|
+
| ticker + `quick` | The plugin-managed headless `quick_v1` council: 4 fixed analysts, 1-4 selected methods, one parallel bull/bear round and a short PM inside a hard 10-minute ceiling. |
|
|
17
17
|
| ticker + `screen` | `screen_ticker` only. No language-model judgment, no subagents. |
|
|
18
18
|
| ticker + `options` | `get_options_chain` only. |
|
|
19
19
|
| ticker + `news` | `get_news` on the symbol, and on its CIK when it is a US filer. |
|
|
@@ -23,7 +23,7 @@ When `$ARGUMENTS` is empty, print exactly this and stop:
|
|
|
23
23
|
|
|
24
24
|
```
|
|
25
25
|
/alpha <TICKER> full council — shows every master, then asks which to run
|
|
26
|
-
/alpha <TICKER> quick 4 analysts +
|
|
26
|
+
/alpha <TICKER> quick quick_v1: 4 analysts incl. news + 1-4 masters + 1 parallel debate round (<=10m)
|
|
27
27
|
/alpha <TICKER> screen mechanical filings screen only (no model spend)
|
|
28
28
|
/alpha <TICKER> options IV term structure, skew, positioning (no model spend)
|
|
29
29
|
/alpha <TICKER> news dated filings and headlines (no model spend)
|
|
@@ -38,34 +38,40 @@ Any listed equity. Filings-based modes need a US filer; for other markets say wh
|
|
|
38
38
|
is and use `market_coverage`, rather than returning nothing.
|
|
39
39
|
|
|
40
40
|
Say plainly that the four marked modes call keyless data tools and spawn no subagents, so
|
|
41
|
-
they cost nothing beyond this turn.
|
|
42
|
-
|
|
41
|
+
they cost nothing beyond this turn. Council modes can launch model workers; selected method
|
|
42
|
+
seats may instead complete deterministically or return a recorded `out_of_scope` result.
|
|
43
43
|
|
|
44
44
|
## Council selection gate — mandatory for full and quick
|
|
45
45
|
|
|
46
46
|
This gate happens before any research tool, run envelope, network fetch or subagent. It is
|
|
47
47
|
the same in Claude Code, Codex, OpenCode and Grok Build.
|
|
48
48
|
|
|
49
|
-
1. Call `begin_council_selection` with the symbol, original request, language and
|
|
49
|
+
1. Call `begin_council_selection` with the symbol, original request, language, host and the
|
|
50
|
+
intended `council_mode` (`full` by default; exactly `quick` for quick mode). If
|
|
50
51
|
the request explicitly names masters, also pass those stable IDs as
|
|
51
52
|
`preselected_master_ids`; this highlights them but does not confirm them.
|
|
52
53
|
2. Show **every returned master individually, in the returned order and with its stable
|
|
53
54
|
number**. Each row must include `identity`, `method`, `best_for` and `maturity`; a school
|
|
54
55
|
name or a count is not a substitute for the individual catalog.
|
|
55
|
-
3. Ask for one submission.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
3. Ask for one submission. In full mode accept one number from `1..N`, combinations,
|
|
57
|
+
ranges, stable IDs/names, or `all`. In quick mode the same complete 26-seat catalog is
|
|
58
|
+
displayed, but the submission must contain **1..4 seats** and `all` / `select_all` is
|
|
59
|
+
forbidden. A host-native multi-select is a convenience only. If it is unavailable or
|
|
60
|
+
cannot show the full catalog, use the numbered text table and plain reply on every host.
|
|
61
|
+
4. If the original full-mode request already named masters or said `all`, prefill that choice but
|
|
60
62
|
**still show the full catalog and require this run's submission**. Do not silently reuse a
|
|
61
|
-
prior choice.
|
|
63
|
+
prior choice. For quick, prefill at most four named methods and ask the user to reduce an
|
|
64
|
+
oversized/`all` request to 1-4. The submitted choice is the confirmation; do not ask a
|
|
65
|
+
second confirmation.
|
|
62
66
|
5. Call `confirm_master_selection` with the returned `selection_id`, `catalog_hash`,
|
|
63
67
|
`display_ack: true`, and exactly one of `selected_master_ids`, `select_all: true`, or
|
|
64
68
|
`selection`. Retain the returned one-use `selection_receipt`.
|
|
65
|
-
6. Only now call `plan_visible_run
|
|
66
|
-
`
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
6. Only now call `plan_visible_run` (full only), `collect_evidence` (full only), or
|
|
70
|
+
`analyze_symbol`, passing that `selection_receipt` and the same symbol, prompt, language
|
|
71
|
+
and `council_mode`. Quick must use `analyze_symbol`. Do not also pass `masters` or
|
|
72
|
+
`masters_roster`; the receipt is authoritative and mode-bound. A full receipt cannot start
|
|
73
|
+
quick and a quick receipt cannot start full. For missing, expired, stale or consumed
|
|
74
|
+
receipts, or for a mode mismatch, restart from `begin_council_selection`.
|
|
69
75
|
|
|
70
76
|
`screen`, `options`, `news` and `market` are data-only modes and skip this gate. `quick` is
|
|
71
77
|
still a council judgment, so it never skips the gate; it changes the analyst fan-out, not the
|
|
@@ -85,13 +91,42 @@ master-selection contract.
|
|
|
85
91
|
conclusion, not an abstention.
|
|
86
92
|
5. Give price bands with the condition attached to each. "The cycle position is undetermined"
|
|
87
93
|
changes what the bands depend on; it does not excuse leaving them out.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
6. Full mode fails closed at the evidence barrier. If any mandatory evidence role still
|
|
95
|
+
fails after its bounded parse repair, do not spend more model calls on masters, bull/bear
|
|
96
|
+
or PM. Persist an `incomplete` run naming the failed evidence and skipped downstream roles.
|
|
97
|
+
|
|
98
|
+
## Quick mode — plugin-managed headless quick_v1
|
|
99
|
+
|
|
100
|
+
Quick is an explicit, bounded council contract, not an automatic downgrade of full and not a
|
|
101
|
+
visible-host orchestration. `plan_visible_run` rejects `council_mode=quick`; run it through
|
|
102
|
+
plugin-managed headless `analyze_symbol` so the server can enforce the deadline.
|
|
103
|
+
|
|
104
|
+
1. Complete Stage 0 with `council_mode: "quick"`; display all 26 methods and confirm 1-4.
|
|
105
|
+
2. Call `analyze_symbol` once with the exact same prompt/language/mode and one-use receipt,
|
|
106
|
+
`dry_run:false`, `wait_for_completion:false`, and optionally `total_timeout_ms` no greater
|
|
107
|
+
than `600000`. Do not pass `tasks`: quick fixes and starts these four roles in parallel:
|
|
108
|
+
`market_data`, `earnings_deep_dive`, `valuation_long_short`,
|
|
109
|
+
`news_industry_management`.
|
|
110
|
+
3. The news role covers the highest-impact company and industry developments from the 120
|
|
111
|
+
days ending at `as_of`; future, undated and older items are excluded from recent news.
|
|
112
|
+
4. The hard end-to-end budget starts with the durable queued run and includes a 20-second
|
|
113
|
+
grounding wait, evidence workers capped at 210 seconds each, up to four master workers in
|
|
114
|
+
parallel capped at 90 seconds each, one bull/bear statement round in parallel capped at
|
|
115
|
+
90 seconds per side, one short PM capped at 90 seconds, retries and a 20-second
|
|
116
|
+
finalization reserve. Callers may lower the total but never raise it above 600000 ms.
|
|
117
|
+
5. No round-2 rebuttal, round-3 exact Q&A or adversarial verifier fan-out runs. Scoped source
|
|
118
|
+
IDs are still checked. The report uses `quick_v1`, not `full_v2`, and
|
|
119
|
+
`full_council_equivalent` is false.
|
|
120
|
+
6. Poll the same run with `read_run`; never create a replacement run. Terminal statuses are
|
|
121
|
+
`complete`, `degraded`, `incomplete`, `needs_verification`, `needs_revision`, and `failed`.
|
|
122
|
+
7. `degraded` is a real quick terminal state, not success renamed: at least 2 of 4 evidence
|
|
123
|
+
roles completed, every failed role has a sanitized recorded packet/diagnostic, at least
|
|
124
|
+
one bull/bear side completed, the PM completed and all selected methods were recorded.
|
|
125
|
+
The system-owned degraded ledger and handoff must name every degraded task/side and cause.
|
|
126
|
+
8. The concise handoff must include rating/winner/confidence, every selected stable master ID
|
|
127
|
+
and stance, all four analyst statuses and summaries, dated recent news, valuation/position,
|
|
128
|
+
data gaps and artifact paths. Method-seat output is a recorded lens result, never a quote
|
|
129
|
+
from the named person. State explicitly that quick is not equivalent to full council.
|
|
95
130
|
|
|
96
131
|
## Screen mode
|
|
97
132
|
|
package/AGENTS.md
CHANGED
|
@@ -8,17 +8,55 @@ For anti-laziness governance, also follow `skills/agent-skills-governance/SKILL.
|
|
|
8
8
|
|
|
9
9
|
Run `npm run check` after any code or prompt change.
|
|
10
10
|
|
|
11
|
+
## Current Release Boundary
|
|
12
|
+
|
|
13
|
+
Package/plugin version `0.9.1` is a non-GA preview published to npm's `next` dist-tag and
|
|
14
|
+
marked as a GitHub prerelease. Its build channel remains `solo_test`: 26 physical provisional
|
|
15
|
+
PersonaPack v3 packs, 26 `operator_lens` seats, 52 `provisional_derived_proxy` tools,
|
|
16
|
+
0 operational seats and 0 validated `method_model` seats. Do not present this feature
|
|
17
|
+
release, a passing quick report or a packaged smoke as PersonaPack production GA.
|
|
18
|
+
|
|
19
|
+
## Council Modes
|
|
20
|
+
|
|
21
|
+
`full` is the default and uses the `full_v2` contract. It requires all eight mandatory
|
|
22
|
+
evidence roles, every selected method, the three-round Bull/Bear cross-exam and PM. If any
|
|
23
|
+
mandatory evidence role still fails after its one bounded parse-only repair, persist the
|
|
24
|
+
failure/diagnostic artifacts, skip method/debate/PM model calls and terminate `incomplete`
|
|
25
|
+
before downstream synthesis. Never auto-downgrade that run to quick.
|
|
26
|
+
|
|
27
|
+
`quick` is explicit and uses `quick_v1`. It can run only through plugin-managed headless
|
|
28
|
+
`analyze_symbol`; `plan_visible_run` rejects it. Quick launches the fixed four evidence roles
|
|
29
|
+
`market_data`, `earnings_deep_dive`, `valuation_long_short`, and
|
|
30
|
+
`news_industry_management` in parallel; 1-4 selected methods in parallel; one Bull and one
|
|
31
|
+
Bear statement in parallel; then one short PM. It has no rebuttal/Q&A rounds and no
|
|
32
|
+
adversarial `source_fidelity`/`rederivation`/`refuter` fan-out.
|
|
33
|
+
|
|
34
|
+
Quick company/industry news must be dated within the 120 days ending at `as_of`. Future,
|
|
35
|
+
undated and older items are gaps, not recent news. Its hard queue-to-persistence ceiling is
|
|
36
|
+
600000 ms: grounding wait 20s; each evidence worker 210s; each selected-method worker 90s;
|
|
37
|
+
Bull and Bear 90s per side; PM 90s; final assembly/persistence reserve 20s. Retry time is
|
|
38
|
+
inside the same caps. The ceiling may be lowered, never raised.
|
|
39
|
+
|
|
40
|
+
Quick may terminate `degraded` only under its documented minimum-coverage rule and one
|
|
41
|
+
system-owned idempotent degraded ledger. `report_quality=passed` validates `quick_v1`
|
|
42
|
+
structure only; it does not turn degraded into complete or imply full-council equivalence.
|
|
43
|
+
Method-seat output is a recorded provisional lens result, never a quotation from the named
|
|
44
|
+
person.
|
|
45
|
+
|
|
11
46
|
## Hosts
|
|
12
47
|
|
|
13
48
|
The MCP server is the load-bearing integration on every host: it reads `personas/` directly,
|
|
14
49
|
so a host that ignores the generated agent files still gets correct prompts.
|
|
15
50
|
|
|
16
51
|
Every host also follows the same mandatory master-selection protocol for a full or quick
|
|
17
|
-
council. Call `begin_council_selection
|
|
18
|
-
identity, method and `best_for`, collect
|
|
19
|
-
`confirm_master_selection` with `display_ack: true`.
|
|
20
|
-
|
|
21
|
-
|
|
52
|
+
council. Call `begin_council_selection` with the intended `council_mode`, display all 26
|
|
53
|
+
returned entries with number, identity, method and `best_for`, collect one submission, then
|
|
54
|
+
call `confirm_master_selection` with `display_ack: true`. Full accepts numbers, ranges,
|
|
55
|
+
stable IDs or `all`; quick accepts exactly 1-4 distinct methods and rejects `all` and
|
|
56
|
+
`select_all`. Existing names in the request are only a prefill; the full catalog is still
|
|
57
|
+
shown. Only the returned one-use, mode-bound `selection_receipt`, reused with the same
|
|
58
|
+
symbol, prompt, language and mode, may authorize the applicable execution tool. A full
|
|
59
|
+
receipt cannot launch quick and a quick receipt cannot launch full. A host-native
|
|
22
60
|
multi-select is optional UI sugar; the numbered text fallback is mandatory on Claude Code,
|
|
23
61
|
Codex, OpenCode and Grok Build. Data-only `screen`, `options`, `news` and `market` modes are
|
|
24
62
|
the only `/alpha` routes that skip this gate.
|
|
@@ -89,7 +127,7 @@ rather than four in a menu of a hundred.
|
|
|
89
127
|
| Invocation | What runs | Model spend |
|
|
90
128
|
|---|---|---|
|
|
91
129
|
| `/alpha <ticker>` | Shows every master, confirms `1..N`/ranges/`all`, then runs the full council | one subagent per selected seat |
|
|
92
|
-
| `/alpha <ticker> quick` |
|
|
130
|
+
| `/alpha <ticker> quick` | Shows all 26, confirms 1-4 (no `all`), then plugin-managed `quick_v1` (≤10m) | varies with selection |
|
|
93
131
|
| `/alpha <ticker> screen` | Mechanical filings screen only | **none** |
|
|
94
132
|
| `/alpha <ticker> options` | IV term structure, skew, positioning | **none** |
|
|
95
133
|
| `/alpha <ticker> news` | Dated filings and headlines | **none** |
|
|
@@ -98,7 +136,9 @@ rather than four in a menu of a hundred.
|
|
|
98
136
|
|
|
99
137
|
The four marked **none** call keyless data tools and spawn no subagents, so they cost
|
|
100
138
|
nothing beyond the turn you type them in. Full and quick are council modes: both require a
|
|
101
|
-
fresh selection receipt
|
|
139
|
+
fresh mode-bound selection receipt. Quick must poll the single durable `run_id` returned by
|
|
140
|
+
`analyze_symbol(wait_for_completion=false)` through `read_run`; never emulate quick with
|
|
141
|
+
visible agents or create a replacement run when it is slow.
|
|
102
142
|
|
|
103
143
|
| Host | Where it reads them |
|
|
104
144
|
|---|---|
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,58 @@
|
|
|
2
2
|
|
|
3
3
|
Notable changes per release. Dates are UTC.
|
|
4
4
|
|
|
5
|
+
## [0.9.1] — 2026-07-28
|
|
6
|
+
|
|
7
|
+
This is a **non-GA quick-council preview** published on npm's `next` dist-tag and as a
|
|
8
|
+
GitHub prerelease. The bare SemVer does not promote the PersonaPack assurance level: the
|
|
9
|
+
build profile remains `solo_test`, `production_eligible=false` and
|
|
10
|
+
`method_model_eligible=false`; all 26 named-investor packs remain provisional
|
|
11
|
+
`operator_lens`, not validated simulations of those people.
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- A first-class `council_mode=quick` with a non-overridable ten-minute end-to-end ceiling.
|
|
16
|
+
It runs four fixed evidence seats in parallel (`market_data`, `earnings_deep_dive`,
|
|
17
|
+
`valuation_long_short`, `news_industry_management`), one to four selected method seats,
|
|
18
|
+
one parallel Bull/Bear statement, and one short PM synthesis.
|
|
19
|
+
- `quick_v1`, a separate 13-section report contract. It records
|
|
20
|
+
`full_council_equivalent=false`, one expected debate round and
|
|
21
|
+
`adversarial_verification=not_run`; a passing quick report is never represented as a
|
|
22
|
+
passing full council.
|
|
23
|
+
- A mode-bound selection receipt. Quick still displays the complete 26-seat catalog, but
|
|
24
|
+
accepts at most four explicit seats and rejects `all`; a quick receipt cannot start full.
|
|
25
|
+
- An explicit terminal `degraded` state. A quick run may deliver when at least two evidence
|
|
26
|
+
seats and at least one debate side succeeded and the PM plus all selected methods were
|
|
27
|
+
recorded. A system-owned ledger names every failed/degraded seat and reason even when the
|
|
28
|
+
report-structure check passes.
|
|
29
|
+
- A 120-day, `as_of`-bounded recent-news handoff. Undated, future and stale sources are
|
|
30
|
+
excluded and counted as gaps instead of being mislabeled as recent news.
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
|
|
34
|
+
- Full analysis now fails fast before method, debate and PM model calls when mandatory
|
|
35
|
+
evidence remains missing. The older RKLB runs spent another 16–43 minutes after the
|
|
36
|
+
result was already guaranteed to be incomplete.
|
|
37
|
+
- Cross-seat prompts no longer resend raw transcripts or full report Markdown. Quick
|
|
38
|
+
evidence keeps a bounded claim/source projection with referential integrity; full PM
|
|
39
|
+
context retains bounded three-round summaries and exact Q&A while dropping artifact-only
|
|
40
|
+
raw text.
|
|
41
|
+
- Worker and synthesis budgets share one quick deadline: grounding wait 20 seconds,
|
|
42
|
+
evidence up to 210 seconds in one four-seat wave, up to four method seats in one 90-second
|
|
43
|
+
wave, Bull/Bear in one parallel 90-second wave, PM up to 90 seconds, and 20 seconds
|
|
44
|
+
reserved for deterministic finalization. These are ceilings, not a success guarantee.
|
|
45
|
+
- Failure fallback no longer emits a synthetic `Hold`; it records
|
|
46
|
+
`NEEDS_MANAGER_REVIEW`, `decision_available=false` and no rating.
|
|
47
|
+
- `degraded` is recognized as terminal during polling and startup recovery. Evidence
|
|
48
|
+
telemetry uses `evidence_degraded` rather than the misleading `evidence_complete` event.
|
|
49
|
+
- `npm publish --dry-run` no longer leaks `npm_config_dry_run` into the nested package-parity
|
|
50
|
+
`npm pack`, which previously returned metadata without creating the tarball and caused a
|
|
51
|
+
false release failure.
|
|
52
|
+
|
|
53
|
+
The production GA gate remains intentionally failing and is not bypassed by this release.
|
|
54
|
+
Formal GA requires a later monotonic version such as `0.10.0` or `1.0.0`, plus the existing
|
|
55
|
+
source, method-model, experiment, physical-host and signed-release evidence.
|
|
56
|
+
|
|
5
57
|
## [0.9.0-solo-test.3] — 2026-07-27
|
|
6
58
|
|
|
7
59
|
This is a post-acceptance hotfix for the **0.9.0 solo-test prerelease** channel. An
|