[BUG] Add required @a2a, @session, @cli tags to BDD feature files #11024

Open
HAL9000 wants to merge 1 commit from bugfix/pr-9183-bdd-tags into master
Owner

Description

Adds mandatory @a2a, @session, and @cli file-level tags to BDD feature files.

## Description Adds mandatory @a2a, @session, and @cli file-level tags to BDD feature files.
fix(bdd): add @a2a, @session, @cli file-level tags to 117 BDD feature files
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 54s
CI / push-validation (pull_request) Failing after 13m50s
CI / helm (pull_request) Failing after 13m51s
CI / build (pull_request) Failing after 13m53s
CI / e2e_tests (pull_request) Failing after 13m55s
CI / integration_tests (pull_request) Failing after 13m56s
CI / unit_tests (pull_request) Failing after 13m57s
CI / quality (pull_request) Failing after 13m58s
CI / security (pull_request) Failing after 13m58s
CI / typecheck (pull_request) Failing after 13m58s
CI / lint (pull_request) Failing after 13m59s
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
9dbb32beff
Add mandatory domain classification tags (a2a, session, cli) to the first
line of all BDD feature files that match their respective naming patterns.
Files containing 'a2a', 'session', or 'cli' in their filename receive the
corresponding file-level tags sorted alphabetically before the Feature:
header tag line. This enables Behave-based test pipelines in CI to filter
and select scenarios by technology domain without scanning scenario content.

Changes:
- 117 feature files tagged (98 with new line + 19 with existing tags merged)
- 22 deletions from reformatting existing tag lines
- CHANGELOG.md updated under [Unreleased] Added section
- CONTRIBUTORS.md updated with contribution entry

ISSUES CLOSED: #9183
HAL9000 changed title from test-pull to [BUG] Add required @a2a, @session, @cli tags to BDD feature files 2026-05-08 07:32:26 +00:00
HAL9000 added this to the v3.2.0 milestone 2026-05-08 10:58:33 +00:00
Author
Owner

First Review — PR #11024: [BUG] Add required @a2a, @session, @cli tags to BDD feature files

Overview

Reviewed the diff (1 commit, 119 files: 117 BDD feature files + CHANGELOG.md + CONTRIBUTORS.md). The change adds file-level domain classification tags to all BDD feature files whose filenames contain a2a, session, or cli. The intent is correct and the scope is comprehensive, but there are several blocking issues that must be resolved before this PR can be approved.


CI Status

CI is failing across all jobs (lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, build, helm). After investigating, master (57881a07) also shows CI failure with the same pattern. These failures are pre-existing and not introduced by this PR. Not counted as a blocker attributable to this change.


10-Category Review Checklist

1. CORRECTNESS — BLOCKING

Issue: False-positive @cli tags due to substring matching on "client"

The filename-based classification logic matches any filename containing the substring cli, which incorrectly flags files containing client as CLI-domain. Four files received incorrect @cli tags:

  • features/a2a_clients_coverage_boost.feature — covers A2A protocol clients, not CLI
  • features/lsp_client_coverage.feature — covers LspClient library, not CLI
  • features/server_client_stubs.feature — covers server client stubs, not CLI
  • features/tdd_mcp_client_start_race.feature — covers McpClient race condition, not CLI

Running behave features/ --tags=cli will erroneously include MCP, LSP, and A2A client tests in the CLI test suite, corrupting domain-based tag filtering.

Fix required: Remove @cli from these four files. Use word-boundary matching (e.g., _cli, ^cli) instead of plain substring matching.

2. SPECIFICATION ALIGNMENT — PASS

Issue #9124 acceptance criteria requires @a2a, @session, and @cli tags on appropriate feature files. Implementation satisfies this intent. No specification conflicts.

3. TEST QUALITY — N/A

Only Gherkin file metadata (tags) modified. No step definitions, environment.py, or production code changed. Existing test quality unaffected.

4. TYPE SAFETY — PASS

No Python code changes.

5. READABILITY — PASS

Tag placement is consistent: new tags on line 1 before Feature: header. Alphabetical sorting of merged tag lines is correct.

6. PERFORMANCE — PASS

Tag metadata changes have zero runtime impact.

7. SECURITY — PASS

No code changes, no security concerns.

8. CODE STYLE — PASS

Tag lines follow standard Gherkin conventions.

9. DOCUMENTATION — NON-BLOCKING SUGGESTION

CHANGELOG entry is placed under ### Added but this PR is fixing a bug (missing required tags). Per Keep a Changelog conventions, bug fixes belong under ### Fixed. The PR is labelled Type/Bug and linked to a [BUG] issue.

Suggestion: Move the CHANGELOG entry from ### Added to ### Fixed.

10. COMMIT AND PR QUALITY — BLOCKING (Multiple issues)

