publish-readiness

publish-readiness is a skill for Claude Code from escoffier-labs/skillet. It costs 62 tokens per session (1,079 once invoked), scanned A, original, MIT.

A read-only security check for a repository before it is made public or pushed for the first time. It looks for exposed secrets, private network details, internal names, agent files, and leaks in Git history, which stores older versions of files.

In plain words
What is it for?
It is for deciding whether a private or new repository can safely become public and for finding information that must be removed before publication.
Why use it?
A clean current folder does not prove that sensitive information was never committed. Checking both the current files and their history helps decide whether the repository is ready to publish.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions Codex.

Part of the skillet plugin — 39 skills, 1 hook shipped together

Good fit It is for deciding whether a private or new repository can safely become public and for finding information that must be removed before publication.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/escoffier-labs/skillet/publish-readiness
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.

Any agent
npx skills add escoffier-labs/skillet --skill publish-readiness
Clone the repo
git clone --depth 1 https://github.com/escoffier-labs/skillet

Made for: Claude Code.

Or install skillet, the plugin that ships this one along with the rest of its 39 skills, 1 hook.

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 publish-readiness

README.md
[![agentmods](https://agentmods.dev/badge/skills/escoffier-labs/skillet/publish-readiness/github.svg)](https://agentmods.dev/skills/escoffier-labs/skillet/publish-readiness)
Your own site
<a href="https://agentmods.dev/skills/escoffier-labs/skillet/publish-readiness"><img src="https://agentmods.dev/badge/skills/escoffier-labs/skillet/publish-readiness/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 publish-readiness

Your own site · 80×15
<a href="https://agentmods.dev/skills/escoffier-labs/skillet/publish-readiness"><img src="https://agentmods.dev/badge/skills/escoffier-labs/skillet/publish-readiness.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 62 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,079 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.00062 $0.01079
Opus 5 $0.00031 $0.00540
Sonnet 5 $0.00012 $0.00216
Haiku 4.5 $0.00006 $0.00108

Measured 11d ago against content hash a5a6adb1055b, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

publish-readiness 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 11d 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.

skillet/skills/publish-readiness/SKILL.md · 80 lines

How it starts

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

publish-readiness

The gate between a private repo and a public one. Working-tree scans catch today's leaks; history is where leaks hide. Verdict at the end: ship or fix first, with exact commands.

The checklist

Run every check. Report each as pass/fail with evidence.

1. Working tree scan

Search tracked files for:

  • Secrets: API keys, tokens, passwords, private keys (grep -rE for common prefixes like AKIA, ghp_, sk-, AIza, -----BEGIN, plus password\s*=)
  • Private IPs: RFC 1918 ranges (10\., 172\.(1[6-9]|2[0-9]|3[01])\., 192\.168\.). Docs and examples should use RFC 5737 (192.0.2.x, 198.51.100.x, 203.0.113.x) or RFC 2544 (198.18.0.0/15) ranges instead.
  • Internal hostnames, machine names, LAN service URLs, personal email addresses that are not the public git identity
  • Agent session dirs accidentally tracked: .claude/, .codex/, memory handoffs, transcripts

A policy-driven scanner beats ad hoc grep. Install brigade-cli with pipx install brigade-cli. The pre-push hook calls brigade guard git. Scan only tracked files (git ls-files), not node_modules/.

2. History scan

The tree being clean means nothing if a secret was committed and later deleted:

git log --all -p | grep -nE '<patterns from check 1>'
git log --all --pretty=format:'%s%n%b' | grep -nE '<same>'   # commit messages too

3. Hygiene

  • LICENSE present and intentional
  • README states what/why/how-to-run; no dead internal links or references to private repos
  • .gitignore covers .claude/, .codex/, env files, build artifacts
  • No leftover TODO referencing private context ("ask about the prod box")

4. Remote state (if already public)

  • No backup branches holding pre-scrub history: git ls-remote origin 'refs/heads/backup/*'
  • Tags match local after any history rewrite

Remediation: history rewrite

When check 2 fails, forward-only "scrub commits" do not fix it; old content stays reachable. The recipe:

  1. Tarball .git somewhere outside the repo (the only real safety net; local backup branches get rewritten too).
  2. Build a replacements file, old==>new per line, longest matches first.
  3. git filter-repo --replace-text <file> --force (also --replace-message if commit messages quoted the strings).
  4. filter-repo strips the origin remote; re-add it.
  5. Force-push the branch AND every tag (filter-repo repoints tags to new SHAs; stale remote tags keep the leak alive).
  6. Delete any remote backup branches.
  7. Verify from a fresh clone in /tmp, never from the working tree.

Read the full file on GitHub · 80 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 11d ago First seen · 80 lines · 62 tokens per session scan A a5a6adb1055b

Subscribe to this mod's changes

publish-readiness is a skill published in the GitHub repository escoffier-labs/skillet (4 stars, last pushed 10d ago), licensed MIT. It adds 62 tokens to every session and 1,079 once invoked, about $0.0003 per session on Opus 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.

Related

Other skills, from other repositories

assess-interview-candidate

A structured hiring-assessment workflow that turns a candidate's résumé and a job description into reviewable evidence, interview questions, and an offline HTML report for interviewers.

dongshuyan/compass-skills · 129 tokens

task-clarifier

Deep need-clarification skill. Use only when the user explicitly invokes $task-clarifier. Once activated, keep asking until all three goals are met: the user fully understands their own needs, the AI fully understands the user's needs, and the user confirms the AI's understanding is correct. Do not intervene in task…

dongshuyan/compass-skills · 74 tokens

user-profile-keeper

Local user-profile maintenance skill for Codex, Claude Code, OpenClaw, OpenCode, and other agent harnesses. Use only when the user explicitly invokes $user-profile-keeper to create, initialize, update, query, correct, delete, export, or audit a local persistent user profile. It can extract durable collaboration…

dongshuyan/compass-skills · 129 tokens

run-history-skill-builder

Turn a completed task, browser flow, artifact pipeline, failure-recovery trace, or repeatedly refined workflow into a new reusable skill package or a reviewed skill-design plan. Use when the user asks to make a new skill from real run history, extract a reusable workflow from conversation/logs/files, summarize lessons…

dongshuyan/compass-skills · 95 tokens

run-history-skill-upgrader

Use real run evidence, validation failures, source drift, platform drift, and user feedback to plan and, only after explicit approval, apply structural upgrades to an existing skill. Use when the user asks to improve an existing skill from recent runs, recurring failures, outdated sources, excessive bloat, changed…

dongshuyan/compass-skills · 91 tokens

session-handoff-prompt

Create a concise continuation prompt that a fresh agent session can paste in to resume a long or degraded session. Use when the user asks for a handoff prompt, restart prompt, continuation prompt, context transfer, fresh-session resume, or a compact summary for opening a new session. Do not use for ordinary summaries…

dongshuyan/compass-skills · 89 tokens