Skip to content

Spec: list command with graceful empty-input handling (#377) - #379

Open
warp-factories[bot] wants to merge 2 commits into
mainfrom
factory/377-list-command-spec
Open

Spec: list command with graceful empty-input handling (#377)#379
warp-factories[bot] wants to merge 2 commits into
mainfrom
factory/377-list-command-spec

Conversation

@warp-factories

@warp-factories warp-factories Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Specifies a new command-signatures list capability backed by a reusable library API and thin clap CLI. Embedded assets are the default source; --file has a binding single-object-or-array Fig-compatible grammar, with [] and empty {} treated as successful empty collections. The design defines deterministic text/JSON output, explicit non-panicking outcomes, and bounded parsing at 10 MiB, nesting depth 64, and 10,000 top-level commands.

Open questions

No user-visible contract questions remain. Maintainers may choose minor implementation details around path ownership and test-only dependencies without changing the normative input, output, limits, or exit behavior.

Issue: #377

@cla-bot cla-bot Bot added the cla-signed label Sep 2, 2026
@warp-factories warp-factories Bot added the factory:warp-for-oss Owned by the Warp for OSS factory label Sep 2, 2026
@warp-factories

warp-factories Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

This PR was generated with Warp.

Comment @warp-factory on this PR to send it follow-up work.

View run View conversation View GitHub Issue

@warp-factories

warp-factories Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

Ready for maintainer review

The factory ran a review pass on this spec and looped one revision with the author. Current head 6bfa046 is clean: no critical, important, or minor findings outstanding.

Two issues were found and fixed during that loop:

  • Non-binding grammar. The external-file contract was stated in a way an implementer could satisfy in mutually exclusive ways. It is now one binding rule — --file takes a single Fig-compatible Command object or an array of them, and empty bytes, whitespace, [], and {} are all successful empty collections.
  • Unbounded input handling (security). The original parser fully materialized an arbitrary user-supplied file. The spec now binds limits of 10 MiB, JSON depth 64, and 10,000 top-level commands, each with a distinct diagnostic and exit 1. For calibration: the 1,169 embedded spec files top out at ~1.3 MB (json/mongocli.json), so the caps leave substantial headroom.

Ownership: .github/STAKEHOLDERS has no path-specific rule for the new specs/ tree — the four specific rules (/command-signatures/, /src/, /Cargo.toml, /README.md) don't cover it, so it falls to the repo-wide default owner. Requesting @vikvang on that basis rather than guessing a better-fitting owner.

Worth flagging for whoever approves: if this spec is implemented as written, the change surface splits ownership — command-signatures/src/ and its crate manifest map to @captainsafia, while the root workspace Cargo.toml (where the clap dependency would land) maps to @vkodithala.

This review is advisory, not a merge decision. Implementation stays blocked until a maintainer approves this spec PR.

Responding as Warp for OSS: View run

@warp-factories
warp-factories Bot requested a review from vikvang September 2, 2026 20:49
@vikvang vikvang added ready-to-implement Human gate: maintainer approved this issue for implementation plan-approved Human approval of the spec in this PR; unblocks gated implementation labels Sep 3, 2026
@vikvang
vikvang marked this pull request as ready for review September 3, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed factory:warp-for-oss Owned by the Warp for OSS factory plan-approved Human approval of the spec in this PR; unblocks gated implementation ready-to-implement Human gate: maintainer approved this issue for implementation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant