|
| 1 | +# ISO/IEC 24778 Traceability Matrix |
| 2 | + |
| 3 | +This document provides implementation traceability evidence for `aztec-py`. |
| 4 | +It is intended for audit support and release validation workflows. |
| 5 | + |
| 6 | +This matrix does not replace independent certification. |
| 7 | + |
| 8 | +## Scope |
| 9 | + |
| 10 | +- Encoder implementation: `aztec_py/core.py` |
| 11 | +- Symbol rendering: `aztec_py/renderers/*` |
| 12 | +- Validation fixtures and regression checks: `tests/*`, `tests/compat/fixtures.json` |
| 13 | + |
| 14 | +## Traceability Table |
| 15 | + |
| 16 | +| Requirement Area | Implementation Evidence | Automated Verification | |
| 17 | +|---|---|---| |
| 18 | +| Symbol layer/size selection and capacity fit checks | `aztec_py/core.py` (`find_suitable_matrix_size`, `_required_capacity_bits`) | `tests/test_core.py`, `tests/test_validation.py` | |
| 19 | +| Reed-Solomon error correction generation | `aztec_py/core.py` (`reed_solomon`) | `tests/test_core.py::Test::test_reed_solomon` | |
| 20 | +| Character mode/latch/shift sequencing | `aztec_py/core.py` (`find_optimal_sequence`, `optimal_sequence_to_bits`) | `tests/test_core.py::Test::test_find_optimal_sequence_*`, `tests/test_core.py::Test::test_optimal_sequence_to_bits` | |
| 21 | +| Bit stuffing and codeword construction | `aztec_py/core.py` (`get_data_codewords`) | `tests/test_core.py::Test::test_get_data_codewords` | |
| 22 | +| CRLF handling regression | `aztec_py/core.py` + fixture/test coverage | `tests/test_core.py::Test::test_crlf_encoding`, `tests/test_core.py::Test::test_crlf_roundtrip` | |
| 23 | +| Error-correction capacity regression (worst-case bytes) | `aztec_py/core.py` capacity calculations | `tests/test_core.py::Test::test_ec_worst_case_ff_bytes`, `tests/test_core.py::Test::test_ec_worst_case_null_bytes` | |
| 24 | +| GS1 payload composition and separators | `aztec_py/gs1.py` | `tests/test_gs1.py` | |
| 25 | +| Rendering determinism (PNG/SVG/PDF) | `aztec_py/core.py`, `aztec_py/renderers/image.py`, `aztec_py/renderers/svg.py` | `tests/test_renderers.py`, `tests/test_api_behaviour.py` | |
| 26 | +| CLI behavior and output contract | `aztec_py/__main__.py` | `tests/test_cli.py` | |
| 27 | +| Compatibility fixture corpus and decode matrix | `scripts/decoder_matrix.py`, `tests/compat/fixtures.json` | `tests/test_compat_matrix.py`, `scripts/conformance_report.py` | |
| 28 | + |
| 29 | +## Release Evidence Artifacts |
| 30 | + |
| 31 | +The following artifacts are generated and retained by CI/release gates: |
| 32 | + |
| 33 | +- `compat_matrix_report.md` |
| 34 | +- `conformance_report.md` |
| 35 | +- `conformance_report.json` |
| 36 | + |
| 37 | +## Audit Notes |
| 38 | + |
| 39 | +- Decode checks are runtime-dependent (`python-zxing` + Java). |
| 40 | +- Non-strict mode allows skip-safe evidence generation when decode backend is unavailable. |
| 41 | +- Strict mode can be enabled for environments where decode runtime is mandatory. |
0 commit comments