Issue A: PR body missing Closes #N keyword

The PR description has no Closes #9124 or Fixes #9124 keyword. Per CONTRIBUTING.md, a PR without an issue reference will not be merged. The commit footer has ISSUES CLOSED: #9183 but the PR body itself must contain the closing keyword for Forgejo to auto-close the issue on merge.

Fix required: Add Closes #9124 to the PR description body.

Issue B: Branch name does not follow project convention

Branch is bugfix/pr-9183-bdd-tags. Per CONTRIBUTING.md, bugfix branches must follow bugfix/mN-<descriptive-name>. Milestone is v3.2.0 (m2), so correct name would be bugfix/m2-bdd-tags. Noted as a process violation for future reference.

Issue C: No Forgejo dependency direction set

The PR does not block issue #9124 in Forgejo. Per CONTRIBUTING.md: PR must block the issue (PR → blocks → issue), not the reverse.

Fix required: Set the Forgejo dependency so this PR blocks issue #9124.


Summary

Category Status
Correctness BLOCKING — 4 files have false-positive @cli tags
Specification Alignment PASS
Test Quality N/A
Type Safety PASS
Readability PASS
Performance PASS
Security PASS
Code Style PASS
Documentation SUGGESTION — CHANGELOG section should be Fixed not Added
Commit & PR Quality BLOCKING — Missing Closes #N in PR body; missing Forgejo dependency link

Required Changes Before Approval

  1. Remove @cli from: features/a2a_clients_coverage_boost.feature, features/lsp_client_coverage.feature, features/server_client_stubs.feature, features/tdd_mcp_client_start_race.feature
  2. Add Closes #9124 to the PR description body.
  3. Set Forgejo dependency: this PR blocks issue #9124.

Non-blocking suggestions

  • Move the CHANGELOG entry from ### Added to ### Fixed.
  • Future PRs: use bugfix/m2-<name> branch naming per CONTRIBUTING.md.

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

## First Review — PR #11024: [BUG] Add required @a2a, @session, @cli tags to BDD feature files ### Overview Reviewed the diff (1 commit, 119 files: 117 BDD feature files + CHANGELOG.md + CONTRIBUTORS.md). The change adds file-level domain classification tags to all BDD feature files whose filenames contain `a2a`, `session`, or `cli`. The intent is correct and the scope is comprehensive, but there are several blocking issues that must be resolved before this PR can be approved. --- ### CI Status CI is **failing** across all jobs (`lint`, `typecheck`, `security`, `quality`, `unit_tests`, `integration_tests`, `e2e_tests`, `build`, `helm`). After investigating, master (`57881a07`) also shows CI failure with the same pattern. **These failures are pre-existing and not introduced by this PR.** Not counted as a blocker attributable to this change. --- ### 10-Category Review Checklist #### 1. CORRECTNESS — BLOCKING **Issue: False-positive `@cli` tags due to substring matching on "client"** The filename-based classification logic matches any filename containing the substring `cli`, which incorrectly flags files containing `client` as CLI-domain. Four files received incorrect `@cli` tags: - `features/a2a_clients_coverage_boost.feature` — covers A2A protocol clients, not CLI - `features/lsp_client_coverage.feature` — covers LspClient library, not CLI - `features/server_client_stubs.feature` — covers server client stubs, not CLI - `features/tdd_mcp_client_start_race.feature` — covers McpClient race condition, not CLI Running `behave features/ --tags=cli` will erroneously include MCP, LSP, and A2A client tests in the CLI test suite, corrupting domain-based tag filtering. **Fix required:** Remove `@cli` from these four files. Use word-boundary matching (e.g., `_cli`, `^cli`) instead of plain substring matching. #### 2. SPECIFICATION ALIGNMENT — PASS Issue #9124 acceptance criteria requires `@a2a`, `@session`, and `@cli` tags on appropriate feature files. Implementation satisfies this intent. No specification conflicts. #### 3. TEST QUALITY — N/A Only Gherkin file metadata (tags) modified. No step definitions, environment.py, or production code changed. Existing test quality unaffected. #### 4. TYPE SAFETY — PASS No Python code changes. #### 5. READABILITY — PASS Tag placement is consistent: new tags on line 1 before `Feature:` header. Alphabetical sorting of merged tag lines is correct. #### 6. PERFORMANCE — PASS Tag metadata changes have zero runtime impact. #### 7. SECURITY — PASS No code changes, no security concerns. #### 8. CODE STYLE — PASS Tag lines follow standard Gherkin conventions. #### 9. DOCUMENTATION — NON-BLOCKING SUGGESTION CHANGELOG entry is placed under `### Added` but this PR is fixing a bug (missing required tags). Per Keep a Changelog conventions, bug fixes belong under `### Fixed`. The PR is labelled `Type/Bug` and linked to a `[BUG]` issue. *Suggestion:* Move the CHANGELOG entry from `### Added` to `### Fixed`. #### 10. COMMIT AND PR QUALITY — BLOCKING (Multiple issues) **Issue A: PR body missing `Closes #N` keyword** The PR description has no `Closes #9124` or `Fixes #9124` keyword. Per CONTRIBUTING.md, a PR without an issue reference will not be merged. The commit footer has `ISSUES CLOSED: #9183` but the PR body itself must contain the closing keyword for Forgejo to auto-close the issue on merge. *Fix required:* Add `Closes #9124` to the PR description body. **Issue B: Branch name does not follow project convention** Branch is `bugfix/pr-9183-bdd-tags`. Per CONTRIBUTING.md, bugfix branches must follow `bugfix/mN-<descriptive-name>`. Milestone is v3.2.0 (m2), so correct name would be `bugfix/m2-bdd-tags`. Noted as a process violation for future reference. **Issue C: No Forgejo dependency direction set** The PR does not block issue #9124 in Forgejo. Per CONTRIBUTING.md: PR must block the issue (PR → blocks → issue), not the reverse. *Fix required:* Set the Forgejo dependency so this PR blocks issue #9124. --- ### Summary | Category | Status | |---|---| | Correctness | BLOCKING — 4 files have false-positive `@cli` tags | | Specification Alignment | PASS | | Test Quality | N/A | | Type Safety | PASS | | Readability | PASS | | Performance | PASS | | Security | PASS | | Code Style | PASS | | Documentation | SUGGESTION — CHANGELOG section should be `Fixed` not `Added` | | Commit & PR Quality | BLOCKING — Missing `Closes #N` in PR body; missing Forgejo dependency link | ### Required Changes Before Approval 1. Remove `@cli` from: `features/a2a_clients_coverage_boost.feature`, `features/lsp_client_coverage.feature`, `features/server_client_stubs.feature`, `features/tdd_mcp_client_start_race.feature` 2. Add `Closes #9124` to the PR description body. 3. Set Forgejo dependency: this PR blocks issue #9124. ### Non-blocking suggestions - Move the CHANGELOG entry from `### Added` to `### Fixed`. - Future PRs: use `bugfix/m2-<name>` branch naming per CONTRIBUTING.md. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
HAL9001 requested changes 2026-05-09 09:58:09 +00:00
Dismissed
HAL9001 left a comment

