@mcptoolshop/shipcheck 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ADOPTION.md +128 -0
- package/LICENSE +21 -0
- package/README.es.md +105 -0
- package/README.fr.md +105 -0
- package/README.hi.md +105 -0
- package/README.it.md +105 -0
- package/README.ja.md +105 -0
- package/README.md +105 -0
- package/README.pt-BR.md +105 -0
- package/README.zh.md +105 -0
- package/bin/shipcheck.mjs +245 -0
- package/contracts/error-contract.md +234 -0
- package/package.json +36 -0
- package/templates/CHANGELOG.md +18 -0
- package/templates/HANDBOOK.md +71 -0
- package/templates/SCORECARD.md +49 -0
- package/templates/SECURITY.md +37 -0
- package/templates/SHIP_GATE.md +80 -0
package/ADOPTION.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Adopting Shipcheck
|
|
2
|
+
|
|
3
|
+
How to apply the Ship Gate to any MCP Tool Shop repo in under 30 minutes.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Before you start
|
|
8
|
+
|
|
9
|
+
Know your repo type. The Ship Gate uses applicability tags:
|
|
10
|
+
|
|
11
|
+
| Tag | You are this if... |
|
|
12
|
+
|-----|--------------------|
|
|
13
|
+
| `[all]` | Every repo |
|
|
14
|
+
| `[npm]` | Published to npm |
|
|
15
|
+
| `[pypi]` | Published to PyPI |
|
|
16
|
+
| `[vsix]` | VS Code extension |
|
|
17
|
+
| `[desktop]` | Desktop app (WinUI, Electron, MAUI) |
|
|
18
|
+
| `[container]` | Ships a Docker image |
|
|
19
|
+
| `[mcp]` | MCP server |
|
|
20
|
+
| `[cli]` | CLI tool |
|
|
21
|
+
| `[complex]` | Has background daemons, state files, or operational modes |
|
|
22
|
+
|
|
23
|
+
Most repos hit 2-3 tags. A typical MCP server is `[all]` + `[npm]` + `[mcp]` + `[cli]`.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Step-by-step (~30 minutes)
|
|
28
|
+
|
|
29
|
+
### 1. Copy the gate (2 min)
|
|
30
|
+
|
|
31
|
+
Copy `templates/SHIP_GATE.md` into your repo root.
|
|
32
|
+
|
|
33
|
+
Scan through and mark items that don't apply to your repo type with `SKIP:`:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
- [ ] `[pypi]` SKIP: not a Python project
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 2. Security baseline (5 min)
|
|
40
|
+
|
|
41
|
+
Copy `templates/SECURITY.md` into your repo root and fill in:
|
|
42
|
+
- Supported versions table
|
|
43
|
+
- Scope section (what data is touched, what isn't)
|
|
44
|
+
|
|
45
|
+
Add a threat model paragraph to your README:
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
## Trust model
|
|
49
|
+
|
|
50
|
+
**Data touched:** local log files, process metrics
|
|
51
|
+
**No network egress** unless explicitly configured
|
|
52
|
+
**No secrets handling** — does not read, store, or transmit credentials
|
|
53
|
+
**No telemetry** collected or sent
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Check off: A1, A2, A3, A4.
|
|
57
|
+
|
|
58
|
+
### 3. Error shape (10 min)
|
|
59
|
+
|
|
60
|
+
**For simple scripts:** Make sure errors emit the shape (code, message, hint) as a dict or JSON object. That's it. Check off B1.
|
|
61
|
+
|
|
62
|
+
**For CLI/MCP/desktop:** Implement a product error class following the [error contract](contracts/error-contract.md). Reference implementations exist for TypeScript, Python, and .NET. Check off B1 through B5 (whichever apply).
|
|
63
|
+
|
|
64
|
+
### 4. Operator docs (5 min)
|
|
65
|
+
|
|
66
|
+
- [ ] README current? If not, update install + usage sections.
|
|
67
|
+
- [ ] CHANGELOG.md exists? If not, copy `templates/CHANGELOG.md`.
|
|
68
|
+
- [ ] LICENSE exists? If not, add MIT.
|
|
69
|
+
- [ ] For CLI: verify `--help` output matches actual commands.
|
|
70
|
+
- [ ] For complex tools: copy `templates/HANDBOOK.md` and fill in the sections.
|
|
71
|
+
|
|
72
|
+
Check off: C1 through C7 (whichever apply).
|
|
73
|
+
|
|
74
|
+
### 5. Shipping hygiene (5 min)
|
|
75
|
+
|
|
76
|
+
- [ ] Add a `verify` script to package.json / Makefile / pyproject.toml:
|
|
77
|
+
```json
|
|
78
|
+
"scripts": {
|
|
79
|
+
"verify": "npm run test && npm run build && npm pack --dry-run"
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
- [ ] Run `verify` and fix anything it catches.
|
|
83
|
+
- [ ] Confirm dependency scanning exists in CI (any mechanism).
|
|
84
|
+
|
|
85
|
+
Check off: D1 through D9 (whichever apply).
|
|
86
|
+
|
|
87
|
+
### 6. Review the gate (3 min)
|
|
88
|
+
|
|
89
|
+
Open your `SHIP_GATE.md`. Every line should be either:
|
|
90
|
+
- `[x]` checked with a date
|
|
91
|
+
- `SKIP:` with a justification
|
|
92
|
+
- `[ ]` unchecked (you're not done yet)
|
|
93
|
+
|
|
94
|
+
If all hard gates (A-D) pass: you're clear to tag and publish.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## What "done" looks like
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
SHIP_GATE.md — all hard gates checked or skipped with justification
|
|
102
|
+
SECURITY.md — filled in with real scope
|
|
103
|
+
CHANGELOG.md — at least one entry
|
|
104
|
+
LICENSE — exists
|
|
105
|
+
README.md — includes trust model paragraph
|
|
106
|
+
errors.ts/.py — follows the error shape (Tier 1 minimum)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## What "whole" looks like (soft gates too)
|
|
110
|
+
|
|
111
|
+
All of the above, plus:
|
|
112
|
+
- Logo in README
|
|
113
|
+
- 8-language translations
|
|
114
|
+
- Landing page (org repos)
|
|
115
|
+
- GitHub metadata set
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## FAQ
|
|
120
|
+
|
|
121
|
+
**Do I need a HANDBOOK.md?**
|
|
122
|
+
Only if your tool has operational complexity (background daemons, state files, attention levels, recovery procedures). Simple CLIs and libraries don't need one.
|
|
123
|
+
|
|
124
|
+
**What if my repo doesn't ship anywhere?**
|
|
125
|
+
Skip section D entirely with a note. The security and error handling sections still apply to anything that runs code.
|
|
126
|
+
|
|
127
|
+
**Can I add custom gate items?**
|
|
128
|
+
Yes. Add them to a "## F. Project-Specific" section at the bottom of your SHIP_GATE.md. Don't modify sections A-E — those are the org standard.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 MCP Tool Shop
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.es.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.md">English</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/shipcheck/readme.png" alt="Shipcheck" width="400">
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
11
|
+
<a href="https://mcp-tool-shop-org.github.io/shipcheck/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
Product standards for MCP Tool Shop.<br>
|
|
16
|
+
Templates, contracts, and adoption guides that define what "done" means before anything ships.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## ¿Por qué?
|
|
22
|
+
|
|
23
|
+
Antes, "hecho" significaba que el código funcionaba. Eso ya no es suficiente. Un producto es código + seguridad + manejo de errores + documentación + identidad + buenas prácticas de publicación. Shipcheck define el estándar.
|
|
24
|
+
|
|
25
|
+
## ¿Qué hay aquí?
|
|
26
|
+
|
|
27
|
+
| Estándar | ¿Qué cubre? |
|
|
28
|
+
|----------|----------------|
|
|
29
|
+
| [Ship Gate](templates/SHIP_GATE.md) | Lista de verificación de pre-lanzamiento con 27 puntos obligatorios + 4 puntos opcionales. |
|
|
30
|
+
| [Error Contract](contracts/error-contract.md) | Estándar estructurado de manejo de errores con registro de código. |
|
|
31
|
+
| [Security Baseline](templates/SECURITY.md) | Correo electrónico de informe, plazo de respuesta, alcance de las amenazas. |
|
|
32
|
+
| [Handbook](templates/HANDBOOK.md) | Manual de operación para herramientas complejas. |
|
|
33
|
+
| [Scorecard](templates/SCORECARD.md) | Puntuación antes/después de la corrección. |
|
|
34
|
+
| [Adoption Guide](ADOPTION.md) | Aplica Shipcheck a cualquier repositorio en menos de 30 minutos. |
|
|
35
|
+
|
|
36
|
+
## Cómo empezar
|
|
37
|
+
|
|
38
|
+
1. Lee [ADOPTION.md](ADOPTION.md)
|
|
39
|
+
2. Copia `templates/SHIP_GATE.md` en la raíz de tu repositorio.
|
|
40
|
+
3. Marca los elementos aplicables, y marca los no aplicables con `SKIP:`.
|
|
41
|
+
4. Publica cuando todos los puntos obligatorios hayan sido superados.
|
|
42
|
+
|
|
43
|
+
## Cómo funciona
|
|
44
|
+
|
|
45
|
+
Las **etapas obligatorias** (A-D) bloquean el lanzamiento:
|
|
46
|
+
|
|
47
|
+
- **A. Seguridad básica** — SECURITY.md, modelo de amenazas, sin secretos, sin telemetría, postura de seguridad predeterminada.
|
|
48
|
+
- **B. Manejo de errores** — estructura de errores definida (código/mensaje/sugerencia/reintentable), salida segura, degradación controlada.
|
|
49
|
+
- **C. Documentación para el usuario** — README, CHANGELOG, LICENCIA, documentación de la herramienta.
|
|
50
|
+
- **D. Buenas prácticas de publicación** — verificación de scripts, alineación de versiones, análisis de dependencias, archivo de bloqueo.
|
|
51
|
+
|
|
52
|
+
La **etapa opcional** (E) no bloquea, pero define el "conjunto completo":
|
|
53
|
+
|
|
54
|
+
- **E. Identidad** — logotipo, traducciones, página de inicio, metadatos del repositorio.
|
|
55
|
+
|
|
56
|
+
La etapa indica **qué** debe ser cierto, no **cómo** implementarlo. Las etiquetas de aplicabilidad (`[all]`, `[npm]`, `[mcp]`, `[cli]`, `[desktop]`, `[vsix]`, `[container]`) evitan que se marquen casillas de verificación innecesariamente en repositorios donde los elementos no son aplicables.
|
|
57
|
+
|
|
58
|
+
## Contrato de errores de un vistazo
|
|
59
|
+
|
|
60
|
+
**Nivel 1 — Estructura (obligatorio en todas partes):**
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"code": "INPUT_TEXT_EMPTY",
|
|
65
|
+
"message": "Text must not be empty",
|
|
66
|
+
"hint": "Provide at least one character of text",
|
|
67
|
+
"retryable": false
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Nivel 2 — Tipo base + códigos de salida (CLI/MCP/escritorio):**
|
|
72
|
+
|
|
73
|
+
| Código de salida | Significado |
|
|
74
|
+
|-----------|---------|
|
|
75
|
+
| 0 | OK |
|
|
76
|
+
| 1 | Error del usuario (entrada incorrecta, configuración faltante) |
|
|
77
|
+
| 2 | Error en tiempo de ejecución (fallo, fallo del backend) |
|
|
78
|
+
| 3 | Éxito parcial (algunos elementos tuvieron éxito) |
|
|
79
|
+
|
|
80
|
+
Los códigos de error utilizan prefijos con espacio de nombres: `IO_`, `CONFIG_`, `PERM_`, `DEP_`, `RUNTIME_`, `PARTIAL_`, `INPUT_`, `STATE_`. Los códigos son estables una vez que se publican.
|
|
81
|
+
|
|
82
|
+
## Implementación de referencia
|
|
83
|
+
|
|
84
|
+
[mcp-voice-soundboard](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard) fue el primer repositorio en superar la etapa de publicación, obteniendo una puntuación de **46/50** después de la corrección.
|
|
85
|
+
|
|
86
|
+
## Cuadro de puntuación
|
|
87
|
+
|
|
88
|
+
| Categoría | Puntuación | Notas |
|
|
89
|
+
|----------|-------|-------|
|
|
90
|
+
| A. Seguridad | 10/10 | SECURITY.md, sin código ejecutable, sin recopilación de datos. |
|
|
91
|
+
| B. Manejo de errores | N/A | Repositorio de estándares — no hay código para generar errores. |
|
|
92
|
+
| C. Documentación para el usuario | 10/10 | README, CHANGELOG, ADOPTION, todas las plantillas documentadas. |
|
|
93
|
+
| D. Buenas prácticas de publicación | 8/10 | Sin código para verificar/probar, todas las versiones de los estándares. |
|
|
94
|
+
| E. Identidad | 10/10 | Logotipo, traducciones, página de inicio, metadatos. |
|
|
95
|
+
| **Total** | **38/40** | B excluido (no aplicable). |
|
|
96
|
+
|
|
97
|
+
## Licencia
|
|
98
|
+
|
|
99
|
+
[MIT](LICENSE)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
105
|
+
</p>
|
package/README.fr.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.md">English</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/shipcheck/readme.png" alt="Shipcheck" width="400">
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
11
|
+
<a href="https://mcp-tool-shop-org.github.io/shipcheck/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
Product standards for MCP Tool Shop.<br>
|
|
16
|
+
Templates, contracts, and adoption guides that define what "done" means before anything ships.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Pourquoi
|
|
22
|
+
|
|
23
|
+
"Terminé" signifiait autrefois que le code fonctionnait. Ce n'est pas suffisant. Un produit est constitué de code + sécurité + gestion des erreurs + documentation + identité + bonnes pratiques de déploiement. Shipcheck définit les exigences.
|
|
24
|
+
|
|
25
|
+
## Ce qui se trouve ici
|
|
26
|
+
|
|
27
|
+
| Standard | Ce que cela couvre |
|
|
28
|
+
|----------|----------------|
|
|
29
|
+
| [Ship Gate](templates/SHIP_GATE.md) | Liste de contrôle de pré-publication avec 27 critères obligatoires et 4 critères optionnels. |
|
|
30
|
+
| [Error Contract](contracts/error-contract.md) | Norme structurée en deux niveaux pour la gestion des erreurs, avec un registre de code. |
|
|
31
|
+
| [Security Baseline](templates/SECURITY.md) | Email de rapport, délai de réponse, étendue des risques. |
|
|
32
|
+
| [Handbook](templates/HANDBOOK.md) | Manuel d'utilisation pour les outils complexes. |
|
|
33
|
+
| [Scorecard](templates/SCORECARD.md) | Notation avant et après la correction des problèmes. |
|
|
34
|
+
| [Adoption Guide](ADOPTION.md) | Appliquez Shipcheck à n'importe quel dépôt en moins de 30 minutes. |
|
|
35
|
+
|
|
36
|
+
## Démarrage rapide
|
|
37
|
+
|
|
38
|
+
1. Lisez [ADOPTION.md](ADOPTION.md)
|
|
39
|
+
2. Copiez `templates/SHIP_GATE.md` dans la racine de votre dépôt.
|
|
40
|
+
3. Cochez les éléments applicables, indiquez "SKIP:" pour les éléments non applicables.
|
|
41
|
+
4. Déployez lorsque tous les critères obligatoires sont remplis.
|
|
42
|
+
|
|
43
|
+
## Comment cela fonctionne
|
|
44
|
+
|
|
45
|
+
Les **critères obligatoires** (A à D) bloquent la publication :
|
|
46
|
+
|
|
47
|
+
- **A. Sécurité de base** — SECURITY.md, modèle de menace, pas de secrets, pas de télémétrie, posture de sécurité par défaut.
|
|
48
|
+
- **B. Gestion des erreurs** — structure des erreurs (code/message/indice/réessayable), sortie sécurisée, dégradation progressive.
|
|
49
|
+
- **C. Documentation pour l'utilisateur** — README, CHANGELOG, LICENSE, documentation de l'outil.
|
|
50
|
+
- **D. Bonnes pratiques de déploiement** — vérification du script, alignement des versions, analyse des dépendances, fichier de verrouillage.
|
|
51
|
+
|
|
52
|
+
Le **critère optionnel** (E) ne bloque pas, mais définit l'ensemble du produit :
|
|
53
|
+
|
|
54
|
+
- **E. Identité** — logo, traductions, page d'accueil, métadonnées du dépôt.
|
|
55
|
+
|
|
56
|
+
Le critère indique **ce qui** doit être vrai, et non **comment** l'implémenter. Les balises d'applicabilité (`[all]`, `[npm]`, `[mcp]`, `[cli]`, `[desktop]`, `[vsix]`, `[container]`) évitent les situations embarrassantes dans les dépôts où certains éléments ne sont pas applicables.
|
|
57
|
+
|
|
58
|
+
## Vue d'ensemble du contrat de gestion des erreurs
|
|
59
|
+
|
|
60
|
+
**Niveau 1 — Structure (obligatoire partout) :**
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"code": "INPUT_TEXT_EMPTY",
|
|
65
|
+
"message": "Text must not be empty",
|
|
66
|
+
"hint": "Provide at least one character of text",
|
|
67
|
+
"retryable": false
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Niveau 2 — Type de base + codes de sortie (CLI/MCP/bureau) :**
|
|
72
|
+
|
|
73
|
+
| Code de sortie | Signification |
|
|
74
|
+
|-----------|---------|
|
|
75
|
+
| 0 | OK |
|
|
76
|
+
| 1 | Erreur utilisateur (mauvaise entrée, configuration manquante) |
|
|
77
|
+
| 2 | Erreur d'exécution (plantage, panne du serveur) |
|
|
78
|
+
| 3 | Succès partiel (certains éléments ont réussi) |
|
|
79
|
+
|
|
80
|
+
Les codes d'erreur utilisent des préfixes spécifiques : `IO_`, `CONFIG_`, `PERM_`, `DEP_`, `RUNTIME_`, `PARTIAL_`, `INPUT_`, `STATE_`. Les codes sont stables une fois publiés.
|
|
81
|
+
|
|
82
|
+
## Implémentation de référence
|
|
83
|
+
|
|
84
|
+
[mcp-voice-soundboard](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard) était le premier dépôt à avoir passé Ship Gate, avec un score de **46/50** après correction des problèmes.
|
|
85
|
+
|
|
86
|
+
## Tableau de bord
|
|
87
|
+
|
|
88
|
+
| Catégorie | Score | Notes |
|
|
89
|
+
|----------|-------|-------|
|
|
90
|
+
| A. Sécurité | 10/10 | SECURITY.md, pas de code exécutable, pas de collecte de données. |
|
|
91
|
+
| B. Gestion des erreurs | N/A | Dépôt de normes — pas de code pour la gestion des erreurs. |
|
|
92
|
+
| C. Documentation pour l'utilisateur | 10/10 | README, CHANGELOG, ADOPTION, tous les modèles documentés. |
|
|
93
|
+
| D. Bonnes pratiques de déploiement | 8/10 | Pas de code à vérifier/tester, toutes les normes versionnées. |
|
|
94
|
+
| E. Identité | 10/10 | Logo, traductions, page d'accueil, métadonnées. |
|
|
95
|
+
| **Total** | **38/40** | B exclu (non applicable). |
|
|
96
|
+
|
|
97
|
+
## Licence
|
|
98
|
+
|
|
99
|
+
[MIT](LICENSE)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
105
|
+
</p>
|
package/README.hi.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.md">English</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/shipcheck/readme.jpg" alt="Shipcheck" width="400">
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
11
|
+
<a href="https://mcp-tool-shop-org.github.io/shipcheck/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
Product standards for MCP Tool Shop.<br>
|
|
16
|
+
Templates, contracts, and adoption guides that define what "done" means before anything ships.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## क्यों?
|
|
22
|
+
|
|
23
|
+
"डन" का पहले मतलब होता था कि कोड काम कर रहा है। लेकिन यह पर्याप्त नहीं है। एक उत्पाद में कोड के साथ-साथ सुरक्षा, त्रुटि प्रबंधन, दस्तावेज़, पहचान और वितरण प्रक्रिया की स्वच्छता भी शामिल होती है। "शिपचेक" इन सभी मानकों को निर्धारित करता है।
|
|
24
|
+
|
|
25
|
+
## यहां क्या है?
|
|
26
|
+
|
|
27
|
+
| मानक। | यह क्या शामिल करता है। |
|
|
28
|
+
|----------|----------------|
|
|
29
|
+
| [Ship Gate](templates/SHIP_GATE.md) | 27 "हार्ड-गेट" और 4 "सॉफ्ट-गेट" प्री-रिलीज़ चेकलिस्ट आइटम। |
|
|
30
|
+
| [Error Contract](contracts/error-contract.md) | दो-स्तरीय संरचित त्रुटि मानक, जिसमें कोड रजिस्ट्री शामिल है। |
|
|
31
|
+
| [Security Baseline](templates/SECURITY.md) | रिपोर्ट ईमेल, प्रतिक्रिया देने का समय, खतरे की सीमा। |
|
|
32
|
+
| [Handbook](templates/HANDBOOK.md) | जटिल उपकरणों के लिए परिचालन संबंधी उपयोगकर्ता पुस्तिका। |
|
|
33
|
+
| [Scorecard](templates/SCORECARD.md) | सुधार से पहले और बाद के प्रदर्शन का मूल्यांकन। |
|
|
34
|
+
| [Adoption Guide](ADOPTION.md) | "शिपचेक" को किसी भी रिपॉजिटरी पर 30 मिनट से कम समय में लागू करें। |
|
|
35
|
+
|
|
36
|
+
## शुरुआत कैसे करें।
|
|
37
|
+
|
|
38
|
+
1. [ADOPTION.md](ADOPTION.md) फ़ाइल पढ़ें।
|
|
39
|
+
2. `templates/SHIP_GATE.md` फ़ाइल को अपनी रिपॉजिटरी के रूट फ़ोल्डर में कॉपी करें।
|
|
40
|
+
3. लागू होने वाली चीज़ों पर टिक करें, और जो लागू नहीं होती हैं, उन्हें `SKIP:` लिखकर चिह्नित करें।
|
|
41
|
+
4. जब सभी आवश्यक जांच पूरी हो जाएं, तो इसे रिलीज़ करें।
|
|
42
|
+
|
|
43
|
+
## यह कैसे काम करता है।
|
|
44
|
+
|
|
45
|
+
**कठोर गेट्स** (ए से डी): ये रिलीज को रोकते हैं।
|
|
46
|
+
|
|
47
|
+
- **ए. सुरक्षा आधार:** SECURITY.md, खतरे का मॉडल, कोई गुप्त जानकारी नहीं, कोई डेटा संग्रह नहीं, डिफ़ॉल्ट सुरक्षा स्थिति।
|
|
48
|
+
- **बी. त्रुटि प्रबंधन:** संरचित त्रुटि प्रारूप (कोड/संदेश/संकेत/पुनः प्रयास योग्य), सुरक्षित आउटपुट, सुचारू रूप से कार्यक्षमता में कमी।
|
|
49
|
+
- **सी. ऑपरेटर दस्तावेज़:** README, CHANGELOG, LICENSE, उपकरण दस्तावेज़।
|
|
50
|
+
- **डी. वितरण संबंधी स्वच्छता:** स्क्रिप्ट का सत्यापन, संस्करण का मिलान, निर्भरता स्कैनिंग, लॉकफ़ाइल।
|
|
51
|
+
|
|
52
|
+
**सॉफ्ट गेट** (ई) अवरोधक नहीं है, बल्कि यह "संपूर्णता" को परिभाषित करता है।
|
|
53
|
+
|
|
54
|
+
- **ई. पहचान (Identity)** — लोगो, अनुवाद, लैंडिंग पृष्ठ, रिपॉ मेटाडेटा।
|
|
55
|
+
|
|
56
|
+
गेट यह बताता है कि **क्या** सत्य होना चाहिए, न कि इसे **कैसे** लागू किया जाए। "उपयोगिता" टैग (`[all]`, `[npm]`, `[mcp]`, `[cli]`, `[desktop]`, `[vsix]`, `[container]`) उन रिपॉजिटरी में "चेकबॉक्स शर्म" को रोकते हैं जहां कुछ चीजें लागू नहीं होती हैं।
|
|
57
|
+
|
|
58
|
+
## त्रुटि अनुबंध: एक संक्षिप्त विवरण।
|
|
59
|
+
|
|
60
|
+
**स्तर 1 - आकार (हर जगह अनिवार्य):**
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"code": "INPUT_TEXT_EMPTY",
|
|
65
|
+
"message": "Text must not be empty",
|
|
66
|
+
"hint": "Provide at least one character of text",
|
|
67
|
+
"retryable": false
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**स्तर 2 - आधारभूत प्रकार + निकास कोड (कमांड लाइन इंटरफेस/मल्टी-प्रोटोकॉल सर्वर/डेस्कटॉप):**
|
|
72
|
+
|
|
73
|
+
| निकास कोड। | अर्थ। |
|
|
74
|
+
|-----------|---------|
|
|
75
|
+
| 0 | OK |
|
|
76
|
+
| 1 | उपयोगकर्ता की गलती (गलत इनपुट, कॉन्फ़िगरेशन की कमी)। |
|
|
77
|
+
| 2 | रनटाइम त्रुटि (क्रैश, बैकएंड में खराबी)। |
|
|
78
|
+
| 3 | आंशिक सफलता (कुछ चीजें सफल रहीं)। |
|
|
79
|
+
|
|
80
|
+
त्रुटि कोडों में नामस्थान वाले उपसर्गों का उपयोग किया जाता है: `IO_`, `CONFIG_`, `PERM_`, `DEP_`, `RUNTIME_`, `PARTIAL_`, `INPUT_`, `STATE_`. एक बार जारी होने के बाद, ये कोड स्थिर रहते हैं।
|
|
81
|
+
|
|
82
|
+
## संदर्भ कार्यान्वयन।
|
|
83
|
+
|
|
84
|
+
[mcp-voice-soundboard](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard) यह पहला रिपॉजिटरी था जिसने "शिप गेट" की जांच पास की - सुधार के बाद इसे **46/50** अंक मिले।
|
|
85
|
+
|
|
86
|
+
## स्कोरकार्ड।
|
|
87
|
+
|
|
88
|
+
| श्रेणी। | स्कोर। | टिप्पणियाँ। |
|
|
89
|
+
|----------|-------|-------|
|
|
90
|
+
| अ. सुरक्षा। | 10/10 | सुरक्षा.md: इसमें कोई निष्पादन योग्य कोड नहीं है, और यह कोई डेटा संग्रह नहीं करता है। |
|
|
91
|
+
| बी. त्रुटि प्रबंधन। | लागू नहीं. | मानकों का भंडार - कोई भी त्रुटि नहीं। |
|
|
92
|
+
| सी. ऑपरेटर दस्तावेज़। | 10/10 | README, CHANGELOG, अपनाना, सभी टेम्पलेट्स का विवरण दिया गया है। |
|
|
93
|
+
| डी. शिपिंग स्वच्छता। | 8/10 | कोई भी कोड सत्यापन/परीक्षण के लिए उपलब्ध नहीं है, सभी मानकों को संस्करणों में विभाजित किया गया है। |
|
|
94
|
+
| ई. पहचान। | 10/10 | लोग, अनुवाद, लैंडिंग पेज, मेटाडेटा। |
|
|
95
|
+
| **Total** | **38/40** | बी: अप्रासंगिक (लागू नहीं)। |
|
|
96
|
+
|
|
97
|
+
## लाइसेंस।
|
|
98
|
+
|
|
99
|
+
[एमआईटी] (लाइसेंस)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
105
|
+
</p>
|
package/README.it.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.md">English</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/shipcheck/readme.jpg" alt="Shipcheck" width="400">
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
|
|
11
|
+
<a href="https://mcp-tool-shop-org.github.io/shipcheck/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page"></a>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
Product standards for MCP Tool Shop.<br>
|
|
16
|
+
Templates, contracts, and adoption guides that define what "done" means before anything ships.
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Perché
|
|
22
|
+
|
|
23
|
+
"Fatto" significava che il codice funzionava. Questo non è sufficiente. Un prodotto è costituito da codice + sicurezza + gestione degli errori + documentazione + identità + pratiche di rilascio. Shipcheck definisce gli standard.
|
|
24
|
+
|
|
25
|
+
## Cosa c'è qui
|
|
26
|
+
|
|
27
|
+
| Standard | Cosa copre |
|
|
28
|
+
|----------|----------------|
|
|
29
|
+
| [Ship Gate](templates/SHIP_GATE.md) | 27 controlli preliminari "hard" + 4 controlli preliminari "soft" |
|
|
30
|
+
| [Error Contract](contracts/error-contract.md) | Standard strutturato per la gestione degli errori con registro del codice |
|
|
31
|
+
| [Security Baseline](templates/SECURITY.md) | Email di segnalazione, tempi di risposta, ambito delle minacce |
|
|
32
|
+
| [Handbook](templates/HANDBOOK.md) | Manuale operativo per strumenti complessi |
|
|
33
|
+
| [Scorecard](templates/SCORECARD.md) | Valutazione pre/post correzione |
|
|
34
|
+
| [Adoption Guide](ADOPTION.md) | Applica Shipcheck a qualsiasi repository in meno di 30 minuti |
|
|
35
|
+
|
|
36
|
+
## Guida rapida
|
|
37
|
+
|
|
38
|
+
1. Leggere [ADOPTION.md](ADOPTION.md)
|
|
39
|
+
2. Copiare `templates/SHIP_GATE.md` nella directory principale del repository
|
|
40
|
+
3. Spuntare le voci applicabili, contrassegnare le voci non applicabili con `SKIP:`
|
|
41
|
+
4. Rilasciare quando tutti i controlli preliminari "hard" sono superati
|
|
42
|
+
|
|
43
|
+
## Come funziona
|
|
44
|
+
|
|
45
|
+
I **controlli preliminari "hard"** (A-D) bloccano il rilascio:
|
|
46
|
+
|
|
47
|
+
- **A. Sicurezza di base** — SECURITY.md, modello delle minacce, nessuna informazione sensibile, nessuna telemetria, impostazione di sicurezza predefinita
|
|
48
|
+
- **B. Gestione degli errori** — struttura degli errori (codice/messaggio/suggerimento/riprovabile), output sicuro, gestione degli errori controllata
|
|
49
|
+
- **C. Documentazione per l'utente** — README, CHANGELOG, LICENZA, documentazione dello strumento
|
|
50
|
+
- **D. Pratiche di rilascio** — verifica dello script, allineamento delle versioni, scansione delle dipendenze, file di blocco
|
|
51
|
+
|
|
52
|
+
Il **controllo preliminare "soft"** (E) non blocca, ma definisce il "quadro generale":
|
|
53
|
+
|
|
54
|
+
- **E. Identità** — logo, traduzioni, pagina di presentazione, metadati del repository
|
|
55
|
+
|
|
56
|
+
Il controllo preliminare indica **cosa** deve essere vero, non **come** implementarlo. I tag di applicabilità (`[all]`, `[npm]`, `[mcp]`, `[cli]`, `[desktop]`, `[vsix]`, `[container]`) impediscono che si verifichino situazioni imbarazzanti in repository in cui le voci non sono applicabili.
|
|
57
|
+
|
|
58
|
+
## Panoramica del contratto di gestione degli errori
|
|
59
|
+
|
|
60
|
+
**Livello 1 — Struttura (obbligatorio ovunque):**
|
|
61
|
+
|
|
62
|
+
```json
|
|
63
|
+
{
|
|
64
|
+
"code": "INPUT_TEXT_EMPTY",
|
|
65
|
+
"message": "Text must not be empty",
|
|
66
|
+
"hint": "Provide at least one character of text",
|
|
67
|
+
"retryable": false
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Livello 2 — Tipo di base + codici di uscita (CLI/MCP/desktop):**
|
|
72
|
+
|
|
73
|
+
| Codice di uscita | Significato |
|
|
74
|
+
|-----------|---------|
|
|
75
|
+
| 0 | OK |
|
|
76
|
+
| 1 | Errore dell'utente (input errato, configurazione mancante) |
|
|
77
|
+
| 2 | Errore di runtime (crash, errore del backend) |
|
|
78
|
+
| 3 | Successo parziale (alcuni elementi hanno avuto successo) |
|
|
79
|
+
|
|
80
|
+
I codici di errore utilizzano prefissi con spazi dei nomi: `IO_`, `CONFIG_`, `PERM_`, `DEP_`, `RUNTIME_`, `PARTIAL_`, `INPUT_`, `STATE_`. I codici sono stabili una volta rilasciati.
|
|
81
|
+
|
|
82
|
+
## Implementazione di riferimento
|
|
83
|
+
|
|
84
|
+
[mcp-voice-soundboard](https://github.com/mcp-tool-shop-org/mcp-voice-soundboard) è stato il primo repository a superare il controllo preliminare Ship Gate, ottenendo un punteggio di **46/50** dopo la correzione.
|
|
85
|
+
|
|
86
|
+
## Scheda di valutazione
|
|
87
|
+
|
|
88
|
+
| Categoria | Punteggio | Note |
|
|
89
|
+
|----------|-------|-------|
|
|
90
|
+
| A. Sicurezza | 10/10 | SECURITY.md, nessun codice eseguibile, nessuna raccolta dati |
|
|
91
|
+
| B. Gestione degli errori | N/A | Repository standard — nessun codice per la gestione degli errori |
|
|
92
|
+
| C. Documentazione per l'utente | 10/10 | README, CHANGELOG, ADOPTION, tutte le voci documentate |
|
|
93
|
+
| D. Pratiche di rilascio | 8/10 | Nessun codice da verificare/testare, tutte le versioni degli standard sono gestite |
|
|
94
|
+
| E. Identità | 10/10 | Logo, traduzioni, pagina di presentazione, metadati |
|
|
95
|
+
| **Total** | **38/40** | B escluso (non applicabile) |
|
|
96
|
+
|
|
97
|
+
## Licenza
|
|
98
|
+
|
|
99
|
+
[MIT](LICENSE)
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
<p align="center">
|
|
104
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
105
|
+
</p>
|