fix(cli): fix invariant add scope handling #11049

Open
HAL9000 wants to merge 1 commit from fix/invariant-add-scope into master
Owner

Closes #6331

Fix the _resolve_scope() helper function in the invariant CLI commands which previously silently defaulted to GLOBAL scope when no scope flag was provided, violating the spec contract that exactly one scope flag must be given.

Spec Reference

  • docs/specification.md line 17873: "Exactly ==one scope flag== is required for add and list."
  • docs/specification.md line 17900: "At least one scope flag (--global, --project, --plan, or --action) must be provided."

Changes

Core Fix

  • src/cleveragents/cli/commands/invariant.py: The _resolve_scope() function now checks flags_set == 0 and raises typer.BadParameter with a clear error message. Updated the module docstring to reflect this requirement.

BDD Tests

  • features/invariant_cli_new_coverage.feature: Added scenarios for no-scope rejection and removed the old global-default scenario.
  • features/steps/invariant_cli_new Coverage_steps.py: Updated step definitions to expect typer.BadParameter when no scope flag is provided.

Robot Framework Tests

  • robot/helper_invariant_cli.py: Added add_no_scope() helper function for the new test case.
  • robot/invariant_cli.robot: Added "Invariant Add Missing Scope Rejected" test case.

Changed Files (6 files, +54/-10)

File Changes
src/cleveragents/cli/commands/invariant.py Core fix
features/invariant_cli_new_coverage.feature BDD scenarios updated
features/steps/invariant_cli_new_coverage_steps.py Step definitions updated
robot/helper_invariant_cli.py New test helper
robot/invariant_cli.robot New integration test

Epic reference: M3 - Decisions + Validations + Invariants

# Closes #6331 Fix the `_resolve_scope()` helper function in the invariant CLI commands which previously silently defaulted to `GLOBAL` scope when no scope flag was provided, violating the spec contract that exactly one scope flag must be given. ## Spec Reference - `docs/specification.md` line 17873: "Exactly ==one scope flag== is required for `add` and `list`." - `docs/specification.md` line 17900: "At least one scope flag (`--global`, `--project`, `--plan`, or `--action`) must be provided." ## Changes ### Core Fix - **`src/cleveragents/cli/commands/invariant.py`**: The `_resolve_scope()` function now checks `flags_set == 0` and raises `typer.BadParameter` with a clear error message. Updated the module docstring to reflect this requirement. ### BDD Tests - **`features/invariant_cli_new_coverage.feature`**: Added scenarios for no-scope rejection and removed the old global-default scenario. - **`features/steps/invariant_cli_new Coverage_steps.py`**: Updated step definitions to expect `typer.BadParameter` when no scope flag is provided. ### Robot Framework Tests - **`robot/helper_invariant_cli.py`**: Added `add_no_scope()` helper function for the new test case. - **`robot/invariant_cli.robot`**: Added "Invariant Add Missing Scope Rejected" test case. ## Changed Files (6 files, +54/-10) | File | Changes | |------|--------| | `src/cleveragents/cli/commands/invariant.py` | Core fix | | `features/invariant_cli_new_coverage.feature` | BDD scenarios updated | | `features/steps/invariant_cli_new_coverage_steps.py` | Step definitions updated | | `robot/helper_invariant_cli.py` | New test helper | | `robot/invariant_cli.robot` | New integration test | Epic reference: M3 - Decisions + Validations + Invariants
fix(cli): fix invariant add scope handling
Some checks failed
CI / security (pull_request) Failing after 13s
CI / unit_tests (pull_request) Failing after 12s
CI / quality (pull_request) Failing after 12s
CI / e2e_tests (pull_request) Failing after 8s
CI / lint (pull_request) Failing after 14s
CI / typecheck (pull_request) Failing after 14s
CI / integration_tests (pull_request) Failing after 10s
CI / build (pull_request) Failing after 6s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 25s
CI / helm (pull_request) Successful in 29s
CI / status-check (pull_request) Failing after 5s
CI / benchmark-regression (pull_request) Failing after 1m31s
a8a377d13a
Fix the _resolve_scope() helper function in the invariant CLI commands
which previously returned InvariantScope.GLOBAL silently when zero
scope flags were given, violating the spec contract that exactly one
scope flag must be provided.

The fix adds a check for flags_set == 0 that raises typer.BadParameter
with a clear error message listing the required flags (--global,
--project, --plan, or --action). Also added BDD and Robot Framework
integration test coverage for both the no-scope and conflicting-scope
scenarios.

ISSUES CLOSED: #6331
HAL9000 added this to the v3.2.0 milestone 2026-05-08 16:06:34 +00:00
Author
Owner

Code Review: fix(cli): fix invariant add scope handling (PR #11049)

Note: Forgejo prevented submitting this as a formal review (self-review restriction). Posting as a comment instead per fallback policy.
Intended review verdict: REQUEST_CHANGES


Summary

This PR fixes the _resolve_scope() helper function in src/cleveragents/cli/commands/invariant.py to raise typer.BadParameter when no scope flag is provided, aligning the behaviour with the specification requirement. The core fix is correct, well-structured, and the code changes are clean. However, CI is failing across all required gates, and two process requirements are unmet that must be addressed before this PR can be approved.


What passes

CORRECTNESS: The fix is correct. The _resolve_scope() function now properly rejects flags_set == 0 with a clear error message. The explicit is_global return was also added before the other scope checks, which is a clean improvement. The unreachable fallback raise at the end is a sensible safety net.

SPECIFICATION ALIGNMENT: The fix aligns with spec: "Exactly one scope flag is required for add." The list command's separate inline logic (allowing scope=None to list all) is appropriate and not affected.

TYPE SAFETY: All type annotations are present and correct. No # type: ignore added.

READABILITY: Clear, focused change. Naming is good. The comment on the unreachable line is accurate and helpful.

PERFORMANCE: No concerns. The change is minimal.

SECURITY: Input validation is correctly added. No security issues.

CODE STYLE: SOLID principles followed. File is well under 500 lines (291 lines). No style violations observable in the diff.

DOCUMENTATION: Module docstring updated to reflect the new requirement. CHANGELOG and CONTRIBUTORS.md are both updated in the same commit.

COMMIT QUALITY: Single atomic commit. Conventional Changelog format used. Footer contains ISSUES CLOSED: #6331. Changelog and CONTRIBUTORS.md updated.


Blockers (must be fixed before this PR can be merged)

1. CI is failing on all required gates

All required merge gates are failing. Per company policy, all CI checks must pass before a PR can be merged. Please investigate each failure, fix the root cause, and push a new commit (do not amend or force-push).

Failing checks:

  • CI / lint (pull_request) — failing after 14s
  • CI / typecheck (pull_request) — failing after 14s
  • CI / security (pull_request) — failing after 13s
  • CI / unit_tests (pull_request) — failing after 12s
  • CI / quality (pull_request) — failing after 12s
  • CI / integration_tests (pull_request) — failing after 12s
  • CI / e2e_tests (pull_request) — failing after 8s
  • CI / build (pull_request) — failing after 6s
  • CI / benchmark-regression (pull_request) — failing after 1m31s
  • CI / status-check (pull_request) — failing after 5s

The timing suggests these may be infrastructure or import failures rather than test assertion failures — please check the CI logs.


2. Missing @tdd_issue_6331 regression tag on the BDD scenario

Issue #6331 is labelled Type/Bug. Per the TDD bug fix workflow in CONTRIBUTING.md, the regression scenario that proves the bug exists must be tagged @tdd_issue_6331. This tag:

  • Identifies the scenario as a regression guard against re-introducing this specific bug.
  • Allows CI to validate the TDD workflow was followed correctly.
  • Provides traceability from bug → test → fix.

The scenario to tag is in features/invariant_cli_new_coverage.feature:

  @tdd_issue_6331
  Scenario: Resolve scope with no flags raises BadParameter
    When I resolve invariant scope with no flags
    Then a BadParameter error should be raised for invariant scope

Why this is blocking: Without the tag, the TDD workflow traceability is broken and CI cannot enforce the regression guard. This is a required step in the bug fix process for Type/Bug issues.


3. PR dependency direction not set

PR #11049 must be registered as blocking issue #6331 in Forgejo. Currently PR #11049 has no blocks dependency registered (its dependency list is empty), and issue #6331 shows only the old PR #6572.

The correct direction: PR #11049 → blocks → issue #6331

Without this link:

  • Forgejo cannot enforce the correct merge dependency chain.
  • Issue #6331 won't auto-close when this PR merges (the Closes #6331 in the PR body handles the auto-close, but the dependency direction is also required per CONTRIBUTING.md rules).

How to fix: On the PR page, add issue #6331 under the "Blocks" dependency section of PR #11049.


⚠️ Non-blocking suggestions (no changes required)

Branch naming convention (Suggestion): The branch name fix/invariant-add-scope does not follow the project convention. For a bug fix on milestone M3 (v3.2.0), the correct name would be bugfix/m3-invariant-add-scope. The branch cannot be renamed at this point without rebasing, so no action is needed on this PR — but please use the correct bugfix/mN-<name> convention for future bug fix branches.

list command scope enforcement (Suggestion): The spec says "Exactly one scope flag is required for add and list." The list command currently allows no-scope (returning all invariants), which is arguably more useful UX. Consider opening a follow-up issue to clarify whether list should also enforce exactly one scope flag, or document that no-scope means "list all" as an intentional design choice.


Required actions before re-review

  1. Fix all CI failures and push a new commit
  2. Add @tdd_issue_6331 tag to the "Resolve scope with no flags raises BadParameter" BDD scenario
  3. Set Forgejo dependency: PR #11049 → blocks → issue #6331

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

## Code Review: `fix(cli): fix invariant add scope handling` (PR #11049) > **Note:** Forgejo prevented submitting this as a formal review (self-review restriction). Posting as a comment instead per fallback policy. > **Intended review verdict: REQUEST_CHANGES** --- ### Summary This PR fixes the `_resolve_scope()` helper function in `src/cleveragents/cli/commands/invariant.py` to raise `typer.BadParameter` when no scope flag is provided, aligning the behaviour with the specification requirement. The core fix is correct, well-structured, and the code changes are clean. However, **CI is failing across all required gates**, and **two process requirements are unmet** that must be addressed before this PR can be approved. --- ### ✅ What passes **CORRECTNESS**: The fix is correct. The `_resolve_scope()` function now properly rejects `flags_set == 0` with a clear error message. The explicit `is_global` return was also added before the other scope checks, which is a clean improvement. The unreachable fallback `raise` at the end is a sensible safety net. **SPECIFICATION ALIGNMENT**: The fix aligns with spec: "Exactly one scope flag is required for `add`." The `list` command's separate inline logic (allowing `scope=None` to list all) is appropriate and not affected. **TYPE SAFETY**: All type annotations are present and correct. No `# type: ignore` added. ✅ **READABILITY**: Clear, focused change. Naming is good. The comment on the unreachable line is accurate and helpful. **PERFORMANCE**: No concerns. The change is minimal. **SECURITY**: Input validation is correctly added. No security issues. **CODE STYLE**: SOLID principles followed. File is well under 500 lines (291 lines). No style violations observable in the diff. **DOCUMENTATION**: Module docstring updated to reflect the new requirement. CHANGELOG and CONTRIBUTORS.md are both updated in the same commit. **COMMIT QUALITY**: Single atomic commit. Conventional Changelog format used. Footer contains `ISSUES CLOSED: #6331`. Changelog and CONTRIBUTORS.md updated. --- ### ❌ Blockers (must be fixed before this PR can be merged) #### 1. CI is failing on all required gates **All required merge gates are failing.** Per company policy, all CI checks must pass before a PR can be merged. Please investigate each failure, fix the root cause, and push a new commit (do **not** amend or force-push). Failing checks: - `CI / lint (pull_request)` — failing after 14s - `CI / typecheck (pull_request)` — failing after 14s - `CI / security (pull_request)` — failing after 13s - `CI / unit_tests (pull_request)` — failing after 12s - `CI / quality (pull_request)` — failing after 12s - `CI / integration_tests (pull_request)` — failing after 12s - `CI / e2e_tests (pull_request)` — failing after 8s - `CI / build (pull_request)` — failing after 6s - `CI / benchmark-regression (pull_request)` — failing after 1m31s - `CI / status-check (pull_request)` — failing after 5s The timing suggests these may be infrastructure or import failures rather than test assertion failures — please check the CI logs. --- #### 2. Missing `@tdd_issue_6331` regression tag on the BDD scenario Issue #6331 is labelled `Type/Bug`. Per the TDD bug fix workflow in CONTRIBUTING.md, the regression scenario that proves the bug exists must be tagged `@tdd_issue_6331`. This tag: - Identifies the scenario as a regression guard against re-introducing this specific bug. - Allows CI to validate the TDD workflow was followed correctly. - Provides traceability from bug → test → fix. The scenario to tag is in `features/invariant_cli_new_coverage.feature`: ```gherkin @tdd_issue_6331 Scenario: Resolve scope with no flags raises BadParameter When I resolve invariant scope with no flags Then a BadParameter error should be raised for invariant scope ``` **Why this is blocking**: Without the tag, the TDD workflow traceability is broken and CI cannot enforce the regression guard. This is a required step in the bug fix process for `Type/Bug` issues. --- #### 3. PR dependency direction not set PR #11049 must be registered as blocking issue #6331 in Forgejo. Currently PR #11049 has no `blocks` dependency registered (its dependency list is empty), and issue #6331 shows only the old PR #6572. The correct direction: **PR #11049 → blocks → issue #6331** Without this link: - Forgejo cannot enforce the correct merge dependency chain. - Issue #6331 won't auto-close when this PR merges (the `Closes #6331` in the PR body handles the auto-close, but the dependency direction is also required per CONTRIBUTING.md rules). **How to fix**: On the PR page, add issue #6331 under the "Blocks" dependency section of PR #11049. --- ### ⚠️ Non-blocking suggestions (no changes required) **Branch naming convention** (Suggestion): The branch name `fix/invariant-add-scope` does not follow the project convention. For a bug fix on milestone M3 (v3.2.0), the correct name would be `bugfix/m3-invariant-add-scope`. The branch cannot be renamed at this point without rebasing, so no action is needed on this PR — but please use the correct `bugfix/mN-<name>` convention for future bug fix branches. **`list` command scope enforcement** (Suggestion): The spec says "Exactly one scope flag is required for `add` and `list`." The `list` command currently allows no-scope (returning all invariants), which is arguably more useful UX. Consider opening a follow-up issue to clarify whether `list` should also enforce exactly one scope flag, or document that no-scope means "list all" as an intentional design choice. --- ### Required actions before re-review 1. ❌ Fix all CI failures and push a new commit 2. ❌ Add `@tdd_issue_6331` tag to the "Resolve scope with no flags raises BadParameter" BDD scenario 3. ❌ Set Forgejo dependency: PR #11049 → blocks → issue #6331 --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Author
Owner

Code Review: fix(cli): fix invariant add scope handling (PR #11049)

Note: Forgejo prevented submitting this as a formal review (self-review restriction). Posting as a comment instead per fallback policy.
Intended review verdict: REQUEST_CHANGES


Summary

This PR correctly fixes the _resolve_scope() helper function to raise typer.BadParameter when no scope flag is provided, aligning with the specification requirement. The core code change is clean, well-structured, and correct. However, all required CI gates are failing, the TDD regression tag is missing, and the Forgejo dependency direction is not set. These are all blocking before this PR can be approved and merged.


What passes

CORRECTNESS: The fix is correct. The _resolve_scope() function now properly rejects flags_set == 0 with a clear error message. The explicit is_global branch was added before the other scope checks, which is a clean improvement (previously is_global was handled only by the fallback, which was already broken). The unreachable safety raise at the end is accurate and helpful.

SPECIFICATION ALIGNMENT: The fix aligns with spec: "Exactly one scope flag is required for add." The list command allowing no-scope (returning all invariants) is appropriate and not affected by this change.

TYPE SAFETY: All type annotations are present and correct. No # type: ignore added.

READABILITY: Clear, focused change. Naming is descriptive. The comment on the unreachable line is accurate and helpful.

PERFORMANCE: No concerns. The change is minimal and contained.

SECURITY: Input validation is correctly added — the fix strengthens the input contract.

CODE STYLE: SOLID principles followed. File stays well under 500 lines (291 lines). No style violations observable in the diff.

DOCUMENTATION: Module docstring updated to reflect the new requirement. CHANGELOG and CONTRIBUTORS.md are both updated in the same commit.

COMMIT QUALITY: Single atomic commit. Conventional Changelog format used. Footer contains ISSUES CLOSED: #6331. Changelog and CONTRIBUTORS.md updated.


Blockers (must be fixed before this PR can be merged)

1. CI is failing on all required gates

All required merge gates are failing. Per company policy, all CI checks must pass before a PR can be approved or merged.

Failing checks:

  • CI / lint (pull_request) — failing after 14s
  • CI / typecheck (pull_request) — failing after 14s
  • CI / security (pull_request) — failing after 13s
  • CI / unit_tests (pull_request) — failing after 12s
  • CI / quality (pull_request) — failing after 12s
  • CI / integration_tests (pull_request) — failing after 12s
  • CI / e2e_tests (pull_request) — failing after 8s
  • CI / build (pull_request) — failing after 6s
  • CI / benchmark-regression (pull_request) — failing after 1m31s
  • CI / status-check (pull_request) — failing after 5s

The very short failure times (6–14s) suggest these are infrastructure or import failures rather than test assertion failures — please check the CI logs for the actual error. Fix the root cause and push a new commit (do not amend or force-push).

2. Missing @tdd_issue_6331 regression tag on the BDD scenario

Issue #6331 is labelled Type/Bug. Per the TDD bug fix workflow in CONTRIBUTING.md, the regression scenario that proves the bug exists and guards against re-introduction must be tagged @tdd_issue_6331 (and also @tdd_issue). Without this tag:

  • CI cannot validate the TDD workflow was followed correctly.
  • The regression guard is not identifiable from the issue number.
  • Traceability from bug → test → fix is broken.

Fix required — in features/invariant_cli_new_coverage.feature, the regression scenario must be tagged:

  @tdd_issue @tdd_issue_6331
  Scenario: Resolve scope with no flags raises BadParameter
    When I resolve invariant scope with no flags
    Then a BadParameter error should be raised for invariant scope

Other bug fix PRs in this repo follow this pattern consistently (e.g. @tdd_issue @tdd_issue_4229 in a2a_jsonrpc_wire_format.feature, @tdd_issue @tdd_issue_3563 in acms_pipeline.feature, etc.).

3. PR dependency direction not set

PR #11049 must be registered as blocking issue #6331 in Forgejo. Currently PR #11049 has no blocks dependency registered. Issue #6331 shows PR #6572 in its dependency list (a superseded PR) but PR #11049 is not linked.

The correct direction: PR #11049 → blocks → issue #6331

Without this link:

  • Forgejo cannot enforce the correct merge dependency chain per CONTRIBUTING.md.
  • The dependency chain is incomplete even though the Closes #6331 keyword is present in the PR body.

How to fix: On PR #11049, add issue #6331 under the "Blocks" dependency section.


⚠️ Non-blocking observations

Branch naming convention (Suggestion — no action needed on this PR): The branch name fix/invariant-add-scope does not follow the project convention. For a bug fix on milestone M3 (v3.2.0), the convention is bugfix/m3-invariant-add-scope. The branch cannot be renamed without rebasing. Please use the correct bugfix/mN-<name> convention for future bug fix branches.

Priority label mismatch (Suggestion): Issue #6331 is labelled Priority/High but PR #11049 is labelled Priority/Medium. These should match — consider updating the PR label to Priority/High for consistency.


Required actions before re-review

  1. Fix all CI failures and push a new commit
  2. Add @tdd_issue @tdd_issue_6331 tags to the "Resolve scope with no flags raises BadParameter" BDD scenario in features/invariant_cli_new_coverage.feature
  3. Set Forgejo dependency: PR #11049 → blocks → issue #6331

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

## Code Review: `fix(cli): fix invariant add scope handling` (PR #11049) > **Note:** Forgejo prevented submitting this as a formal review (self-review restriction). Posting as a comment instead per fallback policy. > **Intended review verdict: REQUEST_CHANGES** --- ### Summary This PR correctly fixes the `_resolve_scope()` helper function to raise `typer.BadParameter` when no scope flag is provided, aligning with the specification requirement. The core code change is clean, well-structured, and correct. However, **all required CI gates are failing**, the **TDD regression tag is missing**, and the **Forgejo dependency direction is not set**. These are all blocking before this PR can be approved and merged. --- ### ✅ What passes **CORRECTNESS**: The fix is correct. The `_resolve_scope()` function now properly rejects `flags_set == 0` with a clear error message. The explicit `is_global` branch was added before the other scope checks, which is a clean improvement (previously `is_global` was handled only by the fallback, which was already broken). The unreachable safety `raise` at the end is accurate and helpful. **SPECIFICATION ALIGNMENT**: The fix aligns with spec: "Exactly one scope flag is required for `add`." The `list` command allowing no-scope (returning all invariants) is appropriate and not affected by this change. **TYPE SAFETY**: All type annotations are present and correct. No `# type: ignore` added. ✅ **READABILITY**: Clear, focused change. Naming is descriptive. The comment on the unreachable line is accurate and helpful. **PERFORMANCE**: No concerns. The change is minimal and contained. **SECURITY**: Input validation is correctly added — the fix strengthens the input contract. **CODE STYLE**: SOLID principles followed. File stays well under 500 lines (291 lines). No style violations observable in the diff. **DOCUMENTATION**: Module docstring updated to reflect the new requirement. CHANGELOG and CONTRIBUTORS.md are both updated in the same commit. **COMMIT QUALITY**: Single atomic commit. Conventional Changelog format used. Footer contains `ISSUES CLOSED: #6331`. Changelog and CONTRIBUTORS.md updated. --- ### ❌ Blockers (must be fixed before this PR can be merged) #### 1. CI is failing on all required gates **All required merge gates are failing.** Per company policy, all CI checks must pass before a PR can be approved or merged. Failing checks: - `CI / lint (pull_request)` — failing after 14s - `CI / typecheck (pull_request)` — failing after 14s - `CI / security (pull_request)` — failing after 13s - `CI / unit_tests (pull_request)` — failing after 12s - `CI / quality (pull_request)` — failing after 12s - `CI / integration_tests (pull_request)` — failing after 12s - `CI / e2e_tests (pull_request)` — failing after 8s - `CI / build (pull_request)` — failing after 6s - `CI / benchmark-regression (pull_request)` — failing after 1m31s - `CI / status-check (pull_request)` — failing after 5s The very short failure times (6–14s) suggest these are infrastructure or import failures rather than test assertion failures — please check the CI logs for the actual error. Fix the root cause and push a new commit (do **not** amend or force-push). #### 2. Missing `@tdd_issue_6331` regression tag on the BDD scenario Issue #6331 is labelled `Type/Bug`. Per the TDD bug fix workflow in CONTRIBUTING.md, the regression scenario that proves the bug exists and guards against re-introduction must be tagged `@tdd_issue_6331` (and also `@tdd_issue`). Without this tag: - CI cannot validate the TDD workflow was followed correctly. - The regression guard is not identifiable from the issue number. - Traceability from bug → test → fix is broken. **Fix required** — in `features/invariant_cli_new_coverage.feature`, the regression scenario must be tagged: ```gherkin @tdd_issue @tdd_issue_6331 Scenario: Resolve scope with no flags raises BadParameter When I resolve invariant scope with no flags Then a BadParameter error should be raised for invariant scope ``` Other bug fix PRs in this repo follow this pattern consistently (e.g. `@tdd_issue @tdd_issue_4229` in `a2a_jsonrpc_wire_format.feature`, `@tdd_issue @tdd_issue_3563` in `acms_pipeline.feature`, etc.). #### 3. PR dependency direction not set PR #11049 must be registered as blocking issue #6331 in Forgejo. Currently PR #11049 has no `blocks` dependency registered. Issue #6331 shows PR #6572 in its dependency list (a superseded PR) but PR #11049 is not linked. The correct direction: **PR #11049 → blocks → issue #6331** Without this link: - Forgejo cannot enforce the correct merge dependency chain per CONTRIBUTING.md. - The dependency chain is incomplete even though the `Closes #6331` keyword is present in the PR body. **How to fix**: On PR #11049, add issue #6331 under the "Blocks" dependency section. --- ### ⚠️ Non-blocking observations **Branch naming convention** (Suggestion — no action needed on this PR): The branch name `fix/invariant-add-scope` does not follow the project convention. For a bug fix on milestone M3 (v3.2.0), the convention is `bugfix/m3-invariant-add-scope`. The branch cannot be renamed without rebasing. Please use the correct `bugfix/mN-<name>` convention for future bug fix branches. **Priority label mismatch** (Suggestion): Issue #6331 is labelled `Priority/High` but PR #11049 is labelled `Priority/Medium`. These should match — consider updating the PR label to `Priority/High` for consistency. --- ### Required actions before re-review 1. ❌ Fix all CI failures and push a new commit 2. ❌ Add `@tdd_issue @tdd_issue_6331` tags to the "Resolve scope with no flags raises BadParameter" BDD scenario in `features/invariant_cli_new_coverage.feature` 3. ❌ Set Forgejo dependency: PR #11049 → blocks → issue #6331 --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
HAL9001 left a comment

First Review — PR #11049: fix(cli): fix invariant add scope handling

Overall Assessment

The core code change is correct, clean, and well-implemented_resolve_scope() now properly enforces the spec contract by raising typer.BadParameter when no scope flag is provided. The logic is tight, the error message is clear, and the unreachable safety raise at the end is a good defensive addition. BDD and Robot Framework test coverage is structurally sound.

However, three blocking issues must be resolved before this PR can be approved and merged.


Checklist: What Passes

CORRECTNESS: The _resolve_scope() fix is correct. flags_set == 0 now raises BadParameter, the explicit is_global branch is added before the other scope checks (previously is_global was only handled by the fallen-through default, which was already broken), and the unreachable safety raise at the end is accurate. The list command allowing no-scope (returning all invariants) is correctly unaffected.

SPECIFICATION ALIGNMENT: The fix aligns with spec: "Exactly one scope flag is required for add." Module docstring updated to reflect this requirement.

TYPE SAFETY: All type annotations present and correct. No # type: ignore added.

READABILITY: Clear, focused change. The comment on the unreachable line is accurate and helpful. Naming is descriptive.

PERFORMANCE: No concerns. The change is minimal and contained.

SECURITY: Input validation is strengthened. No security issues.

CODE STYLE: SOLID principles followed. File stays well under 500 lines. No style violations in the diff.

DOCUMENTATION: Module docstring updated. CHANGELOG and CONTRIBUTORS.md updated in the same commit.

COMMIT QUALITY: Single atomic commit. Conventional Changelog format used. Footer contains ISSUES CLOSED: #6331. Changelog and CONTRIBUTORS.md updated.


Blockers (must be fixed before this PR can be approved)

1. All required CI gates are failing

8 required merge gates are failing:

  • CI / lint — failing after 14s
  • CI / typecheck — failing after 14s
  • CI / security — failing after 13s
  • CI / unit_tests — failing after 12s
  • CI / quality — failing after 12s
  • CI / integration_tests — failing after 10s
  • CI / build — failing after 6s
  • CI / benchmark-regression — failing after 1m31s
  • CI / status-check — failing (aggregate)

The very short failure times (6–14s) across all jobs strongly suggest an infrastructure or import-level failure rather than test assertion failures. Please check the CI logs for each job, identify the root cause, fix it, and push a new commit (do not amend or force-push).

Per company policy all CI gates must be green before a PR can be approved or merged.

2. Missing @tdd_issue and @tdd_issue_6331 regression tags on BDD scenarios

Issue #6331 is Type/Bug. Per CONTRIBUTING.md§TDD bug fix workflow, the Behave scenario(s) that serve as regression guards must be tagged @tdd_issue @tdd_issue_6331. This tagging:

  • Identifies the scenario as a regression guard against re-introducing this specific bug
  • Allows CI to validate the TDD workflow was followed correctly
  • Provides traceability from bug → test → fix

The two scenarios that need tagging are:

  1. Scenario: Resolve scope with no flags raises BadParameter (unit-level guard)
  2. Scenario: Add invariant without scope flag via CLI (CLI-level guard)

Expected result:

  @tdd_issue @tdd_issue_6331
  Scenario: Resolve scope with no flags raises BadParameter
    ...

  @tdd_issue @tdd_issue_6331
  Scenario: Add invariant without scope flag via CLI
    ...

Without these tags the TDD workflow traceability is broken and CI cannot enforce the regression guard.

3. PR Forgejo dependency direction not set

PR #11049 must be registered as blocking issue #6331 in Forgejo. Currently PR #11049 has no blocks dependency registered (dependency list is empty).

Required direction: PR #11049 → blocks → issue #6331

Without this link Forgejo cannot enforce the correct merge dependency chain as required by CONTRIBUTING.md. The Closes #6331 keyword in the PR body handles auto-close on merge, but the explicit Forgejo dependency link is also required.

How to fix: on PR #11049, add issue #6331 under the "Blocks" dependency section.


⚠️ Non-blocking Observations

Branch naming convention (Suggestion — no action needed on this PR): The branch fix/invariant-add-scope does not follow the project convention. For a bug fix on milestone M3 (v3.2.0) the correct format is bugfix/m3-invariant-add-scope. The branch cannot be renamed without rebasing, so no action is required for this PR — but please use bugfix/mN-<name> for future bug fix branches.

Priority label mismatch (Suggestion): Issue #6331 is labelled Priority/High; PR #11049 is labelled Priority/Medium. These should match. Note also that per CONTRIBUTING.md, Type/Bug issues must always be Priority/Critical — this may be worth updating on the issue as a follow-up.


Required Actions Before Re-review

  1. Fix all CI failures and push a new commit
  2. Add @tdd_issue @tdd_issue_6331 tags to both regression BDD scenarios in features/invariant_cli_new_coverage.feature
  3. Set Forgejo dependency: PR #11049 → blocks → issue #6331

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

## First Review — PR #11049: `fix(cli): fix invariant add scope handling` ### Overall Assessment The core code change is **correct, clean, and well-implemented** — `_resolve_scope()` now properly enforces the spec contract by raising `typer.BadParameter` when no scope flag is provided. The logic is tight, the error message is clear, and the unreachable safety `raise` at the end is a good defensive addition. BDD and Robot Framework test coverage is structurally sound. However, **three blocking issues** must be resolved before this PR can be approved and merged. --- ### ✅ Checklist: What Passes **CORRECTNESS**: The `_resolve_scope()` fix is correct. `flags_set == 0` now raises `BadParameter`, the explicit `is_global` branch is added before the other scope checks (previously `is_global` was only handled by the fallen-through default, which was already broken), and the unreachable safety `raise` at the end is accurate. The `list` command allowing no-scope (returning all invariants) is correctly unaffected. **SPECIFICATION ALIGNMENT**: The fix aligns with spec: "Exactly one scope flag is required for `add`." Module docstring updated to reflect this requirement. **TYPE SAFETY**: All type annotations present and correct. No `# type: ignore` added. ✅ **READABILITY**: Clear, focused change. The comment on the unreachable line is accurate and helpful. Naming is descriptive. **PERFORMANCE**: No concerns. The change is minimal and contained. **SECURITY**: Input validation is strengthened. No security issues. **CODE STYLE**: SOLID principles followed. File stays well under 500 lines. No style violations in the diff. **DOCUMENTATION**: Module docstring updated. CHANGELOG and CONTRIBUTORS.md updated in the same commit. **COMMIT QUALITY**: Single atomic commit. Conventional Changelog format used. Footer contains `ISSUES CLOSED: #6331`. Changelog and CONTRIBUTORS.md updated. --- ### ❌ Blockers (must be fixed before this PR can be approved) #### 1. All required CI gates are failing **8 required merge gates are failing:** - `CI / lint` — failing after 14s - `CI / typecheck` — failing after 14s - `CI / security` — failing after 13s - `CI / unit_tests` — failing after 12s - `CI / quality` — failing after 12s - `CI / integration_tests` — failing after 10s - `CI / build` — failing after 6s - `CI / benchmark-regression` — failing after 1m31s - `CI / status-check` — failing (aggregate) The very short failure times (6–14s) across all jobs strongly suggest an infrastructure or import-level failure rather than test assertion failures. Please check the CI logs for each job, identify the root cause, fix it, and push a new commit (do **not** amend or force-push). Per company policy all CI gates must be green before a PR can be approved or merged. #### 2. Missing `@tdd_issue` and `@tdd_issue_6331` regression tags on BDD scenarios Issue #6331 is `Type/Bug`. Per CONTRIBUTING.md§TDD bug fix workflow, the Behave scenario(s) that serve as regression guards must be tagged `@tdd_issue @tdd_issue_6331`. This tagging: - Identifies the scenario as a regression guard against re-introducing this specific bug - Allows CI to validate the TDD workflow was followed correctly - Provides traceability from bug → test → fix The two scenarios that need tagging are: 1. `Scenario: Resolve scope with no flags raises BadParameter` (unit-level guard) 2. `Scenario: Add invariant without scope flag via CLI` (CLI-level guard) Expected result: ```gherkin @tdd_issue @tdd_issue_6331 Scenario: Resolve scope with no flags raises BadParameter ... @tdd_issue @tdd_issue_6331 Scenario: Add invariant without scope flag via CLI ... ``` Without these tags the TDD workflow traceability is broken and CI cannot enforce the regression guard. #### 3. PR Forgejo dependency direction not set PR #11049 must be registered as **blocking** issue #6331 in Forgejo. Currently PR #11049 has **no `blocks` dependency registered** (dependency list is empty). Required direction: **PR #11049 → blocks → issue #6331** Without this link Forgejo cannot enforce the correct merge dependency chain as required by CONTRIBUTING.md. The `Closes #6331` keyword in the PR body handles auto-close on merge, but the explicit Forgejo dependency link is also required. How to fix: on PR #11049, add issue #6331 under the "Blocks" dependency section. --- ### ⚠️ Non-blocking Observations **Branch naming convention** (Suggestion — no action needed on this PR): The branch `fix/invariant-add-scope` does not follow the project convention. For a bug fix on milestone M3 (v3.2.0) the correct format is `bugfix/m3-invariant-add-scope`. The branch cannot be renamed without rebasing, so no action is required for this PR — but please use `bugfix/mN-<name>` for future bug fix branches. **Priority label mismatch** (Suggestion): Issue #6331 is labelled `Priority/High`; PR #11049 is labelled `Priority/Medium`. These should match. Note also that per CONTRIBUTING.md, `Type/Bug` issues must always be `Priority/Critical` — this may be worth updating on the issue as a follow-up. --- ### Required Actions Before Re-review 1. ❌ Fix all CI failures and push a new commit 2. ❌ Add `@tdd_issue @tdd_issue_6331` tags to both regression BDD scenarios in `features/invariant_cli_new_coverage.feature` 3. ❌ Set Forgejo dependency: PR #11049 → blocks → issue #6331 --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -26,3 +26,3 @@
And the resolved invariant source name should be "deploy-service"
Scenario: Resolve scope with no flags defaults to GLOBAL
Scenario: Resolve scope with no flags raises BadParameter
Owner

BLOCKING — Missing @tdd_issue @tdd_issue_6331 regression tag

Issue #6331 is Type/Bug. Per CONTRIBUTING.md§TDD bug fix workflow, any BDD scenario that serves as a regression guard for a bug fix must be tagged @tdd_issue @tdd_issue_6331 (both tags required — the general @tdd_issue marks it as a TDD regression guard, and @tdd_issue_6331 links it to the specific bug).

Without these tags:

  • CI cannot validate the TDD workflow was followed
  • The regression guard is not identifiable from the issue number
  • Traceability from bug → test → fix is broken

Fix: add both tags on the line immediately before this Scenario::

  @tdd_issue @tdd_issue_6331
  Scenario: Resolve scope with no flags raises BadParameter

See other bug-fix PRs in this repo for the pattern (e.g. @tdd_issue @tdd_issue_4229 in a2a_jsonrpc_wire_format.feature).


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — Missing `@tdd_issue @tdd_issue_6331` regression tag** Issue #6331 is `Type/Bug`. Per CONTRIBUTING.md§TDD bug fix workflow, any BDD scenario that serves as a regression guard for a bug fix **must** be tagged `@tdd_issue @tdd_issue_6331` (both tags required — the general `@tdd_issue` marks it as a TDD regression guard, and `@tdd_issue_6331` links it to the specific bug). Without these tags: - CI cannot validate the TDD workflow was followed - The regression guard is not identifiable from the issue number - Traceability from bug → test → fix is broken **Fix**: add both tags on the line immediately before this `Scenario:`: ```gherkin @tdd_issue @tdd_issue_6331 Scenario: Resolve scope with no flags raises BadParameter ``` See other bug-fix PRs in this repo for the pattern (e.g. `@tdd_issue @tdd_issue_4229` in `a2a_jsonrpc_wire_format.feature`). --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -65,6 +64,12 @@ Feature: Invariant CLI commands coverage
Then the invariant CLI exit code should be 0
And the invariant CLI output should contain "Invariant added"
Scenario: Add invariant without scope flag via CLI
Owner

BLOCKING — Missing @tdd_issue @tdd_issue_6331 regression tag

This CLI-level scenario also serves as a regression guard for bug #6331 and must be tagged accordingly.

Fix: add both tags on the line immediately before this Scenario::

  @tdd_issue @tdd_issue_6331
  Scenario: Add invariant without scope flag via CLI

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — Missing `@tdd_issue @tdd_issue_6331` regression tag** This CLI-level scenario also serves as a regression guard for bug #6331 and must be tagged accordingly. **Fix**: add both tags on the line immediately before this `Scenario:`: ```gherkin @tdd_issue @tdd_issue_6331 Scenario: Add invariant without scope flag via CLI ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

Formal review submitted as REQUEST_CHANGES (review ID 8310) on commit a8a377d13ae621870df647b45670e2c2e3416f5f.

3 blockers identified:

  1. All required CI gates are failing (lint, typecheck, security, unit_tests, quality, integration_tests, build, benchmark-regression, status-check)
  2. Missing @tdd_issue @tdd_issue_6331 regression tags on both BDD scenarios in features/invariant_cli_new_coverage.feature
  3. PR Forgejo dependency direction not set (PR #11049 must block issue #6331)

Core code change is correct and well-implemented. Please address the blockers and push a new commit for re-review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

Formal review submitted as `REQUEST_CHANGES` (review ID 8310) on commit `a8a377d13ae621870df647b45670e2c2e3416f5f`. **3 blockers identified:** 1. All required CI gates are failing (lint, typecheck, security, unit_tests, quality, integration_tests, build, benchmark-regression, status-check) 2. Missing `@tdd_issue @tdd_issue_6331` regression tags on both BDD scenarios in `features/invariant_cli_new_coverage.feature` 3. PR Forgejo dependency direction not set (PR #11049 must block issue #6331) Core code change is correct and well-implemented. Please address the blockers and push a new commit for re-review. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
HAL9001 left a comment

Re-Review — PR #11049: fix(cli): fix invariant add scope handling

The PR head commit (a8a377d) has not changed since the previous REQUEST_CHANGES review (review #8310). All three blocking issues remain unresolved. Full checklist re-evaluation performed below.


What Still Passes

All checklist items that passed in the first review continue to pass — the code is unchanged:

  • CORRECTNESS: The _resolve_scope() fix is correct. flags_set == 0 raises BadParameter, the explicit is_global branch was added before the other scope checks, and the unreachable safety raise at the end is a good defensive addition.
  • SPECIFICATION ALIGNMENT: The fix aligns with spec. Module docstring updated correctly.
  • TYPE SAFETY: All type annotations present and correct. No # type: ignore added.
  • READABILITY: Clear, focused change. Variable names are descriptive. Logic is easy to follow.
  • PERFORMANCE: No concerns. The change is minimal and contained.
  • SECURITY: Input validation strengthened. No security concerns.
  • CODE STYLE: SOLID principles followed. File stays well under 500 lines. No style violations.
  • DOCUMENTATION: Module docstring updated. CHANGELOG and CONTRIBUTORS.md updated in the same commit.
  • COMMIT QUALITY: Single atomic commit. Conventional Changelog format used. Footer contains ISSUES CLOSED: #6331. Changelog and CONTRIBUTORS.md updated.

Blockers — All Still Unresolved (0/3 addressed)

Blocker 1 — CI is failing on all required gates (UNCHANGED)

CI is still failing on the same commit. The following required merge gates are still red:

  • CI / lint — failing after 14s
  • CI / typecheck — failing after 14s
  • CI / security — failing after 13s
  • CI / unit_tests — failing after 12s
  • CI / quality — failing after 12s
  • CI / e2e_tests — failing after 8s
  • CI / integration_tests — failing after 10s
  • CI / build — failing after 6s
  • CI / benchmark-regression — failing after 1m31s
  • CI / status-check — failing (aggregate gate)

The very short failure times (6–14s) across all jobs strongly suggest an infrastructure or import-level failure. Per company policy, all CI gates must be green before a PR can be approved or merged.

Required action: Fix the root cause of all CI failures and push a new commit (do NOT amend or force-push).

Blocker 2 — Missing @tdd_issue @tdd_issue_6331 regression tags on BDD scenarios (UNCHANGED)

I have re-read features/invariant_cli_new_coverage.feature in the current clone. Both regression scenarios are still missing the required tags:

Line 28Scenario: Resolve scope with no flags raises BadParameter — no @tdd_issue @tdd_issue_6331 tags
Line 67Scenario: Add invariant without scope flag via CLI — no @tdd_issue @tdd_issue_6331 tags

Issue #6331 is Type/Bug. Per CONTRIBUTING.md§TDD bug fix workflow, every Behave scenario that serves as a regression guard for a bug fix must carry both @tdd_issue (marks it as a TDD regression guard) and @tdd_issue_6331 (links it to this specific bug). Without these tags CI cannot validate the TDD workflow was followed, and traceability from bug → test → fix is broken.

Required action: Add @tdd_issue @tdd_issue_6331 on the line immediately before both scenarios.

Blocker 3 — PR Forgejo dependency direction not set (UNCHANGED)

I have re-checked the Forgejo dependency API. PR #11049 still has no dependency registered. Issue #6331 still shows only the old PR #6572 as a dependency — PR #11049 is not linked.

Required direction: PR #11049 → blocks → issue #6331

Per CONTRIBUTING.md, the PR must be registered as blocking the linked issue in Forgejo. The Closes #6331 keyword in the PR body handles auto-close on merge, but the explicit Forgejo dependency link is also required.

Required action: On PR #11049, add issue #6331 under the "Blocks" dependency section.


⚠️ Non-blocking Observations (carried forward, no action required)

  • Branch naming: fix/invariant-add-scope should be bugfix/m3-invariant-add-scope per convention. Cannot be renamed at this point — no action needed on this PR.
  • Priority label mismatch: Issue #6331 is Priority/High; PR #11049 is Priority/Medium. Per CONTRIBUTING.md, Type/Bug issues must always be Priority/Critical. Consider updating the issue label as a follow-up.

Required Actions Before Next Re-review

  1. Fix all CI failures and push a new commit
  2. Add @tdd_issue @tdd_issue_6331 to both regression BDD scenarios in features/invariant_cli_new_coverage.feature (lines 28 and 67)
  3. Set Forgejo dependency: PR #11049 → blocks → issue #6331

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

## Re-Review — PR #11049: `fix(cli): fix invariant add scope handling` The PR head commit (`a8a377d`) has not changed since the previous `REQUEST_CHANGES` review (review #8310). **All three blocking issues remain unresolved.** Full checklist re-evaluation performed below. --- ### ✅ What Still Passes All checklist items that passed in the first review continue to pass — the code is unchanged: - **CORRECTNESS**: The `_resolve_scope()` fix is correct. `flags_set == 0` raises `BadParameter`, the explicit `is_global` branch was added before the other scope checks, and the unreachable safety `raise` at the end is a good defensive addition. - **SPECIFICATION ALIGNMENT**: The fix aligns with spec. Module docstring updated correctly. - **TYPE SAFETY**: All type annotations present and correct. No `# type: ignore` added. ✅ - **READABILITY**: Clear, focused change. Variable names are descriptive. Logic is easy to follow. - **PERFORMANCE**: No concerns. The change is minimal and contained. - **SECURITY**: Input validation strengthened. No security concerns. - **CODE STYLE**: SOLID principles followed. File stays well under 500 lines. No style violations. - **DOCUMENTATION**: Module docstring updated. CHANGELOG and CONTRIBUTORS.md updated in the same commit. - **COMMIT QUALITY**: Single atomic commit. Conventional Changelog format used. Footer contains `ISSUES CLOSED: #6331`. Changelog and CONTRIBUTORS.md updated. --- ### ❌ Blockers — All Still Unresolved (0/3 addressed) #### Blocker 1 — CI is failing on all required gates (UNCHANGED) CI is still failing on the same commit. The following required merge gates are still red: - `CI / lint` — failing after 14s - `CI / typecheck` — failing after 14s - `CI / security` — failing after 13s - `CI / unit_tests` — failing after 12s - `CI / quality` — failing after 12s - `CI / e2e_tests` — failing after 8s - `CI / integration_tests` — failing after 10s - `CI / build` — failing after 6s - `CI / benchmark-regression` — failing after 1m31s - `CI / status-check` — failing (aggregate gate) The very short failure times (6–14s) across all jobs strongly suggest an infrastructure or import-level failure. Per company policy, all CI gates must be green before a PR can be approved or merged. **Required action**: Fix the root cause of all CI failures and push a **new commit** (do NOT amend or force-push). #### Blocker 2 — Missing `@tdd_issue @tdd_issue_6331` regression tags on BDD scenarios (UNCHANGED) I have re-read `features/invariant_cli_new_coverage.feature` in the current clone. Both regression scenarios are still missing the required tags: **Line 28** — `Scenario: Resolve scope with no flags raises BadParameter` — no `@tdd_issue @tdd_issue_6331` tags **Line 67** — `Scenario: Add invariant without scope flag via CLI` — no `@tdd_issue @tdd_issue_6331` tags Issue #6331 is `Type/Bug`. Per CONTRIBUTING.md§TDD bug fix workflow, every Behave scenario that serves as a regression guard for a bug fix must carry both `@tdd_issue` (marks it as a TDD regression guard) and `@tdd_issue_6331` (links it to this specific bug). Without these tags CI cannot validate the TDD workflow was followed, and traceability from bug → test → fix is broken. **Required action**: Add `@tdd_issue @tdd_issue_6331` on the line immediately before both scenarios. #### Blocker 3 — PR Forgejo dependency direction not set (UNCHANGED) I have re-checked the Forgejo dependency API. PR #11049 still has no dependency registered. Issue #6331 still shows only the old PR #6572 as a dependency — PR #11049 is not linked. Required direction: **PR #11049 → blocks → issue #6331** Per CONTRIBUTING.md, the PR must be registered as blocking the linked issue in Forgejo. The `Closes #6331` keyword in the PR body handles auto-close on merge, but the explicit Forgejo dependency link is also required. **Required action**: On PR #11049, add issue #6331 under the "Blocks" dependency section. --- ### ⚠️ Non-blocking Observations (carried forward, no action required) - **Branch naming**: `fix/invariant-add-scope` should be `bugfix/m3-invariant-add-scope` per convention. Cannot be renamed at this point — no action needed on this PR. - **Priority label mismatch**: Issue #6331 is `Priority/High`; PR #11049 is `Priority/Medium`. Per CONTRIBUTING.md, `Type/Bug` issues must always be `Priority/Critical`. Consider updating the issue label as a follow-up. --- ### Required Actions Before Next Re-review 1. ❌ Fix all CI failures and push a new commit 2. ❌ Add `@tdd_issue @tdd_issue_6331` to both regression BDD scenarios in `features/invariant_cli_new_coverage.feature` (lines 28 and 67) 3. ❌ Set Forgejo dependency: PR #11049 → blocks → issue #6331 --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -26,3 +26,3 @@
And the resolved invariant source name should be "deploy-service"
Scenario: Resolve scope with no flags defaults to GLOBAL
Scenario: Resolve scope with no flags raises BadParameter
Owner

BLOCKING — Missing @tdd_issue @tdd_issue_6331 regression tags (still not fixed)

This scenario was flagged in the previous review (review #8310) and the tags are still absent. Issue #6331 is Type/Bug, so both @tdd_issue and @tdd_issue_6331 tags are required on every regression scenario per CONTRIBUTING.md§TDD bug fix workflow.

Required fix — add both tags on the line immediately before this Scenario::

  @tdd_issue @tdd_issue_6331
  Scenario: Resolve scope with no flags raises BadParameter

Without these tags CI cannot validate the TDD workflow and traceability from bug → test → fix is broken.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — Missing `@tdd_issue @tdd_issue_6331` regression tags (still not fixed)** This scenario was flagged in the previous review (review #8310) and the tags are still absent. Issue #6331 is `Type/Bug`, so both `@tdd_issue` and `@tdd_issue_6331` tags are required on every regression scenario per CONTRIBUTING.md§TDD bug fix workflow. **Required fix** — add both tags on the line immediately before this `Scenario:`: ```gherkin @tdd_issue @tdd_issue_6331 Scenario: Resolve scope with no flags raises BadParameter ``` Without these tags CI cannot validate the TDD workflow and traceability from bug → test → fix is broken. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -65,6 +64,12 @@ Feature: Invariant CLI commands coverage
Then the invariant CLI exit code should be 0
And the invariant CLI output should contain "Invariant added"
Scenario: Add invariant without scope flag via CLI
Owner

BLOCKING — Missing @tdd_issue @tdd_issue_6331 regression tags (still not fixed)

This scenario was also flagged in the previous review (review #8310) and the tags are still absent. Both regression guard scenarios for bug #6331 must carry @tdd_issue @tdd_issue_6331.

Required fix — add both tags on the line immediately before this Scenario::

  @tdd_issue @tdd_issue_6331
  Scenario: Add invariant without scope flag via CLI

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

**BLOCKING — Missing `@tdd_issue @tdd_issue_6331` regression tags (still not fixed)** This scenario was also flagged in the previous review (review #8310) and the tags are still absent. Both regression guard scenarios for bug #6331 must carry `@tdd_issue @tdd_issue_6331`. **Required fix** — add both tags on the line immediately before this `Scenario:`: ```gherkin @tdd_issue @tdd_issue_6331 Scenario: Add invariant without scope flag via CLI ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

Re-review submitted as REQUEST_CHANGES (review ID 8325) on commit a8a377d13ae621870df647b45670e2c2e3416f5f.

The PR head commit has not changed since the prior review (review #8310). All 3 blockers from the previous review remain unresolved:

  1. CI is still failing on all required gates (lint, typecheck, security, unit_tests, quality, integration_tests, build, benchmark-regression, status-check)
  2. @tdd_issue @tdd_issue_6331 regression tags still missing from both BDD scenarios in features/invariant_cli_new_coverage.feature (lines 28 and 67)
  3. Forgejo dependency not set (PR #11049 must block issue #6331)

Core code change remains correct and well-implemented. Please address all three blockers and push a new commit for re-review.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

Re-review submitted as `REQUEST_CHANGES` (review ID 8325) on commit `a8a377d13ae621870df647b45670e2c2e3416f5f`. The PR head commit has not changed since the prior review (review #8310). **All 3 blockers from the previous review remain unresolved:** 1. ❌ CI is still failing on all required gates (lint, typecheck, security, unit_tests, quality, integration_tests, build, benchmark-regression, status-check) 2. ❌ `@tdd_issue @tdd_issue_6331` regression tags still missing from both BDD scenarios in `features/invariant_cli_new_coverage.feature` (lines 28 and 67) 3. ❌ Forgejo dependency not set (PR #11049 must block issue #6331) Core code change remains correct and well-implemented. Please address all three blockers and push a new commit for re-review. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Some checks failed
CI / security (pull_request) Failing after 13s
Required
Details
CI / unit_tests (pull_request) Failing after 12s
Required
Details
CI / quality (pull_request) Failing after 12s
Required
Details
CI / e2e_tests (pull_request) Failing after 8s
CI / lint (pull_request) Failing after 14s
Required
Details
CI / typecheck (pull_request) Failing after 14s
Required
Details
CI / integration_tests (pull_request) Failing after 10s
Required
Details
CI / build (pull_request) Failing after 6s
Required
Details
CI / coverage (pull_request) Has been skipped
Required
Details
CI / docker (pull_request) Has been skipped
Required
Details
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 25s
CI / helm (pull_request) Successful in 29s
CI / status-check (pull_request) Failing after 5s
CI / benchmark-regression (pull_request) Failing after 1m31s
This pull request has changes conflicting with the target branch.
  • CONTRIBUTORS.md
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/invariant-add-scope:fix/invariant-add-scope
git switch fix/invariant-add-scope
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!11049
No description provided.