test(e2e): workflow example 1 — Hello World, fix a single bug (manual profile) #788

Closed
freemo wants to merge 1 commits from test/e2e-wf01-hello-world into master
Owner

Summary

E2E test for Specification Workflow Example 1: Hello World — Fix a Single Bug. Exercises the complete manual automation profile workflow with full plan lifecycle under human oversight. A developer fixes a bug where the /health endpoint returns HTTP 500 when the database is unavailable (should return 200 with degraded status).

Zero mocking — real CLI, real LLM API keys, real subprocess execution. Robot Framework test tagged @E2E.

Changes

  • Added robot/e2e/wf01_hello_world.robot implementing the full workflow:
    1. agents init --yes --force
    2. Create fixture git repo with buggy /health endpoint
    3. agents resource add git-checkout — register the repo
    4. agents project create — create and link project
    5. agents validation add + agents validation attach — register and attach a validation (unit tests) per spec Example 1
    6. agents action create — create action from YAML config
    7. agents plan use — create plan with --automation-profile manual
    8. agents plan execute — strategize phase (with error-pattern assertions)
    9. agents plan tree + agents plan explain — inspect decision tree (with non-empty assertions)
    10. agents plan execute — execute phase (with error-pattern assertions)
    11. agents plan diff — review changeset (with non-empty output assertion)
    12. agents plan apply --yes — apply changes (with error-pattern assertions)
    13. Post-apply git commit verification (HEAD SHA change detection)
  • Updated CHANGELOG.md with entry at top of Unreleased section

Security

  • Fixed Python code injection risk in Evaluate calls: replaced raw string interpolation (r'''${stdout}''') with Robot Framework module variable syntax ($combined) to prevent arbitrary code execution if CLI output contains triple-quote sequences.

Known Limitations

  • --arg bug_description=... is not passed to plan use due to a pre-existing UNIQUE constraint violation bug in plan_arguments table when arguments are defined both in action schema and passed via CLI --arg. This is tracked as a separate issue.
  • Post-apply commit verification uses a soft check (warning log) when HEAD SHA doesn't change, since plan apply --yes may succeed without producing a new commit depending on sandbox strategy and LLM output.
  • Test-level timeout set to 20 minutes to accommodate worst-case LLM execution times.

Closes #747

## Summary E2E test for Specification Workflow Example 1: Hello World — Fix a Single Bug. Exercises the complete `manual` automation profile workflow with full plan lifecycle under human oversight. A developer fixes a bug where the `/health` endpoint returns HTTP 500 when the database is unavailable (should return 200 with degraded status). **Zero mocking** — real CLI, real LLM API keys, real subprocess execution. Robot Framework test tagged `@E2E`. ## Changes - Added `robot/e2e/wf01_hello_world.robot` implementing the full workflow: 1. `agents init --yes --force` 2. Create fixture git repo with buggy `/health` endpoint 3. `agents resource add git-checkout` — register the repo 4. `agents project create` — create and link project 5. `agents validation add` + `agents validation attach` — register and attach a validation (unit tests) per spec Example 1 6. `agents action create` — create action from YAML config 7. `agents plan use` — create plan with `--automation-profile manual` 8. `agents plan execute` — strategize phase (with error-pattern assertions) 9. `agents plan tree` + `agents plan explain` — inspect decision tree (with non-empty assertions) 10. `agents plan execute` — execute phase (with error-pattern assertions) 11. `agents plan diff` — review changeset (with non-empty output assertion) 12. `agents plan apply --yes` — apply changes (with error-pattern assertions) 13. Post-apply git commit verification (HEAD SHA change detection) - Updated `CHANGELOG.md` with entry at top of Unreleased section ## Security - Fixed Python code injection risk in `Evaluate` calls: replaced raw string interpolation (`r'''${stdout}'''`) with Robot Framework module variable syntax (`$combined`) to prevent arbitrary code execution if CLI output contains triple-quote sequences. ## Known Limitations - `--arg bug_description=...` is not passed to `plan use` due to a pre-existing UNIQUE constraint violation bug in `plan_arguments` table when arguments are defined both in action schema and passed via CLI `--arg`. This is tracked as a separate issue. - Post-apply commit verification uses a soft check (warning log) when HEAD SHA doesn't change, since `plan apply --yes` may succeed without producing a new commit depending on sandbox strategy and LLM output. - Test-level timeout set to 20 minutes to accommodate worst-case LLM execution times. Closes #747
freemo added this to the v3.0.0 milestone 2026-03-12 22:20:39 +00:00
freemo added the
Type
Testing
label 2026-03-12 22:20:40 +00:00
freemo force-pushed test/e2e-wf01-hello-world from 9ff64667bf to ec6ace99c0 2026-03-13 16:10:08 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from ec6ace99c0 to 7a2dc016dc 2026-03-13 16:23:45 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 7a2dc016dc to 18f38781d9 2026-03-13 16:31:33 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 18f38781d9 to 3b56da9abb 2026-03-13 16:42:17 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 3b56da9abb to a159ce695c 2026-03-13 16:56:59 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from a159ce695c to 422ef2e142 2026-03-13 17:28:33 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 422ef2e142 to 1c4d8e1270 2026-03-13 17:46:47 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 1c4d8e1270 to 282855a26a 2026-03-13 17:51:46 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 282855a26a to 020d35824b 2026-03-13 18:18:51 +00:00 Compare
freemo force-pushed test/e2e-wf01-hello-world from 020d35824b to 952551bcd3 2026-03-13 20:56:27 +00:00 Compare
freemo added the
State
In Review
label 2026-03-13 21:16:27 +00:00
freemo force-pushed test/e2e-wf01-hello-world from 952551bcd3 to 4b218021c7 2026-03-13 23:19:30 +00:00 Compare
Author
Owner

