Skip to content

feat: build and E2E-test a Copilot Studio SDLC agent with Codex App #163

Description

@BaseInfinity

Goal

Build a real SDLC Agent in Copilot Studio, using the Codex App on Windows as the builder and independent E2E test driver. The result should let a user enter an issue/goal, inspect roadmap and lifecycle state, receive the next bounded SDLC action, invoke only approved tools, and obtain evidence that can be reconciled with GitHub.

This is the implementation follow-up to #96, not another general research card. If #96 selects adopt or experiment, execute this issue. If #96 selects reject, close this issue as not planned with the decision evidence.

Why this is now credible

The public BaseInfinity/m180-jumpseat #51 / PR #143 workflow demonstrated that Codex App can reuse a valid signed-in Copilot Studio session, drive an exact synthetic Evaluation set, inspect terminal results and Activity/tool traces, preserve raw output locally, commit sanitized evidence, obtain independent review, and complete the GitHub candidate lifecycle. That pattern should become a reusable harness capability instead of remaining project-specific.

The proof also exposed requirements the implementation must not hand-wave:

  • custom response grading and tool-selection assertions are separate signals;
  • Studio Activity/tool traces must be checked explicitly;
  • imported Keyword/expected-response fixtures can fail independently of agent behavior;
  • forbidden-tool and mutation checks must fail closed;
  • provider/UI work and repository/CI evidence need one exact candidate identity;
  • a valid existing session should permit pre-authorized synthetic automation without inventing a blanket human-only gate.

Proposed architecture

  • Copilot Studio agent: conversational SDLC front door for intake, status, planning, bounded approvals, and tool orchestration.
  • Shared SDLC core: reuse the future sdlc-mcp / portable contract; do not copy lifecycle policy into prompt text.
  • Codex App: Windows build and E2E test seat that configures the synthetic Studio candidate, drives the UI where no reliable API exists, runs repository tests, inspects Activity traces, and freezes evidence.
  • Git/CI hooks: remain the non-bypassable enforcement authority. Studio does not claim to replace local hooks or hosted CI.
  • Portable Studio solution: agent, component collections, environment-variable declarations, connection references, evaluation metadata, and a hash-bound build manifest; no secrets in the solution or repo.

Full E2E acceptance scenario

Using only a public/synthetic fixture repository and pre-authorized test environment:

  1. Start from one GitHub issue and milestone with a deliberately failing test or stale roadmap state.
  2. Ask the Studio SDLC Agent for the next action.
  3. Prove that it reads the bounded lifecycle state and returns the correct issue, milestone, dependency, and stop boundaries.
  4. Invoke an approved shared SDLC/GitHub tool through the configured action surface; assert the exact expected tool and arguments.
  5. Use Codex App to perform the repository implementation lane, RED → GREEN tests, frozen candidate, and proportional independent review.
  6. Return sanitized candidate/test/review state to the Studio agent and prove it reports the exact commit and remaining gate.
  7. Run a Studio Evaluation set covering success, blocked dependency, missing authentication, forbidden mutation, stale candidate, wrong tool, and provider failure.
  8. Inspect Activity/tool traces and fail if the expected tool was absent, an unexpected tool ran, arguments drifted, or a prohibited mutation was attempted.
  9. Export the solution, import it into a clean test environment when available, and rerun the same synthetic set.
  10. Open a PR and require hosted CI before claiming the E2E complete. Preserve exact commits, solution hashes, Evaluation results, review identity, and CI run IDs.

TDD and evaluation requirements

  • Freeze synthetic fixtures and expected tool contracts before the live run.
  • Record an honest RED before implementation.
  • Unit-test deterministic manifest, issue/milestone, lifecycle, authorization, and evidence logic outside Studio.
  • Add integration tests for the remote MCP/action boundary.
  • Use Studio Evaluation for response behavior, plus explicit Activity/tool assertions for tool behavior.
  • Include negative tests for auth required, capacity unavailable, stale evidence, private-data request, publication, tenant/admin change, destructive production work, and forbidden tool selection.
  • Bind every result to the exact agent/solution version and Git candidate.

Guardrails

  • Public sources, public repository evidence, and synthetic fixtures only.
  • No private contracts, questionnaires, customer data, credentials, MFA handling, consent approval, publication, purchase/capacity change, tenant/admin mutation, or production action.
  • Prefer supported APIs/connectors; use Codex App browser/computer use for genuine Studio UI gaps and record that distinction.
  • Existing authenticated sessions and explicitly pre-authorized synthetic actions are automation-ready; stop only when authentication, MFA, consent, capacity/purchase, connection repair, or new scope is actually encountered.
  • Never weaken hooks, skip required CI, use --no-verify, or treat a prompt/evaluation score as enforcement.

Deliverables

  • Versioned Copilot Studio solution and build manifest.
  • Shared tool/action contract with no duplicated SDLC policy.
  • Synthetic E2E fixture repository or fixture package.
  • Deterministic unit/integration suite plus Studio Evaluation set.
  • Sanitized Activity/tool-trace evidence.
  • Codex App operator/test runbook.
  • Cost, latency, reliability, portability, and recovery results.
  • Final adopt, experiment, or reject implementation verdict.

Dependencies and related issues

This issue is backlog work and must not displace the current 1.0 release path.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions