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')); +});