alphacouncil-agent 0.6.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/CHANGELOG.md +89 -0
- package/data/social-handles.json +25 -0
- package/docs/persona-v2-spec.md +278 -0
- package/docs/personas.md +1 -1
- package/docs/plans/0.8.0-master-models.md +155 -0
- package/docs/roadmap.md +104 -0
- package/knowledge/masters/master_buffett/manifest.json +209 -0
- package/knowledge/masters/master_duan_yongping/manifest.json +201 -0
- package/knowledge/masters/master_marks/manifest.json +182 -0
- package/knowledge/masters/master_taleb/manifest.json +182 -0
- package/mcp/lib/constants.mjs +4 -0
- package/mcp/lib/gates.mjs +3 -1
- package/mcp/lib/markdown.mjs +189 -0
- package/mcp/lib/orchestrator.mjs +73 -7
- package/mcp/lib/packets.mjs +42 -1
- package/mcp/lib/personas-v2/ablation.mjs +148 -0
- package/mcp/lib/personas-v2/bridge.mjs +187 -0
- package/mcp/lib/personas-v2/loader.mjs +118 -0
- package/mcp/lib/personas-v2/memory.mjs +156 -0
- package/mcp/lib/personas-v2/policy.mjs +187 -0
- package/mcp/lib/personas-v2/slice.mjs +96 -0
- package/mcp/lib/rpc.mjs +56 -6
- package/mcp/lib/social.mjs +32 -1
- package/package.json +6 -1
- package/personas/masters/masters-adversarial/{short_seller.md → forensic_short.md} +20 -5
- package/schemas/persona-v2.schema.json +180 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://github.com/Zhao73/alphacouncil-agent/schemas/persona-v2.schema.json",
|
|
4
|
+
"title": "Persona v2 method model",
|
|
5
|
+
"description": "A versioned, falsifiable model of a publicly documented investment method. Never a claim to hold a person's judgment: a model that does not clear the admission bar is an Operator Lens and is labelled as one.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["schema_version", "persona_id", "display_name", "kind", "admission", "decision_policy"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"schema_version": { "const": 2 },
|
|
11
|
+
"persona_id": { "type": "string", "pattern": "^[a-z0-9_]{2,48}$" },
|
|
12
|
+
"display_name": {
|
|
13
|
+
"type": "object",
|
|
14
|
+
"description": "Must read as a method, not a person: 'Buffett Method Model', not 'Warren Buffett'.",
|
|
15
|
+
"required": ["en"],
|
|
16
|
+
"additionalProperties": { "type": "string" }
|
|
17
|
+
},
|
|
18
|
+
"kind": {
|
|
19
|
+
"enum": ["method_model", "operator_lens"],
|
|
20
|
+
"description": "method_model requires a passing admission block; operator_lens is the honest downgrade when the source corpus is thin."
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
"admission": {
|
|
24
|
+
"type": "object",
|
|
25
|
+
"description": "Counted from the loaded corpus, not asserted. Falling short downgrades kind to operator_lens.",
|
|
26
|
+
"required": ["propositions", "primary_sources", "decision_cases", "failure_cases", "vetoes", "counterfactuals"],
|
|
27
|
+
"additionalProperties": false,
|
|
28
|
+
"properties": {
|
|
29
|
+
"propositions": { "type": "integer", "minimum": 0 },
|
|
30
|
+
"primary_sources": { "type": "integer", "minimum": 0 },
|
|
31
|
+
"decision_cases": { "type": "integer", "minimum": 0 },
|
|
32
|
+
"failure_cases": { "type": "integer", "minimum": 0, "description": "Documented misses and changes of mind. These define the boundary of a method more sharply than its aphorisms do." },
|
|
33
|
+
"vetoes": { "type": "integer", "minimum": 0 },
|
|
34
|
+
"counterfactuals": { "type": "integer", "minimum": 0 }
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
"doctrine": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"required": ["rule_id", "claim", "scope", "trigger", "action", "source_ids", "confidence", "version"],
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"properties": {
|
|
45
|
+
"rule_id": { "type": "string", "pattern": "^[a-z0-9_]+\\.[a-z0-9_]+\\.[0-9]{2,}$" },
|
|
46
|
+
"claim": { "type": "string", "minLength": 8 },
|
|
47
|
+
"scope": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
|
|
48
|
+
"trigger": { "type": "string", "minLength": 3 },
|
|
49
|
+
"action": { "enum": ["out_of_scope", "veto", "require_evidence", "downweight", "upweight", "watch", "size_cap"] },
|
|
50
|
+
"source_ids": { "type": "array", "items": { "type": "string" }, "minItems": 1, "description": "A rule with no source cannot be loaded." },
|
|
51
|
+
"confidence": { "enum": ["high", "medium", "low"] },
|
|
52
|
+
"counterexamples": { "type": "array", "items": { "type": "string" } },
|
|
53
|
+
"version": { "type": "integer", "minimum": 1 }
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
"sources": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"required": ["id", "grade", "title", "url", "date"],
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"properties": {
|
|
65
|
+
"id": { "type": "string" },
|
|
66
|
+
"grade": {
|
|
67
|
+
"enum": ["A", "B", "C", "D", "E"],
|
|
68
|
+
"description": "Only A and B may define a core decision rule. C supports. D stages. E is rejected."
|
|
69
|
+
},
|
|
70
|
+
"title": { "type": "string" },
|
|
71
|
+
"url": { "type": "string" },
|
|
72
|
+
"date": { "type": "string" },
|
|
73
|
+
"excerpt": { "type": "string", "maxLength": 400, "description": "Minimal necessary quotation only. The repository stores method propositions, not copyrighted passages." }
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
"research_policy": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"description": "The private query plan run on top of the frozen fact pack. Invisible to other seats until first submission.",
|
|
81
|
+
"additionalProperties": false,
|
|
82
|
+
"properties": {
|
|
83
|
+
"priorities": { "type": "array", "items": { "type": "string" } },
|
|
84
|
+
"must_recompute": { "type": "array", "items": { "type": "string" }, "description": "Load-bearing figures this model recomputes itself. It may disagree with a derived number; it may never silently overwrite a filed one." },
|
|
85
|
+
"must_seek_disconfirming": { "type": "array", "items": { "type": "string" } },
|
|
86
|
+
"evidence_slice": { "type": "array", "items": { "type": "string" } }
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
"decision_policy": {
|
|
91
|
+
"type": "object",
|
|
92
|
+
"required": ["eligibility", "stance_bands"],
|
|
93
|
+
"additionalProperties": false,
|
|
94
|
+
"properties": {
|
|
95
|
+
"eligibility": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"description": "Evaluated before any model call. Failing it costs nothing and says more than an essay would.",
|
|
98
|
+
"required": ["requires", "on_fail"],
|
|
99
|
+
"additionalProperties": false,
|
|
100
|
+
"properties": {
|
|
101
|
+
"requires": { "type": "array", "items": { "type": "string" }, "minItems": 1 },
|
|
102
|
+
"on_fail": { "const": "out_of_scope" }
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"scoring": {
|
|
106
|
+
"type": "object",
|
|
107
|
+
"required": ["max_score", "rules"],
|
|
108
|
+
"additionalProperties": false,
|
|
109
|
+
"properties": {
|
|
110
|
+
"max_score": { "type": "number", "exclusiveMinimum": 0 },
|
|
111
|
+
"rules": {
|
|
112
|
+
"type": "array",
|
|
113
|
+
"items": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"required": ["id", "metric", "op", "value", "points", "provenance"],
|
|
116
|
+
"additionalProperties": false,
|
|
117
|
+
"properties": {
|
|
118
|
+
"id": { "type": "string" },
|
|
119
|
+
"metric": { "type": "string" },
|
|
120
|
+
"op": { "enum": [">=", ">", "<=", "<", "==", "!="] },
|
|
121
|
+
"value": { "type": ["number", "string", "boolean"] },
|
|
122
|
+
"points": { "type": "number" },
|
|
123
|
+
"provenance": { "type": "string", "minLength": 8, "description": "Which letter, book or talk fixes this threshold. Determinism relocates uncertainty into the constants; provenance is the mitigation." }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"stance_bands": {
|
|
130
|
+
"type": "array",
|
|
131
|
+
"description": "Score-to-stance mapping. The model narrates a stance it did not choose.",
|
|
132
|
+
"items": {
|
|
133
|
+
"type": "object",
|
|
134
|
+
"required": ["min_ratio", "stance"],
|
|
135
|
+
"additionalProperties": false,
|
|
136
|
+
"properties": {
|
|
137
|
+
"min_ratio": { "type": "number", "minimum": 0, "maximum": 1 },
|
|
138
|
+
"stance": { "enum": ["constructive", "cautious", "opposed", "out_of_scope"] }
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"minItems": 1
|
|
142
|
+
},
|
|
143
|
+
"vetoes": {
|
|
144
|
+
"type": "array",
|
|
145
|
+
"items": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"required": ["id", "condition", "source_ids"],
|
|
148
|
+
"additionalProperties": false,
|
|
149
|
+
"properties": {
|
|
150
|
+
"id": { "type": "string" },
|
|
151
|
+
"condition": { "type": "string" },
|
|
152
|
+
"source_ids": { "type": "array", "items": { "type": "string" }, "minItems": 1 }
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
"memory_policy": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"additionalProperties": false,
|
|
162
|
+
"properties": {
|
|
163
|
+
"horizon_days": { "type": "integer", "minimum": 1, "description": "When a prediction expires and a postmortem may be written. Earlier writes are refused." },
|
|
164
|
+
"belief_decay_days": { "type": "integer", "minimum": 1 },
|
|
165
|
+
"leak_rule": {
|
|
166
|
+
"const": "public_at <= as_of AND memory_created_at <= as_of",
|
|
167
|
+
"description": "Both clauses are required. Without the second a model reads the future through its own diary and every backtest built on it is fiction."
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
|
|
172
|
+
"tools": { "type": "array", "items": { "type": "string" } },
|
|
173
|
+
|
|
174
|
+
"voice": {
|
|
175
|
+
"type": "object",
|
|
176
|
+
"description": "Style only. Voice may not participate in fact extraction, computation, or signal generation.",
|
|
177
|
+
"additionalProperties": { "type": "string" }
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|