Skip to content

Proposal: add non-interactive status filtering to list (#244)#245

Open
hhh2210 wants to merge 1 commit into
runkids:mainfrom
hhh2210:proposal/244-list-status-filter
Open

Proposal: add non-interactive status filtering to list (#244)#245
hhh2210 wants to merge 1 commit into
runkids:mainfrom
hhh2210:proposal/244-list-status-filter

Conversation

@hhh2210

@hhh2210 hhh2210 commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Type

  • Bug fix
  • Small improvement (docs, typo, minor refactor)
  • Feature proposal (proposals/ only — see CONTRIBUTING.md)

Linked Issue

Closes #244

Proposal

This is a proposal-only change with no implementation code. It defines a backward-compatible list --status all|enabled|disabled interface for plain text, JSON, and the existing TUI status filter.

The default remains all, and the JSON output stays a top-level array. The proposal covers project mode and agents, completion and empty-result behavior, and the TUI load-time constraint.

Validation

  • git diff origin/main...HEAD --check
  • Reproduced on v0.20.21 with an isolated source: status.skill_count was 1, list --json returned 2 entries, and list 's:enabled' --json returned an empty array.

Checklist

  • I've read CONTRIBUTING.md
  • Tests included and passing (make check) — N/A: proposal-only documentation change
  • No unrelated changes in the diff
  • Scope is focused — one concern per PR

Copilot AI review requested due to automatic review settings July 12, 2026 14:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new feature proposal documenting a backward-compatible skillshare list --status all|enabled|disabled flag to expose enabled/disabled filtering outside the interactive TUI, while keeping existing default output and JSON shape unchanged.

Changes:

  • Introduces proposal #244 describing --status behavior across plain text, JSON, and TUI initialization.
  • Specifies compatibility constraints, error/empty-result behavior, AND semantics with existing filters, and completion/docs updates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- The flag works in global and project mode, for `list`, `list agents`, and `list --all`.
- Status combines with the positional pattern and `--type` using AND semantics.
- `--status value` and `--status=value` are accepted case-insensitively. Missing or invalid values return an error that lists the accepted values. No short flag is added because `-s` already means `--sort`.
- A status-only plain-text query with no matches reports `No <resources> matching status "<value>"`; JSON returns `[]`.
- `--status value` and `--status=value` are accepted case-insensitively. Missing or invalid values return an error that lists the accepted values. No short flag is added because `-s` already means `--sort`.
- A status-only plain-text query with no matches reports `No <resources> matching status "<value>"`; JSON returns `[]`.

The TUI should continue loading both enabled and disabled entries after applying the existing pattern and type filters, then initialize its status filter. Applying status destructively during loading would make it impossible for the existing `s` key to restore entries. The CLI status filter and a `status:` search tag continue to compose with AND semantics, so conflicting values produce an empty view.

- The default plain-text and JSON output stays unchanged.
- Explicit `--status all` should behave like omitting the flag.
- This proposal does not change `.skillignore` or `.agentignore` discovery and disabled-marking semantics. It filters the `Disabled` state on entries already returned by `list`.
@hhh2210

hhh2210 commented Jul 12, 2026

Copy link
Copy Markdown
Contributor Author

@runkids ready for reveiw

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.

list: expose enabled and disabled filters outside the TUI

2 participants