Skip to content

release: v3.0.0 — estándares OWASP 2025/2026, memoria nativa, monorepos y fuera Ruflo - #19

Merged
lacasoft merged 8 commits into
masterfrom
feat/estandares-memoria-sin-ruflo
Oct 18, 2026
Merged

lacasoft merged 8 commits into
masterfrom
feat/estandares-memoria-sin-ruflo

Conversation

@lacasoft

@lacasoft lacasoft commented Oct 17, 2026 •

Copy link
Copy Markdown
Owner

Summary

Release 3.0.0 (cambio incompatible). Incluye el commit de release (versión, CHANGELOG con notas de actualización y pins #v3.0.0); el tag v3.0.0 se crea sobre master después del merge.

Va todo en un solo PR porque el repo tiene delete_branch_on_merge: false: unos PRs apilados no se redirigirían a master y se fusionarían en esta rama.

1. Fuera Ruflo (claude-flow)

[email protected] es Ruflo. Se retira por completo:

  • El instalador ya no ejecuta claude-flow init; --no-flow se acepta, avisa y no hace nada.
  • --update retira de settings.json todo lo que apunte a Ruflo (permisos, hooks de su init, env, enabledMcpjsonServers) y lo informa.
  • El instalador enumera los restos (.mcp.json, .claude-flow/, .swarm/, .claude/, CLAUDE.md) sin borrar nada que no instaló.
  • La orquestación pasa a ser nativa (tool Agent, worktrees); validate.cjs falla si vuelve a aparecer.

2. Seguridad

  • La tabla OWASP/CWE del security-engineer tenía mapeos equivocados (verificados contra top10.owasp.org/2025): SSRF y open redirect → A01, CWE-798 → A07, CWE-269 → A06, y CWE-400/770/190/memoria sin categoría. Con el rango real del CWE Top 25 2025.
  • Skill owasp-review: CWE + Top 10:2025 + requisito ASVS 5.0 por hallazgo; referencia con LLM Top 10 2026, Agentic Top 10 2026, ASVS por capítulo y MASVS v2.
  • Baseline: nivel ASVS por proyecto, fallar cerrado, contenido externo = datos, cooldown de 7 días, MCP/plugins como código de terceros.
  • pre-bash pide confirmación en pnpm dlx, yarn dlx, bunx, uvx, pipx run y claude mcp add.

3. Calidad

Gate de código nuevo (≥ 80 % de líneas cambiadas, sin issues nuevos, ≤ 3 % de duplicación), complejidad cognitiva ≤ 15, mutation/property testing en lógica crítica, ISO/IEC 25010:2023, DORA, EAA/WCAG 2.2 y Core Web Vitals.

4. Memoria y comprensión del proyecto

  • La memoria propia no funcionaba → se sustituye por la nativa de Claude Code.
  • Memoria de equipo versionada (memory: project) en researcher, reviewer y security-engineer; guard memory-only en los de solo lectura.
  • Skills project-context y adr; aviso al abrir sesión si CLAUDE.project.md sigue siendo la plantilla.
  • Plugin LSP oficial indicado por stack.

5. Monorepos y overlays como reglas

  • Los overlays del stack pasan del bloque de CLAUDE.md (que se regeneraba y borraba lo editado) a .claude/rules/kit/, con manifiesto: --update respeta las ediciones y retira la regla del stack anterior.
  • Monorepo multi-stack: un stack por carpeta con paths: (apps/api/** → NestJS, apps/web/** → Next.js). --stack backend/nestjs:apps/api,frontend/nextjs:apps/web.
  • En un solo stack las reglas van sin paths:, así que nada cambia.

6. Plugins revisados (contra su código fuente)

  • security-guidance → opcional (revisión LLM por turno y por commit; cuesta Opus por revisión e instala claude-agent-sdk sin versión fija).
  • claude-security → opcional (escaneo profundo bajo demanda, SARIF; licencia propietaria).
  • semgrep (Guardian) → descartado (sube cada archivo escrito a la nube de Semgrep en todos los proyectos; binarios autoactualizables; sin licencia en el repo).
  • serena → descartado (uvx desde el último commit de GitHub, sin versión fijada).

Test plan

  • npm run validate en verde (50 comprobaciones, con los guards nuevos probados con casos rotos a propósito).
  • npm test: 91/91 (eran 49).
  • Smoke test del CI en local: 13 stacks + monorepo de 3 stacks (dry-run, sin escribir nada).
  • Actualización real desde master (2.1.0) con Ruflo simulado: retira sus entradas de settings.json, borra los helpers de memoria intactos, enumera los restos, mueve el overlay a reglas conservando lo que había fuera del bloque, y es idempotente.
  • Monorepo real (apps/api Nest + apps/web y apps/admin Next + packages/ui librería): reglas acotadas a cada carpeta, las dos Next comparten regla, la librería no cuenta como stack.
  • Cambio de stack con --update: retira la regla vieja intacta y respeta la editada.
  • Probar en Claude Code que las reglas con paths: se cargan al abrir un archivo de esa carpeta, que carga la memoria de researcher/reviewer y que memory-only bloquea una escritura fuera de .claude/agent-memory/.
  • Tras el merge: git tag -a v3.0.0 sobre el commit de merge en master y git push origin v3.0.0.

lacasoft added 8 commits October 17, 2026 17:09
El modo "enjambre híbrido" ejecutaba `claude-flow init`, que se volvía
dueño de settings.json, añadía servidores MCP y decenas de archivos en
.claude/, y obligaba a omitir los agentes core. No es estándar y la
coordinación nativa (tool Agent, worktrees, memoria de agente) cubre lo
que usábamos.

- Instalador: sin paso de init; --no-flow se acepta pero no hace nada.
- --update retira de settings.json lo que apunte a Ruflo y lo informa.
- Aviso (solo lectura) de restos: .mcp.json, .claude-flow/, .swarm/,
  archivos en .claude/ y CLAUDE.md fuera del bloque gestionado.
- swarm-orchestration, /swarm, baseline §3, README y CONTRIBUTING pasan
  a coordinación nativa; hooks sin efecto fuera.
- validate.cjs falla si shared/ o stacks/ vuelven a mencionarlo.

BREAKING CHANGE: la próxima versión es 3.0.0.
- Corrige la tabla OWASP/CWE del security-engineer contra el mapeo
  oficial (SSRF y open redirect en A01, CWE-798 en A07, CWE-269 en A06;
  los CWE de recursos y memoria no tienen categoría) y añade el rango
  real del CWE Top 25 2025.
- Skill owasp-review: hallazgos con CWE + Top 10:2025 + requisito ASVS
  5.0, trazados fuente→sink, con autocrítica. Referencia con LLM Top 10
  2026, Agentic Top 10 2026, ASVS por capítulo y MASVS v2.
- Baseline: nivel ASVS por proyecto, fallar cerrado, contenido externo
  como datos (prompt injection), cooldown de 7 días y MCP/plugins como
  código de terceros.
- pre-bash pide confirmación en pnpm/yarn dlx, bunx, uvx, pipx run y
  claude mcp add.
- Baseline §7, reviewer, tester y ci-cd: el cambio no introduce issues
  nuevos, cubre ≥ 80 % de las líneas cambiadas y no suma más de 3 % de
  duplicación; complejidad cognitiva ≤ 15; mutation/property testing en
  lógica crítica.
- Requisitos no funcionales con el vocabulario de ISO/IEC 25010:2023.
- ci-cd: métricas DORA, SAST y SBOM en release.
- frontend: EAA, novedades de WCAG 2.2, umbrales de Core Web Vitals y
  CSP + Trusted Types.
- TodoWrite/Task pasan a lista de tareas y tool Agent.
…texto del proyecto

La memoria propia del kit no funcionaba: memory.jsonl solo recibía
marcadores de sesión que el import filtraba, y session.json nunca tenía
summary. Se retira en favor de la nativa.

- researcher, reviewer y security-engineer con memory: project
  (.claude/agent-memory/, versionada y revisada en PR); los dos de solo
  lectura llevan el guard memory-only.
- Skills project-context (CLAUDE.project.md desde el repo real, con
  comandos verificados) y adr (decisiones en docs/adr/).
- session-start avisa si CLAUDE.project.md sigue siendo la plantilla o
  hay *.kit-new sin revisar.
- Baseline §3.1: dónde va cada cosa y qué nunca va a memoria.
- Instalador: plugin LSP oficial por stack; --update retira los archivos
  que el kit dejó de distribuir si siguen intactos; .gitignore para la
  memoria personal.
- validate.cjs: scope de memory, acciones de hooks de agente y guard
  obligatorio en agentes de solo lectura con memoria.
…talador

- La fusión de settings.json quita también las entradas de Ruflo en
  arrays de primer nivel (p. ej. enabledMcpjsonServers) y conserva el resto.
- El aviso sobre settings.json distingue si ya se corrió --update.
- En --dry-run el informe de lo retirado se rotula como simulado y sin
  duplicados.
- La memoria de agente no cuenta como resto de Ruflo.
- Baseline: 'webpages' → 'páginas web'.
Revisados contra su código fuente con los criterios del kit:
- security-guidance → opcional (revisión LLM por turno y por commit;
  cuesta Opus por revisión e instala claude-agent-sdk sin versión fija).
- claude-security → opcional (escaneo profundo bajo demanda, SARIF;
  licencia propietaria). owasp-review y ship-gate lo sugieren si está.
- semgrep (Guardian) → descartado (sube cada archivo escrito a la nube
  de Semgrep en todos los proyectos, binarios autoactualizables, sin
  licencia en el repo).
- serena → descartado (uvx desde el último commit de GitHub, sin pin;
  lo cubren los plugins LSP oficiales).

El instalador muestra la condición principal junto a cada plugin opcional.
…-stack

Los overlays iban dentro del bloque gestionado de CLAUDE.md, que se
regenera entero en cada ejecución (las ediciones se perdían), y en un
monorepo solo cabía un stack para todo el repo.

- Overlays en .claude/rules/kit/, con manifiesto: --update respeta lo
  editado y retira la regla del stack anterior si está intacta. Sin
  paths en proyectos de un solo stack (mismo comportamiento que antes).
- Monorepo: detecta un stack por paquete (incluido packages/) y acota
  cada regla a su carpeta con `paths:`. --stack admite varios y carpeta
  (backend/nestjs:apps/api,frontend/nextjs:apps/web).
- applyFile comparte las reglas de actualización entre la capa base y
  los archivos generados.
- Deps npm por stack no se instalan en la raíz de un monorepo; plugins
  LSP y resumen multi-stack.
- CI: smoke test en monorepo; 9 tests nuevos.
Versión en package.json y components.json, sección 3.0.0 del CHANGELOG
con notas de actualización, y ejemplos fijados del README y CONTRIBUTING
a #v3.0.0. El tag v3.0.0 se crea sobre master después del merge.
@lacasoft lacasoft changed the title feat!: estándares OWASP 2025/2026, memoria nativa y fuera Ruflo (camino a 3.0.0) release: v3.0.0 — estándares OWASP 2025/2026, memoria nativa, monorepos y fuera Ruflo Oct 17, 2026
@lacasoft
lacasoft merged commit b516f1a into master Oct 18, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant