diff --git a/.sisyphus/evidence/task-2-labels-tests.txt b/.sisyphus/evidence/task-2-labels-tests.txt new file mode 100644 index 0000000..bcbbadc --- /dev/null +++ b/.sisyphus/evidence/task-2-labels-tests.txt @@ -0,0 +1,7 @@ +Command: ddev exec php artisan test --filter=CcliLabelsTest +Result: PASS +Assertions: 71 +Tests: 55 passed + +Command: ddev exec ./vendor/bin/pint --test app/Support/CcliLabels.php tests/Unit/CcliLabelsTest.php +Result: PASS diff --git a/.sisyphus/evidence/task-2-normalize-unknown.txt b/.sisyphus/evidence/task-2-normalize-unknown.txt new file mode 100644 index 0000000..77489ab --- /dev/null +++ b/.sisyphus/evidence/task-2-normalize-unknown.txt @@ -0,0 +1,6 @@ +Command: ddev exec php artisan tinker --execute="var_export([App\\Support\\CcliLabels::normalizeLabelName('Foobar'), App\\Support\\CcliLabels::normalizeLabelName('')]);" +Result: +array ( + 0 => 'Foobar', + 1 => '', +) diff --git a/.sisyphus/notepads/ccli-songselect-import/learnings.md b/.sisyphus/notepads/ccli-songselect-import/learnings.md index b0087d0..42499ac 100644 --- a/.sisyphus/notepads/ccli-songselect-import/learnings.md +++ b/.sisyphus/notepads/ccli-songselect-import/learnings.md @@ -59,3 +59,8 @@ ### Fixture Corpus Notes - Keep fixture titles/artists anonymized and numeric (`Test Song N`, `Test Artist N`) - Include both English and German section labels in the corpus so parser regex coverage stays broad - Add edge cases for missing footer pieces, whitespace, repeat markers, and suffix labels (`2a`, `x2`, `(Repeat)`) + +### 2026-05-10 CCLI Label Utility Notes +- `CcliLabels` works best with a fixed kind list in regexes; no locale config needed for EN/DE normalization. +- `normalizeLabelName()` should map only known German kinds and preserve any numeric suffix. +- `parseLabel()` can stay lightweight by returning `null` for non-labels and a small array for matched labels.