-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.json
More file actions
165 lines (165 loc) · 5.69 KB
/
config.json
File metadata and controls
165 lines (165 loc) · 5.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
{
"defaultRuns": 10,
"outputDir": "experiments",
"priceBook": {
"openai": {
"gpt-5.4": { "inputUsdPerMillion": 2.5, "outputUsdPerMillion": 15 },
"gpt-5-mini": { "inputUsdPerMillion": 0.25, "outputUsdPerMillion": 2 },
"gpt-5-nano": { "inputUsdPerMillion": 0.05, "outputUsdPerMillion": 0.4 }
},
"anthropic": {
"claude-sonnet-4-6": { "inputUsdPerMillion": 3, "outputUsdPerMillion": 15 },
"claude-haiku-4-5": { "inputUsdPerMillion": 1, "outputUsdPerMillion": 5 }
},
"xai": {
"grok-4": { "inputUsdPerMillion": 3, "outputUsdPerMillion": 15 },
"grok-code-fast": { "inputUsdPerMillion": 0.2, "outputUsdPerMillion": 1.5 },
"grok-4.20-beta": { "inputUsdPerMillion": 2, "outputUsdPerMillion": 6 },
"grok-4-fast": { "inputUsdPerMillion": 0.2, "outputUsdPerMillion": 0.5 }
},
"gemini": {
"gemini-2.5-pro": { "inputUsdPerMillion": 1.25, "outputUsdPerMillion": 10 },
"gemini-2.5-flash": { "inputUsdPerMillion": 0.3, "outputUsdPerMillion": 2.5 }
}
},
"scoring": {
"baseScore": 6,
"keywordWeight": 2.8,
"structureWeight": 0.5,
"lengthThreshold": 240,
"lengthBonus": 0.3,
"testBonus": 0.4
},
"configs": [
{
"name": "baseline-openai",
"description": "OpenAI flagship only with full conversation history at every step.",
"mode": "baseline",
"provider": "openai",
"flagshipModel": "gpt-5.4"
},
{
"name": "openai-mini",
"description": "OpenAI same-provider cascade using gpt-5-mini as the gate.",
"mode": "cascade",
"provider": "openai",
"flagshipModel": "gpt-5.4",
"gateModel": "gpt-5-mini"
},
{
"name": "openai-nano",
"description": "OpenAI same-provider cascade using gpt-5-nano as the gate.",
"mode": "cascade",
"provider": "openai",
"flagshipModel": "gpt-5.4",
"gateModel": "gpt-5-nano"
},
{
"name": "baseline-anthropic",
"description": "Anthropic flagship only with full conversation history at every step.",
"mode": "baseline",
"provider": "anthropic",
"flagshipModel": "claude-sonnet-4-6"
},
{
"name": "anthropic",
"description": "Anthropic cascade using Claude Sonnet 4.6 with Claude Haiku 4.5 as the gate.",
"mode": "cascade",
"provider": "anthropic",
"flagshipModel": "claude-sonnet-4-6",
"gateModel": "claude-haiku-4-5"
},
{
"name": "baseline-grok",
"description": "xAI flagship only with full conversation history at every step.",
"mode": "baseline",
"provider": "xai",
"flagshipModel": "grok-4"
},
{
"name": "grok",
"description": "xAI cascade using grok-4 with grok-code-fast as the gate.",
"mode": "cascade",
"provider": "xai",
"flagshipModel": "grok-4",
"gateModel": "grok-code-fast"
},
{
"name": "baseline-gemini",
"description": "Gemini flagship only with full conversation history at every step.",
"mode": "baseline",
"provider": "gemini",
"flagshipModel": "gemini-2.5-pro"
},
{
"name": "gemini",
"description": "Gemini cascade using Gemini 2.5 Pro with Gemini 2.5 Flash as the gate.",
"mode": "cascade",
"provider": "gemini",
"flagshipModel": "gemini-2.5-pro",
"gateModel": "gemini-2.5-flash"
}
],
"tasks": [
{
"number": 1,
"title": "CLI skeleton + argument parsing",
"objective": "Establish the Bun CLI surface, command definitions, and basic argument handling.",
"keywords": ["cli", "command", "argument", "bun", "task"]
},
{
"number": 2,
"title": "Task data model + JSON persistence",
"objective": "Define a typed task model and persist it safely to JSON storage.",
"keywords": ["json", "task model", "persistence", "storage", "typed"]
},
{
"number": 3,
"title": "List, filter, and view tasks",
"objective": "Support querying tasks by status, priority, tags, and free-text search.",
"keywords": ["list", "filter", "view", "status", "priority"]
},
{
"number": 4,
"title": "Complete/delete commands + validation",
"objective": "Add complete/delete flows with good error handling and state validation.",
"keywords": ["complete", "delete", "validation", "error", "state"]
},
{
"number": 5,
"title": "Gate summarizer integration",
"objective": "Compress the history into a structured summary before flagship execution.",
"keywords": ["gate", "summary", "context", "json", "cascade"]
},
{
"number": 6,
"title": "AI-assisted decomposition",
"objective": "Break goals into practical subtasks and optionally persist them.",
"keywords": ["decompose", "subtask", "goal", "ai", "persist"]
},
{
"number": 7,
"title": "Code snippet generator",
"objective": "Generate useful starter code from a short description.",
"keywords": ["snippet", "code", "language", "template", "generator"]
},
{
"number": 8,
"title": "Automated tests",
"objective": "Add unit coverage and reliable verification for the CLI and metrics pipeline.",
"keywords": ["test", "coverage", "unit", "verification", "quality"]
},
{
"number": 9,
"title": "Refinement loop",
"objective": "Improve an existing task based on feedback and preserve iteration history.",
"keywords": ["refine", "feedback", "iteration", "history", "improve"]
},
{
"number": 10,
"title": "Report export",
"objective": "Export Markdown and HTML outputs suitable for publication or sharing.",
"keywords": ["report", "markdown", "html", "export", "summary"]
}
]
}