Ship
PMM Content Distribution Engine — Newsletter scraper, Obsidian knowledge brain, multi-format content generation powered by Claude CodeFrom the repository description
npx -y skills add raven-sourav/pmm-content-engine --skill shipAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.1 KB, 860 tokens by cl100k_base, as published. Nobody here has run it
Ship — Safe Push to Remote
Trigger
User says "/ship", "ship it", "ship this", or "safe push".
For normal "push" or "commit this" — commit and push normally but still never commit secrets.
Purpose
Audited push for a PUBLIC repo. Prevents accidental secret leaks, catches files that shouldn't be public, and ensures clear commit messages. Think of it as checking your pockets before walking through the door.
Process
Step 1 — Pre-flight check
- Run
git statusandgit diff --staged(orgit diffif nothing staged yet) - Show the user a plain-English summary: what files changed, what the changes do, how many additions/deletions
- If nothing to commit, say so and stop
Step 2 — Secret scan
Scan every staged/changed file for these patterns:
API keys & tokens:
sk-ant-,sk-(Anthropic, OpenAI)ghp_,gho_,github_pat_(GitHub)AKIA(AWS access key)xoxb-,xoxp-(Slack)whsec_(Stripe webhook)pk_live_,sk_live_,rk_live_(Stripe)
Generic secret patterns:
API_KEY=,api_key=,apikey=followed by a valueSECRET=,secret=followed by a valueTOKEN=,token=followed by a valuePASSWORD=,password=followed by a valuePRIVATE_KEYfollowed by contentBearerfollowed by a token (not in docs/examples)Basicfollowed by encoded credentials
Dangerous files:
.env,.env.local,.env.production(even if gitignored — verify)credentials.json,service-account.json,*.pem,*.key- Files > 10MB (large binaries don't belong in git)
Production hazards:
- Hardcoded
http://localhostorhttp://127.0.0.1in non-config, non-test files
If ANY match is found:
- STOP immediately. Do not push.
- Show the exact file, line, and matched pattern
- If the pattern is in
.env.examplewith placeholder values (likesk-ant-...), that's fine — skip it - If a secret appears to have been committed in a prior commit, warn: "This secret is burned. Deleting it from code doesn't help — bots already scraped it. Rotate the key immediately."
Step 3 — Stage and commit
- If changes aren't staged yet, show which files will be staged and ask user to confirm
- Stage specific files (never
git add .orgit add -Awithout reviewing) - Write a clear commit message: imperative mood, what changed and why
- Show the commit message to user before committing
- Commit
Step 4 — Push
git push origin <current-branch>- Never force push unless user explicitly requests it AND you warn what will be lost
- If push is rejected (remote has new commits), explain and offer
git pull --rebasefirst
Step 5 — Confirm
One line: Shipped: {commit message} → origin/{branch} ({N} files, +{additions} -{deletions})
Rules
- Never skip the secret scan — even for "just a quick fix"
- Never commit
.env,.env.local, credentials, or private key files - Never force push without explicit user request + warning about consequences
.env.examplewith placeholder values is fine to commit- If in doubt about a file, ask the user before staging
- This skill is portable — works for any git repo, not just this project
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.