adapters(tooling): add HiL/SiL Predicate Router adapter#21
Merged
Conversation
New optional tooling adapter for projects with substantial HiL or SiL
evidence capture. Routes deterministic capture-and-compare work off
the architect-tier agent onto a worker-tier agent driven by a pinned
predicate.json.
Routing contract:
- architect (Opus or equivalent) authors predicate.json at chunk-plan
time; worker (Haiku or equivalent) runs CLI, diffs against predicate,
emits {scn, status, evidence_uri, predicate_hash} JSONL
- worker MUST NOT load architecture context or mutate predicate
- architect re-engages only on non-empty diff or unexpected status
Compatible with the contract test hygiene rule (PR #19) and the
scenario status vocabulary (PR #20). Compounds with the RTK tooling
adapter on shell-visible runner invocations.
Pilot consumer: cms-pm/cockpit Phase 8
- docs/validation/phase-8/predicates/scn-8.0t.json
- scripts/validation/run_phase8_0t_fast_queue_backpressure.py
Predicate schema is project-local at 0.1.0-pilot; will be promoted
to a ratified contract under contracts/ after a second project adopts.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
5 tasks
cms-pm
added a commit
that referenced
this pull request
May 6, 2026
Defines the per-SCN status ledger (JSONL, append-only) that backs the Scenario Status Vocabulary (PR #20) and the HiL/SiL Predicate Router adapter (PR #21). - Writer contract: validate status against the five-value enum, append-only, predicate_hash required when a predicate drives the run - Reader contract: latest-ts row wins; absent rows resolve to not-started, never to passing - Astaire collection (cms-pm/astaire#16) consumes the ledger; companion scenario-predicate collection (cms-pm/astaire#17) joins on predicate_hash Pilot consumer: cms-pm/cockpit - tests/_contract_support.py — record_scenario writer - scripts/validation/run_phase8_0t_fast_queue_backpressure.py — HiL worker emission contract Schema is provisional; promotion to contracts/scenario-ledger.schema.json requires a second adopter, end-to-end Astaire ingestion, and version pinning alongside the manifest schema. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
cms-pm
added a commit
that referenced
this pull request
May 6, 2026
Aggregates three merged PRs since v0.6.1: - #20 core(evidence): add Scenario Status Vocabulary - #21 adapters(tooling): add HiL/SiL Predicate Router adapter - #22 runbooks: add Scenario Ledger Runbook Bumps the compatibility-matrix Astaire pin from v0.3.1 to v0.4.0 (d244699) so consumers reach the new scenario-predicate (#17) and scenario-ledger (#16) collection plugins, plus the source_type taxonomy extension (#15) and the scan refresh-modified-docs fix (#18).
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.
Summary
Adds a new optional tooling adapter at
adapters/tooling/HIL_SIL_PREDICATE_ROUTER.md:predicate.jsononce at chunk-plan time{scn, status, evidence_uri, predicate_hash}JSONL — no architecture context loadedMotivation
Phase 6.5.x HiL captures in cms-pm/cockpit dominated per-chunk closeout token cost. The captured outputs are deterministic (e.g.
SIDEBAND_STATUSlines, drop-counter deltas, FSM transition markers) — they don't require architectural judgment, they require pinned-expectation diffing. That's a cheap-worker workload.This adapter makes the routing pattern legible as governance rather than ad-hoc per-project optimization. Projects that opt in publish their predicates as load-bearing artifacts, the router contract caps what the worker is allowed to load, and ledger lines carry
predicate_hashso audit can detect drift independent of status.Compatibility
tdr/contract-test-hygiene): the worker-tier runner MUST NOT use silent-skip mechanismsevidence/scenario-status-vocabulary): the runner emits values from the enumerated settooling/rtk(existing): predicate-runner shell invocations should be RTK-rewritten to compound savingsastaire/scenario-ledger-collection): consumes the per-line ledger for cross-session state recallPilot consumer
cms-pm/cockpit Phase 8 chunk-8.0t:
docs/validation/phase-8/predicates/scn-8.0t.json(schema_version0.1.0-pilot)scripts/validation/run_phase8_0t_fast_queue_backpressure.pyrouting_hint.haiku_eligible = ["SCN-8.0t-03","SCN-8.0t-05","SCN-8.0t-06"]routing_hint.in_process = ["SCN-8.0t-01","SCN-8.0t-02","SCN-8.0t-04","SCN-8.0t-07"](source-shape, runs in the contract test)Schema posture
predicate.jsonschema is project-local during pilot (0.1.0-pilot). Will be promoted to a ratified contract undercontracts/once a second project adopts the adapter — premature schema standardization on a single pilot would lock in 8.0t's particularpredicate_kindenum.Stacked PRs
tdr/contract-test-hygieneevidence/scenario-status-vocabularyadapters/hil-sil-predicate-routerastaire/scenario-ledger-collectionTest plan
Compatibilitysection accurately cites the existing RTK adapter🤖 Generated with Claude Code