Files
cleveragents-core/examples/actions/e2e-porting.yaml
freemo 2cb82f8acc feat(autonomy): E2E porting task completes autonomously
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
2026-04-02 09:15:24 +00:00

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