Add /io-enrich command (Pillar 2) + correct Apollo Twin X I/O#531
Add /io-enrich command (Pillar 2) + correct Apollo Twin X I/O#531jeffreylouden wants to merge 1 commit into
Conversation
Follow-up to #212. Adds the enrichment pipeline that works down the io-quality worklist using authoritative sources. - .claude/commands/io-enrich.md: manual-first, verify-don't-guess process for fixing/enriching a hardware entry's io (one entry per physical jack; positions and column/row from the manual's panel diagrams; adversarial verification). - Pilot: rewrite Universal Audio Apollo Twin X io from 6 broken entries (collapsed output pairs, split Thunderbolt, missing all inputs, uniform Top) to 11 discrete jacks with correct front/rear positions and column/row layout, sourced from the Apollo Twin X Hardware Manual. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: dad59e0 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
WalkthroughChangesI/O enrichment
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.claude/commands/io-enrich.md (1)
47-50: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick winMake the manual download explicit and fail closed.
curl -sLstreams the response and does not fail on HTTP 4xx/5xx responses. Specify a file path and use--fail --show-error --locationbefore opening the PDF. (curl.se)Suggested command
- curl -sL "$manual_url" + curl --fail --location --silent --show-error \ + --output "$scratchpad/manual.pdf" "$manual_url"🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.claude/commands/io-enrich.md around lines 47 - 50, Update the manual-download instructions in the manufacturer manual workflow to save the PDF to an explicit scratchpad file and invoke curl with --fail --show-error --location before using the Read tool. Ensure failed HTTP responses stop the workflow rather than allowing an invalid or missing PDF to be opened.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@data/hardware/universal-audio-apollo-twin-x.yaml`:
- Around line 64-94: Correct the rear-panel metadata by reordering the entries
so Optical Input precedes Thunderbolt 3, then set Optical Input to column 1, row
1; Thunderbolt 3 to column 2, row 1; and Power Supply Input to column 2, row 2.
Preserve the existing connection and descriptive fields.
---
Nitpick comments:
In @.claude/commands/io-enrich.md:
- Around line 47-50: Update the manual-download instructions in the manufacturer
manual workflow to save the PDF to an explicit scratchpad file and invoke curl
with --fail --show-error --location before using the Read tool. Ensure failed
HTTP responses stop the workflow rather than allowing an invalid or missing PDF
to be opened.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 32ef33d7-17b4-4dc4-bfa2-678b46708fde
📒 Files selected for processing (3)
.changeset/io-enrich-command.md.claude/commands/io-enrich.mddata/hardware/universal-audio-apollo-twin-x.yaml
| - name: Thunderbolt 3 | ||
| signalFlow: bidirectional | ||
| category: digital | ||
| type: s/pdif | ||
| type: thunderbolt | ||
| connection: thunderbolt 3 | ||
| maxConnections: 1 | ||
| position: Top | ||
| columnPosition: 1 | ||
| rowPosition: 1 | ||
| - name: Optical Input | ||
| signalFlow: input | ||
| category: digital | ||
| type: adat | ||
| connection: toslink | ||
| maxConnections: 1 | ||
| position: Top | ||
| - name: Two 1/4" Monitor Outs | ||
| columnPosition: 1 | ||
| rowPosition: 2 | ||
| description: Optical TOSLINK carrying ADAT or S/PDIF, switchable in software. | ||
| - name: Power Supply Input | ||
| signalFlow: input | ||
| category: power | ||
| type: power | ||
| connection: barrel | ||
| connectorDetail: | ||
| - center-positive | ||
| maxConnections: 1 | ||
| position: Top | ||
| columnPosition: 2 | ||
| rowPosition: 1 | ||
| description: 12VDC locking barrel connector; the unit is not bus-powered. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Correct the rear-panel coordinates and ordering.
The manual shows Optical Input at the left/top, Thunderbolt 3 immediately to its right/top, and the 12VDC input below Thunderbolt. The current data places Thunderbolt and Optical in the same column, puts Optical on row 2, and places Power on row 1; it also serializes Thunderbolt before Optical. This makes the positional metadata and required left-to-right/top-to-bottom ordering inaccurate. (media.uaudio.com)
Suggested coordinate corrections
# Thunderbolt 3
- columnPosition: 1
+ columnPosition: 2
# Optical Input
- rowPosition: 2
+ rowPosition: 1
# Power Supply Input
- columnPosition: 2
- rowPosition: 1
+ columnPosition: 2
+ rowPosition: 2Also move the Optical Input entry before Thunderbolt 3.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@data/hardware/universal-audio-apollo-twin-x.yaml` around lines 64 - 94,
Correct the rear-panel metadata by reordering the entries so Optical Input
precedes Thunderbolt 3, then set Optical Input to column 1, row 1; Thunderbolt 3
to column 2, row 1; and Power Supply Input to column 2, row 2. Preserve the
existing connection and descriptive fields.
Context
Pillar 2 of the I/O data-quality plan (#212): a repeatable enrichment pipeline that works down the
pnpm io-qualityworklist using authoritative sources. The report (Pillar 1) finds the bad entries; this fixes them correctly.What's in here
/io-enrichcommand (.claude/commands/io-enrich.md) — codifies the manual-first process proven on the Eventide H90:maxConnections: 1); never collapse L/R or numbered pairs.positionandcolumnPosition/rowPositionfrom the diagram; exclude non-port controls (power switches, security slots).Pilot — Universal Audio Apollo Twin X. The old entry had 6 broken
ioentries; the manual's front/rear panel diagrams gave the real layout:Top(guessed)Bottom, rearTop, with column/rowSource: Apollo Twin X Hardware Manual (front/rear panel diagrams).
Verification
pnpm validate✅ (no new warnings on the file),pnpm build✅ — all 11 jacks land inhardware_iowith positions/column/row.Note
One modeling call worth a look: the rear-panel column/row ordering is read from the manual diagram; the horizontal group order is clear, the fine within-cluster vertical order (left power/optical cluster) is moderate-confidence. Easy to tweak.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
/io-enrichcommand for enriching and validating hardware input/output data using authoritative sources.Documentation