Skip to content

Commit 5cd368b

Browse files
mcp-tool-shopclaude
andcommitted
release(prep): loadout-os v1.0.0 — README translations (8 langs) + release.yml bundle step
Pre-publish prep (translations run BEFORE the publish tag, per the release-ordering rule). README translated into ja/zh/es/fr/hi/it/pt-BR via the local TranslateGemma 27B (zero API cost); language nav bar added (translations-first, logo-second). packages/cli bumped 0.0.0 -> 1.0.0 (shipcheck v1.0.0 minimum) and the broken library main/types/exports dropped (it's a bin-only self-contained package). release.yml: added an explicit bundle step so the pack-dry-run shape check + publish see the real self-contained dist/loadout-os.js (prepublishOnly also bundles). Lockfile synced (esbuild devDep + cli 1.0.0); npm ci clean. .polyglot-cache.json gitignored. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 644d2bc commit 5cd368b

12 files changed

Lines changed: 1161 additions & 21 deletions

File tree

.github/workflows/release.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,19 @@ jobs:
5656
- name: Build (kernel -> memories -> rules -> cli)
5757
run: npm run build
5858

59+
- name: Bundle the CLI (self-contained publish artifact)
60+
run: npm run bundle -w packages/cli
61+
5962
- name: Test
6063
run: npm test
6164

6265
- name: npm pack dry-run (verify shape)
6366
run: npm pack --dry-run -w packages/cli
6467

65-
# NOTE (Phase 6): @mcptoolshop/loadout-os depends on the workspace packages
66-
# @mcptoolshop/claude-memories + @mcptoolshop/claude-rules, which are NOT yet
67-
# published. Before the first real publish, either publish those deps (see
68-
# multi-repo-publish-sequencing) or bundle/inline them. Until then this
69-
# publish step would produce an install-broken package.
68+
# The published package is SELF-CONTAINED: packages/cli prepublishOnly runs
69+
# build + esbuild bundle, inlining the kernel + memories + rules logic into
70+
# dist/loadout-os.js — no external @mcptoolshop runtime deps (we also bundle
71+
# explicitly above so the pack-dry-run shape check sees the real artifact).
7072
- name: Publish to npm with provenance (OIDC trusted publisher)
7173
run: npm publish -w packages/cli --provenance --access public
7274

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ Thumbs.db
1111
.env.local
1212
*.tsbuildinfo
1313
site/.astro/
14+
.polyglot-cache.json

README.es.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
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"><img src="logo.png" alt="loadout-os" width="500"></p>
6+
7+
8+
9+
**Un sistema operativo de conocimiento para agentes de codificación de IA.** Una única interfaz de línea de comandos (CLI) que dirige el contexto adecuado al modelo bajo demanda, en lugar de volcar todos los archivos de memoria y reglas en la ventana de contexto al inicio de cada sesión.
10+
11+
Tus archivos de instrucciones y almacenes de memoria crecen indefinidamente. Cada línea cuesta tokens en cada solicitud, independientemente de si es relevante para la tarea en cuestión. `loadout-os` mantiene un pequeño índice de distribución siempre cargado y carga los datos más pesados (temas de memoria, archivos de reglas) solo cuando las palabras clave de la tarea coinciden. Piensa en ello como el equipo de un juego: equipa al agente con exactamente el conocimiento que necesita para la misión que tiene por delante.
12+
13+
## Qué hay dentro
14+
15+
`loadout-os` unifica cuatro componentes bajo un único binario `loadout-os`:
16+
17+
| Componente | Qué hace |
18+
|---|---|
19+
| **Kernel** (knowledge router) | Coincidencia determinista de palabras clave/patrones, resolución jerárquica en capas (global → organización → proyecto → sesión) y el contrato de tiempo de ejecución del agente. Las entradas principales siempre se cargan; las entradas de dominio se cargan cuando hay una coincidencia; las entradas manuales se cargan mediante una búsqueda explícita. |
20+
| **Memories adapter** | Convierte un almacén `MEMORY.md` en una tabla de distribución legible por máquina y lo valida (archivos faltantes, elementos huérfanos, duplicados, entradas demasiado largas). |
21+
| **Rules adapter** | Divide un archivo `CLAUDE.md` inflado en un índice ligero que siempre está cargado más archivos de reglas bajo demanda y valida la información del encabezado con respecto al índice. |
22+
| **Runtime hook** | Un "hook" `UserPromptSubmit` que inyecta ≤5 líneas de puntero (≤200 tokens) a las entradas relevantes para tu solicitud. A prueba de fallos: cada ruta de error sale con el código 0, por lo que un "hook" defectuoso nunca puede bloquear una solicitud. |
23+
24+
Además, tres rituales que mantienen la integridad del sistema: **`refresh`** (regenera → valida → publica el índice de distribución, con un mecanismo de compensación), **`doctor`** (una revisión de estado en modo solo lectura con 8 comprobaciones) y **`report`** (observabilidad del uso/entradas inactivas/presupuesto de tokens).
25+
26+
## Interfaz de línea de comandos
27+
28+
```
29+
# Memory store adapter
30+
loadout-os memories index <MEMORY.md> [--lazy] [--json]
31+
loadout-os memories validate <MEMORY.md> [--json]
32+
loadout-os memories stats <MEMORY.md> [--json]
33+
loadout-os memories health [path] [--json]
34+
35+
# Instruction-file adapter
36+
loadout-os rules analyze <CLAUDE.md> [--rules-dir <dir>] [--json]
37+
loadout-os rules validate [--rules-dir <dir>] [--lazy] [--repo-root <dir>] [--json]
38+
loadout-os rules stats <CLAUDE.md> [--rules-dir <dir>] [--json]
39+
loadout-os rules split [CLAUDE.md] [--yes] [--dry-run]
40+
41+
# Knowledge router (flat kernel verbs)
42+
loadout-os resolve # resolve layered loadouts
43+
loadout-os explain <entry-id> # how an entry resolved across layers
44+
loadout-os usage <jsonl> # usage summary from the event log
45+
loadout-os dead <index> <jsonl> # entries never loaded
46+
loadout-os overlaps <index> # keyword routing ambiguities
47+
loadout-os budget <index> [jsonl] # token budget breakdown
48+
loadout-os validate <index> # validate index STRUCTURE (kernel)
49+
50+
# Rituals + hook
51+
loadout-os doctor [--json] # read-only health screen
52+
loadout-os report [--index <p>] [--jsonl <p>] # observability over usage.jsonl
53+
loadout-os hook test [--prompt "<text>"] # drive the runtime hook on a sample prompt
54+
loadout-os refresh [--store <d>] [--dest <p>] [--dry-run] # index → validate → publish
55+
```
56+
57+
> **Conflicto de nombres, resuelto mediante el espacio de nombres.** El comando plano `validate <index>` es el validador de la estructura del índice del kernel. Los validadores de almacén y reglas tienen un espacio de nombres: `memories validate <MEMORY.md>` y `rules validate`, por lo que los tres pueden coexistir. Ejecuta `loadout-os <command> --help` para obtener una sinopsis, argumentos y códigos de salida por comando.
58+
59+
## Instalación
60+
61+
```bash
62+
npm install -g @mcptoolshop/loadout-os # the loadout-os CLI
63+
loadout-os --help # the full command tree
64+
loadout-os doctor # confirm the system is healthy
65+
```
66+
67+
El kernel también se puede importar como una biblioteca: `@mcptoolshop/ai-loadout` expone `planLoad`, `matchLoadout`, `resolveLoadout`, `recordLoad` y los tipos de tabla de distribución.
68+
69+
## Documentación
70+
71+
- **[Manual](https://mcp-tool-shop-org.github.io/loadout-os/handbook/)**: descripción general, instalación, arquitectura, referencia de comandos, rituales y migración desde los paquetes heredados.
72+
- **[Repositorio](https://github.com/mcp-tool-shop-org/loadout-os)**: código fuente, hoja de ruta e incidencias.
73+
74+
## ¿Por qué consolidar?
75+
76+
La descomposición por secretos (Parnas 1972) fue la solución ideal para un equipo de N humanos. Para un operador individual más un equipo LLM, es operacionalmente inviable: el trabajo en varios repositorios fragmenta el contexto del agente entre sesiones, los adaptadores no publicados se deterioran (solo el kernel se ha publicado) y el progreso se serializa entre repositorios. Un único repositorio con nombre y una única CLI sirven al operador. El razonamiento completo se encuentra en el almacén de memoria canónico (`feedback_consolidate_when_cant_juggle_repos.md`).
77+
78+
## Estado
79+
80+
La consolidación está en curso. `loadout-os` integra el kernel y dos adaptadores que antes se encontraban como paquetes separados, además del "hook" de tiempo de ejecución activo. El paquete publicado hoy es **`@mcptoolshop/ai-loadout`** (el kernel); el paquete unificado `loadout-os` se envía desde este repositorio. Los tres binarios heredados seguirán funcionando hasta su retirada planificada.
81+
82+
## Modelo de confianza
83+
84+
`loadout-os` se ejecuta completamente en tu máquina. No hay llamadas a la red, ni telemetría y ni cuenta.
85+
86+
- **Datos que utiliza (solo local):** tu almacén de memoria (`MEMORY.md` + archivos de temas), tus archivos de instrucciones (`CLAUDE.md` + `.claude/rules/`), el índice de distribución generado junto al almacén, el índice del solucionador global (`~/.ai-loadout/index.json`) y el registro de uso de solo anexión (`~/.ai-loadout/usage.jsonl`).
87+
- **Datos que NO utiliza:** no hay salida a la red, ni telemetría, ni servicios remotos, ni credenciales ni secretos. Nada se lee, almacena ni transmite fuera de las rutas locales anteriores.
88+
- **Permisos requeridos:** solo el sistema de archivos local. `doctor` y `report` son lecturas puras (nunca escriben). Las únicas escrituras son los archivos de índice, la salida interactiva de `rules split` y el registro de uso: todo en las ubicaciones locales esperadas anteriores. La escritura irreversible (`refresh` que publica el índice global activo) está protegida por una parada "andon" en caso de fallo de validación y un mecanismo de compensación `<dest>.bak`. El "hook" de tiempo de ejecución es a prueba de fallos: cada ruta de error sale con el código `0`, por lo que nunca puede bloquear una solicitud.
89+
90+
Modelo completo de amenazas y proceso de notificación: [SECURITY.md](./SECURITY.md).
91+
92+
## Licencia
93+
94+
MIT, coincide con todas las fuentes anteriores.

README.fr.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
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"><img src="logo.png" alt="loadout-os" width="500"></p>
6+
7+
8+
9+
**Un système d’exploitation de connaissances pour les agents de codage IA.** Une seule interface en ligne de commande (CLI) qui transmet le contexte approprié au modèle à la demande, au lieu de charger tous les fichiers de mémoire et toutes les règles dans la fenêtre de contexte au début de chaque session.
10+
11+
Vos fichiers d’instructions et vos bases de données de mémoire se développent sans limite. Chaque ligne coûte des jetons pour chaque requête, qu’elle soit pertinente ou non pour la tâche en cours. loadout-os maintient un petit index de répartition toujours chargé et ne charge les éléments volumineux (sujets de mémoire, fichiers de règles) que lorsque les mots-clés de la tâche correspondent. Considérez cela comme un ensemble d’équipements pour un jeu : équipez l’agent avec exactement les connaissances dont il a besoin pour la mission à venir.
12+
13+
## Ce qu’il y a dedans
14+
15+
loadout-os unifie quatre éléments sous une seule application `loadout-os` :
16+
17+
| Élément | Ce que cela fait |
18+
|---|---|
19+
| **Kernel** (knowledge router) | Correspondance déterministe de mots-clés/motifs, résolveur hiérarchique à plusieurs niveaux (global → organisation → projet → session) et contrat d’exécution de l’agent. Les éléments principaux se chargent toujours ; les éléments de domaine se chargent en cas de correspondance ; les éléments manuels se chargent lors d’une recherche explicite. |
20+
| **Memories adapter** | Transforme une base de données `MEMORY.md` en une table de répartition lisible par machine et la vérifie (fichiers manquants, éléments orphelins, doublons, éléments trop longs). |
21+
| **Rules adapter** | Divise un fichier `CLAUDE.md` volumineux en un index allégé toujours chargé, ainsi qu’en des fichiers de règles chargés à la demande, et valide les métadonnées par rapport à l’index. |
22+
| **Runtime hook** | Un hook `UserPromptSubmit` qui injecte ≤ 5 lignes de pointeur (≤ 200 jetons) dans les éléments pertinents pour votre requête. En cas d’échec, il ne bloque pas : chaque chemin d’erreur se termine avec le code 0, de sorte qu’un hook défectueux ne peut jamais bloquer une requête. |
23+
24+
Plus trois rituels qui garantissent l’intégrité du système : **`refresh`** (régénérer → valider → publier l’index de répartition, avec un mécanisme de compensation), **`doctor`** (un écran d’état en lecture seule avec 8 vérifications) et **`report`** (observabilité de l’utilisation / des éléments inactifs / du budget de jetons).
25+
26+
## Interface de commande
27+
28+
```
29+
# Memory store adapter
30+
loadout-os memories index <MEMORY.md> [--lazy] [--json]
31+
loadout-os memories validate <MEMORY.md> [--json]
32+
loadout-os memories stats <MEMORY.md> [--json]
33+
loadout-os memories health [path] [--json]
34+
35+
# Instruction-file adapter
36+
loadout-os rules analyze <CLAUDE.md> [--rules-dir <dir>] [--json]
37+
loadout-os rules validate [--rules-dir <dir>] [--lazy] [--repo-root <dir>] [--json]
38+
loadout-os rules stats <CLAUDE.md> [--rules-dir <dir>] [--json]
39+
loadout-os rules split [CLAUDE.md] [--yes] [--dry-run]
40+
41+
# Knowledge router (flat kernel verbs)
42+
loadout-os resolve # resolve layered loadouts
43+
loadout-os explain <entry-id> # how an entry resolved across layers
44+
loadout-os usage <jsonl> # usage summary from the event log
45+
loadout-os dead <index> <jsonl> # entries never loaded
46+
loadout-os overlaps <index> # keyword routing ambiguities
47+
loadout-os budget <index> [jsonl] # token budget breakdown
48+
loadout-os validate <index> # validate index STRUCTURE (kernel)
49+
50+
# Rituals + hook
51+
loadout-os doctor [--json] # read-only health screen
52+
loadout-os report [--index <p>] [--jsonl <p>] # observability over usage.jsonl
53+
loadout-os hook test [--prompt "<text>"] # drive the runtime hook on a sample prompt
54+
loadout-os refresh [--store <d>] [--dest <p>] [--dry-run] # index → validate → publish
55+
```
56+
57+
> **Collision de noms, résolue par l’utilisation d’espaces de noms.** La commande plate `validate <index>` est le validateur de la structure d’index du noyau. Les vérificateurs de la base de données et des règles utilisent des espaces de noms (par exemple, `memories validate <MEMORY.md>` et `rules validate`), de sorte que les trois peuvent coexister. Exécutez `loadout-os <command> --help` pour obtenir un résumé, des arguments et des codes de sortie par commande.
58+
59+
## Installation
60+
61+
```bash
62+
npm install -g @mcptoolshop/loadout-os # the loadout-os CLI
63+
loadout-os --help # the full command tree
64+
loadout-os doctor # confirm the system is healthy
65+
```
66+
67+
Le noyau peut également être importé en tant que bibliothèque : `@mcptoolshop/ai-loadout` expose `planLoad`, `matchLoadout`, `resolveLoadout`, `recordLoad` et les types de table de répartition.
68+
69+
## Documentation
70+
71+
- **[Manuel](https://mcp-tool-shop-org.github.io/loadout-os/handbook/)** : aperçu, installation, architecture, référence des commandes, rituels et migration à partir des anciens packages.
72+
- **[Dépôt](https://github.com/mcp-tool-shop-org/loadout-os)** : code source, feuille de route et problèmes.
73+
74+
## Pourquoi consolider ?
75+
76+
La décomposition par secrets (Parnas 1972) était la solution idéale pour une équipe de N personnes. Pour un opérateur solo plus une équipe LLM, elle est opérationnellement inefficace : le travail multi-dépôts fragmente le contexte de l’agent entre les sessions, les adaptateurs non publiés se détériorent (seul le noyau a été publié) et l’avancement se sérialise entre les dépôts. Un seul dépôt unifié avec une seule CLI suffit pour l’opérateur. Le raisonnement complet est contenu dans la base de données de mémoire canonique (`feedback_consolidate_when_cant_juggle_repos.md`).
77+
78+
## État
79+
80+
La consolidation est en cours. loadout-os regroupe le noyau et les deux adaptateurs qui étaient auparavant des packages distincts, ainsi que le hook d’exécution en direct. La version publiée aujourd’hui sur la plateforme est **`@mcptoolshop/ai-loadout`** (le noyau) ; le package unifié `loadout-os` sera publié à partir de ce dépôt. Les trois anciens modules continueront de fonctionner jusqu’à leur retrait prévu.
81+
82+
## Modèle de confiance
83+
84+
loadout-os s’exécute entièrement sur votre machine. Il n’y a pas d’appel réseau, pas de télémétrie et pas de compte.
85+
86+
- **Données auxquelles il accède (uniquement localement) :** votre base de données de mémoire (`MEMORY.md` + fichiers de sujets), vos fichiers d’instructions (`CLAUDE.md` + `.claude/rules/`), l’index de répartition généré à côté de la base de données, l’index du résolveur global (`~/.ai-loadout/index.json`) et le journal d’utilisation en annexe uniquement (`~/.ai-loadout/usage.jsonl`).
87+
- **Données auxquelles il n’accède PAS :** pas de transfert de données sur le réseau, pas de télémétrie, pas de services à distance, pas d’informations d’identification ou de secrets. Rien n’est lu, stocké ou transmis en dehors des chemins locaux ci-dessus.
88+
- **Autorisations requises :** uniquement le système de fichiers local. `doctor` et `report` sont en lecture seule (ils n’écrivent jamais). Les seules écritures concernent les fichiers d’index, la sortie interactive de `rules split` et le journal d’utilisation, le tout dans les emplacements locaux attendus ci-dessus. L’écriture irréversible (`refresh` publiant l’index global en direct) est protégée par un arrêt andon en cas d’échec de la validation et un mécanisme de compensation `<dest>.bak`. Le hook d’exécution ne bloque pas : chaque chemin d’erreur se termine avec le code `0`, de sorte qu’il ne peut jamais bloquer une requête.
89+
90+
Modèle complet des menaces et processus de signalement : [SECURITY.md](./SECURITY.md).
91+
92+
## Licence
93+
94+
MIT — correspond à toutes les sources en amont.

0 commit comments

Comments
 (0)