Problem
For [no-mistakes]-mode projects, fm-brief.sh generates a DoD that says:
"Firstmate will then instruct you to run /no-mistakes to validate and ship a PR."
This is non-deterministic: if firstmate forgets (or pushes to fork directly), the crewmate's PR bypasses the no-mistakes gate entirely. The PR must be raised via no-mistakes CI check then fails, and the maintainer has to ask for a re-raise.
We hit this in production: 8+ PRs to no-mistakes-mode repos were pushed via git push fork + gh pr create instead of git push no-mistakes, because the brief's DoD relied on firstmate remembering to instruct /no-mistakes — which it didn't.
Fix direction
The DoD should instruct the crewmate to push through the gate directly:
- SETUP2: verify the gate is initialized (
git remote get-url no-mistakes); if not, no-mistakes init --fork-url <fork-url>.
- RULE1: "Push ONLY through
git push no-mistakes. NEVER use git push fork, gh pr create, or any other method."
- DoD: step-by-step gate-push instructions (
git push no-mistakes <branch> → pipeline runs → approve auto-fixes → report done when CI green).
This removes the "firstmate instructs" dependency and makes gate usage enforced by the brief contract (deterministic), not by firstmate's memory.
PR incoming.
Problem
For
[no-mistakes]-mode projects,fm-brief.shgenerates a DoD that says:This is non-deterministic: if firstmate forgets (or pushes to fork directly), the crewmate's PR bypasses the no-mistakes gate entirely. The
PR must be raised via no-mistakesCI check then fails, and the maintainer has to ask for a re-raise.We hit this in production: 8+ PRs to no-mistakes-mode repos were pushed via
git push fork + gh pr createinstead ofgit push no-mistakes, because the brief's DoD relied on firstmate remembering to instruct/no-mistakes— which it didn't.Fix direction
The DoD should instruct the crewmate to push through the gate directly:
git remote get-url no-mistakes); if not,no-mistakes init --fork-url <fork-url>.git push no-mistakes. NEVER usegit push fork,gh pr create, or any other method."git push no-mistakes <branch>→ pipeline runs → approve auto-fixes → report done when CI green).This removes the "firstmate instructs" dependency and makes gate usage enforced by the brief contract (deterministic), not by firstmate's memory.
PR incoming.