From 535dce87dc653655ffd82853c5ba2042b6f43461 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Fri, 1 May 2026 16:42:01 +0200 Subject: [PATCH] feat(ultraplan-local): add ultrareview to arg-parser FLAG_SCHEMA --- .../lib/parsers/arg-parser.mjs | 5 +++++ .../tests/lib/arg-parser.test.mjs | 21 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/plugins/ultraplan-local/lib/parsers/arg-parser.mjs b/plugins/ultraplan-local/lib/parsers/arg-parser.mjs index 5f20f17..aa6cda2 100644 --- a/plugins/ultraplan-local/lib/parsers/arg-parser.mjs +++ b/plugins/ultraplan-local/lib/parsers/arg-parser.mjs @@ -26,6 +26,11 @@ const FLAG_SCHEMA = { valued: ['--project', '--step', '--session'], aliases: {}, }, + ultrareview: { + boolean: ['--quick', '--fg', '--dry-run', '--validate'], + valued: ['--project', '--since'], + aliases: {}, + }, }; /** diff --git a/plugins/ultraplan-local/tests/lib/arg-parser.test.mjs b/plugins/ultraplan-local/tests/lib/arg-parser.test.mjs index e51f737..42624fe 100644 --- a/plugins/ultraplan-local/tests/lib/arg-parser.test.mjs +++ b/plugins/ultraplan-local/tests/lib/arg-parser.test.mjs @@ -75,3 +75,24 @@ test('unknown command reported as error', () => { const r = parseArgs('--quick', 'notacommand'); assert.ok(r.errors.find(e => e.code === 'ARG_UNKNOWN_COMMAND')); }); + +test('ultrareview — --project value capture', () => { + const r = parseArgs('--project .claude/projects/2026-05-01-foo', 'ultrareview'); + assert.equal(r.flags['--project'], '.claude/projects/2026-05-01-foo'); +}); + +test('ultrareview — --since value', () => { + const r = parseArgs('--since HEAD~5', 'ultrareview'); + assert.equal(r.flags['--since'], 'HEAD~5'); +}); + +test('ultrareview — --quick + --validate combined', () => { + const r = parseArgs('--quick --validate', 'ultrareview'); + assert.equal(r.flags['--quick'], true); + assert.equal(r.flags['--validate'], true); +}); + +test('ultrareview — unknown flag goes to unknown[]', () => { + const r = parseArgs('--mystery foo', 'ultrareview'); + assert.ok(r.unknown.includes('--mystery')); +});