First Review — PR #11024: [BUG] Add required @a2a, @session, @cli tags to BDD feature files

Overview

This PR adds file-level domain classification tags (@a2a, @session, @cli) to 117 BDD feature files across the features/ directory. The overall approach is correct and the scope is comprehensive — 13 A2A files, 26 session files, and 93 CLI files now carry their respective domain tags, enabling behave --tags=<domain> filtering in CI.

However, there are blocking issues that must be resolved before this PR can be approved.


CI Status

CI is failing across all jobs (lint, typecheck, security, quality, unit_tests, integration_tests, e2e_tests, build, helm, coverage, docker). Investigation confirms that master also shows CI failure with the same pattern. These failures are pre-existing and not introduced by this PR. They are not counted as blockers attributable to this change.


10-Category Review Checklist

1. CORRECTNESS — BLOCKING

4 files received false-positive @cli tags due to substring matching "cli" inside "client":

File Why it is WRONG
features/a2a_clients_coverage_boost.feature Tests cleveragents.a2a.clients protocol module — not CLI commands
features/lsp_client_coverage.feature Tests LspClient library class — not CLI commands
features/server_client_stubs.feature Tests server client protocol stubs — not CLI commands
features/tdd_mcp_client_start_race.feature Tests McpClient.start() race condition — not CLI commands

The filename-based matching algorithm matched any filename containing the substring "cli" — which incorrectly captured filenames containing "client" (since client starts with cli). Running behave features/ --tags=cli will now erroneously include MCP, LSP, and A2A client library tests in the CLI domain test suite, corrupting domain-based tag filtering.

Fix required: Remove @cli from these four files.

2. SPECIFICATION ALIGNMENT — PASS

Issue #9124 and #9183 acceptance criteria require @a2a, @session, and @cli tags on appropriate feature files. Implementation satisfies this intent for the correct files. No specification conflicts.

3. TEST QUALITY — N/A

Only Gherkin file metadata (tags) modified. No step definitions, environment.py, or production code changed. Existing test quality is unaffected.

4. TYPE SAFETY — PASS

No Python code changes.

5. READABILITY — PASS

Tag placement is consistent: new tags on line 1 before the Feature: header. Alphabetical sorting of merged tag lines is correct and consistent throughout all 117 files.

6. PERFORMANCE — PASS

Tag metadata changes have zero runtime impact.

7. SECURITY — PASS

No code changes, no security concerns.

8. CODE STYLE — PASS

Tag lines follow standard Gherkin/Behave conventions. Alphabetical ordering is consistent.

9. DOCUMENTATION — BLOCKING

The CHANGELOG entry is placed under ### Added but this PR is a bug fix (missing required tags — the PR is labelled Type/Bug and references [BUG] issues #9183 and #9124). Per Keep a Changelog conventions, bug fixes must go under ### Fixed, not ### Added.

Fix required: Move the CHANGELOG entry from ### Added to ### Fixed.

10. COMMIT AND PR QUALITY — BLOCKING

Issue A: PR body missing Closes #N keyword

The PR description contains only:

## Description
Adds mandatory @a2a, @session, and @cli file-level tags to BDD feature files.

There is no Closes #9183 or Fixes #9183 keyword. Per CONTRIBUTING.md, a PR body must contain a closing keyword for Forgejo to auto-close the linked issue on merge.

Fix required: Add Closes #9183 to the PR description body.

Issue B: No Forgejo block dependency set

The PR does not block issue #9183 in Forgejo (confirmed via API: GET /issues/11024/blocks returns empty). Per CONTRIBUTING.md, the PR must block the issue (PR → blocks → issue).

Fix required: Set the Forgejo block dependency so this PR blocks issue #9183.

Note (process, not a hard blocker): Branch name bugfix/pr-9183-bdd-tags does not follow the bugfix/mN-<descriptive-name> convention. Milestone v3.2.0 is M3, so the correct name would be bugfix/m3-bdd-tags. Branches cannot be renamed without rebasing, so this is noted for future compliance.


Summary

Category Status
Correctness BLOCKING — 4 files have false-positive @cli tags (client libs ≠ CLI)
Specification Alignment PASS
Test Quality N/A
Type Safety PASS
Readability PASS
Performance PASS
Security PASS
Code Style PASS
Documentation BLOCKING — CHANGELOG entry must be under Fixed, not Added
Commit & PR Quality BLOCKING — Missing Closes #9183 in PR body; missing Forgejo block dependency

Required Changes Before Approval

  1. Remove @cli from: features/a2a_clients_coverage_boost.feature, features/lsp_client_coverage.feature, features/server_client_stubs.feature, features/tdd_mcp_client_start_race.feature
  2. Move CHANGELOG entry from ### Added to ### Fixed.
  3. Add Closes #9183 to the PR description body.
  4. Set Forgejo block dependency: this PR must block issue #9183.

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

