Skip to content

test(acp): KAS 0.66.58 captures for markdown agents and the crewmate worker kit - #23534

Merged
KiroCrewCaptain merged 1 commit into
mainfrom
test/kas-markdown-mate-kit-captures
Oct 23, 2026
Merged

KiroCrewCaptain merged 1 commit into
mainfrom
test/kas-markdown-mate-kit-captures

Conversation

@iamwhatever

@iamwhatever iamwhatever commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Problem / Motivation

Goal: Have the harness-parity gate (G2) check KAS's markdown agents and the crewmate worker kit against live KAS captures.

ACP_BACKENDS_MARKDOWN_AGENT_SPECS (kas) sat on X_CAPTURE_ALLOWLIST with the note "live KAS 0.66.43 registers a markdown agent but ignores its prompt". The backend card still marks markdown_agents as available on KAS. ACP_BACKENDS_MATE_WORKER_KIT (#23010) was not in X_FEATURE_SETS at all, so only unit tests covered it.

Why it matters

Both sets decide what a KAS session runs: the agent's prompt and tools, and a crewmate worker's prompt and switched-off tools. With no capture behind them, a KAS release that drops either one would go unnoticed. That is what happened on KAS 0.66.43.

Not a goal

  • A KAS version floor or warning for kiro-cli 2.32.0 (KAS 0.66.43), and the bundle pin (0.66.33). Those are owner decisions.
  • Re-capturing the older kas/ fixtures. They already record the engine version in agent_version.
  • Any runtime change.

What changed (motivation → approach → change)

A re-measure on kiro-cli 2.33.1 (KAS engine 0.66.58, read from the installed @kiro/agent package.json) shows KAS applies the custom-agent prompt now. I recorded that as two live captures, each sent through main's own projection code:

Set Before After
ACP_BACKENDS_MARKDOWN_AGENT_SPECS (kas) on X_CAPTURE_ALLOWLIST cites kas/markdown-agent-live.jsonl; allowlist entry removed
ACP_BACKENDS_MATE_WORKER_KIT (kas) not in X_FEATURE_SETS in X_FEATURE_SETS; cites kas/worker-kit-live.jsonl
  • markdown-agent-live.jsonl: a markdown agent (tools: [read], a body that asks for one fixed reply) goes through load_agent_spec → build_kas_custom_agents → customAgents + session/set_mode. The last _kiro/tools/didChange lists only read, and the model gives the fixed reply.
  • worker-kit-live.jsonl: the spec comes from merge_worker_spec(base, worker_additions(base, mate)). The base has read and shell. The crewmate file adds a prompt and excludes shell. The last tools/didChange lists only read. The model lists read tools, no execute_bash, and ends with the phrase the crewmate prompt asked for. A control run without the exclusion listed read and shell and named execute_bash; it is not committed.
  • The new headers record kiro_cli_version beside agent_version (the engine version). docs/ci/harness-parity-gate.md says so in one line.
  • X_CAPTURE_CEILING goes from 10 to 7, matching the 7 entries left.

Sanitizing: agent-to-client lines only. The session id and engine uuids are synthetic, the scratch dir reads as /work, and home reads as ~. Host inventory frames are dropped, except the last tools/didChange.

Backwards compatibility

Compatible: only test fixtures, comments, the gate's registry and allowlist, and tests change; no runtime path is touched.

Removes nothing: the only removal is an X_CAPTURE_ALLOWLIST entry, and that allowlist is shrink-only by design.

Tests

  • test_kas_custom_agents_are_proven_by_their_own_captures: both sets are in X_FEATURE_SETS, off the allowlist, cite their capture, and gain a gap when the citation is changed.
  • test_the_markdown_agent_capture_shows_its_prompt_and_tools_applied, test_the_worker_kit_capture_shows_the_crewmate_prompt_and_limit_applied: these read the reply and the last tool tags from each capture.
  • test_every_live_kas_capture_names_the_engine_version: every live kas/ capture has a dotted agent_version that differs from kiro_cli_version when both are present.
  • test_dropping_an_x_set_is_refused now drops MATE_WORKER_KIT, because the markdown allowlist entry is gone.
  • I removed each capture, and the X_FEATURE_SETS entry, one at a time; each removal fails these tests.
  • test_acp_frame_replay.py replays both new captures from their .expected.json.

Proof: not provable -- test-only change

Manual verification

The captures are live runs of local kiro-cli 2.33.1. Locally I ran check_harness_parity.py (7 + 0 allowlisted), check_acp_frame_host_data.py, docs-lint.sh, and the parity, replay and card suites (1813 passed). A local GPT and Opus review found nothing.

Related Issues

Fixes #23533

Possible textual overlap: #23388 adds a line higher up in X_FEATURE_SETS. #22911 edits a different comment block in backends_members.py.

Checklist

  • At most two commits (one is the norm), with a Conventional Commits title (feat|fix|docs|style|refactor|perf|test|chore|ci|build|revert: ...)
  • Existing tests pass and new tests added for new functionality
  • Self-review completed; code follows project style guidelines
  • Documentation updated (if applicable)
  • No secrets, credentials, or internal references in the diff

Contribution License Agreement

Contributed under the project's Apache-2.0 license.

…worker kit

Two live KAS captures, taken on kiro-cli 2.33.1 (KAS engine 0.66.58, read
from the installed @kiro/agent package.json):

- kas/markdown-agent-live.jsonl: a markdown agent read with load_agent_spec
  and bound with customAgents plus session/set_mode. Its body is applied as
  the prompt and its tools as the tool tags. ACP_BACKENDS_MARKDOWN_AGENT_SPECS
  now cites it, and its X_CAPTURE_ALLOWLIST entry is gone.
- kas/worker-kit-live.jsonl: a worker spec built by merge_worker_spec from a
  base with read and shell and a crewmate file that adds a prompt and
  excludes shell. KAS ran it with the read tools only and followed the
  added prompt. ACP_BACKENDS_MATE_WORKER_KIT now cites it and joins G2's
  X_FEATURE_SETS.

Both headers record kiro_cli_version beside agent_version (the engine).
A test checks every live kas/ capture names an engine version. The X
allowlist ceiling drops from 10 to 7. No runtime change.
@iamwhatever
iamwhatever requested review from a team and KiroCrewCaptain as code owners October 23, 2026 19:46
@iamwhatever
iamwhatever requested a review from buluoray October 23, 2026 19:46
@github-actions github-actions Bot added the readiness: checking Automated validation is still running label Oct 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

UX Review (Opus 5.5) — ⏭️ skipped

Revision 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5 touches no user-facing surface (no changes under website/ or committed screenshots), so the UX review was skipped. Does not block merge.

@github-actions

Copy link
Copy Markdown
Contributor

Design Review (Opus 5.5) — ✅ PASS

Design-level review of 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5 — updated in place on each push. A BLOCK verdict blocks PR readiness; PASS does not.

Design-Verdict: PASS

Nothing blocks: the change is test fixtures, gate registry data and comments, and the only thing it removes is one entry from an allowlist that can only shrink.

Notes

  • Both captures prove KAS 0.66.58 only. A user on kiro-cli 2.32.0 (KAS 0.66.43) still loses the custom-agent prompt, while the card says markdown_agents is available. The description defers the version floor to the owners; it should be tracked as an issue so the gap doesn't quietly drop off the list once the allowlist entry is gone.

[DESIGN-REVIEWED] 68b6b32

Description read

[DESCRIPTION-READ] 99ef55398502dbe0336dee377c1be0f485ab91a6fa4bb5e8f0a35cc7b1d49f49

That sha256 names everything this verdict read: the PR description, plus the 1 evidence file(s) the workflow collected from it and handed this review. It covers that evidence because the media strip replaces every attachment URL with the same placeholder, so an edit swapping one attachment for another would leave the description's captured text identical while what this review judged changed. Recompute it with .github/scripts/pr-description-capture.sh over the same inputs; if it differs, the description or that evidence changed after this verdict was formed and any finding drawn from either is unproven.

@github-actions

Copy link
Copy Markdown
Contributor

First Principles Review (Opus 5.5) — ✅ PASS

Premise-level review of 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5 — why this exists and whether the shipped surface is the smallest honest version. Updated in place on each push. A BLOCK verdict blocks PR readiness; PASS does not.

First-Principles-Verdict: PASS

Nothing blocks: the change is test evidence only, and every item backs a set membership that already ships.

Notes

  • Item 5 — oversized: test_every_live_kas_capture_names_the_engine_version partly repeats the gate's own header has no agent_version check (scripts/check_harness_parity.py:588). What it adds is the dotted-format and != kiro_cli_version asserts, and only these two new fixtures carry that header. Subtraction: drop the test and its doc sentence in harness-parity-gate.md, and rely on the gate's existing agent_version check.

What this change ships

Inventory (6 items) — 5 justified

Intent: back KAS's markdown-agent and worker-kit set memberships with live captures so the parity gate catches a KAS regression. This is a FIX (a gap in gate coverage, #23533).

  1. The KAS markdown-agent set is now proven by a live capture and its allowlist entry is removed — justified
  2. The KAS worker-kit set joins X_FEATURE_SETS with a cited live capture — justified
  3. The allowlist ceiling drops from 10 to 7, matching the 7 entries left (8 on base, minus 1) — justified
  4. The set comments now cite the captures and the KAS versions measured — justified
  5. A new header field, kiro_cli_version, plus a test pinning the engine-version format — oversized (only a test reads the new field)
  6. The drop-set test now drops a different set — justified

[FIRST-PRINCIPLES-REVIEWED] 68b6b32

Description read

[DESCRIPTION-READ] 2f33eeebe926e3200da8593193fb6e718987a0a761e7c5d7b0d3c88351476840

That sha256 names the PR description this verdict read. Recompute it with .github/scripts/pr-description-capture.sh; if it differs, the description changed after this verdict was formed and any finding drawn from the description is unproven.

@github-actions

Copy link
Copy Markdown
Contributor

Opus 5.5 Review — ✅ no blocking findings

Reviewed 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5 — this comment is updated in place on each push.

Review details

No findings.

[OPUS-REVIEWED] 68b6b32

Verdict parsed from the review's SHA-scoped output markers for commit 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5.

False positive or not applicable? A repository writer can comment:
/ai-review override fable 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5: <one-sentence reason>

@github-actions

Copy link
Copy Markdown
Contributor

GPT 6.1 Review — ✅ no blocking findings

GPT 6.1 completed its review of 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5 and found no blocking issues.

This comment is updated in place on each push.

Review details

No findings.
[GPT-REVIEWED] 68b6b32

False positive or not applicable? A repository writer can comment:
/ai-review override gpt 68b6b32b92f790731f2e29cfc9f89eb3c7459bf5: <one-sentence reason>

@github-actions github-actions Bot added readiness: action required A blocking check or review needs attention and removed readiness: checking Automated validation is still running labels Oct 23, 2026
@iamwhatever

Copy link
Copy Markdown
Contributor Author

Disposition, Design note (KAS 0.66.43 still drops the prompt): agreed, and it is out of this PR's goal. It is now tracked in #23549, which covers a version floor or notice and the 0.66.33 bundle pin, both owner decisions. No code change here.

@iamwhatever

Copy link
Copy Markdown
Contributor Author

Disposition, First Principles item 5 (engine-version test is oversized): kept. The gate checks only that agent_version is present. The test adds the check that matters for KAS: agent_version is the engine's version, not kiro-cli's. KAS and kiro-cli are versioned apart, so mixing them up hides the drift that produced the 0.66.43 result. The scope was asked for (record the engine version, plus a cheap check). It is 20 lines of test and one doc sentence, with no runtime surface. No code change.

@github-actions github-actions Bot added readiness: passed Eligible automated validation passed for the current revision and removed readiness: action required A blocking check or review needs attention labels Oct 23, 2026
@KiroCrewCaptain
KiroCrewCaptain enabled auto-merge (squash) October 23, 2026 23:04

@KiroCrewCaptain KiroCrewCaptain left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tier 1 auto-approve: test (9 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, security checklist all-NO, no reviewer-lane findings, readiness signal fresh for this head SHA, declared category matches the diff. Category: adds two live KAS 0.66.58 ACP frame captures with their replay snapshots and tests, drops the harness-parity allowlist entry and lowers the capture ceiling they retire; the source edits are comments only, with no runtime change.

@KiroCrewCaptain
KiroCrewCaptain merged commit b769bf7 into main Oct 23, 2026
123 of 129 checks passed
@KiroCrewCaptain
KiroCrewCaptain deleted the test/kas-markdown-mate-kit-captures branch October 23, 2026 23:05
@github-actions github-actions Bot removed the readiness: passed Eligible automated validation passed for the current revision label Oct 23, 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.

test(acp): live KAS captures for markdown agents and the crewmate worker kit

2 participants