Source: https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/

instrument / verified-clean

# Chord Progression / Roman Numeral Analyzer

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Audio, Music, Photography & Color

**Tranche**: tranche-6

**Evidence ID**: t6-073

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The core lookup-table method is valid for diatonic triads when the key, scale form, chord spelling, and supported chord scope are explicit. The specification needs an explicit minor-scale policy, supported chord grammar, Roman-numeral notation policy, enharmonic-spelling policy, and error behavior for non-diatonic inputs before it can receive an unqualified PASS.

### Formula and scope findings

- The scale-degree mapping and diatonic triad-quality rule are standard for explicitly spelled major-key or natural-minor triads.

- Minor-key behavior is ambiguous: the specification does not state whether minor keys use natural minor, harmonic minor, or melodic minor. For example, E major is V in A harmonic minor but v is the diatonic chord in A natural minor.

- Chord scope is unspecified: triads, seventh chords, suspensions, added tones, inversions, slash chords, and chord extensions require separate parsing and Roman-numeral rules.

- Enharmonic spelling and accidentals are unspecified. A pitch-class-only lookup can incorrectly treat enharmonically equivalent spellings as the same theoretical degree.

- The reverse direction is underspecified for altered numerals such as V/V, borrowed chords, augmented chords, and diminished seventh chords; these should be rejected or explicitly labeled unsupported rather than silently mapped.

### Unit assumptions

- Music notation is used; there are no physical units.

- Inputs are assumed to be correctly spelled chord symbols and Roman numerals using letter names with optional # or b accidentals.

- Expected vectors assume triads only, root position, no inversions, no seventh chords, and exact diatonic spelling.

- Major-key vectors use the standard major scale: I major, ii minor, iii minor, IV major, V major, vi minor, vii° diminished.

- The A-minor vector explicitly uses natural minor: i minor, ii° diminished, III major, iv minor, v minor, VI major, VII major.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The semantic lookup is well-defined for the tested valid inputs, but the interface has a convention-level break: an unqualified or incorrectly normalized token such as Bb can be interpreted as B-flat or B natural, yielding different analysis. The specification does not define token normalization, and extreme-length chord lists also have unspecified resource-limit behavior.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "direction": "forward",
    "key": "C major",
    "chords": [
      "C",
      "F",
      "G",
      "Am"
    ]
  },
  "expected_outputs": {
    "roman_numerals": [
      "I",
      "IV",
      "V",
      "vi"
    ],
    "chord_qualities": [
      "major",
      "major",
      "major",
      "minor"
    ]
  },
  "working": "C major scale = C-D-E-F-G-A-B. C is degree 1 and its triad is C-E-G = major, so C -> I. F is degree 4 and its triad is F-A-C = major, so F -> IV. G is degree 5 and its triad is G-B-D = major, so G -> V. A is degree 6 and its triad is A-C-E = minor, so Am -> vi."
}
````

## Related workflows

No source-defined multi-instrument workflow membership is recorded.

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche6/tranche6-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