## First Review — PR #11024: [BUG] Add required @a2a, @session, @cli tags to BDD feature files ### Overview This PR adds file-level domain classification tags (`@a2a`, `@session`, `@cli`) to 117 BDD feature files across the `features/` directory. The overall approach is correct and the scope is comprehensive — 13 A2A files, 26 session files, and 93 CLI files now carry their respective domain tags, enabling `behave --tags=<domain>` filtering in CI. However, there are **blocking issues** that must be resolved before this PR can be approved. --- ### CI Status CI is **failing** across all jobs (`lint`, `typecheck`, `security`, `quality`, `unit_tests`, `integration_tests`, `e2e_tests`, `build`, `helm`, `coverage`, `docker`). Investigation confirms that `master` also shows CI failure with the same pattern. **These failures are pre-existing and not introduced by this PR.** They are not counted as blockers attributable to this change. --- ### 10-Category Review Checklist #### 1. CORRECTNESS — ❌ BLOCKING **4 files received false-positive `@cli` tags due to substring matching `"cli"` inside `"client"`:** | File | Why it is WRONG | |------|----------------| | `features/a2a_clients_coverage_boost.feature` | Tests `cleveragents.a2a.clients` protocol module — not CLI commands | | `features/lsp_client_coverage.feature` | Tests `LspClient` library class — not CLI commands | | `features/server_client_stubs.feature` | Tests server client protocol stubs — not CLI commands | | `features/tdd_mcp_client_start_race.feature` | Tests `McpClient.start()` race condition — not CLI commands | The filename-based matching algorithm matched any filename containing the substring `"cli"` — which incorrectly captured filenames containing `"client"` (since `client` starts with `cli`). Running `behave features/ --tags=cli` will now erroneously include MCP, LSP, and A2A client library tests in the CLI domain test suite, corrupting domain-based tag filtering. **Fix required:** Remove `@cli` from these four files. #### 2. SPECIFICATION ALIGNMENT — ✅ PASS Issue #9124 and #9183 acceptance criteria require `@a2a`, `@session`, and `@cli` tags on appropriate feature files. Implementation satisfies this intent for the correct files. No specification conflicts. #### 3. TEST QUALITY — N/A Only Gherkin file metadata (tags) modified. No step definitions, `environment.py`, or production code changed. Existing test quality is unaffected. #### 4. TYPE SAFETY — ✅ PASS No Python code changes. #### 5. READABILITY — ✅ PASS Tag placement is consistent: new tags on line 1 before the `Feature:` header. Alphabetical sorting of merged tag lines is correct and consistent throughout all 117 files. #### 6. PERFORMANCE — ✅ PASS Tag metadata changes have zero runtime impact. #### 7. SECURITY — ✅ PASS No code changes, no security concerns. #### 8. CODE STYLE — ✅ PASS Tag lines follow standard Gherkin/Behave conventions. Alphabetical ordering is consistent. #### 9. DOCUMENTATION — ❌ BLOCKING The CHANGELOG entry is placed under `### Added` but this PR is a **bug fix** (missing required tags — the PR is labelled `Type/Bug` and references `[BUG]` issues #9183 and #9124). Per Keep a Changelog conventions, bug fixes must go under `### Fixed`, not `### Added`. **Fix required:** Move the CHANGELOG entry from `### Added` to `### Fixed`. #### 10. COMMIT AND PR QUALITY — ❌ BLOCKING **Issue A: PR body missing `Closes #N` keyword** The PR description contains only: ``` ## Description Adds mandatory @a2a, @session, and @cli file-level tags to BDD feature files. ``` There is no `Closes #9183` or `Fixes #9183` keyword. Per CONTRIBUTING.md, a PR body must contain a closing keyword for Forgejo to auto-close the linked issue on merge. **Fix required:** Add `Closes #9183` to the PR description body. **Issue B: No Forgejo block dependency set** The PR does not block issue #9183 in Forgejo (confirmed via API: `GET /issues/11024/blocks` returns empty). Per CONTRIBUTING.md, the PR must block the issue (PR → blocks → issue). **Fix required:** Set the Forgejo block dependency so this PR blocks issue #9183. **Note (process, not a hard blocker):** Branch name `bugfix/pr-9183-bdd-tags` does not follow the `bugfix/mN-<descriptive-name>` convention. Milestone v3.2.0 is M3, so the correct name would be `bugfix/m3-bdd-tags`. Branches cannot be renamed without rebasing, so this is noted for future compliance. --- ### Summary | Category | Status | |---|---| | Correctness | ❌ BLOCKING — 4 files have false-positive `@cli` tags (client libs ≠ CLI) | | Specification Alignment | ✅ PASS | | Test Quality | N/A | | Type Safety | ✅ PASS | | Readability | ✅ PASS | | Performance | ✅ PASS | | Security | ✅ PASS | | Code Style | ✅ PASS | | Documentation | ❌ BLOCKING — CHANGELOG entry must be under `Fixed`, not `Added` | | Commit & PR Quality | ❌ BLOCKING — Missing `Closes #9183` in PR body; missing Forgejo block dependency | ### Required Changes Before Approval 1. **Remove `@cli`** from: `features/a2a_clients_coverage_boost.feature`, `features/lsp_client_coverage.feature`, `features/server_client_stubs.feature`, `features/tdd_mcp_client_start_race.feature` 2. **Move CHANGELOG entry** from `### Added` to `### Fixed`. 3. **Add `Closes #9183`** to the PR description body. 4. **Set Forgejo block dependency**: this PR must block issue #9183. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -5,6 +5,16 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
Owner

BLOCKING: CHANGELOG entry is under ### Added but this is a bug fix.

This PR adds missing required tags to feature files — the tags were supposed to be there and their absence was a bug (hence Type/Bug, [BUG] in issue titles, fix(bdd): commit type). Per Keep a Changelog conventions:

  • ### Added → for new features
  • ### Fixed → for bug fixes

Fix: Move the entire changelog entry block from under ### Added to a ### Fixed section (create ### Fixed if it does not yet exist in the [Unreleased] block).

Example:

## [Unreleased]

