Skip to content

Add /io-enrich command (Pillar 2) + correct Apollo Twin X I/O#531

Open
jeffreylouden wants to merge 1 commit into
mainfrom
pillar2-io-enrich
Open

Add /io-enrich command (Pillar 2) + correct Apollo Twin X I/O#531
jeffreylouden wants to merge 1 commit into
mainfrom
pillar2-io-enrich

Conversation

@jeffreylouden

@jeffreylouden jeffreylouden commented Jul 12, 2026

Copy link
Copy Markdown
Member

Context

Pillar 2 of the I/O data-quality plan (#212): a repeatable enrichment pipeline that works down the pnpm io-quality worklist using authoritative sources. The report (Pillar 1) finds the bad entries; this fixes them correctly.

What's in here

/io-enrich command (.claude/commands/io-enrich.md) — codifies the manual-first process proven on the Eventide H90:

  • Read the manufacturer manual/QRG panel diagrams (ground truth), checking every panel — front/rear/side — not just the rear.
  • Model one entry per physical jack (maxConnections: 1); never collapse L/R or numbered pairs.
  • Set position and columnPosition/rowPosition from the diagram; exclude non-port controls (power switches, security slots).
  • Verify adversarially — flag ambiguous jack faces to the user rather than guess (the H90 MIDI-side lesson).
  • Validate, check for new W120/W121/W128, cite sources.

Pilot — Universal Audio Apollo Twin X. The old entry had 6 broken io entries; the manual's front/rear panel diagrams gave the real layout:

Before (6) After (11 discrete jacks)
"Two 1/4" Monitor Outs" (collapsed) Monitor Output L, Monitor Output R
"Two 1/4" Line Outs (Alt)" (collapsed) Line Output 3, Line Output 4
Thunderbolt ×2 (split in/out) Thunderbolt 3 (bidirectional)
— (no inputs at all) Mic/Line Input 1 & 2 (combo), Hi-Z Instrument Input
Headphone (Top) Headphone Output (front → Bottom)
everything Top (guessed) front jacks Bottom, rear Top, with column/row

Source: Apollo Twin X Hardware Manual (front/rear panel diagrams).

Verification

  • pnpm validate ✅ (no new warnings on the file), pnpm build ✅ — all 11 jacks land in hardware_io with 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

    • Added a new /io-enrich command for enriching and validating hardware input/output data using authoritative sources.
    • Added detailed connector mapping for the Universal Audio Apollo Twin X, including front and rear panel positions, connector types, and descriptions.
    • Improved modeling of bidirectional Thunderbolt connectivity.
  • Documentation

    • Documented validation, citation, confidence, formatting, and ambiguity-handling guidelines for I/O enrichment.

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-bot

changeset-bot Bot commented Jul 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: dad59e0

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

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

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 hardware Changes to hardware catalog entries ready-for-review PR has passed all checks and is ready for review labels Jul 12, 2026
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Changes

I/O enrichment

Layer / File(s) Summary
Enrichment command workflow
.claude/commands/io-enrich.md, .changeset/io-enrich-command.md
Adds the /io-enrich command, authoritative-source workflow, connector modeling rules, validation requirements, reporting guidance, and release note.
Apollo Twin X connector inventory
data/hardware/universal-audio-apollo-twin-x.yaml
Replaces the prior grouped I/O definitions with 11 distinct, positioned connectors and consolidates Thunderbolt 3 into one bidirectional entry.

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

Possibly related PRs

Suggested labels: documentation

🚥 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 matches the two main changes: adding the /io-enrich command and correcting Apollo Twin X I/O data.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pillar2-io-enrich

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.claude/commands/io-enrich.md (1)

47-50: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Make the manual download explicit and fail closed.

curl -sL streams the response and does not fail on HTTP 4xx/5xx responses. Specify a file path and use --fail --show-error --location before 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

📥 Commits

Reviewing files that changed from the base of the PR and between 7f88241 and dad59e0.

📒 Files selected for processing (3)
  • .changeset/io-enrich-command.md
  • .claude/commands/io-enrich.md
  • data/hardware/universal-audio-apollo-twin-x.yaml

Comment on lines +64 to +94
- 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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ 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: 2

Also 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hardware Changes to hardware catalog entries ready-for-review PR has passed all checks and is ready for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant