Files
cleveragents-core/features/a2a_module_rename_standardization.feature
HAL9000 f83708bb34
CI / load-versions (pull_request) Successful in 13s
CI / push-validation (pull_request) Successful in 28s
CI / lint (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 1m4s
CI / quality (pull_request) Successful in 58s
CI / security (pull_request) Successful in 1m13s
CI / build (pull_request) Successful in 42s
CI / helm (pull_request) Successful in 39s
CI / unit_tests (pull_request) Successful in 4m40s
CI / docker (pull_request) Successful in 1m33s
CI / integration_tests (pull_request) Successful in 8m30s
CI / coverage (pull_request) Successful in 9m35s
CI / status-check (pull_request) Successful in 3s
fix(a2a): use feature data table as source of truth for symbol list
Reviewer HAL9001 noted that the 22-row data table in the ACP→A2A rename
feature was dead code because the step definition read from a hardcoded
`_ALL_SYMBOLS` constant instead of `context.table.rows`. Also, master
grew `cleveragents.a2a.__all__` to 43 exports (AgentCard*, Sync*,
ConflictResolution, VectorClock) unrelated to the ACP→A2A rename
contract, so the strict `len(__all__) == 22` assertion regressed.

* Add a `| symbol |` header row so Behave parses all 22 entries as data
  rows (the first row was previously being consumed as the header).
* Replace `_ALL_SYMBOLS` with `[row[0].strip() for row in context.table.rows]`
  so the feature file is the single source of truth.
* Change the exports assertion from `len(__all__) == 22` to a subset
  check (every listed symbol is present in `__all__`). Rename the
  scenario and the matching Then step to reflect the corrected intent.

ISSUES CLOSED: #8615
2026-06-15 02:59:42 -04:00

50 lines
2.1 KiB
Gherkin

@refactor_v360_acp_to_a2a_rename @epic_8569
Feature: ACP to A2A module rename and symbol standardization
As a CleverAgents developer
I want the ACP A2A module rename to be fully validated via BDD tests
So that no legacy ACP references remain and all exports follow ADR-047 naming
Background:
Given the "a2a" Python package is importable from "cleveragents.a2a"
Scenario: The 22 ACP-to-A2A rename symbols are exported via a2a package
When I import "cleveragents.a2a"
And all of the following 22 symbols should be importable from it:
| symbol |
| A2aError |
| A2aErrorDetail |
| A2aEvent |
| A2aEventQueue |
| A2aHttpTransport |
| A2aLocalFacade |
| A2aNotAvailableError |
| A2aOperationNotFoundError |
| A2aRequest |
| A2aResponse |
| A2aStdioTransport |
| A2aVersion |
| A2aVersionMismatchError |
| A2aVersionNegotiator |
| AuthClient |
| RemoteExecutionClient |
| ServerClient |
| ServerConnectionConfig |
| StubAuthClient |
| StubRemoteExecutionClient |
| StubServerClient |
| TransportSelector |
Then every symbol should resolve to a non-None object
And every listed symbol should appear in __all__
Scenario: Zero ACP references remain in the a2a module source files
When I recursively scan all Python files under "src/cleveragents/a2a"
And I search for the legacy prefix string "ACP"
Then zero instances of "ACP" should be found
And this confirms the complete ACP A2A rename is clean
Scenario: Documentation strings use A2A naming per ADR-047
When I read the docstring of the "cleveragents.a2a" package
Then it should contain the term "A2A (Agent-to-Agent Protocol)"
And it should reference "ADRs" or "ADR-047" for standard adoption
And the docstring should NOT contain any mentions of "ACP protocol"