Query and manage Linear issues, projects, teams, cycles, labels, and comments through a managed OAuth GraphQL endpoint.
Security
Ward Public Release Gate
Try itReview a public repository release across version and tag consistency, final build artifacts, archives, secrets and internal material, third-party licenses, production response headers, and GitHub Release attachments. Use when the user asks to publish, create a tag or Release, verify a launch, or run the complete public-release gate, adapting checks to the project's configuration.
What it does
Treat a Release as a separate deliverable. Repository commit checks do not constitute a Release review; inspect the source, final artifacts, release page, and deployment state together. The sibling skill owns the public-content and branch gates for commit, push, and PR operations. Do not repeat th…
The skill document
Public Release Gate
Treat a Release as a separate deliverable. Repository commit checks do not
constitute a Release review; inspect the source, final artifacts, release page,
and deployment state together. The sibling public-repo-git-gate skill owns
the public-content and branch gates for commit, push, and PR operations. Do not
repeat this skill's artifact checks for an ordinary commit.
This skill is a manual review workflow. A passing script or CI job alone does not prove every Release condition. Reuse the project's existing automated checks first, then manually verify final artifacts, the hosting platform, and production. Mark the gate as passed only when the required evidence exists.
Keep the review read-only by default. Creating a tag or GitHub Release, uploading attachments, changing production configuration, or deploying each requires explicit user authorization. Passing this gate does not authorize any of those actions.
Inputs and output
Before starting, identify the repository root, target version and tag, final artifact paths, third-party resource inventory, production URL, and project-specific configuration.
Return a structured record containing at least:
Release gate: PASS | BLOCKED | FAILED
Repository:
Version / tag:
Build and artifacts:
Publicity and sensitive-data scan:
Third-party notices:
Deployment and response headers:
Release page and attachments:
Evidence:
Skipped checks / residual risks:
PASS means that all required evidence was checked. BLOCKED means that an
external state, permission, or user decision is missing. FAILED means that
the review found a problem. Neither non-passing state permits creating a tag,
GitHub Release, or continuing deployment.
Workflow
- Identify repository visibility, technology stack, build commands, artifact directories, version sources, third-party resources, and deployment entry points.
- Check that
package.jsonand lockfiles, or the project's version files, agree with the README, CHANGELOG, Release Notes, and tag. - Build the final artifacts from a clean state. Scan both the artifact directories and final archives; do not scan only the source tree.
- Check for secrets, personal or customer data, internal business or legal material, private model or service configuration, and files that do not need to be public.
- For vendored code, models, WASM, fonts, and media, verify the source, version or commit, license, redistribution terms, and SHA-256 individually. The license inventory must match the final resources.
- After deployment, check HTTPS, HTTP status, key static entry points, CSP, HSTS, X-Frame-Options, and other project-required response headers.
- Before creating a GitHub Release, verify the tag, Release page, and every attachment. Attachments must come from scanned final artifacts; calculate and record their SHA-256 values.
- When database migrations, edge functions, or external configuration are involved, confirm production state separately. Passing CI does not prove that a production migration ran.
Reuse project checks
Prefer the project's existing release:check. If none exists, create
release-gate.config.json in the project root with at least:
{
"versionFiles": ["package.json"],
"artifactPaths": ["dist"],
"vendoredPaths": [],
"noticeFiles": ["THIRD_PARTY_NOTICES.md"],
"requireDeploymentChecklist": true,
"deploymentChecklist": "docs/release-checklist.md",
"production": {
"requiredHeaders": [],
"forbiddenHeaderValues": [],
"paths": ["/"]
}
}
This is a cross-project convention example, not a universal validation
schema. The project's own release:check must validate its actual fields and
paths.
Keep project-specific details in the configuration, such as Supabase migrations, a Vercel production URL, Piper resources, and required headers. Do not copy one project's assumptions into another.
Prefer to provide these commands or equivalent entry points:
npm run verify # Source, tests, and build
npm run release:check # Release metadata, artifacts, licenses, and deployment checks
When no automated entry point exists, perform the same checks manually and record the evidence in the PR or Release Notes. Stop the release on any failed check; do not create the Release first and explain afterward.
Failure, blocking, and recovery
- If you find a secret, personal data, internal material, a missing license, or an artifact mismatch, stop the release and record the exact path, attachment, or check item.
- If the production URL, GitHub Release permission, deployment state, or
external configuration is unavailable, mark the gate
BLOCKED. Do not use a successful local build as a substitute for external evidence. - After a fix, rerun the failed check and recheck affected versions, artifact
hashes, and attachments. Do not reuse an old
PASSrecord unchanged. - Treat exposed secrets or personal data as a security incident, rotate the credentials, and retain an incident record. Merely deleting a file or rewriting history does not prove that the risk is gone.
Platform boundaries
Version, build, artifact, and license checks apply across languages and build systems, but use the commands defined by the project. GitHub Release, HTTP header, and production-deployment checks depend on the relevant hosting platform. Do not describe an untested platform CLI, Preview environment, or local server result as production verification.
Trigger phrases
Treat the following requests as full triggers:
- "Check this Release against the complete public-repository gate."
- "Can this tag be released?"
- "Review the final installer/archive and GitHub Release."
- "Verify this version after launch."
An ordinary request to "check a commit" covers only the commit/PR gate. When the user mentions a Release, tag, installer, store package, deployment, or launch, use this skill's complete workflow.
Related skills
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Manage Stripe customers, subscriptions, invoices, products, prices, and payments through OAuth-authenticated API calls.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Read and write Excel workbooks, worksheets, ranges, tables, and charts in OneDrive through Microsoft Graph with managed OAuth.
Post videos, photos, text, and documents to 10 social platforms through a single REST API call.
More from wardlu
Browse all skillsAudit an AI agent's reachable data, external data paths, and untrusted instructions, then explain the result in plain language with Low, Medium, High, or Critical severity. Use when a user asks what an agent can see, where data may go, whether a skill, plugin, or tool is safe, or how to reduce agent privacy risk across Codex, Claude Code, or another agent.
Route validation by changed boundaries and risk, choosing the smallest sufficient checks for code, docs, UI, data, auth, sync, build, security, and release work. Use when deciding test commands, reducing unnecessary full-suite runs, auditing test layering, or documenting what was and was not verified.
Repair Codex Desktop sessions that fail after switching model providers or importing/forking old conversations. Use this skill whenever a user mentions an old Codex session becoming invalid, “model provider not found”, “Codex cannot load config.toml”, remote context compaction 404s, “Item with id rs_... not found”, repeated reconnecting during resume, or a migrated Codex conversation that cannot continue—even when the user only asks to inspect or explain the failure. Diagnose the target session across its JSONL rollout, root state_5.sqlite, config.toml, and logs_2.sqlite, then make a target-scoped backup-first repair with verification and restart instructions.
Internationalize the user-facing language layer of a GitHub repository, including its repository description, repository topics, README files, release notes, changelogs, and other explicitly selected documentation, with English as the default and any user-requested locales as mirrors. Use when a user asks to translate, localize, add language mirrors, or check cross-locale parity for a GitHub repository. Confirm the exact document and metadata scope when it is not explicit, identify existing locales, preserve facts, code, commands, links, images, and structure, and provide local Markdown plus GitHub-style previews. Do not use for product UI or runtime i18n, database content, visual README redesign or assets, public-release suitability or security scans, Issue or PR label taxonomies, Git tags, or Git, PR, release, deployment, or production operations.
Run the public-repository gates for Git commits, pushes, and pull requests. Check staged and untracked scope, secrets and personal data, internal material, branches and remotes, PR base/head, CI, and merge prerequisites. Use when the user asks to commit, push, open a PR, review public repository content, or run the complete public-repository gate.
Analyze local Codex session telemetry and produce privacy-safe efficiency reports with actionable workflow recommendations. Use when the user asks to run Codex Doctor, inspect Codex productivity, diagnose context bloat, repository exploration, validation or retry patterns, compare recent sessions, or interpret a codex-efficiency-report HTML/JSON file. Default to local telemetry-only analysis; use the optional compact AI diagnosis only when the user explicitly requests AI interpretation.