Repository navigation
Description
Parent
What to build
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.
securejoinsarchitectandpickup.- 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
quickprofile; - the whole repository at the audited commit, with vendored and third-party code out of scope;
- the repository's
SECURITY.mdor 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
incompleterather 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 secureandthirdshift 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.
- The README documents
thirdshift secure.
Activity
JacobStephens2 commentedon Oct 8, 2026
Closed by #558, merged into issue-427 by a thirdshift Merge run.