Skip to content

fix(ci): drop --verbosity compact from reqstool-status, not on PyPI yet#59

Merged
jimisola merged 2 commits into
mainfrom
fix/reqstool-status-verbosity-not-on-pypi
Jun 21, 2026
Merged

fix(ci): drop --verbosity compact from reqstool-status, not on PyPI yet#59
jimisola merged 2 commits into
mainfrom
fix/reqstool-status-verbosity-not-on-pypi

Conversation

@jimisola

Copy link
Copy Markdown
Member

What

`reqstool status --verbosity compact` failed on the latest PyPI release (0.11.0):

```
reqstool status: error: argument source: invalid choice: 'compact' (choose from 'local', 'git', 'maven', 'pypi')
```

`--verbosity` is another `reqstool-client@main`-only feature (same situation as `validate`, fixed in #48) — confirmed PyPI's `reqstool status --help` has no `--verbosity` option at all yet.

Fix

Drop `--verbosity compact` and fall back to default verbosity output. This is cosmetic (doesn't affect the `--check-all-reqs-met` gating logic this action exists for), so rather than adding yet another availability-tracking input, just don't use it until it's released.

Found via reqstool-demo#104's `pypi` matrix leg.

🤖 Generated with Claude Code

jimisola added 2 commits June 22, 2026 00:04
reqstool status --verbosity compact failed on the latest PyPI release
(0.11.0): "invalid choice: 'compact'" — that flag is another
reqstool-client@main-only feature, same situation as the validate
subcommand. Fall back to default verbosity output rather than adding
another availability-tracking input for a cosmetic flag.

Found via reqstool-demo#104's pypi matrix leg.

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
@jimisola jimisola merged commit 5bdf4e5 into main Jun 21, 2026
2 checks passed
@jimisola jimisola deleted the fix/reqstool-status-verbosity-not-on-pypi branch June 21, 2026 22:06
jimisola added a commit to reqstool/reqstool-demo that referenced this pull request Jun 21, 2026
Picks up reqstool/.github#59 (drop --verbosity compact from
reqstool-status, also not yet on PyPI — same situation as the validate
subcommand fixed in #48), found via this PR's pypi matrix leg failing
with "invalid choice: 'compact'".

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
jimisola added a commit to reqstool/reqstool-demo that referenced this pull request Jun 21, 2026
…howcase (#104)

* feat(openspec): bootstrap OpenSpec spec layer for the demo's status showcase

Adds an OpenSpec layer mirroring reqstool-client#407's dogfooding pattern,
scoped to this repo's actual purpose: showcasing every reqstool status
outcome (pass, manual-fail, not-implemented, failing-test, skipped-test,
missing-test) across six small feature capabilities.

- openspec/specs/{greeting,billing,reporting,validation,notifications,
  audit-logging}/spec.md — one capability per status outcome, in thin
  ID-reference form against the existing requirements.yml/SVC IDs
  (REQ_PASS, REQ_MANUAL_FAIL, ...). IDs are kept as-is (no capability
  prefix) since they're already domain-named and intentionally demonstrate
  non-passing states, unlike reqstool-client's renamed/100%-passing set.
- openspec/openspecui.hooks.ts — reqstool-ai's openspecui enrichment hook.
- .reqstool-ai.yaml — single "demo" module, domain-specific (no) prefix.
- .mcp.json — project-scoped reqstool MCP server entry.

Validated: openspec validate --specs --strict (6/6 pass), reqstool
validate --strict (pass), reqstool status (1/6 complete, by design),
mvn clean verify (build succeeds; one intentionally failing test, by
design), and CLI vs MCP get_requirements_status now agree exactly across
all 6 requirements (confirmed after reqstool-client#411's fix).

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* ci(build): validate OpenSpec specs, clarify reqstool-ai prefix comment

- Add an openspec validate --specs --strict step to build.yml so spec/SSOT
  drift fails CI instead of relying on the manual run documented in #104's
  PR description; build-docs.yml's docs/** path filter doesn't cover
  openspec/**, so nothing else was catching this.
- Expand the .reqstool-ai.yaml comment explaining why req_prefix is empty
  while svc_prefix isn't.

Found by /x:full-pr-review on #104. reqstool validate --strict was
intentionally not added yet — not in the currently published PyPI release.

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* ci(build): matrix reqstool CI across PyPI and reqstool-client@main

Adds an openspec validate --specs --strict step to build.yml so spec/SSOT
drift fails CI instead of relying on the manual run documented in #104's
PR description.

Runs reqstool status/validate against both the latest PyPI release and
reqstool-client's main branch in a matrix, since reqstool-client is
deliberately holding off its next release until the org-wide OpenSpec
dogfooding rollout is complete, and main already has fixes (#411) and
commands (validate) not yet published. reqstool validate --strict only
runs on the main leg since that subcommand isn't on PyPI yet. CI continues
to run the latest PyPI release as its baseline; see reqstool-demo#105 for
tracking divergence between the two legs and collapsing back to PyPI-only
once reqstool-client cuts its next release.

Also expands the .reqstool-ai.yaml comment explaining why req_prefix is
empty while svc_prefix isn't.

Found by /x:full-pr-review on #104.

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* fix(ci): pin Python 3.13 for reqstool install step

build (main) failed: the runner's default Python (3.12) doesn't satisfy
reqstool-client@main's reqstool-python-decorators>=0.1.0 dependency, which
requires Python >=3.13. Add actions/setup-python@v6 pinned to 3.13,
matching reqstool-client's own CI convention (build.yml, lint.yml).

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* ci(build): use shared reqstool/openspec workflows from reqstool/.github

Replaces the inline reqstool install/status/validate steps and the
inline openspec install/validate step with the reusable building blocks
just added to reqstool/.github for this rollout:

- reqstool/.github/.github/actions/validate-reqstool (reqstool-client#412
  follow-up notwithstanding, runs reqstool validate --strict; only called
  for the main matrix leg since that subcommand isn't on PyPI yet)
- reqstool/.github/.github/actions/reqstool-status (runs reqstool status,
  fail-if-incomplete left false since this repo intentionally has
  incomplete requirements)
- reqstool/.github/.github/workflows/common-validate-openspec.yml (now a
  separate job, since it's a reusable *workflow* rather than a composite
  action)

Pinned to reqstool/.github@cd3b5e8 (main, 2026-06-21) per
reqstool/.github#40 and #41.

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* fix(ci): call install-reqstool explicitly, per reqstool/.github#48

validate-reqstool/reqstool-status no longer install reqstool themselves
(reqstool/.github#48 removed their broken nested
./.github/actions/install-reqstool reference, which only resolved when
called from within reqstool/.github itself, not from a consuming repo
like this one). Call install-reqstool explicitly as its own step first.

Pinned to reqstool/.github@11a00fc (main, 2026-06-21).

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* ci(build): re-pin reqstool/.github to 5bdf4e5

Picks up reqstool/.github#59 (drop --verbosity compact from
reqstool-status, also not yet on PyPI — same situation as the validate
subcommand fixed in #48), found via this PR's pypi matrix leg failing
with "invalid choice: 'compact'".

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* fix(reqstool): use 0.1.0 as the first revision, per semver

requirements.yml and software_verification_cases.yml used 0.0.1 for every
requirement/SVC. Per semver, 0.0.x is reserved for pre-release/unstable
work before any real first version — the first published revision of a
thing should be 0.1.0, which also matches reqstool-ai's own
.reqstool-ai.yaml.template default ("Revision string for new requirements
and SVCs. Default: 0.1.0"). My earlier .reqstool-ai.yaml matched the
existing (non-conventional) 0.0.1 instead of fixing it forward.

manual_verification_results.yml has no revision field in its schema, so
nothing to change there.

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

* fix(security): add explicit permissions block to build.yml

CodeQL flagged this 3 times across commits: the workflow didn't limit
GITHUB_TOKEN permissions. Add permissions: contents: read at the
workflow root, matching the existing convention in this repo
(build-docs.yml, check-semantic-pr.yml).

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>

---------

Signed-off-by: Jimisola Laursen <jimisola@jimisola.com>
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