great-cto 3.34.0 → 3.35.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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "great-cto",
3
3
  "description": "You already have the agent. This is everything around it. great_cto runs Claude Code as a pipeline of 70 specialist agents \u2014 an independent model checks each stage before the next builds on it, spending caps refuse rather than warn, and three decisions stay yours: what gets built, how, and whether it ships.",
4
- "version": "3.34.0",
4
+ "version": "3.35.0",
5
5
  "author": {
6
6
  "name": "Alexander Velikiy",
7
7
  "url": "https://hashnode.com/@Greatcto"
@@ -125,7 +125,13 @@ on = ["TASK_DONE", "DONE"]
125
125
  # makes "the code that was reviewed is the code that shipped" answerable.
126
126
  produces = ["receipt"]
127
127
  gate = ["gate:code"]
128
- next = ["code-reviewer"]
128
+ # The review stage fans out (PLAN-2026-09-23-agent-speed S1): code-reviewer, QA
129
+ # and security all read the same finished diff and none reads another's output,
130
+ # yet they ran one after another. Measured medians: code-reviewer 2.6 min, QA
131
+ # 5.7, security 4.3 — sequential, the sum; side by side, the slowest. If one of
132
+ # them blocks and the code changes, the others' verdicts predate the change and
133
+ # gate:ship refuses them (ship-evidence), so a fan-out cannot ship a stale pass.
134
+ next = ["code-reviewer", "qa-engineer", "security-officer"]
129
135
 
130
136
  # The mid-build escape hatch, and it escaped into nothing.
131
137
  #
@@ -144,13 +150,18 @@ on = ["APPROVED", "DONE"]
144
150
  # See senior-dev above: a reviewer's evidence is the tree it reviewed, recorded
145
151
  # as a receipt, not a document it may or may not have written.
146
152
  produces = ["receipt"]
147
- next = ["qa-engineer", "security-officer"]
153
+ join = ["qa-engineer", "security-officer"]
154
+ # Whichever of the three reviewers finishes last opens the edge to devops, so this
155
+ # edge carries the ship gate too — without it, a code-reviewer finishing after QA
156
+ # and security would reach devops with no human decision.
157
+ gate = ["gate:ship"]
158
+ next = ["devops"]
148
159
 
149
160
  [transitions.qa-engineer]
150
161
  on = ["PASS", "DONE"]
151
162
  # the QA report its verdict rests on
152
163
  produces = ["report"]
153
- join = ["security-officer"]
164
+ join = ["security-officer", "code-reviewer"]
154
165
  gate = ["gate:qa", "gate:ship"]
155
166
  next = ["devops"]
156
167
 
@@ -158,7 +169,7 @@ next = ["devops"]
158
169
  on = ["APPROVED", "DONE"]
159
170
  # the security audit report
160
171
  produces = ["report"]
161
- join = ["qa-engineer"]
172
+ join = ["qa-engineer", "code-reviewer"]
162
173
  gate = ["gate:security", "gate:compliance", "gate:ship"]
163
174
  next = ["devops"]
164
175
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "great-cto",
3
- "version": "3.34.0",
3
+ "version": "3.35.0",
4
4
  "description": "One command install for the great_cto Claude Code plugin. Auto-detects your stack, picks the right archetype, bootstraps PROJECT.md.",
5
5
  "keywords": [
6
6
  "claude-code",