{"id":51286377,"url":"https://github.com/dogfood-lab/testing-os","last_synced_at":"2026-06-30T06:00:38.887Z","repository":{"id":353693824,"uuid":"1220544101","full_name":"dogfood-lab/testing-os","owner":"dogfood-lab","description":"Operating system for testing in the AI era — protocols, evidence stores, and learning loops for AI-assisted software.","archived":false,"fork":false,"pushed_at":"2026-06-30T01:42:07.000Z","size":3102,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T03:17:50.657Z","etag":null,"topics":["ai-tooling","cli","dogfood-lab","mcp-tool-shop","monorepo","npm","npm-workspaces","testing"],"latest_commit_sha":null,"homepage":"https://dogfood-lab.github.io/testing-os/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dogfood-lab.png","metadata":{"files":{"readme":"README.es.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-25T02:46:47.000Z","updated_at":"2026-06-30T01:42:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dogfood-lab/testing-os","commit_stats":null,"previous_names":["dogfood-lab/testing-os"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/dogfood-lab/testing-os","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogfood-lab%2Ftesting-os","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogfood-lab%2Ftesting-os/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogfood-lab%2Ftesting-os/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogfood-lab%2Ftesting-os/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dogfood-lab","download_url":"https://codeload.github.com/dogfood-lab/testing-os/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogfood-lab%2Ftesting-os/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34954283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-30T02:00:05.919Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-tooling","cli","dogfood-lab","mcp-tool-shop","monorepo","npm","npm-workspaces","testing"],"created_at":"2026-06-30T06:00:26.327Z","updated_at":"2026-06-30T06:00:38.846Z","avatar_url":"https://github.com/dogfood-lab.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.ja.md\"\u003e日本語\u003c/a\u003e | \u003ca href=\"README.zh.md\"\u003e中文\u003c/a\u003e | \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e | \u003ca href=\"README.fr.md\"\u003eFrançais\u003c/a\u003e | \u003ca href=\"README.hi.md\"\u003eहिन्दी\u003c/a\u003e | \u003ca href=\"README.it.md\"\u003eItaliano\u003c/a\u003e | \u003ca href=\"README.pt-BR.md\"\u003ePortuguês (BR)\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/logo.png\" alt=\"testing-os\" width=\"280\"\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# testing-os\n\n[![CI](https://github.com/dogfood-lab/testing-os/actions/workflows/ci.yml/badge.svg)](https://github.com/dogfood-lab/testing-os/actions/workflows/ci.yml)\n[![Pages](https://github.com/dogfood-lab/testing-os/actions/workflows/pages.yml/badge.svg)](https://dogfood-lab.github.io/testing-os/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen)](package.json)\n\n**Sistema operativo para pruebas en la era de la IA**\n\n*Protocolos, almacenes de evidencia y ciclos de aprendizaje para software asistido por IA.*\n\n\u003c!-- version:start --\u003e\n**v1.8.0** — versión actual. Consulte [CHANGELOG.md](CHANGELOG.md) para ver qué se ha incluido.\n\u003c!-- version:end --\u003e\n\n📖 **[Lea el manual →](https://dogfood-lab.github.io/testing-os/handbook/)**\n\n\u003c/div\n\n---\n\n## ¿Qué es esto?\n\n`testing-os` registra, verifica y aprende de las pruebas reales de su repositorio en un flujo de trabajo nativo de IA. Apunte a un repositorio y cada ejecución de prueba se convertirá en un registro con confirmación de procedencia en el que puede confiar, no solo en una aprobación autoinformada.\n\nLo que obtendrá:\n\n- **Registros con confirmación de procedencia.** Cada envío está vinculado a una ejecución real de CI, sin necesidad de claves, mediante la identidad del propio proveedor, antes de ser aceptado. El resultado es un almacén de pruebas inalterable y de solo anexión, no simplemente una marca verde basada en la confianza.\n- **Un contrato de políticas que usted controla.** Declare qué se considera \"verificado\" en YAML: un DSL de predicados delimitado y sin evaluación (`field`/`op`/`value` + `all`/`any`/`not`/`implies`), y aplíquelo en todos sus repositorios. Analice una política antes de implementarla con `dogfood-verify lint`.\n- **Un protocolo de enjambre de agentes paralelos.** Ejecute auditorías multiagente contra una base de código y, a continuación, convierta los resultados brutos en patrones y doctrinas reutilizables.\n- **Una superficie de estado en vivo.** Registros e índices por repositorio, así como un distintivo de estado, todo servido desde un único almacén de pruebas.\n\nEs el monorepositorio principal de la organización [Dogfood Lab](https://github.com/dogfood-lab): siete paquetes `@dogfood-lab/*` detrás de una única CLI `swarm`.\n\n## Guía de inicio rápido\n\n```bash\nnpm install -g @dogfood-lab/dogfood-swarm\nswarm --help\n```\n\n¿Quiere que las pruebas de su propio repositorio se registren aquí? El **kit de inicio [`examples/`](examples/)** le permitirá empezar en cinco minutos (`npx @dogfood-lab/report` genera el envío; `dogfood-init` crea la estructura del flujo de trabajo). La guía del operador, la referencia de la CLI, la referencia del esquema y las recetas de integración se encuentran en el **[manual](https://dogfood-lab.github.io/testing-os/handbook/)**. Los detalles por versión se encuentran en [CHANGELOG.md](CHANGELOG.md).\n\n## Modelo de amenazas\n\ntesting-os procesa los envíos de dogfood enviados a través de `repository_dispatch` desde repositorios de GitHub confiables bajo `mcp-tool-shop-org/*` y `dogfood-lab/*`. El verificador requiere la procedencia de GitHub Actions; los ID de ejecución declarados se confirman a través de la API de GitHub, y los envíos con formas incorrectas, referencias faltantes o afirmaciones de políticas inválidas se rechazan.\n\n**La procedencia es la prueba.** Para un envío de `github`, el verificador confirma que la ejecución de GitHub Actions reclamada realmente existe (API de GitHub) y vincula el `repo` y el `commit_sha` del envío a esa ejecución confirmada: una comprobación en vivo y sin claves, basada en la identidad OIDC propia de GitHub, por lo que un registro no puede dar fe de una ejecución o un commit que no se produjo. Se admite **GitLab CI** (opcionalmente; `source.provider: gitlab`); un envío de GitLab es el único caso en el que el verificador llama a un host que no es de GitHub (`gitlab.com/api`) y solo para los envíos de `gitlab`.\n\n**La integridad del registro es evidente, pero no infalible.** Cada registro persistente contiene un bloque de `integrity` (`submission_digest` + `prev_digest`), que forma una cadena hash de solo anexión que `dogfood ingest --verify-chain` valida por completo fuera de línea, detectando manipulaciones externas, corrupción del disco y restauraciones parciales. **No** protege contra las credenciales de ingesta en sí, que pueden reescribir tanto un registro como la cadena; para evitarlo, se necesita un ancla fuera del control del escritor. Un **ancla XRPL opcional y desactivada por defecto** (`dogfood ingest --anchor-*`) da testimonio del encabezado de la cadena en el libro mayor público XRP, lo que hace que cualquier truncamiento o reescritura por debajo de un punto anclado sea detectable: esta es la segunda llamada no GitHub revelada y solo se realiza cuando un operador la habilita.\n\n**Qué toca testing-os:** el JSON de envío en cada carga útil de `repository_dispatch`; `policies/`, `fixtures/`, `records/` e `indexes/` en este repositorio; llamadas salientes a `api.github.com` para la verificación de la procedencia.\n\n**Qué NO toca testing-os:** el código fuente del consumidor, los secretos en los repositorios del consumidor más allá del sobre de envío, o cualquier cosa fuera del árbol de trabajo de este repositorio.\n\n**Superficie de red.** Por defecto, el único tráfico saliente es hacia `api.github.com` (procedencia en modo de solo lectura). Las dos excepciones son opcionales y se han revelado anteriormente: un envío del proveedor GitLab (`gitlab.com/api`) y una ejecución de ancla XRPL habilitada por el operador. **No hay telemetría ni análisis; este código base nunca \"llama a casa\"; sin esos dos caminos opcionales, no expone ninguna superficie de red más allá de GitHub.** El flujo de trabajo del receptor se ejecuta con permisos `contents: write` limitados solo a este repositorio.\n\n## Paquetes\n\n| Paquete | Origen | Propósito |\n|---------|--------|---------|\n| `@dogfood-lab/schemas` | TypeScript | Los 8 esquemas JSON (registro, hallazgo, patrón, recomendación, doctrina, política, escenario, envío). |\n| `@dogfood-lab/verify` | JS | Validador de envíos central. Los envíos pasan por aquí antes de que se almacenen. |\n| `@dogfood-lab/findings` | JS | Contrato de hallazgo + tuberías de derivación/revisión/síntesis/asesoramiento. |\n| `@dogfood-lab/ingest` | JS | Pegamento de la tubería: envío → verificación → persistencia → indexación. |\n| `@dogfood-lab/report` | JS | Constructor de envíos para repositorios de origen. |\n| `@dogfood-lab/portfolio` | JS | Generador de carteras entre repositorios. |\n| `@dogfood-lab/dogfood-swarm` | JS | El protocolo de agentes paralelos de 10 fases + plano de control SQLite + bin `swarm`. |\n\nHerramientas de prueba secundarias que **permanecen independientes** pero se integran a través de API publicadas: [`shipcheck`](https://github.com/mcp-tool-shop-org/shipcheck), [`repo-knowledge`](https://github.com/mcp-tool-shop-org/repo-knowledge), [`ai-eyes-mcp`](https://github.com/mcp-tool-shop-org/ai-eyes-mcp), [`taste-engine`](https://github.com/mcp-tool-shop-org/taste-engine), [`style-dataset-lab`](https://github.com/mcp-tool-shop-org/style-dataset-lab).\n\n## Diseño\n\n```\ntesting-os/\n├── packages/                  # 7 workspace packages (@dogfood-lab/*)\n├── site/                      # Astro Starlight handbook → dogfood-lab.github.io/testing-os/handbook/\n├── swarms/                    # Swarm-run artifacts + control-plane.db\n├── indexes/                   # Generated read API: latest-by-repo.json, failing.json, stale.json\n├── policies/                  # Policy YAML by repo\n├── records/                   # Submission landing pad (ingest.yml writes here)\n├── fixtures/                  # Test/example fixtures\n├── docs/                      # Contract docs + architecture notes\n├── examples/                  # Copy-paste consumer starter kit (dogfood.yml + scenario + policy)\n├── scripts/                   # Repo-level utilities (sync-version, build)\n└── .github/workflows/         # ci.yml, ingest.yml, pages.yml, release.yml\n```\n\n## Desarrollo local\n\n```bash\ngit clone https://github.com/dogfood-lab/testing-os.git\ncd testing-os\nnpm install\nnpm run build       # tsc --build across all packages\nnpm test            # vitest for schemas, node --test for the rest\nnpm run verify      # build + test (canonical pre-commit check)\n```\n\nRequiere Node ≥ 22. La matriz de CI ejecuta Node 22 y 24 en `ubuntu-latest`; se valida localmente en Node 25.\n\n**Sistemas de archivos compatibles:** APFS, HFS+, ext4 (línea de base de CI), NTFS; cualquier sistema que implemente POSIX `link(2)`. **No compatibles:** exFAT, FAT32. El CAS de bloqueo de archivos en [`packages/findings/lib/file-lock.js`](packages/findings/lib/file-lock.js) requiere semántica de enlace físico para la publicación atómica; en exFAT, `linkSync` genera `ENOTSUP` (mensaje visible, no silencioso). Un error común: los SSD externos multiplataforma a menudo están formateados en exFAT; en su lugar, clone el repositorio en APFS/HFS+ local. Consulte [`docs/m5-validation-2026-04-29.md`](docs/m5-validation-2026-04-29.md) para obtener la matriz completa de validación de la Sesión G.\n\n## Control de versiones\n\nTodos los paquetes `@dogfood-lab/*` se actualizan juntos: un único número en todo el monorepositorio. Seis paquetes se publican en npm bajo `@dogfood-lab` en la versión 1.8.0 de forma sincronizada (`schemas`, `verify`, `report`, `ingest`, `findings`, `dogfood-swarm`); el séptimo, `@dogfood-lab/portfolio`, permanece interno. La línea de versión cerca de la parte superior de este archivo README se estampa automáticamente desde `package.json` mediante [`scripts/sync-version.mjs`](scripts/sync-version.mjs) en cada ejecución de `npm run build`.\n\n## Licencia\n\n[MIT](LICENSE) © 2026 mcp-tool-shop\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[Manual](https://dogfood-lab.github.io/testing-os/handbook/)** · **[Todos los repositorios](https://github.com/orgs/dogfood-lab/repositories)** · **[Perfil](https://github.com/dogfood-lab)**\n\n*Primero, come. Luego, publica.*\n\n\u003c/div\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogfood-lab%2Ftesting-os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdogfood-lab%2Ftesting-os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogfood-lab%2Ftesting-os/lists"}