Skip to content

Add specleft discover command and promote flow (#136)#152

Merged
Dimwiddle merged 1 commit intofeature/discovery-layerfrom
codex/feature/discovery-layer/136-specleft-discover
Mar 10, 2026
Merged

Add specleft discover command and promote flow (#136)#152
Dimwiddle merged 1 commit intofeature/discovery-layerfrom
codex/feature/discovery-layer/136-specleft-discover

Conversation

@Dimwiddle
Copy link
Contributor

@Dimwiddle Dimwiddle commented Mar 10, 2026

Description

Add the new discovery command group for Phase 2 onboarding:

  • specleft discover [OPTIONS] [PROJECT_ROOT]
  • specleft discover promote [OPTIONS] [FEATURE_ID...]

What changed

  • Added src/specleft/commands/discover.py with:
    • Full discovery execution via build_default_pipeline(...) + group_items(...) + generate_draft_specs(...)
    • --dry-run, --format json/table, --output-dir, repeatable --language, --specs-dir, and --pretty
    • JSON payload with features, totals, output_dir, dry_run, written paths, and errors
    • promote subcommand with --all, targeted feature IDs, --overwrite, and --dry-run
  • Registered command in CLI wiring:
    • src/specleft/commands/__init__.py
    • src/specleft/cli/main.py
  • Added CLI tests in tests/cli/test_discover.py covering dry-run, JSON output, output-dir override, promote all/single, overwrite/skip, and miner-error resilience.
  • Updated docs and discovery feature scenarios:
    • docs/cli-reference.md
    • README.md
    • docs/getting-started.md
    • docs/SKILL.md
    • features/feature-spec-discovery.md

Type of Change

  • New feature
  • Tests
  • Documentation

Testing

  • make lint-fix && make lint && make test && make pre-commit (pass)

Related Issues

Closes #136

@Dimwiddle Dimwiddle merged commit 7da54f0 into feature/discovery-layer Mar 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant