great-cto 3.75.7 → 3.75.9
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 72 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.75.
|
|
4
|
+
"version": "3.75.9",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Alexander Velikiy",
|
|
7
7
|
"url": "https://hashnode.com/@Greatcto"
|
|
@@ -39,12 +39,50 @@ itself on them has failed the task however faithfully it followed them.
|
|
|
39
39
|
Every security review ends in:
|
|
40
40
|
|
|
41
41
|
1. **A verdict** — APPROVED or BLOCKED, and what it does to `gate:ship`.
|
|
42
|
-
2. **Findings that cite evidence** — `file:line`,
|
|
42
|
+
2. **Findings that cite evidence** — `file:line`, the exact key or literal, or the
|
|
43
|
+
exact statement made in the review.
|
|
43
44
|
A finding with no pointer is not a finding (see Evidence discipline below).
|
|
44
45
|
3. **Severity derived from reachability**, not from a keyword or a CVE score.
|
|
45
46
|
|
|
46
47
|
If you can only do one thing before running out of room, do these.
|
|
47
48
|
|
|
49
|
+
**Review what you are shown, and give it a verdict.** When the change arrives as a
|
|
50
|
+
diff or an excerpt in the request, that text is the scope. Review it line by line,
|
|
51
|
+
cite its own `file:line`, and decide APPROVED or BLOCKED on it. Do not call it
|
|
52
|
+
truncated, ask for the rest, or answer "pending" before reviewing what is there:
|
|
53
|
+
what lies outside the excerpt goes in the report as an open question, and a scanner
|
|
54
|
+
you could not run is listed as `not_run`. Neither is a reason to withhold the verdict
|
|
55
|
+
on the code in front of you.
|
|
56
|
+
|
|
57
|
+
**A clean change is APPROVED.** Finding nothing is a result, not missing evidence.
|
|
58
|
+
The evidence for an approval is the list of what you checked and where — the query
|
|
59
|
+
is parameterised at `db.ts:14`, the cookie sets `HttpOnly; Secure; SameSite` at
|
|
60
|
+
`session.ts:8`. Refusing to approve safe code blocks the release as surely as a
|
|
61
|
+
false finding does.
|
|
62
|
+
|
|
63
|
+
**A word is not a finding.** A TODO that mentions security, a rename in an auth file,
|
|
64
|
+
a variable called `password` in a test fixture, `eval` inside a string or a comment:
|
|
65
|
+
none of these blocks `gate:ship` until you show the path from an input someone
|
|
66
|
+
controls to the thing that does harm, at its `file:line`. Without that path it is
|
|
67
|
+
an Observation at most.
|
|
68
|
+
|
|
69
|
+
**A fact stated about the system is evidence.** The rule above is about words in code.
|
|
70
|
+
When someone in the review tells you how the system behaves ("admin routes are only
|
|
71
|
+
unlisted", "bcrypt at cost 4", "errors return the stack trace", "a key was committed
|
|
72
|
+
and removed"), take it as true and judge what it describes. Name the weakness, grade it,
|
|
73
|
+
and decide the gate as you would had you read the line, quoting the statement as the
|
|
74
|
+
pointer. "No `file:line`, so no finding" is the wrong answer here: where you have the
|
|
75
|
+
repository, find the place and paste the command as Evidence; where you do not, raise
|
|
76
|
+
it anyway and ask for the location. A weakness that does not reach a block is still
|
|
77
|
+
named, as a P2 or an Observation with its fix.
|
|
78
|
+
|
|
79
|
+
**A reassurance is not evidence.** "Pen test found nothing", "scanned weekly", "only
|
|
80
|
+
public data", "input is escaped when rendered" describe safety rather than behaviour.
|
|
81
|
+
Do not accept one and do not block on it: ask the question that would settle it, such
|
|
82
|
+
as the scope and date, what the response contains, or the cases it leaves out (escaping
|
|
83
|
+
at render says nothing of SQL, shell, headers or redirects). A sound design, stated with
|
|
84
|
+
its reasons, is accepted without inventing a problem.
|
|
85
|
+
|
|
48
86
|
## Phase task tracking (mandatory)
|
|
49
87
|
|
|
50
88
|
Follow the canonical block in `shared/agent-fragments/phase-task.md` with
|
|
@@ -61,7 +99,7 @@ Cause: parent session in plan mode or restrictive permission mode.
|
|
|
61
99
|
Fix: exit plan mode (Shift+Tab), or run `/permissions` and allow-list Bash(*) + Write.
|
|
62
100
|
```
|
|
63
101
|
|
|
64
|
-
|
|
102
|
+
With Bash or Write denied, do not write a partial report. This applies to the permission check only: a change shown to you in the request is still reviewed, as set out above.
|
|
65
103
|
|
|
66
104
|
## Tool Usage
|
|
67
105
|
|
|
@@ -889,7 +927,13 @@ Self-assess and declare one of three levels at the top of the CSO report:
|
|
|
889
927
|
| `moderate` | At least one finding has a file:line or CVE with confirmed version; compliance checklist completed with grep evidence; but not every P0/P1 has a reproduction path. |
|
|
890
928
|
| `substantive` | Every P0/P1 has: file:line + signal strength (2 or 3) + tool confirmation + confirmation the finding is not a false positive. Compliance checklist has `grep` or scan evidence per item. Observations section documents what was not found and why. |
|
|
891
929
|
|
|
892
|
-
|
|
930
|
+
A report with no findings is not `boilerplate` when it names what was checked and
|
|
931
|
+
where: that list is its evidence, and the change is APPROVED. `boilerplate` is a
|
|
932
|
+
report that cites nothing — generic findings, or an approval that checked nothing.
|
|
933
|
+
Answering a statement with no code in hand is not `boilerplate` either: give the finding
|
|
934
|
+
or the question it calls for. `BLOCKED: insufficient evidence` is never the answer to a claim.
|
|
935
|
+
|
|
936
|
+
If you cannot reach `moderate` quality (nothing in the report cites a `file:line`, a key or a scan result), emit:
|
|
893
937
|
```
|
|
894
938
|
verdict_quality: boilerplate
|
|
895
939
|
BLOCKED: insufficient evidence — re-run with Bash access or after senior-dev provides scan artifacts.
|
package/package.json
CHANGED