Skip to content

feat(bcquality): consumir el nuevo índice de conocimiento de BCQuality#82

Draft
javiarmesto wants to merge 1 commit into
mainfrom
claude/dazzling-planck-prosah
Draft

feat(bcquality): consumir el nuevo índice de conocimiento de BCQuality#82
javiarmesto wants to merge 1 commit into
mainfrom
claude/dazzling-planck-prosah

Conversation

@javiarmesto

Copy link
Copy Markdown
Owner

Qué

BCQuality ha añadido una nueva capacidad: un índice de conocimiento (knowledge-index.json) que sus skills de review leen en el paso Source en lugar de abrir el frontmatter de cada fichero de conocimiento. Esta PR pone a ALDC a consumir esa capacidad.

El índice es propiedad de BCQuality (lo genera su tools/Build-KnowledgeIndex.ps1); ALDC no reimplementa el parser, solo ejecuta ese generador.

Cambios

  • tools/bcquality/install.sh / install.ps1 — tras el clon, construyen knowledge-index.json sobre el clon ejecutando el generador de BCQuality.
  • docs/bcquality.md — nueva sección "Knowledge index (Source-step acceleration)".
  • tools/bcquality/README.md — documentado el paso de build en el lifecycle de install.
  • CHANGELOG.md — entrada en [Unreleased].

Decisiones de diseño

  • Build una vez en install, no por run. El motivo de BCQuality para "reconstruir cada run sobre el clon podado" es para consumidores que borran capas por política. ALDC no poda: filtra vía enabled-layers / disabled-skills / pilotSkills en el task-context. Por eso el índice = corpus completo y es estable entre installs, y construirlo una vez es lo idiomático (no exige pwsh en el runtime del agente). El paso Preparation de entry.md lo reconstruye en runtime si falta o está obsoleto — ambos caminos se refuerzan.
  • Nunca bloquea. Generador ausente (BCQuality antiguo), pwsh ausente, o build fallido → todos caen a path-based discovery. El review sigue funcionando, solo pierde la aceleración. Mismo principio que el fallback de capa ausente: BCQuality es aditivo y nunca falla el review.
  • Fuente sin cambios. external.bcquality.url sigue en upstream microsoft/BCQuality (configurable). Esta PR no cambia la fuente.
  • Prosa de los agentes intacta. El índice es propiedad de BCQuality y entry.md posee el paso Preparation; al construirlo en install, el paso del agente lo encuentra presente y es un no-op. Se evita así tocar las múltiples copias de los agentes.

Verificación

  • bash -n tools/bcquality/install.sh → OK.
  • install.ps1 revisado manualmente (try/catch en lugar de $LASTEXITCODE, que no es fiable tras invocar un .ps1). No había pwsh en el entorno para parse-check automático — que es exactamente el caso que el fallback de install.sh cubre.

Note

A confirmar al clonar: si el upstream microsoft/BCQuality aún no ha mergeado tools/Build-KnowledgeIndex.ps1, el paso de install se salta con un aviso (sin romper) hasta que la capacidad llegue upstream.

🤖 Generated with Claude Code


Generated by Claude Code

BCQuality added a knowledge index (knowledge-index.json) that its review
skills read at the Source step instead of opening every knowledge file's
frontmatter. The index is owned and produced by BCQuality
(tools/Build-KnowledgeIndex.ps1); ALDC just runs that generator.

The install scripts now build the index over the clone right after checkout.
ALDC builds it once at install because it consumes the full clone (it filters
by enabled-layers/disabled-skills in the task-context, it does not prune the
clone by allow/deny policy), so the index is stable between installs; entry.md's
preparation step rebuilds it on demand at runtime when absent or stale.

Fully defensive and never fatal: a missing generator (older BCQuality), a
missing pwsh, or a failed build all fall back to path-based discovery — review
still works, just without the index acceleration. Source stays configurable
(upstream microsoft/BCQuality by default), unchanged here.

Documented in docs/bcquality.md and tools/bcquality/README.md; CHANGELOG updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013i5qwqRTzBPxHxYxUzFYmY
@github-actions

Copy link
Copy Markdown
Contributor

📋 Collection Validation Results


> al-development-collection@4.2.0 validate
> node scripts/validate-al-collection.js

