the-high-council 0.6.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/.env.example +19 -0
- package/CONTRIBUTING.md +41 -0
- package/LICENSE +21 -0
- package/PERSONAS.md +51 -0
- package/README.md +499 -0
- package/TROUBLESHOOTING.md +45 -0
- package/chains/cheap.json +35 -0
- package/chains/gp-judge-v1.json +80 -0
- package/chains/idea-open-c2.json +106 -0
- package/chains/mock-budget.json +15 -0
- package/chains/mock-debate.json +59 -0
- package/chains/mock-external.json +59 -0
- package/chains/mock-open.json +60 -0
- package/chains/mock-proposals.json +57 -0
- package/chains/mock-questions-wait.json +63 -0
- package/chains/mock-questions.json +63 -0
- package/chains/mock-relay.json +42 -0
- package/chains/mock-unanimous.json +42 -0
- package/chains/mock.json +17 -0
- package/chains/plan-auto-mistral.json +101 -0
- package/chains/plan-auto.json +131 -0
- package/chains/plan-cheap.json +82 -0
- package/chains/plan-debate-c2.json +86 -0
- package/chains/plan-debate-open-c2.json +98 -0
- package/chains/plan-debate-roles-c1.json +149 -0
- package/chains/plan-debate.json +116 -0
- package/chains/plan-fast.json +66 -0
- package/chains/plan-proposals-best-of-5.json +98 -0
- package/chains/plan-proposals.json +96 -0
- package/chains/plan-relay.json +83 -0
- package/chains/plan-thorough.json +82 -0
- package/chains/plan-unanimous.json +82 -0
- package/chains/seven-cheap.json +67 -0
- package/chains/seven.json +60 -0
- package/chains/smo-v2-cheap.json +67 -0
- package/chains/smo.json +50 -0
- package/chains/verify.json +40 -0
- package/package.json +55 -0
- package/src/board-export.js +77 -0
- package/src/budget.js +126 -0
- package/src/buys.js +44 -0
- package/src/cache-integrity.js +38 -0
- package/src/chain-lint.js +107 -0
- package/src/chain.js +880 -0
- package/src/cli.js +1031 -0
- package/src/cost-forecast.js +70 -0
- package/src/cost.js +139 -0
- package/src/errors.js +82 -0
- package/src/http-server.js +349 -0
- package/src/integrity.js +48 -0
- package/src/key-redaction.js +97 -0
- package/src/mcp/server.js +319 -0
- package/src/name-lint.js +186 -0
- package/src/partial-deliverable.js +38 -0
- package/src/peer-claim.js +98 -0
- package/src/personas.js +54 -0
- package/src/preflight.js +84 -0
- package/src/pricing.json +120 -0
- package/src/providers.js +268 -0
- package/src/replay.js +40 -0
- package/src/resume-brief.js +114 -0
- package/src/role-diagnostics.js +181 -0
- package/src/roles.js +520 -0
- package/src/schema-version.js +39 -0
- package/src/scope-freeze.js +35 -0
- package/src/seat-role.js +96 -0
- package/src/shape-rounds.js +58 -0
- package/src/spend.js +193 -0
- package/src/stage-contract.js +223 -0
- package/src/stage-submission.js +53 -0
- package/src/tie-break.js +94 -0
- package/src/ui/app.js +139 -0
- package/src/ui/index.html +43 -0
- package/src/ui/parse.js +101 -0
- package/src/ui/server.js +117 -0
- package/src/ui/style.css +37 -0
- package/src/verdict-stats.js +267 -0
- package/src/withdrawal-ledger.js +47 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
Every code below is printed wherever it happens - in your terminal, in a run's own
|
|
4
|
+
`run.log` - so you can search for it here. `degradable` means you can fix it and
|
|
5
|
+
keep going; `fatal` means this particular invocation stops here.
|
|
6
|
+
|
|
7
|
+
## COUNCIL-E001 - Missing API key (degradable)
|
|
8
|
+
|
|
9
|
+
The "\<provider\>" API key isn't set, so the chain can't call that lab. An API key
|
|
10
|
+
is what proves to that provider a request is yours to pay for - without it, every
|
|
11
|
+
call to that lab fails before it starts.
|
|
12
|
+
|
|
13
|
+
**Fix:** set the matching environment variable in your `.env` file. See
|
|
14
|
+
[README.md#setup](README.md#setup) for the full list of variable names.
|
|
15
|
+
|
|
16
|
+
## COUNCIL-E002 - Unpriced model (degradable)
|
|
17
|
+
|
|
18
|
+
A provider/model pair has no listed price, so its cost can't be shown or added to
|
|
19
|
+
your spend total. A price is the per-token rate this program uses to add up what
|
|
20
|
+
a run will cost before you pay for it.
|
|
21
|
+
|
|
22
|
+
**Fix:** add an entry for that provider/model to `src/pricing.json`. See
|
|
23
|
+
[README.md#the-spend-cap](README.md#the-spend-cap).
|
|
24
|
+
|
|
25
|
+
## COUNCIL-E003 - Malformed chain file (fatal)
|
|
26
|
+
|
|
27
|
+
The chain file isn't valid JSON, so it can't be read at all. A chain file is the
|
|
28
|
+
plain JSON config that says which models fill which seat - a syntax error
|
|
29
|
+
anywhere in it stops the whole file from parsing.
|
|
30
|
+
|
|
31
|
+
**Fix:** check the named file for a missing comma, bracket, or quote. See
|
|
32
|
+
[README.md#chains](README.md#chains).
|
|
33
|
+
|
|
34
|
+
## COUNCIL-E004 - Unreadable stage reply (degradable)
|
|
35
|
+
|
|
36
|
+
A lab's reply for one stage couldn't be read as the JSON that stage expects. A
|
|
37
|
+
stage reply is one lab's structured answer for one step of the chain - an
|
|
38
|
+
unreadable one is treated as an abstention, not a failure, so the run continues
|
|
39
|
+
without it.
|
|
40
|
+
|
|
41
|
+
**Fix:** read the saved reply at `runs/<run-id>/<stage-label>.md` to see what that
|
|
42
|
+
lab actually returned. The run log also says why it was unreadable: truncated
|
|
43
|
+
(hit its token cap), malformed JSON, or the provider itself returned an error
|
|
44
|
+
mid-generation - each needs a different fix (a higher `maxTokens`, a smaller
|
|
45
|
+
prompt, or just retrying).
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cheap",
|
|
3
|
+
"description": "Same structure, small models throughout. For testing the harness itself, not for real deliverables.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"stopOnPass": true,
|
|
6
|
+
"estimate": {
|
|
7
|
+
"promptTokens": 4000,
|
|
8
|
+
"draftTokens": 6000,
|
|
9
|
+
"critiqueTokens": 1200
|
|
10
|
+
},
|
|
11
|
+
"seats": {
|
|
12
|
+
"criteria": {
|
|
13
|
+
"provider": "anthropic",
|
|
14
|
+
"model": "claude-haiku-4-5-20251001",
|
|
15
|
+
"maxTokens": 2000
|
|
16
|
+
},
|
|
17
|
+
"builder": {
|
|
18
|
+
"provider": "anthropic",
|
|
19
|
+
"model": "claude-haiku-4-5-20251001",
|
|
20
|
+
"maxTokens": 8000
|
|
21
|
+
},
|
|
22
|
+
"critics": [
|
|
23
|
+
{
|
|
24
|
+
"provider": "openai",
|
|
25
|
+
"model": "gpt-5-mini",
|
|
26
|
+
"maxTokens": 3000
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"provider": "google",
|
|
30
|
+
"model": "gemini-2.5-flash",
|
|
31
|
+
"maxTokens": 3000
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gp-judge-v1",
|
|
3
|
+
"description": "Golden Path (GP) vibecoded-project judging. Panel-only, one round, five independent labs each answer MET/FAILED against the published rubric (~/Projects/GP/rubric.json) with quoted evidence. Invoked with --draft <dossier> --rounds 1 so the criteria stage, skeleton/proposal/debate stages, and the builder/reviser never run - only the panel critiques the dossier once. Chain data only; no new relay stage type.",
|
|
4
|
+
"maxRounds": 1,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"estimate": {
|
|
7
|
+
"promptTokens": 3000,
|
|
8
|
+
"draftTokens": 1200,
|
|
9
|
+
"critiqueTokens": 900
|
|
10
|
+
},
|
|
11
|
+
"seats": {
|
|
12
|
+
"criteria": {
|
|
13
|
+
"provider": "anthropic",
|
|
14
|
+
"model": "claude-sonnet-5",
|
|
15
|
+
"extra": { "thinking": { "type": "disabled" } },
|
|
16
|
+
"maxTokens": 4000
|
|
17
|
+
},
|
|
18
|
+
"builder": {
|
|
19
|
+
"provider": "anthropic",
|
|
20
|
+
"model": "claude-sonnet-5",
|
|
21
|
+
"extra": { "thinking": { "type": "disabled" } },
|
|
22
|
+
"maxTokens": 8000
|
|
23
|
+
},
|
|
24
|
+
"reviser": {
|
|
25
|
+
"provider": "anthropic",
|
|
26
|
+
"model": "claude-sonnet-5",
|
|
27
|
+
"extra": { "thinking": { "type": "disabled" } },
|
|
28
|
+
"maxTokens": 8000
|
|
29
|
+
},
|
|
30
|
+
"critics": [
|
|
31
|
+
{
|
|
32
|
+
"provider": "together",
|
|
33
|
+
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
|
|
34
|
+
"maxTokens": 8000,
|
|
35
|
+
"extra": { "chat_template_kwargs": { "thinking": false } },
|
|
36
|
+
"lab": "deepseek"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"provider": "openrouter",
|
|
40
|
+
"model": "qwen/qwen3.5-plus-20260420",
|
|
41
|
+
"maxTokens": 8000,
|
|
42
|
+
"extra": { "reasoning": { "enabled": false } },
|
|
43
|
+
"lab": "qwen"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"provider": "openrouter",
|
|
47
|
+
"model": "z-ai/glm-5.3-flash",
|
|
48
|
+
"maxTokens": 8000,
|
|
49
|
+
"lab": "glm",
|
|
50
|
+
"extra": { "reasoning": { "effort": "low" } }
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"provider": "openrouter",
|
|
54
|
+
"model": "mistralai/mistral-large-2512",
|
|
55
|
+
"maxTokens": 8000,
|
|
56
|
+
"lab": "mistral"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"provider": "google",
|
|
60
|
+
"model": "gemini-3.6-flash",
|
|
61
|
+
"maxTokens": 8000,
|
|
62
|
+
"lab": "gemini"
|
|
63
|
+
}
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
"criteria": [
|
|
67
|
+
"The submitted live URL, or a URL described in the README, loads and renders something within a few seconds (not a blank page, a build error, or a 404).",
|
|
68
|
+
"What loads is an interactive thing (a game, app, tool, or demo the visitor can do something with), not a static description of an idea.",
|
|
69
|
+
"The interface or output is visually coherent: no obviously broken layout, unstyled default HTML, or placeholder Lorem-ipsum-style content.",
|
|
70
|
+
"No visible runtime errors, broken links, or crashes are observed during the judge's brief interaction with the live URL.",
|
|
71
|
+
"The submission reads as a finished small thing rather than an abandoned half-built scaffold (e.g. has a title, a clear entry point, no dangling TODO screens).",
|
|
72
|
+
"The description or README states a clear creative or personal intent behind the project (why it was made, what idea it explores), not just a generic feature list.",
|
|
73
|
+
"The submission has at least one distinctive design or content choice (a theme, joke, aesthetic, or mechanic) that isn't a generic unmodified template or tutorial clone.",
|
|
74
|
+
"The README or description names the AI tools or models used to build the project (e.g. Claude, Cursor, Copilot, or 'vibecoded with X').",
|
|
75
|
+
"The README or description gives at least one concrete detail about the build process (a prompt approach, a workflow step, or a specific decision made during building), beyond just naming a tool.",
|
|
76
|
+
"If a repo URL is given, it is publicly reachable and contains a README.",
|
|
77
|
+
"If a live URL is given, it is publicly reachable without a login wall or paywall blocking the judge's view."
|
|
78
|
+
],
|
|
79
|
+
"_maxTokensNote": "Bumped critics 4000->8000 2026-09-13: 11 rubric criteria means a full criteria+failures reply routinely needs more than 4000 output tokens, and cheap critics (esp. glm-5.3-flash) were hitting stop:length mid-JSON and getting scored as an unparseable abstention rather than a real verdict, confirmed against real panel-1-*.md files that were cut off mid-string. The fix belongs here, not in the judging pipeline that supplies the dossier - the critic maxTokens budget is entirely this chain config. A re-run after the bump came back with every active critic fully parsed, zero abstentions."
|
|
80
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "idea-open-c2",
|
|
3
|
+
"description": "For a genuinely NEW idea: questions first (external seat; the answers come from the human or the command-and-control session and become part of the request), then plan-debate-open-c2 - open scope, every seat may add on record, labs debate, Sonnet stages external, blind panel, handoff. The verdict pass afterwards cuts to a prototype phase. Kimi K3 added 2026-09-08 as a sixth critic/proposer seat (OpenRouter, real Sept-2026 pricing ~$2.50/$14 per M - pricier than the other five; kept because it is a genuinely different lab, not for its price).",
|
|
4
|
+
"maxRounds": 3,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 6,
|
|
8
|
+
"maxTokens": 1500
|
|
9
|
+
},
|
|
10
|
+
"debate": true,
|
|
11
|
+
"handoff": true,
|
|
12
|
+
"estimate": {
|
|
13
|
+
"promptTokens": 16000,
|
|
14
|
+
"draftTokens": 16000,
|
|
15
|
+
"critiqueTokens": 2000
|
|
16
|
+
},
|
|
17
|
+
"seats": {
|
|
18
|
+
"criteria": {
|
|
19
|
+
"provider": "external",
|
|
20
|
+
"model": "claude-code-session"
|
|
21
|
+
},
|
|
22
|
+
"skeleton": {
|
|
23
|
+
"provider": "external",
|
|
24
|
+
"model": "claude-code-session"
|
|
25
|
+
},
|
|
26
|
+
"builder": {
|
|
27
|
+
"provider": "external",
|
|
28
|
+
"model": "claude-code-session"
|
|
29
|
+
},
|
|
30
|
+
"reviser": {
|
|
31
|
+
"provider": "external",
|
|
32
|
+
"model": "claude-code-session"
|
|
33
|
+
},
|
|
34
|
+
"handoff": {
|
|
35
|
+
"provider": "external",
|
|
36
|
+
"model": "claude-code-session"
|
|
37
|
+
},
|
|
38
|
+
"critics": [
|
|
39
|
+
{
|
|
40
|
+
"provider": "together",
|
|
41
|
+
"model": "deepseek-ai/DeepSeek-V4-Flash-0731",
|
|
42
|
+
"maxTokens": 20000,
|
|
43
|
+
"extra": {
|
|
44
|
+
"chat_template_kwargs": {
|
|
45
|
+
"thinking": false
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"lab": "deepseek"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "openrouter",
|
|
52
|
+
"model": "qwen/qwen3.5-plus-20260420",
|
|
53
|
+
"maxTokens": 20000,
|
|
54
|
+
"extra": {
|
|
55
|
+
"reasoning": {
|
|
56
|
+
"enabled": false
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"lab": "qwen"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"provider": "openrouter",
|
|
63
|
+
"model": "z-ai/glm-5.3-flash",
|
|
64
|
+
"maxTokens": 20000,
|
|
65
|
+
"lab": "glm",
|
|
66
|
+
"extra": {
|
|
67
|
+
"reasoning": {
|
|
68
|
+
"effort": "low"
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"provider": "openrouter",
|
|
74
|
+
"model": "mistralai/mistral-large-2512",
|
|
75
|
+
"maxTokens": 20000,
|
|
76
|
+
"lab": "mistral"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"provider": "google",
|
|
80
|
+
"model": "gemini-3.6-flash",
|
|
81
|
+
"maxTokens": 20000,
|
|
82
|
+
"lab": "gemini"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"provider": "openrouter",
|
|
86
|
+
"model": "moonshotai/kimi-k3",
|
|
87
|
+
"maxTokens": 20000,
|
|
88
|
+
"lab": "kimi",
|
|
89
|
+
"extra": {
|
|
90
|
+
"reasoning": {
|
|
91
|
+
"enabled": false
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"questions": {
|
|
97
|
+
"provider": "external",
|
|
98
|
+
"model": "claude-code-session"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"scope": "open",
|
|
102
|
+
"questions": {
|
|
103
|
+
"max": 8,
|
|
104
|
+
"wait": true
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-budget",
|
|
3
|
+
"description": "Offline, and the only mock chain that costs anything on paper. Its seats use mock/mock-priced, a $1000-per-Mtok test fixture price, so the per-run spend cap can be exercised without a key or a real call: run it with --max-usd 1 to watch a run stop cleanly, then resume it with a higher ceiling.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"stopOnPass": true,
|
|
6
|
+
"estimate": { "promptTokens": 1000, "draftTokens": 1000, "critiqueTokens": 300 },
|
|
7
|
+
"seats": {
|
|
8
|
+
"criteria": { "provider": "mock", "model": "mock-priced", "maxTokens": 100 },
|
|
9
|
+
"builder": { "provider": "mock", "model": "mock-priced", "maxTokens": 8000 },
|
|
10
|
+
"reviser": { "provider": "mock", "model": "mock-priced", "maxTokens": 8000 },
|
|
11
|
+
"critics": [
|
|
12
|
+
{ "provider": "mock", "model": "mock-priced", "maxTokens": 8000, "lab": "mock-a" }
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-debate",
|
|
3
|
+
"description": "Offline. Proposal stage plus the debate and reply rounds (anonymised), the board handed to the builder, withdrawn/amended proposals, a handoff file at the end.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 2,
|
|
8
|
+
"maxTokens": 400
|
|
9
|
+
},
|
|
10
|
+
"estimate": {
|
|
11
|
+
"promptTokens": 1000,
|
|
12
|
+
"draftTokens": 1000,
|
|
13
|
+
"critiqueTokens": 300
|
|
14
|
+
},
|
|
15
|
+
"seats": {
|
|
16
|
+
"criteria": {
|
|
17
|
+
"provider": "mock",
|
|
18
|
+
"model": "mock-criteria"
|
|
19
|
+
},
|
|
20
|
+
"skeleton": {
|
|
21
|
+
"provider": "mock",
|
|
22
|
+
"model": "mock-skeleton"
|
|
23
|
+
},
|
|
24
|
+
"builder": {
|
|
25
|
+
"provider": "mock",
|
|
26
|
+
"model": "mock-builder"
|
|
27
|
+
},
|
|
28
|
+
"reviser": {
|
|
29
|
+
"provider": "mock",
|
|
30
|
+
"model": "mock-builder"
|
|
31
|
+
},
|
|
32
|
+
"proposers": [
|
|
33
|
+
{
|
|
34
|
+
"provider": "mock",
|
|
35
|
+
"model": "mock-proposer-a",
|
|
36
|
+
"lab": "mock-a"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"provider": "mock",
|
|
40
|
+
"model": "mock-proposer-b",
|
|
41
|
+
"lab": "mock-b"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"critics": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "mock",
|
|
47
|
+
"model": "mock-critic-a",
|
|
48
|
+
"lab": "mock-a"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "mock",
|
|
52
|
+
"model": "mock-critic-b",
|
|
53
|
+
"lab": "mock-b"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"debate": true,
|
|
58
|
+
"handoff": true
|
|
59
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-external",
|
|
3
|
+
"description": "Offline. The builder and reviser are external seats: the run pauses, writes NEEDS-<label>.md, and resumes from disk after <label>.md is written. Every other stage is mock.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 2,
|
|
8
|
+
"maxTokens": 400
|
|
9
|
+
},
|
|
10
|
+
"estimate": {
|
|
11
|
+
"promptTokens": 1000,
|
|
12
|
+
"draftTokens": 1000,
|
|
13
|
+
"critiqueTokens": 300
|
|
14
|
+
},
|
|
15
|
+
"seats": {
|
|
16
|
+
"criteria": {
|
|
17
|
+
"provider": "mock",
|
|
18
|
+
"model": "mock-criteria"
|
|
19
|
+
},
|
|
20
|
+
"skeleton": {
|
|
21
|
+
"provider": "mock",
|
|
22
|
+
"model": "mock-skeleton"
|
|
23
|
+
},
|
|
24
|
+
"builder": {
|
|
25
|
+
"provider": "external",
|
|
26
|
+
"model": "claude-code-session"
|
|
27
|
+
},
|
|
28
|
+
"reviser": {
|
|
29
|
+
"provider": "external",
|
|
30
|
+
"model": "claude-code-session"
|
|
31
|
+
},
|
|
32
|
+
"proposers": [
|
|
33
|
+
{
|
|
34
|
+
"provider": "mock",
|
|
35
|
+
"model": "mock-proposer-a",
|
|
36
|
+
"lab": "mock-a"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"provider": "mock",
|
|
40
|
+
"model": "mock-proposer-b",
|
|
41
|
+
"lab": "mock-b"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"critics": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "mock",
|
|
47
|
+
"model": "mock-critic-a",
|
|
48
|
+
"lab": "mock-a"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "mock",
|
|
52
|
+
"model": "mock-critic-b",
|
|
53
|
+
"lab": "mock-b"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"debate": true,
|
|
58
|
+
"handoff": true
|
|
59
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-open",
|
|
3
|
+
"description": "Offline. Proposal stage plus the debate and reply rounds (anonymised), the board handed to the builder, withdrawn/amended proposals, a handoff file at the end.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 2,
|
|
8
|
+
"maxTokens": 400
|
|
9
|
+
},
|
|
10
|
+
"estimate": {
|
|
11
|
+
"promptTokens": 1000,
|
|
12
|
+
"draftTokens": 1000,
|
|
13
|
+
"critiqueTokens": 300
|
|
14
|
+
},
|
|
15
|
+
"seats": {
|
|
16
|
+
"criteria": {
|
|
17
|
+
"provider": "mock",
|
|
18
|
+
"model": "mock-criteria"
|
|
19
|
+
},
|
|
20
|
+
"skeleton": {
|
|
21
|
+
"provider": "mock",
|
|
22
|
+
"model": "mock-skeleton"
|
|
23
|
+
},
|
|
24
|
+
"builder": {
|
|
25
|
+
"provider": "mock",
|
|
26
|
+
"model": "mock-builder"
|
|
27
|
+
},
|
|
28
|
+
"reviser": {
|
|
29
|
+
"provider": "mock",
|
|
30
|
+
"model": "mock-builder"
|
|
31
|
+
},
|
|
32
|
+
"proposers": [
|
|
33
|
+
{
|
|
34
|
+
"provider": "mock",
|
|
35
|
+
"model": "mock-proposer-a",
|
|
36
|
+
"lab": "mock-a"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"provider": "mock",
|
|
40
|
+
"model": "mock-proposer-b",
|
|
41
|
+
"lab": "mock-b"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"critics": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "mock",
|
|
47
|
+
"model": "mock-critic-a",
|
|
48
|
+
"lab": "mock-a"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "mock",
|
|
52
|
+
"model": "mock-critic-b",
|
|
53
|
+
"lab": "mock-b"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"debate": true,
|
|
58
|
+
"handoff": true,
|
|
59
|
+
"scope": "open"
|
|
60
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-proposals",
|
|
3
|
+
"description": "Offline. Exercises the proposal stage: skeleton, blind proposals from every critic seat (one of them unreadable), integration with a scope ledger, the scoreboard. Best-of-N: three attempts per lab, a mock judge keeps two.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 2,
|
|
8
|
+
"maxTokens": 400,
|
|
9
|
+
"samples": 3,
|
|
10
|
+
"keep": 2
|
|
11
|
+
},
|
|
12
|
+
"estimate": {
|
|
13
|
+
"promptTokens": 1000,
|
|
14
|
+
"draftTokens": 1000,
|
|
15
|
+
"critiqueTokens": 300
|
|
16
|
+
},
|
|
17
|
+
"seats": {
|
|
18
|
+
"criteria": {
|
|
19
|
+
"provider": "mock",
|
|
20
|
+
"model": "mock-criteria"
|
|
21
|
+
},
|
|
22
|
+
"skeleton": {
|
|
23
|
+
"provider": "mock",
|
|
24
|
+
"model": "mock-skeleton"
|
|
25
|
+
},
|
|
26
|
+
"builder": {
|
|
27
|
+
"provider": "mock",
|
|
28
|
+
"model": "mock-builder"
|
|
29
|
+
},
|
|
30
|
+
"reviser": {
|
|
31
|
+
"provider": "mock",
|
|
32
|
+
"model": "mock-builder"
|
|
33
|
+
},
|
|
34
|
+
"proposers": [
|
|
35
|
+
{
|
|
36
|
+
"provider": "mock",
|
|
37
|
+
"model": "mock-proposer-a"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"provider": "mock",
|
|
41
|
+
"model": "mock-proposer-empty"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"critics": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "mock",
|
|
47
|
+
"model": "mock-critic-a",
|
|
48
|
+
"lab": "mock-a"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "mock",
|
|
52
|
+
"model": "mock-critic-b",
|
|
53
|
+
"lab": "mock-b"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-questions-wait",
|
|
3
|
+
"description": "Offline. Questions-first stage that PAUSES for answers (NEEDS-answers.md -> answers.md -> --resume).",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 2,
|
|
8
|
+
"maxTokens": 400
|
|
9
|
+
},
|
|
10
|
+
"estimate": {
|
|
11
|
+
"promptTokens": 1000,
|
|
12
|
+
"draftTokens": 1000,
|
|
13
|
+
"critiqueTokens": 300
|
|
14
|
+
},
|
|
15
|
+
"seats": {
|
|
16
|
+
"criteria": {
|
|
17
|
+
"provider": "mock",
|
|
18
|
+
"model": "mock-criteria"
|
|
19
|
+
},
|
|
20
|
+
"skeleton": {
|
|
21
|
+
"provider": "mock",
|
|
22
|
+
"model": "mock-skeleton"
|
|
23
|
+
},
|
|
24
|
+
"builder": {
|
|
25
|
+
"provider": "mock",
|
|
26
|
+
"model": "mock-builder"
|
|
27
|
+
},
|
|
28
|
+
"reviser": {
|
|
29
|
+
"provider": "mock",
|
|
30
|
+
"model": "mock-builder"
|
|
31
|
+
},
|
|
32
|
+
"proposers": [
|
|
33
|
+
{
|
|
34
|
+
"provider": "mock",
|
|
35
|
+
"model": "mock-proposer-a",
|
|
36
|
+
"lab": "mock-a"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"provider": "mock",
|
|
40
|
+
"model": "mock-proposer-b",
|
|
41
|
+
"lab": "mock-b"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"critics": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "mock",
|
|
47
|
+
"model": "mock-critic-a",
|
|
48
|
+
"lab": "mock-a"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "mock",
|
|
52
|
+
"model": "mock-critic-b",
|
|
53
|
+
"lab": "mock-b"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"debate": true,
|
|
58
|
+
"handoff": true,
|
|
59
|
+
"questions": {
|
|
60
|
+
"max": 4,
|
|
61
|
+
"wait": true
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mock-questions",
|
|
3
|
+
"description": "Offline. Questions-first stage with defaults taken automatically (wait: false), then the debate chain.",
|
|
4
|
+
"maxRounds": 2,
|
|
5
|
+
"signoff": "unanimous",
|
|
6
|
+
"proposals": {
|
|
7
|
+
"parts": 2,
|
|
8
|
+
"maxTokens": 400
|
|
9
|
+
},
|
|
10
|
+
"estimate": {
|
|
11
|
+
"promptTokens": 1000,
|
|
12
|
+
"draftTokens": 1000,
|
|
13
|
+
"critiqueTokens": 300
|
|
14
|
+
},
|
|
15
|
+
"seats": {
|
|
16
|
+
"criteria": {
|
|
17
|
+
"provider": "mock",
|
|
18
|
+
"model": "mock-criteria"
|
|
19
|
+
},
|
|
20
|
+
"skeleton": {
|
|
21
|
+
"provider": "mock",
|
|
22
|
+
"model": "mock-skeleton"
|
|
23
|
+
},
|
|
24
|
+
"builder": {
|
|
25
|
+
"provider": "mock",
|
|
26
|
+
"model": "mock-builder"
|
|
27
|
+
},
|
|
28
|
+
"reviser": {
|
|
29
|
+
"provider": "mock",
|
|
30
|
+
"model": "mock-builder"
|
|
31
|
+
},
|
|
32
|
+
"proposers": [
|
|
33
|
+
{
|
|
34
|
+
"provider": "mock",
|
|
35
|
+
"model": "mock-proposer-a",
|
|
36
|
+
"lab": "mock-a"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"provider": "mock",
|
|
40
|
+
"model": "mock-proposer-b",
|
|
41
|
+
"lab": "mock-b"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"critics": [
|
|
45
|
+
{
|
|
46
|
+
"provider": "mock",
|
|
47
|
+
"model": "mock-critic-a",
|
|
48
|
+
"lab": "mock-a"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"provider": "mock",
|
|
52
|
+
"model": "mock-critic-b",
|
|
53
|
+
"lab": "mock-b"
|
|
54
|
+
}
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"debate": true,
|
|
58
|
+
"handoff": true,
|
|
59
|
+
"questions": {
|
|
60
|
+
"max": 4,
|
|
61
|
+
"wait": false
|
|
62
|
+
}
|
|
63
|
+
}
|