forked from cleveragents/cleveragents-core
2cb82f8acc
Implements M7 (v3.6.0) acceptance criterion: an end-to-end porting task completes autonomously using the full CleverAgents pipeline. Changes: - Add reproducible E2E porting task fixture (examples/actions/e2e-porting.yaml) with invariants, typed arguments, and supervised automation profile - Add E2EPortingService that ties together ACMS context assembly, plan lifecycle (Strategize → Execute → Apply), subplan decomposition, correction engine, and apply phase - Add validate_ported_output() for Python 3 syntax, type annotation, and Python 2 construct checks - Add _apply_stub_porting() deterministic Python 2→3 transformation for test path (no LLM required) - Add Behave BDD tests (features/e2e_porting_task.feature) covering fixture validation, action registration, plan lifecycle, output validation, and lifecycle observability - Add Robot Framework E2E acceptance test (robot/e2e/m7_e2e_porting.robot) covering all M7 acceptance criteria Closes #857
67 lines
2.4 KiB
YAML
67 lines
2.4 KiB
YAML
# ============================================================================
|
|
# E2E Porting Action — Reproducible End-to-End Porting Task Fixture
|
|
# ============================================================================
|
|
# Defines a complete porting task that exercises the full CleverAgents
|
|
# pipeline: ACMS context assembly, plan lifecycle, subplan decomposition,
|
|
# correction engine, and apply phase.
|
|
#
|
|
# This fixture is used by M7 (v3.6.0) acceptance tests to validate that
|
|
# an end-to-end porting task completes autonomously.
|
|
#
|
|
# Create: agents action create --config examples/actions/e2e-porting.yaml
|
|
# ============================================================================
|
|
|
|
name: local/e2e-porting
|
|
description: "Port a Python 2 module to Python 3 with type annotations"
|
|
long_description: |
|
|
Ports a small Python 2 source module to Python 3, adding:
|
|
- Python 3 compatible syntax (print function, division, unicode)
|
|
- PEP 484 type annotations on all public functions
|
|
- Docstrings for all public symbols
|
|
- A companion test module verifying the ported code
|
|
|
|
This action exercises the full CleverAgents autonomous pipeline:
|
|
ACMS context assembly, plan lifecycle, subplan decomposition,
|
|
correction engine, and apply phase.
|
|
|
|
strategy_actor: local/strategist
|
|
execution_actor: local/executor
|
|
|
|
definition_of_done: |
|
|
The porting task is complete when:
|
|
1. All Python 2 syntax has been replaced with Python 3 equivalents
|
|
2. Type annotations are present on all public functions
|
|
3. The ported module passes Python 3 syntax validation
|
|
4. A companion test module exists and passes
|
|
5. No regressions in existing functionality
|
|
|
|
reusable: true
|
|
read_only: false
|
|
state: available
|
|
|
|
arguments:
|
|
- name: source_module
|
|
type: string
|
|
required: true
|
|
description: "Path to the Python 2 source module to port"
|
|
validation_pattern: "^[a-zA-Z0-9_/.-]+\\.py$"
|
|
|
|
- name: target_module
|
|
type: string
|
|
required: false
|
|
description: "Output path for the ported Python 3 module (defaults to source_module)"
|
|
|
|
- name: add_tests
|
|
type: boolean
|
|
required: false
|
|
default: true
|
|
description: "Whether to generate a companion test module"
|
|
|
|
invariants:
|
|
- "The ported module must be valid Python 3 syntax"
|
|
- "All public functions must have type annotations"
|
|
- "No Python 2-only constructs (print statement, xrange, unicode literals)"
|
|
- "The ported module must preserve the original public API"
|
|
|
|
automation_profile: supervised
|