axstack 0.20.9 → 0.20.11
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/docs/workflows.md +2 -2
- package/package.json +1 -1
- package/profiles/presets/claude-only.json +9 -9
- package/profiles/presets/codex-only.json +25 -25
- package/profiles/presets/mixed.json +16 -16
- package/skills/axstack/references/automations.md +5 -0
- package/skills/axstack/references/orca-runtime.md +7 -2
- package/skills/axstack/references/routing.md +4 -4
- package/skills/axstack-audit/SKILL.md +1 -1
- package/skills/axstack-cleanup/SKILL.md +43 -5
- package/skills/axstack-explain/SKILL.md +15 -3
- package/skills/axstack-review/SKILL.md +4 -4
- package/src/roles.js +4 -4
package/docs/workflows.md
CHANGED
|
@@ -50,8 +50,8 @@ role.
|
|
|
50
50
|
|
|
51
51
|
| Preset | Author | Ordered peer reviewers | Astra / Fable advisers | Auditor |
|
|
52
52
|
| --- | --- | --- | --- | --- |
|
|
53
|
-
| `mixed` | Sol medium | Sol medium; Opus medium | Astra high / Fable high | Luna
|
|
54
|
-
| `codex-only` | Sol medium | Sol medium;
|
|
53
|
+
| `mixed` | Sol medium | Sol medium; Opus medium | Astra high / Fable high | Luna xhigh |
|
|
54
|
+
| `codex-only` | Sol medium | Sol medium; Luna xhigh | Astra high / unavailable | Luna xhigh |
|
|
55
55
|
| `claude-only` | Opus medium | Opus medium; Sonnet xhigh | unavailable / Fable high | Sonnet xhigh |
|
|
56
56
|
|
|
57
57
|
The installed `<skills-dir>/axstack/roles.json` adds the selected preset name:
|
package/package.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"id": "axstack-owner",
|
|
24
24
|
"name": "Axstack PR owner",
|
|
25
25
|
"provider": "claude",
|
|
26
|
-
"model": "claude-opus-5",
|
|
26
|
+
"model": "claude-opus-5-5",
|
|
27
27
|
"modeId": "bypassPermissions",
|
|
28
28
|
"thinkingOptionId": "high",
|
|
29
29
|
"notes": "Persistent PR owner: one owner per PR, accountable for candidate, fixes, verification evidence, and monitoring. May delegate coding but never edits a worker-owned candidate concurrently. Launches eligible independent reviewers."
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"id": "axstack-author",
|
|
33
33
|
"name": "Axstack author",
|
|
34
34
|
"provider": "claude",
|
|
35
|
-
"model": "claude-opus-5",
|
|
35
|
+
"model": "claude-opus-5-5",
|
|
36
36
|
"modeId": "bypassPermissions",
|
|
37
37
|
"thinkingOptionId": "medium",
|
|
38
38
|
"notes": "Ordinary implementation and repairs. Uses strict red-green-refactor and remains the exclusive writer for a candidate. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"id": "axstack-reviewer-primary",
|
|
42
42
|
"name": "Axstack reviewer (primary)",
|
|
43
43
|
"provider": "claude",
|
|
44
|
-
"model": "claude-opus-5",
|
|
44
|
+
"model": "claude-opus-5-5",
|
|
45
45
|
"modeId": "bypassPermissions",
|
|
46
46
|
"thinkingOptionId": "medium",
|
|
47
47
|
"notes": "Primary reviewer in the ordered claude-only peer pair: Opus medium followed by Sonnet xhigh. Never author or owner; review exact SHA and base across all six angles and acceptance. Peer first pass stays isolated."
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"id": "axstack-research-requirements",
|
|
69
69
|
"name": "Axstack research requirements",
|
|
70
70
|
"provider": "claude",
|
|
71
|
-
"model": "claude-opus-5",
|
|
71
|
+
"model": "claude-opus-5-5",
|
|
72
72
|
"modeId": "bypassPermissions",
|
|
73
73
|
"thinkingOptionId": "medium",
|
|
74
74
|
"notes": "Research requirements analyst: scopes bounded questions and acceptance for a research task. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"id": "axstack-research-code",
|
|
78
78
|
"name": "Axstack research code",
|
|
79
79
|
"provider": "claude",
|
|
80
|
-
"model": "claude-opus-5",
|
|
80
|
+
"model": "claude-opus-5-5",
|
|
81
81
|
"modeId": "bypassPermissions",
|
|
82
82
|
"thinkingOptionId": "medium",
|
|
83
83
|
"notes": "Research code investigator: verifies behavior against inspected code and executable evidence. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -167,10 +167,10 @@
|
|
|
167
167
|
"id": "axstack-debug-investigator-1",
|
|
168
168
|
"name": "Axstack debug investigator 1",
|
|
169
169
|
"provider": "claude",
|
|
170
|
-
"model": "claude-opus-5",
|
|
170
|
+
"model": "claude-opus-5-5",
|
|
171
171
|
"modeId": "bypassPermissions",
|
|
172
172
|
"thinkingOptionId": "medium",
|
|
173
|
-
"notes": "Debug investigator seat 1. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-opus-5 at medium effort because it has fewer model families."
|
|
173
|
+
"notes": "Debug investigator seat 1. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-opus-5-5 at medium effort because it has fewer model families."
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
176
|
"id": "axstack-debug-investigator-2",
|
|
@@ -185,10 +185,10 @@
|
|
|
185
185
|
"id": "axstack-debug-investigator-3",
|
|
186
186
|
"name": "Axstack debug investigator 3",
|
|
187
187
|
"provider": "claude",
|
|
188
|
-
"model": "claude-opus-5",
|
|
188
|
+
"model": "claude-opus-5-5",
|
|
189
189
|
"modeId": "bypassPermissions",
|
|
190
190
|
"thinkingOptionId": "high",
|
|
191
|
-
"notes": "Debug investigator seat 3. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-opus-5 at high effort because it has fewer model families."
|
|
191
|
+
"notes": "Debug investigator seat 3. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-opus-5-5 at high effort because it has fewer model families."
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"id": "axstack-debug-investigator-4",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"id": "axstack-owner",
|
|
24
24
|
"name": "Axstack PR owner",
|
|
25
25
|
"provider": "codex",
|
|
26
|
-
"model": "gpt-
|
|
26
|
+
"model": "gpt-6-sol",
|
|
27
27
|
"modeId": "full-access",
|
|
28
28
|
"thinkingOptionId": "high",
|
|
29
29
|
"notes": "Persistent PR owner: one owner per PR, accountable for candidate, fixes, verification evidence, and monitoring. May delegate coding but never edits a worker-owned candidate concurrently. Launches eligible independent reviewers."
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"id": "axstack-author",
|
|
33
33
|
"name": "Axstack author",
|
|
34
34
|
"provider": "codex",
|
|
35
|
-
"model": "gpt-
|
|
35
|
+
"model": "gpt-6-sol",
|
|
36
36
|
"modeId": "full-access",
|
|
37
37
|
"thinkingOptionId": "medium",
|
|
38
38
|
"notes": "Ordinary implementation and repairs. Uses strict red-green-refactor and remains the exclusive writer for a candidate. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -41,25 +41,25 @@
|
|
|
41
41
|
"id": "axstack-reviewer-primary",
|
|
42
42
|
"name": "Axstack reviewer (primary)",
|
|
43
43
|
"provider": "codex",
|
|
44
|
-
"model": "gpt-
|
|
44
|
+
"model": "gpt-6-sol",
|
|
45
45
|
"modeId": "full-access",
|
|
46
46
|
"thinkingOptionId": "medium",
|
|
47
|
-
"notes": "Primary reviewer in the ordered codex-only peer pair: Sol medium followed by
|
|
47
|
+
"notes": "Primary reviewer in the ordered codex-only peer pair: Sol medium followed by Luna xhigh. Never author or owner; review exact SHA and base across all six angles and acceptance. Peer first pass stays isolated."
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
50
|
"id": "axstack-reviewer-secondary",
|
|
51
51
|
"name": "Axstack reviewer (secondary)",
|
|
52
52
|
"provider": "codex",
|
|
53
|
-
"model": "gpt-
|
|
53
|
+
"model": "gpt-6-luna",
|
|
54
54
|
"modeId": "full-access",
|
|
55
55
|
"thinkingOptionId": "xhigh",
|
|
56
|
-
"notes": "Secondary reviewer in the ordered codex-only peer pair: Sol medium followed by
|
|
56
|
+
"notes": "Secondary reviewer in the ordered codex-only peer pair: Sol medium followed by Luna xhigh. Eligible authored reviewer for a Sol-authored candidate. Never author or owner; review exact SHA and base across all six angles and acceptance. Peer first pass stays isolated."
|
|
57
57
|
},
|
|
58
58
|
{
|
|
59
59
|
"id": "axstack-checker",
|
|
60
60
|
"name": "Axstack tracker checker",
|
|
61
61
|
"provider": "codex",
|
|
62
|
-
"model": "gpt-
|
|
62
|
+
"model": "gpt-6-luna",
|
|
63
63
|
"modeId": "full-access",
|
|
64
64
|
"thinkingOptionId": "low",
|
|
65
65
|
"notes": "Report-only discrepancy checker for the selected external tracker (Linear or GitHub Issues). Never mutates the tracker; the driver independently verifies evidence before applying updates. A null model means explicit user selection is required before dispatch and must never launch a provider default."
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"id": "axstack-research-code",
|
|
78
78
|
"name": "Axstack research code",
|
|
79
79
|
"provider": "codex",
|
|
80
|
-
"model": "gpt-
|
|
80
|
+
"model": "gpt-6-sol",
|
|
81
81
|
"modeId": "full-access",
|
|
82
82
|
"thinkingOptionId": "medium",
|
|
83
83
|
"notes": "Research code investigator: verifies behavior against inspected code and executable evidence. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"id": "axstack-research-web",
|
|
87
87
|
"name": "Axstack research web",
|
|
88
88
|
"provider": "codex",
|
|
89
|
-
"model": "gpt-
|
|
89
|
+
"model": "gpt-6-sol",
|
|
90
90
|
"modeId": "full-access",
|
|
91
91
|
"thinkingOptionId": "low",
|
|
92
92
|
"notes": "Research web reader: gathers primary-source facts efficiently. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
"id": "axstack-explainer",
|
|
114
114
|
"name": "Axstack explainer",
|
|
115
115
|
"provider": "codex",
|
|
116
|
-
"model": "gpt-
|
|
116
|
+
"model": "gpt-6-sol",
|
|
117
117
|
"modeId": "full-access",
|
|
118
118
|
"thinkingOptionId": "high",
|
|
119
119
|
"notes": "Complex visual explanation author: traces systems, changes, and implementation gaps in requested artifacts and verifies rendered behavior where applicable. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -122,16 +122,16 @@
|
|
|
122
122
|
"id": "axstack-explainer-review",
|
|
123
123
|
"name": "Axstack explainer reviewer",
|
|
124
124
|
"provider": "codex",
|
|
125
|
-
"model": "gpt-
|
|
125
|
+
"model": "gpt-6-luna",
|
|
126
126
|
"modeId": "full-access",
|
|
127
|
-
"thinkingOptionId": "
|
|
127
|
+
"thinkingOptionId": "xhigh",
|
|
128
128
|
"notes": "Independent visual explanation reviewer: checks the exact artifact for source fidelity and rendered behavior where warranted. Any artifact change invalidates its review. Validate configured availability at launch; hold affected work without fallback."
|
|
129
129
|
},
|
|
130
130
|
{
|
|
131
131
|
"id": "axstack-explore-codebase",
|
|
132
132
|
"name": "Axstack codebase explorer",
|
|
133
133
|
"provider": "codex",
|
|
134
|
-
"model": "gpt-
|
|
134
|
+
"model": "gpt-6-sol",
|
|
135
135
|
"modeId": "full-access",
|
|
136
136
|
"thinkingOptionId": "xhigh",
|
|
137
137
|
"notes": "Codebase mapper: explores repository structure and interfaces for research and handoff context. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"id": "axstack-explore-execution",
|
|
141
141
|
"name": "Axstack execution explorer",
|
|
142
142
|
"provider": "codex",
|
|
143
|
-
"model": "gpt-
|
|
143
|
+
"model": "gpt-6-sol",
|
|
144
144
|
"modeId": "full-access",
|
|
145
145
|
"thinkingOptionId": "low",
|
|
146
146
|
"notes": "Execution explorer: runs bounded checks of runtime behavior where authorized. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"id": "axstack-monitor",
|
|
150
150
|
"name": "Axstack monitor",
|
|
151
151
|
"provider": "codex",
|
|
152
|
-
"model": "gpt-
|
|
152
|
+
"model": "gpt-6-sol",
|
|
153
153
|
"modeId": "full-access",
|
|
154
154
|
"thinkingOptionId": "low",
|
|
155
155
|
"notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet."
|
|
@@ -158,46 +158,46 @@
|
|
|
158
158
|
"id": "axstack-auditor",
|
|
159
159
|
"name": "Axstack auditor",
|
|
160
160
|
"provider": "codex",
|
|
161
|
-
"model": "gpt-
|
|
161
|
+
"model": "gpt-6-luna",
|
|
162
162
|
"modeId": "full-access",
|
|
163
|
-
"thinkingOptionId": "
|
|
163
|
+
"thinkingOptionId": "xhigh",
|
|
164
164
|
"notes": "Read-only end-of-run and checkpoint auditor. Collects scope and outcome evidence with counts and denominators and reports PASS, FAIL, or UNKNOWN without inventing numbers. Never edits, merges, activates, or audits itself."
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"id": "axstack-debug-investigator-1",
|
|
168
168
|
"name": "Axstack debug investigator 1",
|
|
169
169
|
"provider": "codex",
|
|
170
|
-
"model": "gpt-
|
|
170
|
+
"model": "gpt-6-sol",
|
|
171
171
|
"modeId": "full-access",
|
|
172
172
|
"thinkingOptionId": "medium",
|
|
173
|
-
"notes": "Debug investigator seat 1. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-
|
|
173
|
+
"notes": "Debug investigator seat 1. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-6-sol at medium effort because it has fewer model families."
|
|
174
174
|
},
|
|
175
175
|
{
|
|
176
176
|
"id": "axstack-debug-investigator-2",
|
|
177
177
|
"name": "Axstack debug investigator 2",
|
|
178
178
|
"provider": "codex",
|
|
179
|
-
"model": "gpt-
|
|
179
|
+
"model": "gpt-6-sol",
|
|
180
180
|
"modeId": "full-access",
|
|
181
181
|
"thinkingOptionId": "low",
|
|
182
|
-
"notes": "Debug investigator seat 2. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-
|
|
182
|
+
"notes": "Debug investigator seat 2. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-6-sol at low effort because it has fewer model families."
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"id": "axstack-debug-investigator-3",
|
|
186
186
|
"name": "Axstack debug investigator 3",
|
|
187
187
|
"provider": "codex",
|
|
188
|
-
"model": "gpt-
|
|
188
|
+
"model": "gpt-6-sol",
|
|
189
189
|
"modeId": "full-access",
|
|
190
190
|
"thinkingOptionId": "high",
|
|
191
|
-
"notes": "Debug investigator seat 3. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-
|
|
191
|
+
"notes": "Debug investigator seat 3. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-6-sol at high effort because it has fewer model families."
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
"id": "axstack-debug-investigator-4",
|
|
195
195
|
"name": "Axstack debug investigator 4",
|
|
196
196
|
"provider": "codex",
|
|
197
|
-
"model": "gpt-
|
|
197
|
+
"model": "gpt-6-sol",
|
|
198
198
|
"modeId": "full-access",
|
|
199
199
|
"thinkingOptionId": "xhigh",
|
|
200
|
-
"notes": "Debug investigator seat 4. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-
|
|
200
|
+
"notes": "Debug investigator seat 4. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats gpt-6-sol at xhigh effort because it has fewer model families."
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"id": "axstack-arena-judge-astra",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"id": "axstack-owner",
|
|
24
24
|
"name": "Axstack PR owner",
|
|
25
25
|
"provider": "claude",
|
|
26
|
-
"model": "claude-opus-5",
|
|
26
|
+
"model": "claude-opus-5-5",
|
|
27
27
|
"modeId": "bypassPermissions",
|
|
28
28
|
"thinkingOptionId": "medium",
|
|
29
29
|
"notes": "Persistent PR owner: one owner per PR, accountable for candidate, fixes, verification evidence, and monitoring. May delegate coding but never edits a worker-owned candidate concurrently. Launches eligible independent reviewers."
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"id": "axstack-author",
|
|
33
33
|
"name": "Axstack author",
|
|
34
34
|
"provider": "codex",
|
|
35
|
-
"model": "gpt-
|
|
35
|
+
"model": "gpt-6-sol",
|
|
36
36
|
"modeId": "full-access",
|
|
37
37
|
"thinkingOptionId": "medium",
|
|
38
38
|
"notes": "Ordinary implementation and repairs. Uses strict red-green-refactor and remains the exclusive writer for a candidate. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"id": "axstack-reviewer-primary",
|
|
42
42
|
"name": "Axstack reviewer (primary)",
|
|
43
43
|
"provider": "codex",
|
|
44
|
-
"model": "gpt-
|
|
44
|
+
"model": "gpt-6-sol",
|
|
45
45
|
"modeId": "full-access",
|
|
46
46
|
"thinkingOptionId": "medium",
|
|
47
47
|
"notes": "Primary reviewer in the ordered mixed peer pair: Sol medium followed by Opus medium. Eligible authored reviewer for an Opus-authored candidate. Never author or owner; review exact SHA and base across all six angles and acceptance. Peer first pass stays isolated."
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"id": "axstack-reviewer-secondary",
|
|
51
51
|
"name": "Axstack reviewer (secondary)",
|
|
52
52
|
"provider": "claude",
|
|
53
|
-
"model": "claude-opus-5",
|
|
53
|
+
"model": "claude-opus-5-5",
|
|
54
54
|
"modeId": "bypassPermissions",
|
|
55
55
|
"thinkingOptionId": "medium",
|
|
56
56
|
"notes": "Secondary reviewer in the ordered mixed peer pair: Sol medium followed by Opus medium. Eligible authored reviewer for a Sol-authored candidate. Never author or owner; review exact SHA and base across all six angles and acceptance. Peer first pass stays isolated."
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"id": "axstack-research-requirements",
|
|
69
69
|
"name": "Axstack research requirements",
|
|
70
70
|
"provider": "claude",
|
|
71
|
-
"model": "claude-opus-5",
|
|
71
|
+
"model": "claude-opus-5-5",
|
|
72
72
|
"modeId": "bypassPermissions",
|
|
73
73
|
"thinkingOptionId": "medium",
|
|
74
74
|
"notes": "Research requirements analyst: scopes bounded questions and acceptance for a research task. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"id": "axstack-research-code",
|
|
78
78
|
"name": "Axstack research code",
|
|
79
79
|
"provider": "codex",
|
|
80
|
-
"model": "gpt-
|
|
80
|
+
"model": "gpt-6-sol",
|
|
81
81
|
"modeId": "full-access",
|
|
82
82
|
"thinkingOptionId": "medium",
|
|
83
83
|
"notes": "Research code investigator: verifies behavior against inspected code and executable evidence. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"id": "axstack-research-web",
|
|
87
87
|
"name": "Axstack research web",
|
|
88
88
|
"provider": "claude",
|
|
89
|
-
"model": "claude-opus-5",
|
|
89
|
+
"model": "claude-opus-5-5",
|
|
90
90
|
"modeId": "bypassPermissions",
|
|
91
91
|
"thinkingOptionId": "low",
|
|
92
92
|
"notes": "Research web reader: gathers primary-source facts efficiently. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -122,9 +122,9 @@
|
|
|
122
122
|
"id": "axstack-explainer-review",
|
|
123
123
|
"name": "Axstack explainer reviewer",
|
|
124
124
|
"provider": "codex",
|
|
125
|
-
"model": "gpt-
|
|
125
|
+
"model": "gpt-6-luna",
|
|
126
126
|
"modeId": "full-access",
|
|
127
|
-
"thinkingOptionId": "
|
|
127
|
+
"thinkingOptionId": "xhigh",
|
|
128
128
|
"notes": "Independent visual explanation reviewer: checks the exact artifact for source fidelity and rendered behavior where warranted. Any artifact change invalidates its review. Validate configured availability at launch; hold affected work without fallback."
|
|
129
129
|
},
|
|
130
130
|
{
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
"id": "axstack-explore-execution",
|
|
141
141
|
"name": "Axstack execution explorer",
|
|
142
142
|
"provider": "codex",
|
|
143
|
-
"model": "gpt-
|
|
143
|
+
"model": "gpt-6-sol",
|
|
144
144
|
"modeId": "full-access",
|
|
145
145
|
"thinkingOptionId": "low",
|
|
146
146
|
"notes": "Execution explorer: runs bounded checks of runtime behavior where authorized. Validate configured availability at launch; hold affected work without fallback."
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"id": "axstack-monitor",
|
|
150
150
|
"name": "Axstack monitor",
|
|
151
151
|
"provider": "claude",
|
|
152
|
-
"model": "claude-opus-5",
|
|
152
|
+
"model": "claude-opus-5-5",
|
|
153
153
|
"modeId": "bypassPermissions",
|
|
154
154
|
"thinkingOptionId": "medium",
|
|
155
155
|
"notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet."
|
|
@@ -158,16 +158,16 @@
|
|
|
158
158
|
"id": "axstack-auditor",
|
|
159
159
|
"name": "Axstack auditor",
|
|
160
160
|
"provider": "codex",
|
|
161
|
-
"model": "gpt-
|
|
161
|
+
"model": "gpt-6-luna",
|
|
162
162
|
"modeId": "full-access",
|
|
163
|
-
"thinkingOptionId": "
|
|
163
|
+
"thinkingOptionId": "xhigh",
|
|
164
164
|
"notes": "Read-only end-of-run and checkpoint auditor. Collects scope and outcome evidence with counts and denominators and reports PASS, FAIL, or UNKNOWN without inventing numbers. Never edits, merges, activates, or audits itself."
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"id": "axstack-debug-investigator-1",
|
|
168
168
|
"name": "Axstack debug investigator 1",
|
|
169
169
|
"provider": "claude",
|
|
170
|
-
"model": "claude-opus-5",
|
|
170
|
+
"model": "claude-opus-5-5",
|
|
171
171
|
"modeId": "bypassPermissions",
|
|
172
172
|
"thinkingOptionId": "medium",
|
|
173
173
|
"notes": "Debug investigator seat 1. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity."
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
"id": "axstack-debug-investigator-2",
|
|
177
177
|
"name": "Axstack debug investigator 2",
|
|
178
178
|
"provider": "codex",
|
|
179
|
-
"model": "gpt-
|
|
179
|
+
"model": "gpt-6-sol",
|
|
180
180
|
"modeId": "full-access",
|
|
181
181
|
"thinkingOptionId": "medium",
|
|
182
182
|
"notes": "Debug investigator seat 2. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity."
|
|
@@ -194,7 +194,7 @@
|
|
|
194
194
|
"id": "axstack-debug-investigator-4",
|
|
195
195
|
"name": "Axstack debug investigator 4",
|
|
196
196
|
"provider": "codex",
|
|
197
|
-
"model": "gpt-
|
|
197
|
+
"model": "gpt-6-sol",
|
|
198
198
|
"modeId": "full-access",
|
|
199
199
|
"thinkingOptionId": "low",
|
|
200
200
|
"notes": "Debug investigator seat 4. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity."
|
|
@@ -238,6 +238,9 @@ or send outcome, not pending CI. Waiting state belongs in GitHub and the compact
|
|
|
238
238
|
record, never in an idle model, per-PR timer, or polling loop.
|
|
239
239
|
Follow the [private evidence archive](evidence-archive.md) when evidence is the
|
|
240
240
|
only local state to preserve; archive success does not relax any other guard.
|
|
241
|
+
For a completed, forge-merged PR-job, classified reviewer scratch may instead
|
|
242
|
+
follow [axstack-cleanup](../../axstack-cleanup/SKILL.md)'s compact receipt and
|
|
243
|
+
exact-path guards. This does not release active jobs or manager pass workspaces.
|
|
241
244
|
|
|
242
245
|
## Review and repair authority
|
|
243
246
|
|
|
@@ -307,6 +310,8 @@ terminals, unknown liveness, `user_takeover`, and ambiguous publication state.
|
|
|
307
310
|
Never classify all dirt as evidence. If explicitly classified evidence is the
|
|
308
311
|
last retention reason, apply and verify the [private evidence archive](evidence-archive.md),
|
|
309
312
|
update durable continuity, and read it back before native retirement.
|
|
313
|
+
The completed, forge-merged PR-job reviewer scratch exception above uses
|
|
314
|
+
axstack-cleanup; it never changes manager pass preservation or retirement guards.
|
|
310
315
|
|
|
311
316
|
For the manager pass only, verify native run/workspace identity, exclusive
|
|
312
317
|
automation ownership, no unsettled descendants, and a fresh terminal inventory
|
|
@@ -95,8 +95,13 @@ owner. Remove only that exact validated owned path, with no glob or parent-root
|
|
|
95
95
|
deletion; never wipe a general cache. Uncertain temporary files are preserved
|
|
96
96
|
for later reconciliation. Incidental tool-managed caches are not review evidence.
|
|
97
97
|
Before removing a reviewer worktree, preserve its report and supporting evidence
|
|
98
|
-
in the driver's Orca workspace and update the run record's paths.
|
|
99
|
-
|
|
98
|
+
in the driver's Orca workspace and update the run record's paths. For a settled
|
|
99
|
+
merged run with a confirmed forge merge, the compact durable receipt in
|
|
100
|
+
[axstack-cleanup](../../axstack-cleanup/SKILL.md) satisfies this preservation
|
|
101
|
+
rule only after its classification, readback, and removal guards pass. Preserve
|
|
102
|
+
active or unmerged review evidence and unique evidence whose bytes must survive;
|
|
103
|
+
uncertain ownership or evidence holds. Terminal release alone is not permission
|
|
104
|
+
to discard evidence or remove the worktree.
|
|
100
105
|
|
|
101
106
|
## Consume, settle, and recover
|
|
102
107
|
|
|
@@ -34,10 +34,10 @@ Role IDs:
|
|
|
34
34
|
|
|
35
35
|
| Preset | Author | Reviewer (model/effort) |
|
|
36
36
|
| --- | --- | --- |
|
|
37
|
-
| `mixed` | Codex / Sol (`codex/gpt-
|
|
38
|
-
| `mixed` | Claude / Opus (`claude/claude-opus-5`) | `axstack-reviewer-primary` (`codex/gpt-
|
|
39
|
-
| `codex-only` | Codex / Sol (`codex/gpt-
|
|
40
|
-
| `claude-only` | Claude / Opus (`claude/claude-opus-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5` xhigh) |
|
|
37
|
+
| `mixed` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`claude/claude-opus-5-5` medium) |
|
|
38
|
+
| `mixed` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-primary` (`codex/gpt-6-sol` medium) |
|
|
39
|
+
| `codex-only` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`codex/gpt-6-luna` xhigh) |
|
|
40
|
+
| `claude-only` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5` xhigh) |
|
|
41
41
|
- `axstack-advisor-astra` and `axstack-advisor-fable` advise independently
|
|
42
42
|
and author align arena candidates; `axstack-arena-judge-astra` and
|
|
43
43
|
`axstack-arena-judge-fable` judge them. `axstack-auditor` audits;
|
|
@@ -25,7 +25,7 @@ immediately before an actual auditor profile or session dispatch. Ordinary
|
|
|
25
25
|
audit reading and record writing do not load it, and the auditor never
|
|
26
26
|
dispatches.
|
|
27
27
|
|
|
28
|
-
Core owns the `axstack-auditor` profile (codex/gpt-
|
|
28
|
+
Core owns the `axstack-auditor` profile (codex/gpt-6-luna xhigh) and its
|
|
29
29
|
invocation. This skill governs what that auditor reads, measures, and proposes.
|
|
30
30
|
The user-chosen improvement mode is a tested, independently reviewed PR that a
|
|
31
31
|
human merges.
|
|
@@ -34,8 +34,8 @@ Never clean a manual chat, the current driver, `user_takeover`, an active or
|
|
|
34
34
|
unknown worker, an unsettled descendant, or a resource with ambiguous ownership.
|
|
35
35
|
Preserve dirty or unknown files, unpushed commits, unmerged useful work,
|
|
36
36
|
ambiguous publication, and evidence that has not been durably preserved. Do not
|
|
37
|
-
force, bulk-clean, override a hook failure, edit a runtime
|
|
38
|
-
scheduler, daemon, or state machine.
|
|
37
|
+
force native removal, bulk-clean, override a hook failure, edit a runtime
|
|
38
|
+
database, or add a scheduler, daemon, or state machine.
|
|
39
39
|
|
|
40
40
|
## Reconcile each candidate
|
|
41
41
|
|
|
@@ -57,13 +57,51 @@ Classify exact evidence files individually. Save the compact cleanup decision
|
|
|
57
57
|
and identities in the private run record or another configured durable private
|
|
58
58
|
location outside disposable worktrees. When the evidence archive applies, use
|
|
59
59
|
its helper with either the existing PR identity or the non-PR Run and Task
|
|
60
|
-
identity; never invent a PR number. Read back
|
|
61
|
-
archive manifest, including hashes and exact identities, before
|
|
62
|
-
source copy or workspace.
|
|
60
|
+
identity; never invent a PR number. Read back the durable record and, when an
|
|
61
|
+
archive is used, its manifest, including hashes and exact identities, before
|
|
62
|
+
removing any source copy or workspace.
|
|
63
63
|
|
|
64
64
|
Archive success proves only preservation of the listed bytes. It does not prove
|
|
65
65
|
settlement, exit, ownership, a clean worktree, publication, or removal safety.
|
|
66
66
|
|
|
67
|
+
For a settled merged run whose forge merge is confirmed, generated reviewer
|
|
68
|
+
scratch is disposable after a compact durable receipt is written outside the
|
|
69
|
+
review worktree and read back. Bind that receipt to the exact repository, Run,
|
|
70
|
+
Task, Dispatch, reviewer workspace and terminal, exact head SHA and base SHA,
|
|
71
|
+
review verdict, coverage and limitations, test and CI result pointers, and the
|
|
72
|
+
user authorization and scope for cleanup. A raw reviewer report may be discarded
|
|
73
|
+
after its verdict and limitations are compacted into that read-back receipt;
|
|
74
|
+
use the private evidence archive for unique evidence whose exact bytes must
|
|
75
|
+
survive. Raw reproducible probes and logs need not be archived solely to retire
|
|
76
|
+
a completed review worktree.
|
|
77
|
+
|
|
78
|
+
Use only a named run-owned scratch prefix recorded with the Dispatch. Require
|
|
79
|
+
`git status --porcelain=v1 -z --untracked-files=all` to show all dirt as
|
|
80
|
+
untracked files inside that run-owned scratch prefix; any tracked, staged,
|
|
81
|
+
unmerged or unpushed work, dirty source, or dirt outside it holds. Validate that
|
|
82
|
+
the detached checkout still matches the reviewed head and check local commits
|
|
83
|
+
against recorded remote refs; unknown divergence holds. Validate that
|
|
84
|
+
the exact reviewed scratch prefix names the recorded directory inside the exact
|
|
85
|
+
reviewer worktree, never a repository-root target or symlink. Inspect every
|
|
86
|
+
descendant for symlinks, hard links, special files, unknown content, user-owned
|
|
87
|
+
files, or ignored files; any mismatch holds. Active or `user_takeover` terminals
|
|
88
|
+
also hold.
|
|
89
|
+
|
|
90
|
+
List the exact scoped path and all descendants with their types, confirm each
|
|
91
|
+
belongs to generated reviewer scratch, and record that inventory. Dry-run the
|
|
92
|
+
exact scoped path from the reviewer worktree root with
|
|
93
|
+
`git clean -nd -- <exact reviewed scratch prefix>`
|
|
94
|
+
with the concrete reviewed relative prefix substituted for the angle-bracket
|
|
95
|
+
notation. Compare its sole target to the classified directory; an empty,
|
|
96
|
+
partial, or different result holds. Re-read the compact receipt, complete Git
|
|
97
|
+
status, directory contents, native ownership and liveness immediately before
|
|
98
|
+
removal; any change holds. Then run `git clean -fd -- <same exact prefix>` with
|
|
99
|
+
the identical concrete path and recheck clean Git status, recording the path and
|
|
100
|
+
outcome. Use no unresolved variable as a destructive target. Never use `-x`, a
|
|
101
|
+
glob, a repository-root target, extra force, or broad clean.
|
|
102
|
+
This scratch decision does not waive any other preservation or native removal
|
|
103
|
+
guard.
|
|
104
|
+
|
|
67
105
|
## Apply distinct native operations
|
|
68
106
|
|
|
69
107
|
Treat these operations as separate decisions and receipts:
|
|
@@ -48,12 +48,24 @@ immediately before an actual profile dispatch.
|
|
|
48
48
|
|
|
49
49
|
## 2. Choose proportional output
|
|
50
50
|
|
|
51
|
-
1.
|
|
51
|
+
1. Keep the primary reader-facing explanation to a maximum of 700 words in
|
|
52
|
+
chat, HTML, and every other requested format. Preserve in that primary view
|
|
53
|
+
the answer or purpose, key rationale, meaningful alternatives, main data or
|
|
54
|
+
operational boundary, status and uncertainty, and live reader questions
|
|
55
|
+
with evidence-supported answers, labeling any question the inspected
|
|
56
|
+
evidence does not answer as **unknown** or **open** rather than inventing an
|
|
57
|
+
answer. Count the primary artifact's reader-visible words, including
|
|
58
|
+
headings, table text, and diagram or figure labels and captions. An appendix
|
|
59
|
+
or collapsible content in the same artifact counts toward the 700-word
|
|
60
|
+
maximum. If the draft is longer, compress repetition first and move only
|
|
61
|
+
supporting detail to a separate linked ticket or appendix. Essential answers
|
|
62
|
+
must not be hidden behind links, and evidence must not be silently discarded.
|
|
63
|
+
2. For a simple request, answer concisely in the current chat. Use a compact
|
|
52
64
|
diagram when useful. This needs no mandatory agent or intermediate artifact.
|
|
53
|
-
|
|
65
|
+
3. For a complex visual, use the configured `axstack-explainer` role to create
|
|
54
66
|
self-contained HTML, or use the requested artifact format. An explicit user
|
|
55
67
|
theme wins; otherwise use the dark default.
|
|
56
|
-
|
|
68
|
+
4. Profile IDs are presets, not availability proof. Before dispatch, follow the
|
|
57
69
|
launch sequence and preserve the configured model, mode, and effort. Report
|
|
58
70
|
an unavailable route; never substitute a model.
|
|
59
71
|
|
|
@@ -116,10 +116,10 @@ owns the event and settles after its skill-owned reviewers settle.
|
|
|
116
116
|
|
|
117
117
|
| Preset | Actual author provider/model | Reviewer role (configured model/effort) |
|
|
118
118
|
| --- | --- | --- |
|
|
119
|
-
| `mixed` | Codex / Sol (`codex/gpt-
|
|
120
|
-
| `mixed` | Claude / Opus (`claude/claude-opus-5`) | `axstack-reviewer-primary` (`codex/gpt-
|
|
121
|
-
| `codex-only` | Codex / Sol (`codex/gpt-
|
|
122
|
-
| `claude-only` | Claude / Opus (`claude/claude-opus-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5` xhigh) |
|
|
119
|
+
| `mixed` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`claude/claude-opus-5-5` medium) |
|
|
120
|
+
| `mixed` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-primary` (`codex/gpt-6-sol` medium) |
|
|
121
|
+
| `codex-only` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`codex/gpt-6-luna` xhigh) |
|
|
122
|
+
| `claude-only` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5` xhigh) |
|
|
123
123
|
|
|
124
124
|
Provenance is matched on provider/model ID; record effort, but never use
|
|
125
125
|
effort to create a mapping. Any other author provenance for the
|
package/src/roles.js
CHANGED
|
@@ -6,14 +6,14 @@ const PROVIDER_BOUNDS = Object.freeze({
|
|
|
6
6
|
|
|
7
7
|
const AUTHORED_ROUTES = Object.freeze({
|
|
8
8
|
mixed: {
|
|
9
|
-
'codex/gpt-
|
|
10
|
-
'claude/claude-opus-5': ['axstack-reviewer-primary', 'codex/gpt-
|
|
9
|
+
'codex/gpt-6-sol': ['axstack-reviewer-secondary', 'claude/claude-opus-5-5', 'medium'],
|
|
10
|
+
'claude/claude-opus-5-5': ['axstack-reviewer-primary', 'codex/gpt-6-sol', 'medium'],
|
|
11
11
|
},
|
|
12
12
|
'codex-only': {
|
|
13
|
-
'codex/gpt-
|
|
13
|
+
'codex/gpt-6-sol': ['axstack-reviewer-secondary', 'codex/gpt-6-luna', 'xhigh'],
|
|
14
14
|
},
|
|
15
15
|
'claude-only': {
|
|
16
|
-
'claude/claude-opus-5': ['axstack-reviewer-secondary', 'claude/claude-sonnet-5', 'xhigh'],
|
|
16
|
+
'claude/claude-opus-5-5': ['axstack-reviewer-secondary', 'claude/claude-sonnet-5', 'xhigh'],
|
|
17
17
|
},
|
|
18
18
|
});
|
|
19
19
|
|