Skip to content

Inconsistent backlog CLI UX: daily works from adapter defaults, delta status requires project-id and reports undocumented repo requirements #592

@danieldekay

Description

@danieldekay

Summary

specfact backlog daily and specfact backlog delta status behave inconsistently for provider/config resolution and required options.

  • backlog daily github works immediately.
  • backlog delta status requires --project-id even when project config exists.
  • after passing --project-id, runtime error asks for repo owner/name, but delta status -h exposes no repo flags.
  • both snake_case and kebab-case repo flags are rejected as unknown.

Version / environment

  • SpecFact CLI: v0.46.25
  • OS: macOS

Config in repo

.specfact/backlog-config.yaml:

backlog_config:
  providers:
    github:
      adapter: github
      project_id: 'tangoatlas'
      settings:
        github_issue_types:
          type_ids: {}

Reproduction

1) Daily works with adapter argument

specfact backlog daily github

Result: succeeds and renders standup tables.

2) Delta status requires project-id

specfact backlog delta status

Result:

Missing option '--project-id'.

3) Passing positional adapter does not help

specfact backlog delta status github

Result:

Missing option '--project-id'.

4) Passing project-id triggers repo requirement

specfact backlog delta status --project-id tangoatlas

Result:

Error: repo_owner and repo_name required to fetch backlog items

5) repo flags are not available on command

specfact backlog delta status --project-id tangoatlas --repo-owner danieldekay --repo-name tangoatlas

Result:

No such option: --repo-owner

(and --repo_owner/--repo_name also fail)

Help output mismatch

specfact backlog delta status -h shows only:

  • --project-id (required)
  • --adapter (default github)
  • --since
  • --baseline-file
  • --template

No repo owner/name options are exposed, but runtime still requires them.

Why this is a bug

The command contract is internally inconsistent:

  1. runtime requires values that cannot be provided as flags on the command.
  2. config/default resolution differs from backlog daily behavior, even under the same provider context.
  3. error messages reference repo_owner/repo_name (snake_case) while CLI uses kebab-case naming elsewhere.

Expected behavior

Any of these would make behavior consistent and usable:

  1. delta status should resolve repo/project from backlog config/provider defaults similarly to daily, OR
  2. delta status should expose explicit --repo-owner and --repo-name options in help and accept them, OR
  3. both.

Additionally, error text should use CLI-facing option names (kebab-case) and include exact remediation.

Reference

Backlog module docs page used for context:

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions