Skip to content

fix: restore Kontakt compatibility, fail unknown compatibleWith slugs - #924

Merged
jeffreylouden merged 1 commit into
mainfrom
claude/festive-dirac-wogcm3
Sep 26, 2026
Merged

jeffreylouden merged 1 commit into
mainfrom
claude/festive-dirac-wogcm3

Conversation

@jeffreylouden

@jeffreylouden jeffreylouden commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

Description

data/content/impact-soundworks-plectra-series-1-8-string-acoustic-bouzouki.yaml listed kontakt under compatibleWith. That slug matches no file, so Studio dropped the Kontakt host for this library. It now names native-instruments-kontakt, the slug the other Kontakt libraries already use. Nothing else in that file changed.

Was it the only one? Yes. I checked all 1,135 compatibleWith values in 864 files under data/ against the 13,115 file names in data/software and data/hardware. kontakt was the only unknown value. main had no new commits between the scan and this push. No values were left unresolved.

Stopping the next one. The unknown-slug check was the advisory W123, which is how this reached main. It is now the reference error E206:

  • scripts/validate.ts: a new exported checkCompatibleWith() runs after validateFile() in the software and content loops (the only schemas with compatibleWith). It reports each unknown slug with its path and line. The W123 block in collectWarnings() is gone, and so are its two slug-set parameters, which nothing else used.
  • scripts/lib/error-codes.ts: E206_UNKNOWN_COMPATIBLE_WITH replaces W123_UNKNOWN_COMPATIBLE_WITH.
  • scripts/__tests__/validate.test.ts: the W123 case is replaced by checkCompatibleWith cases built on the existing writeEntry / HARDWARE_OK fixtures. They cover an unknown slug (E206, compatibleWith[1], line 6), a fully resolved list, and an entry with no compatibleWith.
  • Docs: an E206 section in docs/VALIDATION_ERRORS.md. W123 had no section there. The W123 mentions in CLAUDE.md, scripts/generate-context.ts and the regenerated schema/CONTEXT.md now say E206, and the stale dataset-audit.ts comment is updated.

Checked before switching: I ran pnpm validate on the full data set with the data fix applied. It reported 0 W123 and exited 0, so nothing else starts failing. After the change, restoring the original kontakt value makes pnpm validate exit 1 with E206:6: Unknown compatibleWith reference 'kontakt'. With the fix it exits 0, with the same number of warnings as before.

Type of Change

  • New software/plugin entry
  • New hardware entry
  • New manufacturer entry
  • Update to existing entry
  • Bug fix
  • Schema or script change

Checklist

  • I have run pnpm validate and it passes
  • YAML files follow the existing format
  • Manufacturer exists (or I'm adding it in this PR)
  • Categories and formats are from the schema files
  • Identifiers are accurate, if provided (bundle IDs, etc.)
  • Any hp I added or changed names its source in the description

Additional Notes

  • These all pass locally: pnpm lint, pnpm typecheck, pnpm test (699 passed), pnpm validate, pnpm validate:translations, pnpm format:check, and the generate:schemas / generate:context freshness checks.
  • The bad slug came from the racks importer (scripts/browser-import/classify.ts maps category kontakt to host kontakt). That is being fixed separately. Until then, the importer's output now fails validation here instead of shipping.
  • Changeset: patch.

🤖 Generated with Claude Code

https://claude.ai/code/session_019cRjoMGX966CDY2WcgLvvv


Generated by Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Corrected compatibility information for the Plectra Series 1 8-string Acoustic Bouzouki so it points to Native Instruments Kontakt.
  • Validation
    • Unknown software or hardware compatibility references now fail validation with error E206 instead of producing a warning.
  • Documentation
    • Added guidance and examples for resolving unknown compatibility references.

The Plectra bouzouki library listed `kontakt`,
which matches no entry. Point it at
`native-instruments-kontakt` and turn the
advisory W123 into the error E206.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019cRjoMGX966CDY2WcgLvvv
@changeset-bot

changeset-bot Bot commented Sep 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 937f1b5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
catalog Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added documentation Documentation updates scripts Changes to build/validation scripts schema Changes to catalog schemas content ready-for-review PR has passed all checks and is ready for review labels Sep 26, 2026
@coderabbitai

coderabbitai Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: existential-engineering/catalog/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: a3b21ba5-a359-43c9-8cd4-9bce5ae39e0a

📥 Commits

Reviewing files that changed from the base of the PR and between 41d4d76 and 937f1b5.

📒 Files selected for processing (10)
  • .changeset/compatible-with-e206.md
  • CLAUDE.md
  • data/content/impact-soundworks-plectra-series-1-8-string-acoustic-bouzouki.yaml
  • docs/VALIDATION_ERRORS.md
  • schema/CONTEXT.md
  • scripts/__tests__/validate.test.ts
  • scripts/dataset-audit.ts
  • scripts/generate-context.ts
  • scripts/lib/error-codes.ts
  • scripts/validate.ts

Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 8 reviews per hour.


Walkthrough

Validation now reports unknown compatibleWith slugs as E206 errors instead of W123 warnings. The catalog’s Plectra Series 1 compatibility slug was corrected, and tests and guidance were updated.

Changes

Compatibility validation

Layer / File(s) Summary
Add hard-error compatibility checks
scripts/lib/error-codes.ts, scripts/validate.ts
Adds E206 and checks software and content compatibility slugs after file validation succeeds. Removes the W123 compatibility warning and its collectWarnings inputs.
Update compatibility data, tests, and guidance
scripts/__tests__/validate.test.ts, docs/VALIDATION_ERRORS.md, schema/CONTEXT.md, CLAUDE.md, scripts/generate-context.ts, scripts/dataset-audit.ts, data/content/impact-soundworks-plectra-series-1-8-string-acoustic-bouzouki.yaml, .changeset/compatible-with-e206.md
Tests cover valid software and hardware slugs and an unknown slug reported as E206. Guidance documents the error. The catalog slug changes from kontakt to native-instruments-kontakt.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant validate
  participant validateFile
  participant checkCompatibleWith
  participant softwareSlugs
  participant hardwareSlugs
  validate->>validateFile: Validate software or content file
  validateFile-->>validate: Return successful validation
  validate->>checkCompatibleWith: Check compatibleWith values
  checkCompatibleWith->>softwareSlugs: Look up each slug
  checkCompatibleWith->>hardwareSlugs: Look up each slug
  checkCompatibleWith-->>validate: Return E206 for an unknown slug
Loading

Merge Risk: ⚪ Minimal · up to 937f1

The compatibility-slug correction and E206 validation change are mergeable based on the available evidence.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 937f1

The normal validation gate now rejects unknown compatibility references, and the catalog entry is corrected. No new privileged or runtime access path was identified. A separate file-scoped mode does not perform this cross-file check, so it should not be treated as a substitute for full validation.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The identified change affects acceptance and diagnostics for catalog files, not an identified runtime identity, credential, or privileged service boundary.

Trust Boundaries and Controls

  • observed — The inspected CI gate uses full validation, which reaches E206. File-scoped validation omits the check and warns that cross-file checks are skipped; use of that mode as an external acceptance gate was not established.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes both main changes: correcting the Kontakt compatibility slug and making unknown compatibleWith slugs fail validation.
Docstring Coverage ✅ Passed Docstring coverage is 83.33% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 5 files. (5 skipped: 5 u…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@jeffreylouden
jeffreylouden merged commit af4b938 into main Sep 26, 2026
12 checks passed
@jeffreylouden
jeffreylouden deleted the claude/festive-dirac-wogcm3 branch September 26, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

content documentation Documentation updates ready-for-review PR has passed all checks and is ready for review schema Changes to catalog schemas scripts Changes to build/validation scripts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants