pr

pr is a command for Claude Code from Zts0hg/codexspec. It costs 31 tokens per session (6,378 once invoked), scanned A, original, MIT.

A pull-request or merge-request description generator based on the changes in Git and, when available, a software specification.

In plain words
What is it for?
Use it to prepare structured descriptions for GitHub pull requests or GitLab merge requests, including the relevant project language and constitution rules.
Why use it?
It saves you from manually reconstructing what changed and checking it against project rules before opening a code review.

Command for Claude Code

Written for Claude Code: allowed-tools in frontmatter. Also seen: mentions CLAUDE.md.

Good fit Use it to prepare structured descriptions for GitHub pull requests or GitLab merge requests, including the relevant project language and constitution rules.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/zts0hg/codexspec/pr
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/Zts0hg/codexspec

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pr

README.md
[![agentmods](https://agentmods.dev/badge/commands/zts0hg/codexspec/pr/github.svg)](https://agentmods.dev/commands/zts0hg/codexspec/pr)
Your own site
<a href="https://agentmods.dev/commands/zts0hg/codexspec/pr"><img src="https://agentmods.dev/badge/commands/zts0hg/codexspec/pr/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pr

Your own site · 80×15
<a href="https://agentmods.dev/commands/zts0hg/codexspec/pr"><img src="https://agentmods.dev/badge/commands/zts0hg/codexspec/pr.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 31 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 6,378 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00031 $0.06378
Opus 5.5 $0.00012 $0.02551
Sonnet 5.5 $0.00006 $0.01276
Haiku 4.5 $0.00003 $0.00638

Measured 6d ago against content hash 117b82826c18, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

pr scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/codexspec/pr.md · 733 lines

How it starts

The opening of the file, as written. The whole thing — 733 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Constitution Compliance (MANDATORY)

Before generating PR description:

  1. Check for Constitution File: Look for .codexspec/memory/constitution.md
  2. If Constitution Exists:
    • Load and read relevant principles (especially documentation standards, code review guidelines)
    • Ensure PR description reflects constitutional principles
    • Verify that the changes align with project quality standards
  3. If No Constitution Exists: Proceed with standard PR generation

Language Preference

IMPORTANT: Before generating PR descriptions, read the project's language configuration from .codexspec/config.yml.

PR description language priority:

  1. If language.commit is set, use that language for the PR description
  2. Otherwise, use language.output as fallback
  3. If neither is configured, default to English

Note:

  • Technical terms (e.g., API, JWT, OAuth, PR, MR) may remain in English when appropriate
  • The PR title and section headers should follow the configured language

Examples:

  • output: "zh-CN" + commit: "en" → Chinese interactions, English PR descriptions
  • output: "zh-CN" + commit: "zh-CN" → Chinese for both
  • output: "zh-CN" + no commit setting → Chinese for both (fallback)

Expression Standard

IMPORTANT: Everything this command produces — documents, reviews, reports, commit messages, diagnostics, and replies — is written for a reader who cannot see your working context. Apply the rules below to every artifact and message you output:

  • Write for the reader at hand-off. Every reference must resolve without access to this session: no session-only identifiers or section numbers, no narration of what changed during the conversation, no arguments with absent reviewers. State current reality and cite committed, reachable sources.
  • Preserve every proposition. Before summarizing or trimming, list the facts a passage carries: actors, conditions, ordering, modalities (must, never), negative guarantees, and consequences. Remove only reasoning transcripts, repetition, and decoration. Shorter is not clearer if any fact is lost.
  • State what the surface requires. Diagnostics name what failed, which rule was violated, and the correction. Problem reports carry the defect, its location, its impact, and the evidence. Decisions record the alternatives they beat. Rejections give the reason in one line. Shipped work is described in the present tense; plans and open questions are labeled as such.
  • Define terms before relying on them. Prefer the concrete rule, field, or behavior over a coined label; give a project-specific term a plain-language definition at first use, then use it consistently.
  • Be honest, not agreeable. Verify claims before accepting them; fix or rebut on technical grounds. One substantiated blocker is worth more than a list of nitpicks. When a decision is needed, present only viable options, recommend one, and state the real difference between them.
  • Declare what is binding. Say explicitly which instructions are hard requirements and where judgment is required. Keep one explanation in one place and link to it, but keep at the point of use the contract a reader needs there.

Read the full file on GitHub · 733 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago Changed · +15 lines 117b82826c18
  2. 12d ago Changed · +72 lines d433c6fa4cdd
  3. 1mo ago Changed · +11 lines 5dda4684e137
  4. 1mo ago First seen · 635 lines · 31 tokens per session scan A 4eea0ff80aaf

Subscribe to this mod's changes

pr is a command published in the GitHub repository Zts0hg/codexspec (5 stars, last pushed today), licensed MIT. It adds 31 tokens to every session and 6,378 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.