ship-dd0bcb — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ship-dd0bcb (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Follow every step in order. Stop and report if any step fails.
Parse $ARGUMENTS for:
--full from arguments before processing issue context.Check if issue context is provided:
/ship 613 or /ship --full 613): gh issue view <number> --json title,body,labelsUse the issue title and labels to inform branch name, commit message, and PR description.
/ship or /ship --full):Skip issue fetch. Derive context entirely from the changed files and git diff. The user will be asked to confirm the commit message and PR title before proceeding.
git status
git diff --statIf there are no changes to ship, stop and inform the user.
Run git diff --name-only (include both staged and unstaged changes) and classify changed files into workspaces:
| Path Pattern | Workspace | Checks |
|---|---|---|
apps/mcp-server/** | codingbuddy | lint, format:check, typecheck, test:coverage, circular, build |
packages/rules/** | codingbuddy + rules-validation | Above + ajv-cli validate + markdownlint-cli2 |
packages/claude-code-plugin/** | codingbuddy-claude-plugin | lint, format:check, typecheck, test:coverage, circular, build |
apps/landing-page/** | landing-page | lint, format:check, typecheck, test:coverage, check:circular, build |
.claude/**, .cursor/**, .antigravity/**, .codex/**, .github/**, scripts/** | rules-validation only | ajv-cli validate + markdownlint-cli2 |
Docs-only changes: If changed files don't match any pattern above (e.g., docs-only, root config) AND --full is NOT set, skip all CI checks (including security) and proceed to Step 7.
`--full` mode: If --full flag is set, mark ALL workspaces as affected regardless of changed files.
Before running CI checks, ensure project dependencies are available:
# Check if node_modules exists
if [ ! -d "node_modules" ]; then
echo "node_modules missing, installing dependencies..."
yarn install --frozen-lockfile
fi
# Verify npx is available
npx --versionnode_modules does not exist, run yarn install --frozen-lockfilenpx is available by running npx --versionIron Law: Never skip CI checks due to missing dependencies.
Security is cross-cutting — always run security audit for ALL workspaces when any workspace has changes, even if only one workspace is affected. This matches CI behavior where all security jobs run on every triggered push.
yarn workspace codingbuddy npm audit --severity high
yarn workspace codingbuddy-claude-plugin npm audit --severity high
yarn workspace landing-page npm audit --severity highIf ANY security check fails, stop and report the failure. Do NOT proceed to shipping.
Run checks for affected workspaces only (or ALL workspaces if --full is set). Execute checks sequentially within each workspace. Stop at first failure.
Note: Security audits were already run in Step 4 for all workspaces — do not repeat them here.
yarn workspace codingbuddy lint
yarn workspace codingbuddy format:check
yarn workspace codingbuddy typecheck
yarn workspace codingbuddy test:coverage
yarn workspace codingbuddy circular
yarn workspace codingbuddy buildyarn workspace codingbuddy-claude-plugin lint
yarn workspace codingbuddy-claude-plugin format:check
yarn workspace codingbuddy-claude-plugin typecheck
yarn workspace codingbuddy-claude-plugin test:coverage
yarn workspace codingbuddy-claude-plugin circular
yarn workspace codingbuddy-claude-plugin buildyarn workspace landing-page lint
yarn workspace landing-page format:check
yarn workspace landing-page typecheck
yarn workspace landing-page test:coverage
yarn workspace landing-page check:circular
yarn workspace landing-page buildyarn dlx [email protected] validate -s packages/rules/.ai-rules/schemas/agent.schema.json -d "packages/rules/.ai-rules/agents/*.json" --spec=draft7
yarn dlx [email protected] "packages/rules/.ai-rules/**/*.md"If ANY check fails, stop and report the failure. Do NOT proceed to shipping.
git log --oneline -10Identify the commit message convention. This project uses: type(scope): description
Common types: feat, fix, docs, refactor, test, chore, perf, ci
<type>/<short-description>-<issue-number> (e.g., docs/opencode-audit-613)<type>/<short-description> (e.g., docs/update-opencode-adapter)git checkout -b <branch-name>
# Stage relevant files (never use git add -A)
git add <specific-files>
# Commit with convention — use HEREDOC for message
git commit -m "$(cat <<'EOF'
type(scope): concise description
- Detail 1
- Detail 2
Closes #<issue-number> ← only if issue provided
EOF
)"Rules:
git add (never git add -A or git add .)Closes #<number> if an issue was providedgit push -u origin <branch-name>Before creating the PR, run an automated quality check:
git diff --name-only origin/master...HEADpr_quality_report MCP tool with the file list## CodingBuddy Quality Report sectionfail, warn the user before proceedingCreate PR using gh pr create:
gh pr create --title "<type>(scope): description" --label "<labels>" --body "$(cat <<'EOF'
## Summary
<bullet points summarizing changes>
## CodingBuddy Quality Report
<quality report from Step 9>
## Test plan
<verification steps>
Closes #<issue-number>
EOF
)"gh pr create --title "<type>(scope): description" --label "<labels>" --body "$(cat <<'EOF'
## Summary
<bullet points summarizing changes>
## CodingBuddy Quality Report
<quality report from Step 9>
## Test plan
<verification steps>
EOF
)"documentation for docs, enhancement for feat, bug for fix)PR Rules:
Print the PR URL and a summary of:
--full mode was used~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.