The cross-AI hard rules that bind every agent on every surface are NOT duplicated here. They live
in exactly one file: docs/cross-ai-rules.md in the web-jam-tools repository, which normally
sits alongside this repository — ../web-jam-tools/docs/cross-ai-rules.md, and on Josh's laptop
/home/joshua/WebJamApps/web-jam-tools/docs/cross-ai-rules.md.
Read that file before acting. If you cannot find it, STOP and say so — do not proceed without the rules and do not reconstruct them from memory or from this file.
Never merge to dev or main — Josh is the mandatory human reviewer. Open PRs
with the shared script (~/WebJamApps/web-jam-tools/scripts/create-draft-pr.sh),
never gh pr create directly. It always opens a draft PR based on dev.
The script requires --author, --summary, --test-plan, and --test-evidence;
empty or placeholder values are rejected. Bump the semver version in
package.json once per PR, on the PR's first commit only.
- Summary: markdown bullet points, one change per bullet — never a run-on paragraph.
- Test evidence: paste the REAL runner output verbatim (the lines showing pass/fail and test counts), inside a ``` fence — never a description like "all tests passed". If the output has scrolled out of view, re-run the test command and paste what it prints.
- Test plan: exact commands and manual steps that exercise the change (start command, route/page, what to click, expected visible result) — a green test suite alone is not a plan.
- Attribution:
--authornames the model actually doing the work. Antigravity/agy sessions are ALWAYSagy — Gemini 3.5 Flash (Medium)or(High)— never write any other Gemini model name (models misremember their own identity; use this exact string).
- Snyk Failures & Resolution via
npm audit fix: PR checks may report failure onsecurity/snykdue to transitive dependency vulnerabilities (such asbrace-expansionorpostcss). Runningnpm audit fixupdatespackage-lock.jsonwith non-breaking patches to resolve these vulnerabilities. Always runnpm testandnpm run test:lintafterwards to verify the test suite remains 100% green before committing and pushing the updatedpackage-lock.jsonto the PR branch.