ship-conductor
Skill1 starsChanged 2 months agoMITView on GitHub
Drive one software implementation plan end to end in Codex: lock the outcome, branch, build, verify, review, audit and stop at a proven merge-ready branch. Also triggers on lenny, conduct, ship conductor, drive this plan and run lenny.
In this repository20 other files it gives its agents.
- AGENTS.mdAGENTS.md
- bayesianSkill
- claudes-gambleSkill
- codebase-designSkill
- councilSkill
- elon-first-principlesSkill
- find-skillsSkill
- first-principlesSkill
- fleet-conductorSkill
- garciaSkill
- gbrain-captureSkill
- grill-meSkill
- karpathySkill
- kissingerSkill
- meta-conductorSkill
- outcome-lockSkill
- pre-kSkill
- release-managerSkill
- rumsfeldSkill
- setup-lennySkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
40 rules. About 0 are common, 26 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈26
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 20
all validated P0/P1 findings are closed.
- Distinctive: line 24
no PR was opened and nothing was merged or deployed.
- Distinctive: line 26
If a repository has no remote or the user forbids pushing, stop at locally verified.
- Very specific: line 31
Read plan.md or the plan the user named.
- Distinctive: line 33
Read the repository instructions and relevant code/tests.
- Very specific: line 34
Read outcome-lock/SKILL.md, first-principles/SKILL.md and release-manager/SKILL.md from the installed Lenny root.
- Distinctive: line 36
Do not read every optional skill or reference up front.
- Very specific: line 39
Use .lenny/core as the Lenny root in an installed project.
- Distinctive: line 44
Verify repository, branch, worktree, remote and verification commands.
- Very specific: line 48
Create .lenny/runs/<run-id>/OUTCOME-CONTRACT.json with Outcome Lock.
- Very specific: line 49
Create .lenny/runs/<run-id>/CONDUCTOR-RUN.md.
- Very specific: line 50
Commit and freeze all run state before selecting reviewedCommit for Phase 6.
- Distinctive: line 55
Ask the user only when new authority, spend, credentials, destructive action or a materially different product decision is required.
- Distinctive: line 61
Run and save the deterministic classifier:
- Very specific: line 69
When developing Lenny itself, use node scripts/lenny.mjs risk.
- Distinctive: line 88
Create a fresh feature branch from current base.
- Distinctive: line 101
Do not introduce an abstraction until a real second use or adapter proves the seam.
- Distinctive: line 103
Commit the product implementation before reviews.
- Very specific: line 106
After the phase, read rumsfeld/SKILL.md and surface grounded unknown-knowns.
- Distinctive: line 115
Use the three public seats:
- Distinctive: line 128
If it errors, returns no ID or reports that the parent thread does not exist:
- Distinctive: line 130
do not retry it;
- Distinctive: line 131
do not call wait on it;
- Very specific: line 133
verify codex --version and codex login status first.
- Distinctive: line 136
never ask a fallback reviewer to convene another council.
- Distinctive: line 138
If both paths fail, the council is blocked.
- Very specific: line 154
Run every verified command from .lenny/profile.md that applies:
- Distinctive: line 166
Do not use passing unit tests as a substitute for a runnable workflow.
- Very specific: line 168
Before freezing, write .lenny/runs/<run-id>/GATE-CONTRACT.json with each required deterministic gate's ID, kind, repository-relative cwd …
- Very specific: line 170
Update Phase 0-5 run state, commit it, and freeze that commit as reviewedCommit.
- Distinctive: line 193
After audits pass, independently re-read the locked outcome and live proof.
- Very specific: line 208
Read references/evidence-contract.md.
- Very specific: line 225
When developing Lenny itself, omit .lenny/core/ from the script path.
- Distinctive: line 232
Never use git add -A in a dirty repository.
- Distinctive: line 233
Never amend, reset, rebase, force-push, delete or merge without explicit scope.
- Distinctive: line 234
Never ask the user to run verification the agent can run.
- Distinctive: line 235
Never claim an external state from docs, memory or a source diff.
- Distinctive: line 236
Never let a council change the frozen outcome.
- Distinctive: line 237
Never leave active work with no real running task or explicit blocker.
- Distinctive: line 238
Never hide a failed gate behind a summary.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ship Conductor
Lenny's Codex-first software implementation workflow. It turns one accepted plan into the smallest verified branch a human can review and merge. It does not deploy, operate production, open a pull request, merge or become an agent runtime.
Finish line
Merge-ready means all of these are true:
- the original user-visible outcome is frozen and satisfied;
- the work is on a feature branch and the base branch is untouched;
- the changed workflow was exercised at the strongest practical level;
- required tests, build, leak scan, council, audit and done review pass;
- all validated P0/P1 findings are closed;
- evidence is bound to the exact reviewed commit;
- the branch is pushed and equals its upstream;
- the strict evidence interlock exits
0; - no PR was opened and nothing was merged or deployed.
If a repository has no remote or the user forbids pushing, stop at locally verified; merge-ready closeout blocked by upstream proof. Never weaken the term.
Read first
- Read
plan.mdor the plan the user named. - Read
.lenny/profile.md. - Read the repository instructions and relevant code/tests.
- Read
outcome-lock/SKILL.md,first-principles/SKILL.mdandrelease-manager/SKILL.mdfrom the installed Lenny root. - Do not read every optional skill or reference up front. Read a reference when its named phase begins.
Use .lenny/core as the Lenny root in an installed project. Use the repository
root while developing Lenny itself.
Phase 0: lock the outcome
- Verify repository, branch, worktree, remote and verification commands.
- Separate verified facts, user-stated requirements and unknowns.
- Translate the plan into observable acceptance criteria. Preserve the user's outcome even when a council suggests an easier substitute.
- Create
.lenny/runs/<run-id>/OUTCOME-CONTRACT.jsonwith Outcome Lock. - Create
.lenny/runs/<run-id>/CONDUCTOR-RUN.md; keep it current through Phase 5. - Commit and freeze all run state before selecting
reviewedCommitfor Phase 6. Record later results only in.lenny/evidence/<run-id>. - Freeze
Must ship now / Fast follow / Not doing. New ideas default to fast follow unless the accepted path cannot work without them.
Ask the user only when new authority, spend, credentials, destructive action or a materially different product decision is required. Resolve ordinary reversible implementation choices from repository evidence and record the reversal path.
Phase 1: classify risk and branch
Run and save the deterministic classifier:
node .lenny/core/bin/lenny.mjs risk --json \
--files "comma,separated,paths" \
> .lenny/runs/<run-id>/risk-classification.jsonWhen developing Lenny itself, use node scripts/lenny.mjs risk.
standard: reversible work without auth, secrets, money, custody, destructive persistence, migration, production infrastructure or a security boundary.high-stakes: any trigger above, uncertainty about material impact or an explicit escalation.
Repository semantics and the user may escalate. Never mechanically downgrade. Re-run the classifier against the frozen reviewed commit and its exact merge base after the Phase 5 freeze. Write the final receipt directly into the evidence bundle; do not supply a hand-written file list:
node .lenny/core/bin/lenny.mjs risk --json \
--reviewed-commit "<full-commit-sha>" --merge-base "<full-base-sha>" \
> .lenny/evidence/<run-id>/risk-classification.jsonCreate a fresh feature branch from current base. Fetch first when a remote exists. Preserve pre-existing user changes and stage only files owned by this run.
Phase 2: build the smallest correct slice
- Generate a compact repo map with
rgorctagsonly when the code is larger than the directly affected slice. - Apply first-principles software engineering: inspect before editing, verify command preconditions and make the smallest matching change.
- For shape-bearing work, read
codebase-design/SKILL.md. Skip it for a localized edit that adds no module or seam. - Implement one coherent slice at a time. Run touched tests after each slice and fix failures before proceeding.
- Do not introduce an abstraction until a real second use or adapter proves the seam.
- Commit the product implementation before reviews. Reviews bind to a commit, never to a moving worktree.
After the phase, read rumsfeld/SKILL.md and surface grounded unknown-knowns.
Then read kissinger/SKILL.md and ask whether a material improvement remains.
Bound this to three passes; cosmetic churn is not improvement.
Phase 3: Software Implementation Council
Read council/SKILL.md and
council/references/software-implementation-council.md.
Use the three public seats:
- Contract / correctness
- Failure / security
- Simplicity / maintainability
Each seat receives the same outcome contract, project profile, merge base, exact
diff and verification receipts. Round 1 is blind. Then run one bounded
cross-critique and issue one GO, NO-GO or BLOCKED consensus with dissent.
Codex isolation preflight
Probe native subagent dispatch once. A successful probe returns a real task ID. If it errors, returns no ID or reports that the parent thread does not exist:
- do not retry it;
- do not call wait on it;
- immediately use one fresh
codex exec --ephemeralprocess per seat; - verify
codex --versionandcodex login statusfirst; - bind every process to the same frozen commit and write each raw output to a different file;
- never ask a fallback reviewer to convene another council.
If both paths fail, the council is blocked. Never write three pretend-independent voices inside the driver context.
Validate every finding against code before it gates. Fix validated blockers, re-run affected proof and reconvene only the affected seat plus consensus.
Phase 4: release cutoff
Apply the release-manager rule:
- freeze the accepted design;
- reject additions outside the exact acceptance path;
- retain fast follows in the ledger without changing this branch;
- once the core path works, fix only failures in that path.
Phase 5: green gate and live workflow
Run every verified command from .lenny/profile.md that applies:
- focused tests, then the full relevant suite;
- build, lint and typecheck when present;
- leak/secret scan over the exact diff;
- the real user-facing workflow end to end.
For browser-facing behavior, follow the repository's browser QA rule. For a library or CLI, run its exported or installed interface with success and failure inputs. If no user-facing runtime exists, state why browser QA is inapplicable and prove the real callable interface instead.
Do not use passing unit tests as a substitute for a runnable workflow.
Before freezing, write .lenny/runs/<run-id>/GATE-CONTRACT.json with each
required deterministic gate's ID, kind, repository-relative cwd and exact argv.
Update Phase 0-5 run state, commit it, and freeze that commit as
reviewedCommit. Keep the
contract in_progress and do not modify .lenny/runs/<run-id> again. Replay
final risk, deterministic gates and required councils against that commit into
.lenny/evidence/<run-id>. Earlier receipts are exploratory and cannot satisfy
the merge-ready interlock.
Phase 6: independent audit
Standard work requires one fresh P0/P1 audit. High-stakes work requires two distinct audits plus a cross-vendor auditor when authorized and available.
An auditor receives the outcome contract, exact reviewed commit, merge base,
diff and proof artifacts. It does not receive the driver's conclusions. It must
return reproducible P0/P1 findings or PASS, with file/line evidence. Validate
every finding locally. Repair validated P0/P1s, commit, rerun affected gates and
reaudit the new tip.
For high-stakes transport and waiver rules, read
references/high-stakes-audit.md. Do not load that reference for standard work.
Phase 6b: done council
After audits pass, independently re-read the locked outcome and live proof. Answer one question: Is this project actually done at the stated finish line?
The done council must distinguish:
- implemented;
- locally verified;
- pushed and merge-ready;
- deployed or production-proven.
A NO-GO reopens the smallest affected phase. A GO must list residual limits
and confirm that the only remaining human acts are review and merge.
Phase 7: evidence and stop
Read references/evidence-contract.md. Create the evidence bundle under
.lenny/evidence/<run-id>, hash every gate artifact and bind it to the exact
reviewed commit. Record deterministic tests, builds, leak scans and live QA with
the referenced gate runner rather than writing pass receipts by hand. Commit the
evidence directory only, push the branch when authorized and verify local HEAD
equals upstream. Do not add .lenny/runs/ to the evidence commit.
Copy the frozen outcome contract into evidence, update only status and evidence,
validate it with --claim-complete, and declare the required outcome_contract
gate. The interlock compares its immutable fields with the reviewed copy.
The phrase merge-ready is forbidden until this exits 0:
node .lenny/core/skills/ship-conductor/scripts/validate-evidence.mjs \
.lenny/evidence/<run-id> --claim-merge-readyWhen developing Lenny itself, omit .lenny/core/ from the script path.
On pass, preserve the literal MERGE-READY INTERLOCK: PASS receipt. Use
writeup-template.md for the handoff. Stop. Do not open a PR, merge or deploy.
Always-on rails
- Never use
git add -Ain a dirty repository. - Never amend, reset, rebase, force-push, delete or merge without explicit scope.
- Never ask the user to run verification the agent can run.
- Never claim an external state from docs, memory or a source diff.
- Never let a council change the frozen outcome.
- Never leave active work with no real running task or explicit blocker.
- Never hide a failed gate behind a summary.
Handoff
Lead with the observable result. Include:
- branch and reviewed commit;
- exact verification commands and outcomes;
- council and audit verdicts;
- strict interlock receipt or the precise blocker preventing it;
- fast follows and known limitations;
- confirmation that no PR, merge or deployment occurred.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

