Repository navigation
Add spec-update tooling and split it from the product into spec-tracker and cross-check projects - #8
Merged
Merged
Conversation
- `/orchestrator <goal>` skill: plan milestones/slices, delegate to subagents, integrate, and keep `.agents/state.md`; asks for worker mode, target branch, and reviews before starting - `granular-work` skill, preloaded into all subagents: shared rules for one task, scope, escalation, and reporting - programmer: explicit `single`/`worktrees` modes, local-only branches - opt-in `reviewer` agent for whole milestones - subagents run only under the orchestrator skill or on explicit request
- `/update-to-spec [v1|v2|both] [spec-ref] [full]`: orchestrated spec update with a diff-based change inventory, depth rules (core-doc escalation, full audit), whole-doc impact research, and re-vendor-first slices - orchestrator: drop `disable-model-invocation` so other skills can invoke it
Adds spec_map.toml for v1 and v2 (core docs with optional sections and code links, core schema $defs, and an empty ledger of deliberate non-requirements), a tomllib loader in tck.common.spec_map, and registry tests that validate the maps against the pinned spec docs and vendored schema.
Add resolve_section() to map a section address to its line range, use it in the registry section checks, and narrow v1 session-setup and v2 overview and prompt-lifecycle core sections with it.
scripts/spec-impact.py <base> <target> --version {v1,v2} [--spec-repo PATH]
prints a Markdown inventory: changed files, doc hunks mapped to heading
paths, core doc/section and core $def hits, the $ref closure, link fan-out
into changed docs, and requirement/ledger citations in changed regions.
Citation pointer parsing moves from the registry tests into
tck.common.citations, and spec checkout discovery from tests/conftest.py
into tck.common.spec_repo, so the script and tests share them.
Rewrites .mdx line citations in requirements.py and spec_map.toml from base to target line numbers through the diff, leaves citations inside changed regions as written and lists them as needing review. Also handles two None paths flagged by Pyright.
Move the cross-check tooling out of scripts/ into cross-check/ with its own pyproject, lockfile and tests. Both Python agents now run in its env (SDK 1.0.0rc2); the TCK runs as a CLI from the root project.
…e member Move the spec map loader, citation parser, spec-repo discovery, per-version spec maps and spec-impact out of the tck product package into spec-tracker/, a uv workspace member (package spec_tracker, entry point spec-impact). The product no longer references the spec checkout; its registry tests keep their own schema-pointer helpers. CI runs spec-tracker's tests in their own step after the spec fetch.
Update AGENTS.md, the programmer agent, and the orchestrator and update-to-spec skills for the workspace layout: new spec-impact command, map paths, cross-check/run.sh baseline, dev setup, and dependency commands.
testy_v2's ACP-INIT-205/206 PASS or FAIL run to run (testy exits before flushing its initialize error reply), which kept turning the cross-check job red. --expect-flaky LABEL=ID,... leaves those ids out of one report's comparison while still catching any other deviation. Also import summary directly in its tests via pytest's pythonpath instead of the importlib loader.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds tooling for following ACP spec updates, and separates the repo's maintenance tooling from the shipped
tckpackage.Agent skills
orchestratorandgranular-workskills, plus arevieweragent, for delegating TCK work to programmer, researcher and reviewer subagents.update-to-specskill, which drives a whole spec update end to end.Spec tracking
spec-tracker/maps/v{1,2}.toml). They list the core docs (optionally narrowed to sections, by heading path or(intro)), the core schema$defs, the code paths implementing the core rules, and a ledger of deliberate non-requirements.spec-impactcommand: reports what a spec diff touches (core docs,$defsand their$refclosure, linking docs, affected requirement ids and ledger entries). With--fixit remaps.mdxline citations from the base revision to the target, and it refuses to run unless the base is the pinned revision.Repo layout
The repo now holds three uv projects:
acp-tck: the product, unchanged apart from[tool.uv.workspace](members = ["spec-tracker"],exclude = ["cross-check"]). It depends on no member, and the wheel contains no tooling.spec-tracker/: a workspace member that depends onacp-tck. It holds the maps, the citation helpers andspec-impact(run asuv run --package spec-tracker spec-impact ...). The product's registry tests keep their own schema-pointer helpers, so the dependency stays one-way.cross-check/: a standalone uv project with its own lock and.venv. It runs the TCK as a command-line tool and never importstck. Both Python agents now run onagent-client-protocol==1.0.0rc2; the v1echo_agentgives identical results onrc1andrc2.scripts/is gone:cross-check.shbecamecross-check/run.sh,cross-check-summary.pybecamecross-check/summary.py, andspec-impact.pybecame thespec-impactentry point.For local development, run
uv sync --all-packages; plainuv syncremovesspec-trackerfrom the venv. To get completion for cross-check'sacpimports, opencross-check/as its own editor root.Testing
uv run pytest(root): 365 passed. The count was 477 before the move, because 112 tests moved to spec-tracker.uv run --package spec-tracker pytest spec-tracker/tests: 115 passed.uv run --directory cross-check pytest: 14 passed.cross-check/run.sh, run locally from two working directories: both runs matched the expected baseline.