Files
David Abutbul b37162a33d feat(i18n): add multilingual wiki scaffolding, language switcher, and… (#212)
* feat(i18n): add multilingual wiki scaffolding, language switcher, and translation QA pipeline

* docs(readme): adopt picoclaw-style multilingual link bar

* fix(i18n): repair localized index links and tighten partial-pair QA

* ci(i18n): fail on broken markdown links in README/wiki

* ci(i18n): add changed-files mode for markdown link checks

* i18n(de): use local Argos MT to fill untranslated German sections

* i18n(es,fr): fill untranslated sections via local Argos workflow

* i18n(ja): fill untranslated sections with scoped local Argos pass

* i18n(ko): fill untranslated sections with scoped local Argos pass

* fix(i18n): address review feedback

---------

Co-authored-by: David Abutbul <David.a@prompt.security>
2026-04-29 09:00:31 +03:00

6.7 KiB

Flujo de datos

Primary Flows

  • Advisory ingestion: Las entradas de NVD/community se transforman en una alimentación de asesoramiento normalizada, firmada, luego reflejada para clientes.
  • Skill catalog publication: activos de liberación son descubiertos y convertidos en public/skills/index.json más docs/checksums per-skill.
  • Runtime enforcement: Los consumidores de suite y nanoclaw cargan datos de asesoramiento, coinciden con las habilidades y emiten alertas o puertas de confirmación.
  • Esta página aparece en la sección Guides en INDEX.md.

Paso a paso

  1. Datos fuente de flujo de trabajo/script fetches (NVD API o payload de emisión).
  2. JSON transforma lógica normaliza la severidad/tipo/ campos afectados y deduplica por ID de asesoramiento.
  3. Signature/checksum steps generate detached signatures and checksum manifests.
  4. Deploy workflow mirrors signed artifacts under public/ and public/releases/latest/download/.
  5. Los consumidores de UI validan la forma/contenido de JSON; los consumidores de tiempo de ejecución verifican adicionalmente firmas/consultos antes de confiar en datos de alimentación.
  6. Los Matchers comparan los especificadores affected con nombres de habilidad/versiones y emiten alertas o imponen confirmación.

Inputs and Outputs

En el cuadro que figura a continuación se resumen los insumos y los productos.

Silencio Tipo TENIDO Nombre TENIDO Ubicación Silencio Descripción Silencio --- Silencio --- ← Input Silencio CVE payloads TEN services.nvd.nist.gov/rest/json/cves/2.0 TEN Fuente vulnerabilidades filtradas por ClawSec keywords. Silencio Silencio Input Silencio Community advisory issue Silencio .github/workflows/community-advisory.yml event payload Silencio Tema aprobado por Maintainer transformado en registro consultivo. Silencio ← Input ← activos de liberación de Habilidad Silencio GitHub Releases API + activos TEN Utilizado para construir catálogo web y descargas de espejo. Silencio ← Input Silencio Local config/env Silencio OPENCLAW_AUDIT_CONFIG, CLAWSEC_* vars Silencio Controls alimentan caminos, supresión y comportamiento de verificación. Silencio TENCIÓN TENIDO ANTERIENDA ALIMENTAR TENIDO advisories/feed.json TENIDO Alimento de repositorio canónico. Silencio TENCIÓN ANTERIENTE Firma asesora ANTERI advisories/feed.json.sig TENIDO Firma adjunta para la autenticidad del alimento. Silencio Índice de catálogo de Habilidad Silencioso public/skills/index.json Silencioso Catálogo web usado por páginas de /skills. Silencio TENCIÓN ANTERIOR ANTERIENDIENTE Compruebas/signaturas ANTE release-assets/checksums.json(.sig) ANTE Integrity manifest for release consumers. Silencio TENCIÓN ANTERIENTE Hook state ANTE ~/.openclaw/clawsec-suite-feed-state.json TENIDO Pistas de escaneo y coincidencias notificadas. Silencio

Estructuras de datos

tención Estructura TENIDO Key Fields Silencio. tención Registro de alimentación de mantenimiento de id, severity, type, affected[], published TENIDO Unidad de datos de riesgo usados por UI e instaladores. Silencio ← Metadatos de Habilidad Silencio id, name, version, emoji, tag Silencioso Catálogo fila para navegar por la web e instalar comandos. Silencio tención Checksums manifiesto Silencioso schema_version, algorithm, files Silencio Mapas nombres de archivos a los digestos esperados. Silencio tención Estado asesor Silencioso known_advisories, last_hook_scan, notified_matches Silencio Impide las alertas repetidas y los escaneos de aceleradores. Silencio confidencialidad de la supresión permanente enabledFor[], suppressions[] TENIDO Lista de saltos apuntado por checkId + skill. Silencio

Diagramas

flowchart LR
  A["NVD + Issue Inputs"] --> B["Transform + Deduplicate"]
  B --> C["advisories/feed.json"]
  C --> D["Sign + checksums"]
  D --> E["public/advisories + releases/latest"]
  E --> F["Web UI fetch"]
  E --> G["Suite/NanoClaw verification"]
  G --> H["Match skills + emit alerts/gates"]

State and Storage

← Tienda Silenciosos Sendero/Escopo Silencioso Silencio. ← Asesorías canónicas Silencio advisories/ TENIDO NVD + flujos de trabajo comunitarios y script populate local. Silencio Silencio Copias de asesoramiento incrustadas Silencio skills/clawsec-feed/advisories/ y skills/clawsec-suite/advisories/ Silencio Procesos de sincronización/envasado y flujo de trabajo de liberación. Silencio tención Espejos públicos Silenciosos public/advisories/, public/releases/ ANTE Deploy workflow. Silencio tención Runtime state ← ~/.openclaw/clawsec-suite-feed-state.json tención Asesoramiento estado persistencia. Silencio Silencio NanoClaw cache Silencio /workspace/project/data/clawsec-advisory-cache.json Silencio Director de caché de asesoramiento lado anfitrión. Silencio Silencio Integrity state ← /workspace/project/data/soul-guardian/ (NanoClaw) TEN Integrity monitor baseline/audit storage. Silencio

Ejemplos Snippets

# Local feed flow (NVD fetch -> transform -> sync)
./scripts/populate-local-feed.sh --days 120
jq '.updated, (.advisories | length)' advisories/feed.json
# Runtime guarded install uses signed feed paths
CLAWSEC_LOCAL_FEED=~/.openclaw/skills/clawsec-suite/advisories/feed.json \
CLAWSEC_FEED_PUBLIC_KEY=~/.openclaw/skills/clawsec-suite/advisories/feed-signing-public.pem \
node skills/clawsec-suite/scripts/guarded_skill_install.mjs --skill test-skill --dry-run

Failure Modes

  • Los límites de la tasa NVD (403/429) pueden retrasar el refresco de alimentación y requerir retries/backoff.
  • Las firmas desvinculadas o inválidas causan rechazo de la alimentación en modo cerrado.
  • Las respuestas de retroceso HTML para los puntos finales de JSON pueden producir falsos positivos a menos que se filtra explícitamente.
  • La malconfiguración token (\$HOME) puede romper la resolución de la ruta de retroceso local.
  • Las huellas dactilares de clave pública en los flujos de trabajo provocan un duro fallo de la CI.

Referencias Fuente

  • asesorías/feed.json
  • asesorías/feed.json.sig
  • scripts/populate-local-feed.sh
  • scripts/populate-local-skills.sh
  • .github/workflows/poll-nvd-cves.yml
  • .github/workflows/community-advisory.yml
  • .github/workflows/deploy-pages.yml
  • .github/workflows/skill-release.yml
  • habilidades/clawsec-suite/hooks/clawsec-advisory-guardian/lib/feed.mjs
  • habilidades/clawsec-suite/hooks/clawsec-advisory-guardian/lib/state.ts
  • habilidades/clawsec-suite/hooks/clawsec-advisory-guardian/lib/matching.ts
  • habilidades/clawsec-suite/scripts/guarded_skill_install.mjs
  • habilidades/clawsec-nanoclaw/lib/advisories.ts
  • habilidades/clawsec-nanoclaw/host-services/advisory-cache.ts