Skip to content

chore(skills): make public-repo scrubbing explicit in ship and babysit - #6819

Merged
waleedlatif1 merged 1 commit into
stagingfrom
chore/skill-public-repo-scrub
Aug 18, 2026
Merged

chore(skills): make public-repo scrubbing explicit in ship and babysit#6819
waleedlatif1 merged 1 commit into
stagingfrom
chore/skill-public-repo-scrub

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • /ship's "What to Omit" now applies to every artifact a PR produces — title, description, commit messages, and later comments — not just the title and body
  • Adds verbatim customer content (file names, document titles, sheet/column names, folder paths) as its own category, and tenant subdomains to the infrastructure line
  • Draws the line on numbers: aggregate counts are fine once detached from a tenant, the same count attributed to a named customer is not
  • Adds a pre-publish grep so the check is mechanical rather than remembered, and states explicitly that it applies to PRs opened directly with gh pr create
  • /babysit gets a short public-repo hygiene section plus a hard rule; it had none despite posting replies continuously

Why

The rule already existed in /ship, but it only fired inside that skill. A PR opened directly with gh pr create skipped it, and a customer name, a knowledge base id, and verbatim sheet and column names reached a public PR description. Both were caught and scrubbed, but editing a comment does not unsend its notification email — so the guidance needed to be mechanical and to live where the posting actually happens.

Babysit is the higher-risk surface of the two: triaging a review finding usually means pasting evidence gathered from production, and review bots quote replies back, so a leak propagates. It points at ship's list rather than restating it, to keep one source of truth.

Type of Change

  • Chore / tooling

Testing

  • Documentation only; no code paths touched
  • Verified both skill files contain no customer identifiers

Checklist

  • Self-reviewed
  • No secrets or customer data introduced

The repo is public and both skills publish permanently. `/ship` already listed
what to omit, but the rule only fired inside that skill — a PR opened directly
with `gh pr create` skipped it entirely, which is how a customer name, a
knowledge base id, and verbatim sheet and column names reached a public PR
description.

Ship's list now covers every artifact rather than just the title and body,
names verbatim customer content as its own category, draws the line on
aggregate counts (fine detached from a tenant, not fine attributed to one),
and carries a pre-publish grep so the check is mechanical instead of
remembered.

Babysit had no such guidance at all despite posting replies continuously, and
triage is precisely where prod evidence gets pasted in. It now has a short
section plus a hard rule, pointing at ship's list rather than restating it.
@vercel

vercel Bot commented Aug 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Building Building Preview Aug 18, 2026 8:59pm

Request Review

@cursor

cursor Bot commented Aug 18, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Documentation-only updates to agent skill markdown; no runtime code, auth, or data paths.

Overview
Extends /ship's What to Omit so it covers every public artifact (title, body, commits, follow-up comments), not just the initial PR text. Adds categories for verbatim customer content and tenant subdomains, clarifies when aggregate numbers are OK vs tenant-attributed, and documents a pre-publish grep plus the rule that scrubbing must happen before post (edits don't unsend notification email).

Adds a /babysit Public-repo hygiene section and a hard rule against posting unscrubbed prod evidence in review replies, with a pointer to /ship for the full omit list and grep so triage loops don't leak tenant data when bots quote replies.

Reviewed by Cursor Bugbot for commit 4750c52. Configure here.

@waleedlatif1
waleedlatif1 merged commit 08fe3ed into staging Aug 18, 2026
5 of 6 checks passed
@waleedlatif1
waleedlatif1 deleted the chore/skill-public-repo-scrub branch August 18, 2026 21:00
@greptile-apps

greptile-apps Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR expands public-repository scrubbing guidance across /ship artifacts and /babysit review activity.

  • Adds tenant identifiers, customer-authored names, and attributed counts to the material that must be scrubbed.
  • Adds pre-publication guidance and extends it to direct gh pr create usage.
  • Adds corresponding public-repository hygiene and a hard rule to /babysit.

Confidence Score: 3/5

This PR should not merge until the pre-publish command is wired to inspect the actual title, body, and commit log it is intended to scrub.

The new hygiene policy relies on a standalone grep that reads standard input rather than any named PR artifact, so following the documented procedure does not reliably prevent tenant-identifying material from being published.

Files Needing Attention: .agents/skills/ship/SKILL.md and .agents/skills/babysit/SKILL.md

Security Review

The new mechanical scrub command does not receive the PR artifacts it claims to inspect, leaving tenant-identifying content able to pass the prescribed check and reach a public PR.

Important Files Changed

Filename Overview
.agents/skills/ship/SKILL.md Broadens public-content hygiene guidance, but the new grep command does not inspect the title, body, or commit log named by the instructions.
.agents/skills/babysit/SKILL.md Adds public-repository hygiene for review replies, but delegates the mechanical check to the incomplete /ship grep.

Reviews (1): Last reviewed commit: "chore(skills): make public-repo scrubbin..." | Re-trigger Greptile


```bash
grep -niE 'customer-or-company-name|@[a-z0-9.-]+\.(com|io|ai)|[0-9a-f]{8}-[0-9a-f]{4}-|\.sharepoint\.com|arn:aws|https?://[a-z0-9.-]*\.internal'
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 security Scrub command receives no artifacts

When an agent follows this pre-publish check, the standalone grep reads standard input rather than the title, body, or commit log named above it, causing those artifacts to remain unchecked before public publication. How this was verified: The added command supplies neither file arguments nor piped output from the named PR artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant