Repository navigation
release: v3.0.0 — estándares OWASP 2025/2026, memoria nativa, monorepos y fuera Ruflo - #19
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 tagv3.0.0se crea sobremasterdespué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 amastery se fusionarían en esta rama.1. Fuera Ruflo (claude-flow)
[email protected]es Ruflo. Se retira por completo:claude-flow init;--no-flowse acepta, avisa y no hace nada.--updateretira desettings.jsontodo lo que apunte a Ruflo (permisos, hooks de suinit, env,enabledMcpjsonServers) y lo informa..mcp.json,.claude-flow/,.swarm/,.claude/,CLAUDE.md) sin borrar nada que no instaló.Agent, worktrees);validate.cjsfalla si vuelve a aparecer.2. Seguridad
security-engineertení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.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.pre-bashpide confirmación enpnpm dlx,yarn dlx,bunx,uvx,pipx runyclaude 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
memory: project) enresearcher,reviewerysecurity-engineer; guardmemory-onlyen los de solo lectura.project-contextyadr; aviso al abrir sesión siCLAUDE.project.mdsigue siendo la plantilla.5. Monorepos y overlays como reglas
CLAUDE.md(que se regeneraba y borraba lo editado) a.claude/rules/kit/, con manifiesto:--updaterespeta las ediciones y retira la regla del stack anterior.paths:(apps/api/**→ NestJS,apps/web/**→ Next.js).--stack backend/nestjs:apps/api,frontend/nextjs:apps/web.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 instalaclaude-agent-sdksin 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 (uvxdesde el último commit de GitHub, sin versión fijada).Test plan
npm run validateen verde (50 comprobaciones, con los guards nuevos probados con casos rotos a propósito).npm test: 91/91 (eran 49).master(2.1.0) con Ruflo simulado: retira sus entradas desettings.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.apps/apiNest +apps/webyapps/adminNext +packages/uilibrería): reglas acotadas a cada carpeta, las dos Next comparten regla, la librería no cuenta como stack.--update: retira la regla vieja intacta y respeta la editada.paths:se cargan al abrir un archivo de esa carpeta, que carga la memoria deresearcher/reviewery quememory-onlybloquea una escritura fuera de.claude/agent-memory/.git tag -a v3.0.0sobre el commit de merge enmasterygit push origin v3.0.0.