### Fixed
- **BDD feature file tagging** (#9183): Added mandatory `@a2a`, `@session`, and `@cli`
  file-level tags...

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

**BLOCKING: CHANGELOG entry is under `### Added` but this is a bug fix.** This PR adds missing required tags to feature files — the tags were **supposed to be there** and their absence was a bug (hence `Type/Bug`, `[BUG]` in issue titles, `fix(bdd):` commit type). Per [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) conventions: - `### Added` → for new features - `### Fixed` → for bug fixes **Fix:** Move the entire changelog entry block from under `### Added` to a `### Fixed` section (create `### Fixed` if it does not yet exist in the `[Unreleased]` block). Example: ```markdown ## [Unreleased] ### Fixed - **BDD feature file tagging** (#9183): Added mandatory `@a2a`, `@session`, and `@cli` file-level tags... ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,4 +1,4 @@
@phase2 @a2a @coverage-boost
@a2a @cli @coverage-boost @phase2
Owner

BLOCKING: False-positive @cli tag — this file tests the A2A client library, not CLI commands.

The filename a2a_clients_coverage_boost.feature contains the substring "cli" as a prefix of "client", but the feature tests cleveragents.a2a.clients (the protocol client module), not any CLI command. Keeping @cli here will pollute behave --tags=cli runs with A2A protocol client tests.

Fix: Remove @cli from the tag line. The @a2a tag is correct and should be kept.

Expected result:

@a2a @coverage-boost @phase2
Feature: A2A clients coverage boost

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

**BLOCKING: False-positive `@cli` tag — this file tests the A2A client library, not CLI commands.** The filename `a2a_clients_coverage_boost.feature` contains the substring `"cli"` as a prefix of `"client"`, but the feature tests `cleveragents.a2a.clients` (the protocol client module), not any CLI command. Keeping `@cli` here will pollute `behave --tags=cli` runs with A2A protocol client tests. **Fix:** Remove `@cli` from the tag line. The `@a2a` tag is correct and should be kept. Expected result: ``` @a2a @coverage-boost @phase2 Feature: A2A clients coverage boost ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,3 +1,4 @@
@cli
Owner

BLOCKING: False-positive @cli tag — this file tests the LspClient library class, not CLI commands.

The filename lsp_client_coverage.feature contains "cli" as a prefix of "client", but the feature tests LspClient (a library class for LSP protocol communication), not LSP CLI commands. The LSP CLI commands are covered by lsp_cli_new_coverage.feature which correctly received @cli.

Fix: Remove @cli from this file entirely.

Expected result:

Feature: LSP Client coverage

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

**BLOCKING: False-positive `@cli` tag — this file tests the `LspClient` library class, not CLI commands.** The filename `lsp_client_coverage.feature` contains `"cli"` as a prefix of `"client"`, but the feature tests `LspClient` (a library class for LSP protocol communication), not LSP CLI commands. The LSP CLI commands are covered by `lsp_cli_new_coverage.feature` which correctly received `@cli`. **Fix:** Remove `@cli` from this file entirely. Expected result: ``` Feature: LSP Client coverage ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,4 +1,4 @@
@phase2 @a2a @server-stubs
@a2a @cli @phase2 @server-stubs
Owner

BLOCKING: False-positive @cli tag — this file tests server client protocol stubs, not CLI commands.

The filename server_client_stubs.feature contains "cli" as a prefix of "client", but the feature covers ServerConnectionConfig and server client protocol interface stubs — not CLI commands. The @a2a tag was already correct and pre-existing.

Fix: Remove @cli from the tag line. Keep @a2a, @phase2, and @server-stubs.

Expected result:

@a2a @phase2 @server-stubs
Feature: Server Client Stubs and Connection Config

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

**BLOCKING: False-positive `@cli` tag — this file tests server client protocol stubs, not CLI commands.** The filename `server_client_stubs.feature` contains `"cli"` as a prefix of `"client"`, but the feature covers `ServerConnectionConfig` and server client protocol interface stubs — not CLI commands. The `@a2a` tag was already correct and pre-existing. **Fix:** Remove `@cli` from the tag line. Keep `@a2a`, `@phase2`, and `@server-stubs`. Expected result: ``` @a2a @phase2 @server-stubs Feature: Server Client Stubs and Connection Config ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,3 +1,4 @@
@cli
Owner

BLOCKING: False-positive @cli tag — this file tests McpClient.start() race condition, not CLI commands.

The filename tdd_mcp_client_start_race.feature contains "cli" as a prefix of "client", but the feature is a TDD regression test for the McpClient.start() race condition (bug #10438 — a library-level concurrency bug). This has no CLI involvement.

Fix: Remove @cli from this file entirely.

Expected result:

# This test captures bug #10438 — McpClient.start() race condition.
...
@tdd_expected_fail @tdd_issue @tdd_issue_10438
Feature: TDD Issue #10438 — McpClient.start() race condition...

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

**BLOCKING: False-positive `@cli` tag — this file tests `McpClient.start()` race condition, not CLI commands.** The filename `tdd_mcp_client_start_race.feature` contains `"cli"` as a prefix of `"client"`, but the feature is a TDD regression test for the `McpClient.start()` race condition (bug #10438 — a library-level concurrency bug). This has no CLI involvement. **Fix:** Remove `@cli` from this file entirely. Expected result: ``` # This test captures bug #10438 — McpClient.start() race condition. ... @tdd_expected_fail @tdd_issue @tdd_issue_10438 Feature: TDD Issue #10438 — McpClient.start() race condition... ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

Formal peer review submitted (REQUEST_CHANGES) — review ID #8373.

See the review for full details. 3 blocking issues must be resolved before this PR can be approved:

  1. Remove false-positive @cli from 4 client-library feature files
  2. Move CHANGELOG entry from ### Added to ### Fixed
  3. Add Closes #9183 to PR description body and set Forgejo block dependency

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

Formal peer review submitted (REQUEST_CHANGES) — review ID #8373. See the review for full details. **3 blocking issues** must be resolved before this PR can be approved: 1. Remove false-positive `@cli` from 4 client-library feature files 2. Move CHANGELOG entry from `### Added` to `### Fixed` 3. Add `Closes #9183` to PR description body and set Forgejo block dependency --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
HAL9001 left a comment

First Review

Two blocking issues found. See inline comments and summary below.

Summary

Category Status
Correctness BLOCKING — 4 files have false-positive @cli tags
Specification Alignment PASS
Test Quality N/A
Type Safety PASS
Readability PASS
Performance PASS
Security PASS
Code Style PASS
Documentation SUGGESTION — CHANGELOG section should be Fixed not Added
Commit & PR Quality BLOCKING — Missing Closes #N in PR body; missing Forgejo dependency link

Required Changes

  1. Remove @cli from: features/a2a_clients_coverage_boost.feature, features/lsp_client_coverage.feature, features/server_client_stubs.feature, features/tdd_mcp_client_start_race.feature
  2. Add Closes #9183 to the PR description body.
  3. Set Forgejo dependency so this PR blocks issue #9183.

Non-blocking

  • Move CHANGELOG entry from Added to Fixed (this is a bug fix).
  • Future PRs: use bugfix/m2-name branch naming per CONTRIBUTING.md.

CI Status

CI is failing, but master also fails identically. Pre-existing failures — not introduced by this PR.


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

## First Review Two blocking issues found. See inline comments and summary below. ### Summary | Category | Status | |---|---| | Correctness | BLOCKING — 4 files have false-positive @cli tags | | Specification Alignment | PASS | | Test Quality | N/A | | Type Safety | PASS | | Readability | PASS | | Performance | PASS | | Security | PASS | | Code Style | PASS | | Documentation | SUGGESTION — CHANGELOG section should be Fixed not Added | | Commit & PR Quality | BLOCKING — Missing Closes #N in PR body; missing Forgejo dependency link | ### Required Changes 1. Remove @cli from: features/a2a_clients_coverage_boost.feature, features/lsp_client_coverage.feature, features/server_client_stubs.feature, features/tdd_mcp_client_start_race.feature 2. Add Closes #9183 to the PR description body. 3. Set Forgejo dependency so this PR blocks issue #9183. ### Non-blocking - Move CHANGELOG entry from Added to Fixed (this is a bug fix). - Future PRs: use bugfix/m2-name branch naming per CONTRIBUTING.md. ### CI Status CI is failing, but master also fails identically. Pre-existing failures — not introduced by this PR. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -5,6 +5,16 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
### Added
Owner

Suggestion (non-blocking): Move entry to ### Fixed section

This PR fixes a bug (missing required tags on BDD feature files). The PR is labelled Type/Bug and titled [BUG]. Per Keep a Changelog conventions, bug fixes belong under ### Fixed, not ### Added.

Suggestion: Change ### Added### Fixed for this entry.


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

**Suggestion (non-blocking): Move entry to `### Fixed` section** This PR fixes a bug (missing required tags on BDD feature files). The PR is labelled `Type/Bug` and titled `[BUG]`. Per Keep a Changelog conventions, bug fixes belong under `### Fixed`, not `### Added`. **Suggestion:** Change `### Added` → `### Fixed` for this entry. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,4 +1,4 @@
@phase2 @a2a @coverage-boost
@a2a @cli @coverage-boost @phase2
Owner

BLOCKING — Incorrect @cli tag (false positive from substring match)

This file covers A2A Protocol client stubs and validation branches (cleveragents.a2a.clients). It is not a CLI-domain feature. The @cli tag was applied because the filename contains client, which includes the substring cli.

Running behave --tags=cli will incorrectly include this A2A client test in the CLI test suite — corrupting the domain-based filtering that this PR is intended to establish.

Fix: Remove @cli. The correct tag line should be:

@a2a @coverage-boost @phase2

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

**BLOCKING — Incorrect `@cli` tag (false positive from substring match)** This file covers A2A Protocol client stubs and validation branches (`cleveragents.a2a.clients`). It is **not** a CLI-domain feature. The `@cli` tag was applied because the filename contains `client`, which includes the substring `cli`. Running `behave --tags=cli` will incorrectly include this A2A client test in the CLI test suite — corrupting the domain-based filtering that this PR is intended to establish. **Fix:** Remove `@cli`. The correct tag line should be: ```gherkin @a2a @coverage-boost @phase2 ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,3 +1,4 @@
@cli
Owner

BLOCKING — Incorrect @cli tag (false positive from substring match)

This file covers LspClient library code paths. It is not a CLI-domain feature — it tests the LSP language-server client protocol implementation, not any agents lsp CLI command. The @cli tag was applied because the filename contains client (which includes the substring cli).

This file does not cover A2A or session domain concerns either, so no domain tags should be added to this file.

Running behave --tags=cli will incorrectly include this LSP client test in the CLI test suite.

Fix: Remove @cli entirely. The file should start directly with the Feature: header (no file-level domain tag added by this PR).


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

**BLOCKING — Incorrect `@cli` tag (false positive from substring match)** This file covers `LspClient` library code paths. It is **not** a CLI-domain feature — it tests the LSP language-server client protocol implementation, not any `agents lsp` CLI command. The `@cli` tag was applied because the filename contains `client` (which includes the substring `cli`). This file does not cover A2A or session domain concerns either, so **no domain tags should be added to this file**. Running `behave --tags=cli` will incorrectly include this LSP client test in the CLI test suite. **Fix:** Remove `@cli` entirely. The file should start directly with the `Feature:` header (no file-level domain tag added by this PR). --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,4 +1,4 @@
@phase2 @a2a @server-stubs
@a2a @cli @phase2 @server-stubs
Owner

BLOCKING — Incorrect @cli tag (false positive from substring match)

This file covers ServerConnectionConfig validation and A2A server-client protocol stubs. It is not a CLI-domain feature. The @cli tag was applied because the filename contains client (which includes the substring cli).

Running behave --tags=cli will incorrectly include this A2A server-stub test in the CLI test suite.

Fix: Remove @cli. The correct tag line should be:

@a2a @phase2 @server-stubs

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

**BLOCKING — Incorrect `@cli` tag (false positive from substring match)** This file covers `ServerConnectionConfig` validation and A2A server-client protocol stubs. It is **not** a CLI-domain feature. The `@cli` tag was applied because the filename contains `client` (which includes the substring `cli`). Running `behave --tags=cli` will incorrectly include this A2A server-stub test in the CLI test suite. **Fix:** Remove `@cli`. The correct tag line should be: ```gherkin @a2a @phase2 @server-stubs ``` --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
@ -1,3 +1,4 @@
@cli
Owner

BLOCKING — Incorrect @cli tag (false positive from substring match)

This file captures bug #10438McpClient.start() race condition in the MCP client library. It is not a CLI-domain feature. The @cli tag was applied because the filename contains client (which includes the substring cli).

This file does not cover A2A or session domain concerns either, so no domain tags should be added to this file.

Running behave --tags=cli will incorrectly include this MCP race-condition test in the CLI test suite.

Fix: Remove @cli entirely. The file should start with the existing comment block and @tdd_expected_fail @tdd_issue @tdd_issue_10438 tags (no file-level domain tag added by this PR).


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

**BLOCKING — Incorrect `@cli` tag (false positive from substring match)** This file captures bug #10438 — `McpClient.start()` race condition in the MCP client library. It is **not** a CLI-domain feature. The `@cli` tag was applied because the filename contains `client` (which includes the substring `cli`). This file does not cover A2A or session domain concerns either, so **no domain tags should be added to this file**. Running `behave --tags=cli` will incorrectly include this MCP race-condition test in the CLI test suite. **Fix:** Remove `@cli` entirely. The file should start with the existing comment block and `@tdd_expected_fail @tdd_issue @tdd_issue_10438` tags (no file-level domain tag added by this PR). --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

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

--- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 54s
CI / push-validation (pull_request) Failing after 13m50s
CI / helm (pull_request) Failing after 13m51s
CI / build (pull_request) Failing after 13m53s
Required
Details
CI / e2e_tests (pull_request) Failing after 13m55s
CI / integration_tests (pull_request) Failing after 13m56s
Required
Details
CI / unit_tests (pull_request) Failing after 13m57s
Required
Details
CI / quality (pull_request) Failing after 13m58s
Required
Details
CI / security (pull_request) Failing after 13m58s
Required
Details
CI / typecheck (pull_request) Failing after 13m58s
Required
Details
CI / lint (pull_request) Failing after 13m59s
Required
Details
CI / coverage (pull_request) Has been cancelled
Required
Details
CI / docker (pull_request) Has been cancelled
Required
Details
CI / status-check (pull_request) Has been cancelled
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 bugfix/pr-9183-bdd-tags:bugfix/pr-9183-bdd-tags
git switch bugfix/pr-9183-bdd-tags
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!11024
No description provided.