�[36m
╔════════════════════════════════════════════════╗�[0m
�[36m║   AL Development Collection Validator v1.0    ║�[0m
�[36m╚════════════════════════════════════════════════╝�[0m
�[34m
🕐 Started: 2026-06-24T15:40:36.463Z
�[0m
�[32m✅ Collection manifest found: collections/al-development.collection.yml�[0m
�[36m
📋 Validating Collection Manifest...�[0m
�[32m✅ Collection ID is valid: al-development�[0m
�[32m✅ Collection has 44 items�[0m
�[32m✅ Collection has 10 tags�[0m
�[36m
📁 Validating Collection Items...�[0m
�[32m✅ Item 1: al-guidelines.instructions.md validated�[0m
�[32m✅ Item 2: al-code-style.instructions.md validated�[0m
�[32m✅ Item 3: al-naming-conventions.instructions.md validated�[0m
�[32m✅ Item 4: al-performance.instructions.md validated�[0m
�[32m✅ Item 5: al-error-handling.instructions.md validated�[0m
�[32m✅ Item 6: al-events.instructions.md validated�[0m
�[32m✅ Item 7: al-testing.instructions.md validated�[0m
�[33m⚠️  WARNING: Item 8: Instruction file should end with .instructions.md: instructions/copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 8: No frontmatter found in instructions/copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 9: Instruction file should end with .instructions.md: instructions/index.md�[0m
�[33m⚠️  WARNING: Item 9: No frontmatter found in instructions/index.md�[0m
�[32m✅ Item 10: al-spec.create.prompt.md validated�[0m
�[32m✅ Item 11: al-build.prompt.md validated�[0m
�[32m✅ Item 12: al-pr-prepare.prompt.md validated�[0m
�[32m✅ Item 13: al-context.create.prompt.md validated�[0m
�[32m✅ Item 14: al-memory.create.prompt.md validated�[0m
�[32m✅ Item 15: al-initialize.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 16: Instruction file should end with .instructions.md: skills/skill-api/SKILL.md�[0m
�[33m⚠️  WARNING: Item 16: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-api/SKILL.md�[0m
�[32m✅ Item 16: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 17: Instruction file should end with .instructions.md: skills/skill-copilot/SKILL.md�[0m
�[33m⚠️  WARNING: Item 17: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-copilot/SKILL.md�[0m
�[32m✅ Item 17: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 18: Instruction file should end with .instructions.md: skills/skill-debug/SKILL.md�[0m
�[33m⚠️  WARNING: Item 18: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-debug/SKILL.md�[0m
�[32m✅ Item 18: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 19: Instruction file should end with .instructions.md: skills/skill-performance/SKILL.md�[0m
�[33m⚠️  WARNING: Item 19: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-performance/SKILL.md�[0m
�[32m✅ Item 19: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 20: Instruction file should end with .instructions.md: skills/skill-events/SKILL.md�[0m
�[33m⚠️  WARNING: Item 20: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-events/SKILL.md�[0m
�[32m✅ Item 20: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 21: Instruction file should end with .instructions.md: skills/skill-permissions/SKILL.md�[0m
�[33m⚠️  WARNING: Item 21: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-permissions/SKILL.md�[0m
�[32m✅ Item 21: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 22: Instruction file should end with .instructions.md: skills/skill-testing/SKILL.md�[0m
�[33m⚠️  WARNING: Item 22: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-testing/SKILL.md�[0m
�[32m✅ Item 22: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 23: Instruction file should end with .instructions.md: skills/skill-migrate/SKILL.md�[0m
�[33m⚠️  WARNING: Item 23: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-migrate/SKILL.md�[0m
�[32m✅ Item 23: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 24: Instruction file should end with .instructions.md: skills/skill-pages/SKILL.md�[0m
�[33m⚠️  WARNING: Item 24: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-pages/SKILL.md�[0m
�[32m✅ Item 24: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 25: Instruction file should end with .instructions.md: skills/skill-translate/SKILL.md�[0m
�[33m⚠️  WARNING: Item 25: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-translate/SKILL.md�[0m
�[32m✅ Item 25: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 26: Instruction file should end with .instructions.md: skills/skill-estimation/SKILL.md�[0m
�[33m⚠️  WARNING: Item 26: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-estimation/SKILL.md�[0m
�[32m✅ Item 26: SKILL.md validated�[0m
�[32m✅ Item 27: al-architect.agent.md validated�[0m
�[32m✅ Item 28: al-developer.agent.md validated�[0m
�[32m✅ Item 29: al-conductor.agent.md validated�[0m
�[32m✅ Item 30: al-presales.agent.md validated�[0m
�[32m✅ Item 31: al-planning-subagent.agent.md validated�[0m
�[32m✅ Item 32: al-implement-subagent.agent.md validated�[0m
�[32m✅ Item 33: al-review-subagent.agent.md validated�[0m
�[32m✅ Item 34: al-triage.agent.md validated�[0m
�[32m✅ Item 35: dredd.agent.md validated�[0m
�[32m✅ Item 36: al-agent-builder.agent.md validated�[0m
�[33m⚠️  WARNING: Item 37: Prompt missing 'model' in frontmatter: prompts/al-agent.create.prompt.md�[0m
�[32m✅ Item 37: al-agent.create.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 38: Prompt missing 'model' in frontmatter: prompts/al-agent.task.prompt.md�[0m
�[32m✅ Item 38: al-agent.task.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 39: Prompt missing 'model' in frontmatter: prompts/al-agent.instructions.prompt.md�[0m
�[32m✅ Item 39: al-agent.instructions.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 40: Prompt missing 'model' in frontmatter: prompts/al-agent.test.prompt.md�[0m
�[32m✅ Item 40: al-agent.test.prompt.md validated�[0m
�[33m⚠️  WARNING: Item 41: Instruction file should end with .instructions.md: skills/skill-agent-instructions/SKILL.md�[0m
�[33m⚠️  WARNING: Item 41: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-agent-instructions/SKILL.md�[0m
�[32m✅ Item 41: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 42: Instruction file should end with .instructions.md: skills/skill-agent-task-patterns/SKILL.md�[0m
�[33m⚠️  WARNING: Item 42: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-agent-task-patterns/SKILL.md�[0m
�[32m✅ Item 42: SKILL.md validated�[0m
�[33m⚠️  WARNING: Item 43: Instruction file should end with .instructions.md: skills/skill-contribution-assistant/SKILL.md�[0m
�[33m⚠️  WARNING: Item 43: Instruction missing 'applyTo' or 'globs' in frontmatter: skills/skill-contribution-assistant/SKILL.md�[0m
�[32m✅ Item 43: SKILL.md validated�[0m
�[32m✅ Item 44: al-agent-toolkit.instructions.md validated�[0m
�[36m
📊 Items by Kind:�[0m
�[34m   instruction: 24�[0m
�[34m   prompt: 10�[0m
�[34m   agent: 10�[0m
�[36m
🏷️  Validating File Naming Conventions...�[0m
�[33m⚠️  WARNING: Item 8: Filename should be lowercase with hyphens: copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 8: Filename should start with 'al-' prefix: copilot-instructions.md�[0m
�[33m⚠️  WARNING: Item 9: Filename should be lowercase with hyphens: index.md�[0m
�[33m⚠️  WARNING: Item 9: Filename should start with 'al-' prefix: index.md�[0m
�[33m⚠️  WARNING: Item 10: Filename should be lowercase with hyphens: al-spec.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 13: Filename should be lowercase with hyphens: al-context.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 14: Filename should be lowercase with hyphens: al-memory.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 16: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 16: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 17: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 17: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 18: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 18: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 19: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 19: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 20: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 20: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 21: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 21: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 22: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 22: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 23: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 23: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 24: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 24: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 25: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 25: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 26: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 26: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 35: Filename should start with 'al-' prefix: dredd.agent.md�[0m
�[33m⚠️  WARNING: Item 37: Filename should be lowercase with hyphens: al-agent.create.prompt.md�[0m
�[33m⚠️  WARNING: Item 38: Filename should be lowercase with hyphens: al-agent.task.prompt.md�[0m
�[33m⚠️  WARNING: Item 39: Filename should be lowercase with hyphens: al-agent.instructions.prompt.md�[0m
�[33m⚠️  WARNING: Item 40: Filename should be lowercase with hyphens: al-agent.test.prompt.md�[0m
�[33m⚠️  WARNING: Item 41: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 41: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 42: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 42: Filename should start with 'al-' prefix: SKILL.md�[0m
�[33m⚠️  WARNING: Item 43: Filename should be lowercase with hyphens: SKILL.md�[0m
�[33m⚠️  WARNING: Item 43: Filename should start with 'al-' prefix: SKILL.md�[0m
�[32m✅ File naming conventions validated�[0m
�[36m
📖 Validating Documentation...�[0m
�[32m✅ Collection documentation exists: docs/al-development.md�[0m
�[33m⚠️  WARNING: Documentation missing recommended section: What's Included�[0m
�[36m
🔍 Validating Uniqueness...�[0m
�[32m✅ No duplicate paths found�[0m
�[36m
📂 Validating Directory Structure...�[0m
�[32m✅ Directory exists: instructions�[0m
�[32m✅ Directory exists: prompts�[0m
�[32m✅ Directory exists: agents�[0m
�[32m✅ Directory exists: collections�[0m
�[36m
══════════════════════════════════════════════════�[0m
�[36m📊 VALIDATION SUMMARY�[0m
�[36m══════════════════════════════════════════════════�[0m
�[32m
✅ Successes: 53�[0m
�[33m⚠️  Warnings:  77�[0m
�[31m❌ Errors:    0�[0m
�[33m
✅ Collection is valid but has some warnings to address.�[0m
�[36m══════════════════════════════════════════════════
�[0m

✅ Validation 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.

2 participants