You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
thirdshift secure audits the Base branch and records each finding as a draft advisory #538
The tracer bullet for the Security run: thirdshift secure audits the Base branch and records each Security finding privately, as a draft repository security advisory. It is report-only for now: no reproduction and no fixing yet.
The command.
secure joins architect and pickup.
It takes base <branch>, the Harness, Model and Effort words, and the words a Pass hands to the runs it dispatches.
Gates. It's skipped while another Pass on the repository is running on the machine, and while the repository has a Ready issue.
Checks. Before any work, it checks its Harness, and that Node.js is installed, since the skill's validators need it. A missing Node.js fails the run with a cause that says so.
The Security audit session. It runs in a throwaway worktree detached at the Base branch's head on origin, as the Architecture review does, with the thirdshift-security-audit skill. Its Session prompt names:
full audit mode, with report artifacts, and the quick profile;
the whole repository at the audited commit, with vendored and third-party code out of scope;
the repository's SECURITY.md or threat-model document, if it has one;
an output directory under the repository's audit root, which is kept with its other logs, outside every worktree;
that earlier runs under that root are read;
that the session ends incomplete rather than asking;
that it commits, pushes, opens and publishes nothing, and touches no deployed site;
the headless paragraph every prompt ends with;
a fixed final line that thirdshift reads.
Recording. thirdshift reads the skill's report and records each finding as a draft repository security advisory:
the summary from the finding's title;
a description composed from its write-up, trace, evidence and validation plan, with its fingerprint, the audited commit, and a line saying thirdshift's Security run found it;
no severity, no CWE;
the package from the repository's manifest, or other, with no version range claimed.
A finding already recorded, found by its fingerprint in any advisory state, isn't recorded again. thirdshift never publishes or closes an advisory.
Reporting. Progress lines, a Command log, and Activity log lines, as for other Passes.
README. A section on thirdshift secure.
Acceptance criteria
Tested end to end with the scenario harness. The fake gh learns repository security advisories: create, list in every state, and update. The fake agent writes the skill's report into the directory its prompt names.
thirdshift secure and thirdshift secure base <branch> run a Security audit of the Base branch, detached at its head on origin, and leave the Launch directory untouched.
It's skipped while another Pass on the repository is running, and while the repository has a Ready issue, each with its Activity log line, and no Command log is kept.
With no Node.js on PATH, it fails before any session, with a cause naming Node.js.
The Session prompt names the skill, full audit mode, quick, the scope, the threat-model document when there is one, the output directory, the earlier runs, the no-asking rule and the final line.
Each finding in the report becomes one draft advisory with the fields above, and a second audit with the same finding creates no second advisory.
No advisory is published or closed, and nothing is committed or pushed.
A session that ends without the final line, or with a report that fails the skill's validators, fails the Security run with a cause that says so.
Progress lines, the Command log and the Activity log cover the run, as for an Architect run.
Parent
#427
What to build
The tracer bullet for the Security run:
thirdshift secureaudits the Base branch and records each Security finding privately, as a draft repository security advisory. It is report-only for now: no reproduction and no fixing yet.The command.
securejoinsarchitectandpickup.base <branch>, the Harness, Model and Effort words, and the words a Pass hands to the runs it dispatches.Gates. It's skipped while another Pass on the repository is running on the machine, and while the repository has a Ready issue.
Checks. Before any work, it checks its Harness, and that Node.js is installed, since the skill's validators need it. A missing Node.js fails the run with a cause that says so.
The Security audit session. It runs in a throwaway worktree detached at the Base branch's head on origin, as the Architecture review does, with the
thirdshift-security-auditskill. Its Session prompt names:quickprofile;SECURITY.mdor threat-model document, if it has one;incompleterather than asking;Recording. thirdshift reads the skill's report and records each finding as a draft repository security advisory:
other, with no version range claimed.A finding already recorded, found by its fingerprint in any advisory state, isn't recorded again. thirdshift never publishes or closes an advisory.
Reporting. Progress lines, a Command log, and Activity log lines, as for other Passes.
README. A section on
thirdshift secure.Acceptance criteria
Tested end to end with the scenario harness. The fake
ghlearns repository security advisories: create, list in every state, and update. The fake agent writes the skill's report into the directory its prompt names.thirdshift secureandthirdshift secure base <branch>run a Security audit of the Base branch, detached at its head on origin, and leave the Launch directory untouched.PATH, it fails before any session, with a cause naming Node.js.quick, the scope, the threat-model document when there is one, the output directory, the earlier runs, the no-asking rule and the final line.thirdshift secure.