Skip to content
This repository was archived by the owner on Jun 16, 2026. It is now read-only.

Commit 5f3b885

Browse files
mcp-tool-shopclaude
andcommitted
Add shipcheck gates: SHIP_GATE.md, SCORECARD.md, dependabot.yml
All hard gates (A-D) pass. All soft gates (E) complete. shipcheck audit: 20 checked, 17 skipped, 0 unchecked, 100% pass rate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 251763a commit 5f3b885

3 files changed

Lines changed: 148 additions & 0 deletions

File tree

.github/dependabot.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: monthly
7+
groups:
8+
dev-deps:
9+
patterns: ["*"]
10+
open-pull-requests-limit: 3
11+
12+
- package-ecosystem: github-actions
13+
directory: /
14+
schedule:
15+
interval: monthly
16+
groups:
17+
actions:
18+
patterns: ["*"]
19+
open-pull-requests-limit: 3

SCORECARD.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Scorecard
2+
3+
> Score a repo before remediation. Fill this out first, then use SHIP_GATE.md to fix.
4+
5+
**Repo:** <!-- repo name -->
6+
**Date:** <!-- YYYY-MM-DD -->
7+
**Type tags:** <!-- [npm] [mcp] [cli] etc. -->
8+
9+
## Pre-Remediation Assessment
10+
11+
| Category | Score | Notes |
12+
|----------|-------|-------|
13+
| A. Security | /10 | |
14+
| B. Error Handling | /10 | |
15+
| C. Operator Docs | /10 | |
16+
| D. Shipping Hygiene | /10 | |
17+
| E. Identity (soft) | /10 | |
18+
| **Overall** | **/50** | |
19+
20+
## Key Gaps
21+
22+
<!-- List the 3-5 most critical gaps that need fixing. Be specific. -->
23+
24+
1.
25+
2.
26+
3.
27+
28+
## Remediation Priority
29+
30+
<!-- What to fix first, second, third. Informed by the gaps above. -->
31+
32+
| Priority | Item | Estimated effort |
33+
|----------|------|-----------------|
34+
| 1 | | |
35+
| 2 | | |
36+
| 3 | | |
37+
38+
## Post-Remediation
39+
40+
<!-- Fill this out after applying SHIP_GATE.md -->
41+
42+
| Category | Before | After |
43+
|----------|--------|-------|
44+
| A. Security | /10 | /10 |
45+
| B. Error Handling | /10 | /10 |
46+
| C. Operator Docs | /10 | /10 |
47+
| D. Shipping Hygiene | /10 | /10 |
48+
| E. Identity (soft) | /10 | /10 |
49+
| **Overall** | /50 | /50 |

SHIP_GATE.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Ship Gate
2+
3+
> No repo is "done" until every applicable line is checked.
4+
> Copy this into your repo root. Check items off per-release.
5+
6+
**Tags:** `[all]` every repo · `[npm]` `[pypi]` `[vsix]` `[desktop]` `[container]` published artifacts · `[mcp]` MCP servers · `[cli]` CLI tools
7+
8+
---
9+
10+
## A. Security Baseline
11+
12+
- [x] `[all]` SECURITY.md exists (report email, supported versions, response timeline) (2026-03-06)
13+
- [x] `[all]` README includes threat model paragraph (data touched, data NOT touched, permissions required) (2026-03-06)
14+
- [x] `[all]` No secrets, tokens, or credentials in source or diagnostics output (2026-03-06)
15+
- [x] `[all]` No telemetry by default — state it explicitly even if obvious (2026-03-06)
16+
17+
### Default safety posture
18+
19+
- [ ] `[cli|mcp|desktop]` SKIP: pure library — no actions to guard, no CLI/MCP/desktop interface
20+
- [ ] `[cli|mcp|desktop]` SKIP: pure library — no file operations, all I/O is consumer's responsibility
21+
- [ ] `[mcp]` SKIP: not an MCP server — pure data transformation library with no network access
22+
- [ ] `[mcp]` SKIP: not an MCP server — no error serialization boundary, errors are typed objects
23+
24+
## B. Error Handling
25+
26+
- [x] `[all]` Errors follow the Structured Error Shape: `code`, `message`, `hint`, `cause?`, `retryable?` (2026-03-06)
27+
- [ ] `[cli]` SKIP: not a CLI tool
28+
- [ ] `[cli]` SKIP: not a CLI tool
29+
- [ ] `[mcp]` SKIP: not an MCP server
30+
- [ ] `[mcp]` SKIP: not an MCP server — stateless library
31+
- [ ] `[desktop]` SKIP: not a desktop app
32+
- [ ] `[vscode]` SKIP: not a VS Code extension
33+
34+
## C. Operator Docs
35+
36+
- [x] `[all]` README is current: what it does, install, usage, supported platforms + runtime versions (2026-03-06)
37+
- [x] `[all]` CHANGELOG.md (Keep a Changelog format) (2026-03-06)
38+
- [x] `[all]` LICENSE file present and repo states support status (2026-03-06)
39+
- [ ] `[cli]` SKIP: not a CLI tool
40+
- [ ] `[cli|mcp|desktop]` SKIP: pure library — no logging levels needed
41+
- [ ] `[mcp]` SKIP: not an MCP server
42+
- [ ] `[complex]` SKIP: simple library — 6 exported functions, no complex operations
43+
44+
## D. Shipping Hygiene
45+
46+
- [x] `[all]` `verify` script exists (test + build + smoke in one command) (2026-03-06)
47+
- [x] `[all]` Version in manifest matches git tag (2026-03-06)
48+
- [x] `[all]` Dependency scanning runs in CI (ecosystem-appropriate) (2026-03-06)
49+
- [x] `[all]` Automated dependency update mechanism exists (2026-03-06)
50+
- [x] `[npm]` `npm pack --dry-run` includes: dist/, README.md, CHANGELOG.md, LICENSE (2026-03-06)
51+
- [x] `[npm]` `engines.node` set · `[pypi]` `python_requires` set (2026-03-06)
52+
- [x] `[npm]` Lockfile committed · `[pypi]` Clean wheel + sdist build (2026-03-06)
53+
- [ ] `[vsix]` SKIP: not a VS Code extension
54+
- [ ] `[desktop]` SKIP: not a desktop app
55+
56+
## E. Identity (soft gate — does not block ship)
57+
58+
- [x] `[all]` Logo in README header (2026-03-06)
59+
- [x] `[all]` Translations (polyglot-mcp, 8 languages) (2026-03-06)
60+
- [x] `[org]` Landing page (@mcptoolshop/site-theme) (2026-03-06)
61+
- [x] `[all]` GitHub repo metadata: description, homepage, topics (2026-03-06)
62+
63+
---
64+
65+
## Gate Rules
66+
67+
**Hard gate (A–D):** Must pass before any version is tagged or published.
68+
If a section doesn't apply, mark `SKIP:` with justification — don't leave it unchecked.
69+
70+
**Soft gate (E):** Should be done. Product ships without it, but isn't "whole."
71+
72+
**Checking off:**
73+
```
74+
- [x] `[all]` SECURITY.md exists (2026-02-27)
75+
```
76+
77+
**Skipping:**
78+
```
79+
- [ ] `[pypi]` SKIP: not a Python project
80+
```

0 commit comments

Comments
 (0)