PM Review — Day 34

Status: Mergeable, 0 reviews, M1 (v3.0.0), State/In Review
Author: @freemo

E2E test for WF01 (Hello World, fix a single bug — manual profile). Retroactive M1 acceptance coverage.

Action Items

Who Action Deadline
@brent.edwards Peer review Day 37
## PM Review — Day 34 **Status**: Mergeable, 0 reviews, M1 (v3.0.0), State/In Review **Author**: @freemo E2E test for WF01 (Hello World, fix a single bug — manual profile). Retroactive M1 acceptance coverage. ### Action Items | Who | Action | Deadline | |-----|--------|----------| | @brent.edwards | **Peer review** | Day 37 |
freemo added the
MoSCoW
Must have
Points
3
labels 2026-03-14 22:10:35 +00:00
freemo modified the milestone from v3.0.0 to v3.2.0 2026-03-16 00:31:58 +00:00
freemo added a new dependency 2026-03-16 02:42:13 +00:00
freemo added a new dependency 2026-03-16 02:42:14 +00:00
Author
Owner

PM Status — Day 36 (2026-03-16)

Day 34 review assignment deadline check. This PR has been in review for 2+ days with 0 reviewer activity.

Reminder: Assigned reviewer — please post your review by Day 37 EOD or flag any blockers. These E2E test PRs are foundational for milestone acceptance gates and cannot remain unreviewed indefinitely.

If you are unable to review by the deadline, please comment so the review can be reassigned.

## PM Status — Day 36 (2026-03-16) Day 34 review assignment deadline check. This PR has been in review for 2+ days with 0 reviewer activity. **Reminder**: Assigned reviewer — please post your review by **Day 37 EOD** or flag any blockers. These E2E test PRs are foundational for milestone acceptance gates and cannot remain unreviewed indefinitely. If you are unable to review by the deadline, please comment so the review can be reassigned.
freemo reviewed 2026-03-16 16:14:59 +00:00
freemo left a comment
Author
Owner

PM Day 36 Triage: MERGE CONFLICT. Needs rebase onto master before review can proceed. This is an M3 E2E test (v3.2.0) — lower priority than active bug fixes and TDD infrastructure work. Will queue for review after critical path items clear.

PM Day 36 Triage: MERGE CONFLICT. Needs rebase onto master before review can proceed. This is an M3 E2E test (v3.2.0) — lower priority than active bug fixes and TDD infrastructure work. Will queue for review after critical path items clear.
hurui200320 was assigned by freemo 2026-03-16 22:23:48 +00:00
Author
Owner

@hurui200320 I am going to have you take over this PR, it is mostly completed but is waiting on #628 and #966 One is yours and one is Brent's. Please be sure to get this PR and the two blocking PRs I listed in asap, thanks.

@hurui200320 I am going to have you take over this PR, it is mostly completed but is waiting on https://git.cleverthis.com/cleveragents/cleveragents-core/issues/628 and https://git.cleverthis.com/cleveragents/cleveragents-core/issues/966 One is yours and one is Brent's. Please be sure to get this PR and the two blocking PRs I listed in asap, thanks.
hurui200320 force-pushed test/e2e-wf01-hello-world from 4b218021c7 to a3455c33ef 2026-03-18 08:46:35 +00:00 Compare
freemo requested review from CoreRasurae 2026-03-22 16:40:07 +00:00
freemo requested review from brent.edwards 2026-03-22 16:40:07 +00:00
hurui200320 force-pushed test/e2e-wf01-hello-world from a3455c33ef to 460552379b 2026-03-24 07:33:55 +00:00 Compare
hurui200320 force-pushed test/e2e-wf01-hello-world from 460552379b to 0d94de9972 2026-03-26 08:10:44 +00:00 Compare
hurui200320 force-pushed test/e2e-wf01-hello-world from 0d94de9972 to 95d0c6a3c6 2026-03-27 09:58:39 +00:00 Compare
hurui200320 was unassigned by freemo 2026-04-02 06:15:25 +00:00
freemo self-assigned this 2026-04-02 06:15:25 +00:00
Author
Owner

🤖 Backlog Groomer (groomer-1): Closing as duplicate of #747.

Issue #747 (test(e2e): workflow example 1 — hello world, fix a single bug) is the canonical version with full labels (MoSCoW/Must have, Priority/Critical, State/In Review, Type/Testing) and milestone v3.2.0. This issue is an exact title duplicate.

🤖 **Backlog Groomer (groomer-1):** Closing as duplicate of #747. Issue #747 (`test(e2e): workflow example 1 — hello world, fix a single bug`) is the canonical version with full labels (`MoSCoW/Must have`, `Priority/Critical`, `State/In Review`, `Type/Testing`) and milestone `v3.2.0`. This issue is an exact title duplicate.
freemo closed this pull request 2026-04-02 17:35:51 +00:00
All checks were successful
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 26s
Required
Details
CI / lint (pull_request) Successful in 3m26s
Required
Details
CI / typecheck (pull_request) Successful in 4m2s
Required
Details
CI / quality (pull_request) Successful in 4m20s
Required
Details
CI / security (pull_request) Successful in 4m43s
Required
Details
CI / integration_tests (pull_request) Successful in 7m38s
Required
Details
CI / unit_tests (pull_request) Successful in 8m14s
Required
Details
CI / docker (pull_request) Successful in 1m8s
Required
Details
CI / e2e_tests (pull_request) Successful in 13m58s
CI / coverage (pull_request) Successful in 13m59s
Required
Details
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 1h3m48s

Pull request closed

Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Reference: cleveragents/cleveragents-core#788