Skip to content
Back to skills

Ox Pr Header

ASecurity

Emit and paste the SageOx credit line at the TOP of a pull-request description — the human-facing counterpart to the machine `SageOx-Session:` trailer. Run `ox pr header` at PR-creation time; it renders a thin, on-brand, dark/light-aware line linking the session(s) and plan(s) that produced the change, naming the team, and whispering a subtle enrichment stat. The CLI owns the sanitizer-fragile markup — you never hand-author it. Use when opening a PR for AI coworker work, or when the user says...

  • 62 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 4, 2026
ai-agentsbashgit

Works with

  • cli

Security analysis

A100/100

Scanned September 4, 2026

npx -y skills add sageox/ox --skill ox-pr-header --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ox Pr Header?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ox Pr Header
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sageox-ox-pr-header-ox/badge)](https://www.skillsdirectory.com/skills/sageox-ox-pr-header-ox)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ox-pr-header
description: >-
  Emit and paste the SageOx credit line at the TOP of a pull-request description
  — the human-facing counterpart to the machine `SageOx-Session:` trailer. Run
  `ox pr header` at PR-creation time; it renders a thin, on-brand, dark/light-aware
  line linking the session(s) and plan(s) that produced the change, naming the
  team, and whispering a subtle enrichment stat. The CLI owns the sanitizer-fragile
  markup — you never hand-author it. Use when opening a PR for AI coworker work, or
  when the user says "add the SageOx header", "credit the session on the PR", or
  "/ox-pr-header".
---

**You do not hand-write this markup — `ox pr header` does.** A GitHub PR body is
sanitized harder than repo markdown (no CSS, no styled tables); the line is built
from the exact primitives that survive (`<picture>` wordmark, `<a>` links, `<sub>`
caption). Hand-authoring it is how it silently renders as a bordered table or a
vanished wordmark. Run the command and paste its output verbatim.

## When

At PR-creation time, **only when SageOx-delivered team context measurably shaped the
work** (your contribution score is not `none`). If SageOx did not shape it, omit both
the header and the `SageOx-Session:` trailer — publishing SageOx credit for work it
did not influence is the fabrication #809 guards against. When it did shape the work,
the header is the **top** of the body and the `SageOx-Session:` trailer stays the
**last** line (they serve different readers: the header a human, the trailer the
reconciler).

## How

1. Gather what the PR credits (you already hold this from your session):
   - the plan ids you saved (`pln_…`), if any;
   - the enrichment counts from `ox plan enrich` (related sessions / concurrent
     edits), if any.
2. Run the command — the current session is auto-linked; add plans + enrichment:

   ```bash
   ox pr header \
     --plan pln_4d8e2f --plan pln_1a6b9c \
     --prior-art 2 --collisions 1
   ```

   `--session <url|ses_id>` adds/overrides sessions (default: the live session).
   `--no-stat` drops the whisper. `--style text|image|auto` follows `ox config`
   (`pr_visuals.style`) by default. `--json` returns the markup plus resolved
   inputs for verification.

3. Paste the output as the FIRST lines of the PR body, **above** your summary.
   Write the body via a **file**, never a heredoc — a heredoc mangles the markup:

   ```bash
   ox pr header > body.md
   printf '\n' >> body.md
   cat description.md >> body.md   # your written summary
   # ...keep the SageOx-Session: trailer as the last line...
   gh pr create --body-file body.md
   ```

## Rules

- **Paste verbatim.** Do not edit the emitted markup, retitle the links, or add
  the plan/session titles — the `/c/` and `/plan/` URLs are deliberately opaque
  so nothing about the work leaks into a public PR body.
- **Only link artifacts you know resolve.** ox verifies just the auto-linked
  current session (from local recording state) and withholds it until it is
  server-visible. Explicit `--session`/`--plan` ids you pass are included **as
  given** — ox cannot check an arbitrary id, so pass only ids you know exist or a
  reviewer may hit a 404; the command prints a stderr note when you do. Pass
  `--allow-unconfirmed` to accept possibly-unresolved links (the pending current
  session and explicit refs) and silence the note.
- **Honest enrichment only.** Pass the real `ox plan enrich` counts. The stats
  render only when a signal actually fired AND a plan is linked (so a reviewer can
  verify them) — never inflate them.
- **Respect config.** If `pr_visuals.header` is off (team/user opt-out) the command
  no-ops with a hint; don't force a header in that case.
- **Keep the trailer (only when attribution is non-`none`).** When SageOx shaped the
  work, the header does not replace `SageOx-Session:` — that line stays at the bottom
  as the machine linkage. If the work is unscored or scored `none`, emit neither the
  header nor the trailer.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.