بنقرة واحدة
author-pr
// Author or update a Marin PR in the required plain-text format. Use when creating or updating a PR.
// Author or update a Marin PR in the required plain-text format. Use when creating or updating a PR.
| name | author-pr |
| description | Author or update a Marin PR in the required plain-text format. Use when creating or updating a PR. |
The exact output format for pull requests. Follow it literally when creating or updating a PR, including any time you change a branch that already has one — keep the PR title and description aligned with the branch's actual scope.
The PR description becomes the squash-merge commit message. Write it as plain text.
Title: Short imperative sentence. Optional scope tag in brackets. Body: 1-3 sentences stating what changed and why. End with an issue link if one exists.
Hard rules — violations will be rejected:
##), no bullet lists (-/*), no tables, no images, no [text](url) links.- [ ], - [x]).## Summary, ## Test plan, ## Changes.Title: [RL] Fix loss: use global token normalization instead of per-example
Body:
Switch DAPO loss from per-example normalization (/ n_i) to global token
normalization (/ N). Per-example normalization over-weights short responses,
hurting math reasoning where correct answers need longer derivations.
Adds regression test.
Fixes #1234
If the work originated from a GitHub issue, reference it: Fixes #NNNN
(auto-closes on merge) or Part of #NNNN (partial work). Do not create an issue
just to satisfy this rule — omit the link when there is no pre-existing issue.
Run these before pushing; do not skip any step.
./infra/pre-commit.py --changed-files --fix — resolve all issues. Do not substitute uv run pre-commit ...../infra/pre-commit.py --review --agent-command='<your own headless invocation>' — advisory agentic pass over the branch diff against the infra/lint.md rule catalog. Pass the headless CLI for whichever agent you are: --agent-command='claude -p' for Claude Code, --agent-command='codex exec' for Codex, etc. The script defaults to claude -p if you omit the flag. Fix the findings it reports (search infra/lint.md for each ml-... code to see the rule and when it is acceptable to ignore); re-run once to confirm. Findings do not block, but address them — they are the nits a reviewer would otherwise flag.uv run pytest -m 'not slow' — relevant test directories.uv run python infra/check_docs_source_links.pyuv run mkdocs build --strictAfter pushing, monitor CI with gh pr view <number> --json statusCheckRollup;
fix failures before considering the PR complete.
When opening a new PR, if an automation feature is present (e.g.
codex_app.automation_update), use it to schedule follow-up checks for
automated reviews and review comments. The automation
should inspect the PR, address comments automatically only when the fix is
unobjectionable and certainly correct, run the relevant checks, and push the
follow-up commit. Defer anything that needs human judgment, design choice, or
tradeoff evaluation back to the user instead of changing it automatically.
PRs over ~500 lines must include a specification, placed (preferred order) in the
associated GitHub issue, the first PR comment, or docs/design/<topic>.md /
.agents/projects/<topic>.md. It contains:
Unless the user says otherwise and permissions allow, push directly to a branch on the main repository and open the PR from that branch — use a fork only when direct push is unavailable or the user asks for it.
gh pr create \
--title "<title>" \
--body "<plain text body>" \
--label agent-generated
agent-generated label.Fixes #NNNN when addressing a pre-existing issue..agents/skills/review-pr/ — PR review skill (separate concern).agents/skills/fix-issue/ — end-to-end issue fix workflowAGENTS.md — coding guidelinesMonitor an Iris job and recover it on failure. Use when asked to babysit or watch a job or run.
Multi-agent correctness review of a pull request.
De-rot markdown docs in lib/iris, lib/zephyr, and lib/fray.
Multi-session research workflow: logbooks, experiment issues, and W&B.
Scheduled scrub: docs and code parity.
Scheduled scrub: TL;DR blocks on experiment issues.