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

instrument implementation / implementation-contract

# Chord Progression / Roman Numeral Analyzer implementation

A source-bound implementation contract for Chord Progression / Roman Numeral Analyzer; deployment and executable qualification remain separate.

Status: **VERIFIED_CLEAN**Lifecycle: **implementation-contract**

## Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

**Record owner**: Guth Instruments

**Lifecycle**: verified-clean

**Evidence ID**: t6-073

**Effect**: Computation or source lookup only

## Input and validation requirements

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.

## Required corrections

No binding erratum is attached to this unique-name record. Implementers must still preserve the declared units, domain, and failure behavior.

## Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

````
{
  "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."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/chord-progression-roman-numeral-analyzer/qualification/>)

## Sources and evidence

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

- `VERIFIED_LEDGER.json`

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