Skip to content

docs: PR #387 remediation scorecard + reconciliation plan (executed live-path evidence; plan-only) - #17

Closed
plauzy wants to merge 1 commit into
feat/agentic-protocols-generative-uifrom
claude/pr387-remediation-reconcile-jlcpmy
Closed

plauzy wants to merge 1 commit into
feat/agentic-protocols-generative-uifrom
claude/pr387-remediation-reconcile-jlcpmy

Conversation

@plauzy

@plauzy plauzy commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Why (answer before "what")

  1. What outcome are we trying to change?
    Four remediation branches exist for the upstream feat: AG-UI protocol adapter + agentic protocol surface & generative UI (#386) awslabs/cli-agent-orchestrator#387 review (kiro/claude × agui-core/a2a-hardened, PRs remediate PR #387 review — AG-UI core (PR-A shape, Claude implementation) #11–[DRAFT][Kiro] remediate PR #387 review — AG-UI core + live demo (PR-A shape) #14) with no adjudicated way to pick between them. This delivers the head-to-head scorecard and the step-by-step plan for two reconciled branches, so reconciliation code is written once, from decided ground.

  2. What would have to be true for that outcome to look different than today?
    Every PR-body claim verified or marked unverified; every contrast point (OTel packaging, reconnect proof, skill registration, error semantics, mount guard, auth-test fidelity, dep sequencing) decided on executed evidence rather than taste; the gaps both sides share catalogued — including the two new findings in upstream review 4638092590, which post-dates both remediations.

  3. What is the smallest change that makes those things true?
    One reviewable document, docs/reviews/pr387-reconciliation-plan.md, on a branch rooted at the PR head f40933d so this diff is exactly the plan. No reconciliation code is written until this is approved.

  4. How will we know it worked?
    The Phase-2 steps can be executed mechanically: every decision carries a one-line rationale tied to the priority-ordered goals, and the plan states the exact gates + expected counts for both reconcile/* branches.


Summary of changes

  • Phase 1 scorecard with executed evidence — all gates run per branch (worktree-isolated, sequential): base 3569 / kiro-A 3484 / claude-A 3525 / kiro-B 3597 / claude-B 3592 pytest greens; mypy/black/isort/tsc/vitest/build all clean; wheels built and inspected.
  • Both live demo paths actually run (this evaluation's unique evidence): claude-A's Playwright spec passes as-committed — the server log captures the post-restart GET /agui/v1/stream?since=… gap replay; kiro-A's spec needs a browser-rev shim here (CDN-blocked rev 1228 vs preinstalled 1194) and then passes; both showcase.sh variants PASS live; both A2A e2e roundtrips pass (kiro-B's on a stubbed token layer, claude-B's on real RS256 JWTs vs a live JWKS).
  • Headline adjudications: the PWA ?since= cursor-loss fix exists only on claude-A (kiro-A ships the bug while its docs claim gap-free resume; offline/online emulation proven non-viable by kiro's own CI commit 660e3f4); kiro-A wins skill governance (SHIPPED_SKILLS + parity coverage) and demo prop fidelity (claude-A's showcase/skill teach two props the shared renderer doesn't honor, contradicting its "props verified against the actual renderers" claim); kiro-B wins store-full semantics (RESOURCE_EXHAUSTED + HTTP 429) and dep-hygiene sequencing; claude-B wins enforcement order (auth-before-parse + WWW-Authenticate), test fidelity, and the reset_jwks_cache repair; kiro-A regressed coverage by deleting test_oauth_prm.py for a surface its branch still ships.
  • What both missed: the post-remediation review 4638092590's task-id upsert injection (must-fix) + Task.from_dict KeyError (nit); WS 4401 never asserted end-to-end on a malformed token; equal-timestamp ?since= boundary; STATE_DELTA debounce and emit_ui rate limiting (follow-ups); a base-branch fixed-path test that collides under concurrency.
  • Phase 2 plan: reconcile/pr387-agui-core (start from claude-A, port kiro-A's five wins) and reconcile/pr387-a2a-hardened (start from claude-B minus its pyproject hunk, port kiro-B's semantics/guard/matrix, add the 4638092590 fixes) — every contrast decision with rationale, exact gate commands + expected counts, truthful PR-body notes, the revised paste-ready upstream reply (fixes one falsehood in the current draft), and the A-then-B upstream sequencing per @fanhongy.
  • Relationship to docs: PR #387 Kiro×Claude evaluation & reconciliation plan (review before code) #15: a parallel evaluation of the same branches landed there mid-flight (macOS/Python 3.12, no browsers). Verdicts converge on every major call; its unique 3.12 run confirms claude-A's subprocess OTel tests fail on 3.12 (fix scheduled in P2-A step 4), while this document contributes everything only a live-capable environment could produce. Both plans are cross-referenced.

Test plan

Docs-only diff (one markdown file). The evidence inside the document is the test plan of record:

  • uv run pytest executed on all five worktrees (counts in §0; claude-B's single concurrent-run failure triaged to a base-branch fixed-path race, green solo)
  • uv run mypy src/ + black --check + isort --check-only clean on all branches
  • cao_pwa: npm ci, npx tsc --noEmit, npm test, npm run build on base/kiro-A/claude-A
  • Live paths executed: both Playwright live specs, both showcase scripts, both -m e2e A2A roundtrips, uv build wheel inspection

Provider tier

  • Tier 1 — unit/integration, no provider boot needed (documentation only)

🤖 Generated with Claude Code

https://claude.ai/code/session_0123WW42FsCBRwQrK2uwF27s


Generated by Claude Code

…reconciliation plan

Head-to-head evaluation of the four remediation branches (kiro/claude ×
agui-core/a2a-hardened) with every gate executed per branch, both live demo
paths run against real servers, and the pair cross-diffs walked hunk by hunk.

Phase 1: executed-evidence scorecard — gate numbers, per-finding closure,
AC compliance, and adjudication of every contrast point (OTel packaging,
reconnect proof + the PWA ?since= cursor bug, skill registration, error
semantics, mount guard, auth-test fidelity, dep-hygiene sequencing).

Phase 2: step-by-step plan for two reconciled branches stacked on f40933d
(reconcile/pr387-agui-core, reconcile/pr387-a2a-hardened) choosing the
better implementation per finding and unioning the complementary test
suites, plus the revised upstream reply and the A-then-B retarget sequence.

Also catalogues what both sides missed — including the two new findings in
upstream review 4638092590 (peer-controlled task-id upsert injection and
the Task.from_dict KeyError), which post-date both remediations.

Plan only: no reconciliation code is written until this is approved.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0123WW42FsCBRwQrK2uwF27s
plauzy pushed a commit that referenced this pull request Jul 7, 2026
…12,#17,#19,#20)

Add PR #19/#20 (Claude's executed reconciliations) to the branch inventory, add a dedicated Section 2.1 mandatory-audit guarantee with a per-PR checklist (full-diff read, claims-vs-code verification, real gate run, wins/regressions/gaps, review 4638092590 + media verification), reframe the reconciliation approach so #19/#20 are the strongest existing baseline Kiro must audit rather than regenerate, extend the audit matrix and /cao-eval rubric (new claims-vs-code fidelity criterion) to score #19/#20, and add hard constraints to audit all five and not modify #19/#20.
@plauzy

plauzy commented Sep 28, 2026

Copy link
Copy Markdown
Owner Author

Closing: the plan this PR proposes has been executed and merged upstream (awslabs#436 and awslabs#485). The file has been archived to disk — it is the most complete of the three scorecards and, per #18 §2, the plan #19/#20 were built from; it uniquely carries a per-accepted-finding closure table and an issue-awslabs#386 AC-compliance adjudication. #18 §0.4 asked that this one be kept as the evaluation record, which the archive satisfies. Branch preserved.

@plauzy plauzy closed this Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants