- PIPE-IDENTITY1
- PIPE-CONNSPEC391
- PIPE-PAGES431
- PIPE-GATES136
- PIPE-RELEASE71
- PIPE-VALIDATION14
- Requirementsall slices in all specs1044
- Requirements not donenot VERIFIED362
- Specs not donewhole specs only5
Each spec shows its requirement count. Panel J lists every record.
Requirements (1044)
Specs (6)
Each bar shows one state against all records of the same kind.
Percentages count current rows. Done means VERIFIED.
| State | Definition |
|---|---|
| SPECIFIED | The requirement is written. No code for it is on the default branch. |
| LANDED | A commit that carries its ID in a Spec trailer is on the default branch. |
| VERIFIED | It is LANDED and a test bound to its ID exists. |
A spec state is the lowest state of its rows. Done means VERIFIED.
Invalid state: 0
| Spec / title | Req. | Landed | Done | Spec state | Code references |
|---|---|---|---|---|---|
| PIPE-IDENTITYPIPE-IDENTITY — Commit author identity governance | 1 | 1/1 | 0 | LANDED | .config/pre-commit.yaml implementation: file exists; coverage not verified .github/workflows/ci.yml implementation: file exists; coverage not verified pipelines_hooks/cli.py implementation: file exists; coverage not verified pipelines_hooks/core/gitenv.py implementation: file exists; coverage not verified pipelines_hooks/core/settings.py implementation: file exists; coverage not verified pipelines_hooks/identity/allowlist.py implementation: file exists; coverage not verified pipelines_hooks/identity/fleet-default-allowlist.json implementation: file exists; coverage not verified pipelines_hooks/identity/fork_exemption.py implementation: file exists; coverage not verified pipelines_hooks/privacy/gate.py implementation: file exists; coverage not verified pipelines_hooks/privacy/identity_catalog.py implementation: file exists; coverage not verified Commit-time check documentation: file exists; coverage not verified Failure behavior documentation: file exists; coverage not verified Push-time check documentation: file exists; coverage not verified plan.md documentation: file exists; coverage not verified requirements.md documentation: file exists; coverage not verified the fork exemption documentation: file exists; coverage not verified |
| PIPE-CONNSPECPIPE-CONNSPEC — Connector spec-delivery rollout | 391 | 384/391 | 384 | SPECIFIED | pipelines_hooks/cli.py:73 implementation: file exists; coverage not verified |
| PIPE-PAGESPIPE-PAGES — Ecosystem Pages parity and release receipt | 431 | 121/431 | 118 | SPECIFIED | ../../.github/workflows/pages_pipeline.yml implementation: file exists; coverage not verified ../../reference/pages-readiness.md documentation: file exists; coverage not verified ../../scripts/pages_readiness.py implementation: file exists; coverage not verified ../../scripts/readiness/cli.py implementation: file exists; coverage not verified ../../scripts/readiness/delivery.py implementation: file exists; coverage not verified ../../tests/test_pages_pipeline_contract.py test: file exists; coverage not verified ../../tests/test_pages_readiness.py test: file exists; coverage not verified .config/kiss.toml implementation: file exists; coverage not verified .config/pre-commit.yaml:30 implementation: file exists; coverage not verified .github/workflows/ci.yml:86 implementation: file exists; coverage not verified .github/workflows/pages_pipeline.yml:253 implementation: file exists; coverage not verified pages/parity.md documentation: file exists; coverage not verified pipelines_hooks/cli.py:14 implementation: file exists; coverage not verified pipelines_hooks/cli.py:33 implementation: file exists; coverage not verified pipelines_hooks/cli.py:59 implementation: file exists; coverage not verified pipelines_hooks/cli.py:66 implementation: file exists; coverage not verified pipelines_hooks/cli.py:79 implementation: file exists; coverage not verified pipelines_hooks/clones/contract.py:14 implementation: file exists; coverage not verified pipelines_hooks/clones/dupehound.py:64 implementation: file exists; coverage not verified pipelines_hooks/clones/dupehound_gate.py:28 implementation: file exists; coverage not verified pipelines_hooks/clones/dupehound_gate.py:46 implementation: file exists; coverage not verified pipelines_hooks/clones/dupehound_report.py:66 implementation: file exists; coverage not verified pipelines_hooks/code/import_cycles.py:57 implementation: file exists; coverage not verified pipelines_hooks/code/import_graph.py:71 implementation: file exists; coverage not verified pipelines_hooks/code/no_stub.py:62 implementation: file exists; coverage not verified pipelines_hooks/code/no_stub.py:79 implementation: file exists; coverage not verified pipelines_hooks/core/comparison.py:53 implementation: file exists; coverage not verified pipelines_hooks/core/config.py:21 implementation: file exists; coverage not verified pipelines_hooks/core/gitenv.py:81 implementation: file exists; coverage not verified pipelines_hooks/docs/claims.py documentation: file exists; coverage not verified pipelines_hooks/docs/public_surface.py:31 documentation: file exists; coverage not verified pipelines_hooks/docs/public_surface_constants.py:7 documentation: file exists; coverage not verified pipelines_hooks/docs/public_surface_links.py:29 documentation: file exists; coverage not verified pipelines_hooks/kiss/census.py:31 implementation: file exists; coverage not verified pipelines_hooks/specs/generator.py:93 documentation: file exists; coverage not verified reference/ecosystem-boundaries.md documentation: file exists; coverage not verified scripts/architecture_explorer/build.py implementation: file exists; coverage not verified scripts/check_five_repo_parity.py implementation: file exists; coverage not verified scripts/readiness/cli.py:68 implementation: file exists; coverage not verified scripts/readiness/evidence.py:41 implementation: file exists; coverage not verified scripts/skill_graph/au.py:78 implementation: file exists; coverage not verified scripts/spec_dashboard_drilldown.py:17 implementation: file exists; coverage not verified scripts/spec_dashboard_render.py:67 implementation: file exists; coverage not verified scripts/spec_dashboard_render.py:70 implementation: file exists; coverage not verified scripts/sync_mkdocs_theme.py implementation: file exists; coverage not verified templates/mkdocs-theme/base.mkdocs.yml implementation: file exists; coverage not verified templates/mkdocs-theme/overrides/main.html implementation: file exists; coverage not verified tests/hooks/test_public_surface_claims.py test: file exists; coverage not verified tests/hooks/test_similarity_guidance_hook.py test: file exists; coverage not verified tests/hooks/test_skill_grade_hook.py test: file exists; coverage not verified Comparison documentation: file exists; coverage not verified Input and provenance documentation: file exists; coverage not verified Integration documentation: file exists; coverage not verified requirements.md documentation: file exists; coverage not verified |
| PIPE-GATESPIPE-GATES — Gate landing policy | 136 | 124/136 | 124 | SPECIFIED | pipelines_hooks/specs/third_party_names.toml documentation: file exists; coverage not verified reference/gate-standard.md documentation: file exists; coverage not verified Failure policy documentation: file exists; coverage not verified Gate partition documentation: file exists; coverage not verified Tree-based execution documentation: file exists; coverage not verified requirements documentation: file exists; coverage not verified |
| PIPE-RELEASEPIPE-RELEASE — Dependency-ordered digest release orchestration | 71 | 43/71 | 42 | SPECIFIED | .config/bumpversion.cfg implementation: file exists; coverage not verified .config/bumpversion.cfg:2 implementation: file exists; coverage not verified .config/bumpversion.cfg:6 implementation: file exists; coverage not verified .github/actions/maturin-build-wheels/action.yml implementation: file exists; coverage not verified .github/actions/wheel-readiness/readiness.py:325 implementation: file exists; coverage not verified .github/actions/wheel-readiness/targets.py implementation: file exists; coverage not verified .github/workflows/ci.yml:86 implementation: file exists; coverage not verified .github/workflows/container_pipeline.yml implementation: file exists; coverage not verified .github/workflows/gates_pipeline.yml implementation: file exists; coverage not verified .github/workflows/python_pipeline.yml implementation: file exists; coverage not verified pipelines_hooks/ci_replica/fast_tests.py implementation: file exists; coverage not verified pipelines_hooks/ci_replica/test_scope.py test: file exists; coverage not verified pipelines_hooks/cli.py implementation: file exists; coverage not verified pipelines_hooks/cli.py:13 implementation: file exists; coverage not verified pipelines_hooks/cli.py:59 implementation: file exists; coverage not verified pipelines_hooks/cli.py:79 implementation: file exists; coverage not verified pipelines_hooks/core/comparison.py:53 implementation: file exists; coverage not verified pipelines_hooks/core/gitenv.py:81 implementation: file exists; coverage not verified pipelines_hooks/core/versions_gate.py:10 implementation: file exists; coverage not verified reference/ci-standard.md documentation: file exists; coverage not verified templates/workflows/gates-skip.yml implementation: file exists; coverage not verified tests/hooks/test_project_version_sync.py test: file exists; coverage not verified tests/test_python_wheel_output.py test: file exists; coverage not verified tests/test_release_source.py test: file exists; coverage not verified Candidate model documentation: file exists; coverage not verified Digest boundary documentation: file exists; coverage not verified Portable execution documentation: file exists; coverage not verified Qualification documentation: file exists; coverage not verified requirements.md documentation: file exists; coverage not verified |
| PIPE-VALIDATIONPIPE-VALIDATION — Shared validation | 14 | 14/14 | 14 | ✓ VERIFIED | .config/kiss.toml implementation: file exists; coverage not verified .config/validation.toml implementation: file exists; coverage not verified plan.md documentation: file exists; coverage not verified requirements documentation: file exists; coverage not verified test-spec.md documentation: file exists; coverage not verified |
Landed counts LANDED and VERIFIED requirements. Done counts VERIFIED requirements only.
The spec state comes from the spec status file only.
Packages group specs by repository and declared component. Unassigned means no component was declared. Code links do not prove coverage. Mermaid source.
Knuckles-Team/pipelines / Unassigned (6)
PIPE-CONNSPEC: no plan diagram declared.
PIPE-GATES: no plan diagram declared.
PIPE-IDENTITY: no plan diagram declared.
PIPE-PAGES: no plan diagram declared.
PIPE-RELEASE: no plan diagram declared.
PIPE-VALIDATION: no plan diagram declared.
Depends on means a declared prerequisite. Extends and references do not imply prerequisite order. Shared code never creates dependencies. External targets are source declarations, not verified delivery.
Knuckles-Team/pipelines / Unassigned
| Spec | Relationship | Target | Evidence |
|---|---|---|---|
| PIPE-CONNSPEC | No relationships declared; dependencies unknown | ||
| PIPE-GATES | No relationships declared; dependencies unknown | ||
| PIPE-IDENTITY | No relationships declared; dependencies unknown | ||
| PIPE-PAGES | No relationships declared; dependencies unknown | ||
| PIPE-RELEASE | No relationships declared; dependencies unknown | ||
| PIPE-VALIDATION | No relationships declared; dependencies unknown | ||
Issues
0 open at capture.
Pull Requests
3 open at capture.
- #366 chore(deps): pin pydantic 2.14.1 so the hooks co-install with scion-sdk updated 2026-10-28T23:18:29Z
- #283 [Blocked draft] Strict architecture story data contract and activity cache updated 2026-10-26T05:17:53Z
- #282 Preview only: source-bound architecture visual stories updated 2026-10-26T14:27:35Z
The build reads GitHub one time. This page makes no live API requests.
Each status file gives one spec row. Each requirement gives one more row. A record without a valid state shows INVALID. Expand a Definition to read the canonical requirement and verification text.
All documented records (1050 rows)
| ID / source | Kind | Parent | State | Commit / test evidence |
|---|---|---|---|---|
| PIPE-IDENTITY PIPE-IDENTITY — Commit author identity governance | spec | None | LANDED | No recorded commit/test evidence |
| PIPE-IDENTITY-R001 Commit author identity is restricted to an allowlist Definition — PIPE-IDENTITY / PIPE-IDENTITY — Commit author identity governanceCanonical requirement and verification source**Commit author identity is restricted to an allowlist.** pipelines enforces an author-identity allowlist in its pre-commit, pre-push, and CI checks, rejecting any commit whose author or committer name and email pair does not match one of a configured set of permitted identities. | Verified by a negative test that a commit with an identity outside the configured allowlist is rejected by the hook and by the CI check. | requirement | PIPE-IDENTITY | LANDED | 1a70d678b24f f2d327f13a3c |
| PIPE-CONNSPEC PIPE-CONNSPEC — Connector spec-delivery rollout | spec | None | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R001 Generated status with three hooks and four states Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Generated status with three hooks and four states.** The reference implementation lives in `pipelines_hooks/specs/`, exposing the hooks `spec-status`, `spec-decomposition`, and `spec-trailers`. Delivery status is generated, never hand-edited, and each requirement is in exactly one of the states SPECIFIED, LANDED, VERIFIED, or RETIRED. New landings use explicit Spec trailers or historical Spec subjects, never unrelated prose or none exemption reasons; historical receipts retain their existing validation. When specs exist, incomplete shallow Git history refuses generation and writes with exit 2 and a full-history fetch remedy, leaving status files unchanged; full history still rejects reverted or unreachable receipts. Repository ownership comes from origin or a sole configured remote, correcting stale checkout-derived owners without losing live legacy receipts; without an unambiguous remote identity, retain the old owner or finally the checkout name. A parent rolls up to the minimum state of its live children. A parent rolled up to LANDED carries its children's landing commits, and one rolled up to VERIFIED also carries their bound tests. During a resolved merge, default `spec-status` evaluates the index candidate tree with HEAD and MERGE_HEAD as parents and records evidence only from actual non-merge commits. An explicit `--head` remains authoritative even with unresolved conflicts. Default merge inference fails closed when conflicts remain or the worktree differs from its index. `spec-trailers` excludes commits already reachable from `origin/main` even when the pushed-over base is older, while continuing to validate all new branch commits against the current requirement and binding tree. | The files `pipelines_hooks/specs/status.py`, `decomposition.py`, and `trailers.py` exist; pending-merge tests in `tests/hooks/test_spec_status.py` verify candidate-tree history, explicit-head behavior, and fail-closed conflicts and index/worktree mismatch; `pipelines-hook spec-status --write` followed by `pipelines-hook spec-decomposition` runs clean in this repository. | requirement | PIPE-CONNSPEC | VERIFIED | 1141a437d4bd 15fc54d4d3c9 2379fcc1353d 2c140a34dfcd 2f112e98cd9f tests/hooks/test_spec_landing_attribution.py:18 tests/hooks/test_spec_landing_attribution.py:46 tests/hooks/test_spec_landing_attribution.py:56 tests/hooks/test_spec_landing_attribution.py:66 tests/hooks/test_spec_repository_identity.py:104 |
| PIPE-CONNSPEC-R002 Test binding forms Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Test binding forms.** A test binds to a requirement with `@pytest.mark.spec("<ID>")` in Python or a `// spec: <ID>` comment in other languages, as parsed by `pipelines_hooks/specs/bindings.py`. | `pipelines_hooks/specs/bindings.py` exists and a bound test in this repository is picked up by `pipelines-hook spec-status`. | requirement | PIPE-CONNSPEC | VERIFIED | e01884644a83 tests/hooks/test_spec_status.py:62 |
| PIPE-CONNSPEC-R003 The spec-delivery page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**The spec-delivery page.** `scripts/spec_dashboard*.py` is rendered through the reusable workflow `.github/workflows/pages_pipeline.yml` with `spec_dashboard_enabled: true`, and publishes at `https://knuckles-team.github.io/<repo>/spec-delivery/`. | `scripts/spec_dashboard.py` and `.github/workflows/pages_pipeline.yml` exist, and the workflow declares the `spec_dashboard_enabled` input. | requirement | PIPE-CONNSPEC | VERIFIED | 0e995cf10c3d tests/test_spec_dashboard.py:14 |
| PIPE-CONNSPEC-R004 Reference callers in the five core repositories Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Reference callers in the five core repositories.** The reference callers are Medulla (`release.yml`), Meristem (`advisory.yml`), arbora (`pages.yml`), Scion SDK (`pages.yml`), and Overstory (`advisory.yml`). They are the one standard a connector copies. | Each named workflow file exists in its repository and calls `Knuckles-Team/pipelines/.github/workflows/pages_pipeline.yml@main` with `spec_dashboard_enabled: true`. | requirement | PIPE-CONNSPEC | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R005 The lane contract in each development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**The lane contract in each development skill.** Each repository's `<repo>-development` skill carries the section "Rapid delivery: the 5-minute contract", which is the lane contract for agents working in it. | A search of each core repository's `<repo>-development` skill finds the section heading "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R006 Preserve retired identities across spec ownership moves Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Preserve retired identities across spec ownership moves.** `pipelines_hooks/specs/standard.py` uses the shared retirement parser. A retired row keeps its original prefix; active canonical-form rows must match the owning spec. | `test_moved_retired_identity_uses_shared_status_parser` accepts a retired historical ID and refuses active rows that merely mention retirement. | requirement | PIPE-CONNSPEC | VERIFIED | 615425fe278b tests/test_spec_standard.py:117 tests/test_spec_standard.py:124 |
| PIPE-CONNSPEC-R007 CI checks changed prose Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**CI checks changed prose.** `ste-staged` checks committed PR or push changes on clean CI checkouts. Local runs check the staged index. Unavailable requested base commits fail closed. Existing per-file `(code, message)` finding counts remain exempt. | Real Git fixtures cover PR and push event bases, new findings, legacy debt, staged content, and invalid bases. | requirement | PIPE-CONNSPEC | VERIFIED | 6f1b2623bbda tests/hooks/test_ste_ci.py:31 |
| PIPE-CONNSPEC-R175 Every repository ships one-command agent setup Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Every repository ships one-command agent setup.** Each repository tracks an idempotent, non-interactive `scripts/bootstrap.sh` that installs a current uv, the pinned Python (`.python-version`, else the fleet standard), the locked environment (`uv sync --locked`, or the repository's equivalent), and the pre-commit and pre-push hooks, then prints the gate command `uvx pre-commit run --all-files`. The script never pipes a network response into a shell: uv comes from `pip install --user` (retrying with `--break-system-packages`) or the script stops with the install link, so the `supply-chain` rule SC-INSTALL-001 stays clean. | `pipelines-hook agent-contract` reports `scripts/bootstrap.sh is not tracked` for a repository without it, reports SC-INSTALL-001 for a script containing `curl ... \| sh`, and passes under `--strict` for a conformant fixture. | requirement | PIPE-CONNSPEC | VERIFIED | 86a085a2865d b6a2fbb27499 tests/hooks/test_agent_contract.py:20 tests/hooks/test_agent_contract.py:68 tests/hooks/test_agent_contract.py:79 |
| PIPE-CONNSPEC-R176 Every repository carries the standard tool-neutral AGENTS.md section Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Every repository carries the standard tool-neutral AGENTS.md section.** `AGENTS.md` holds the marked block `<!-- agent-contract:start -->` to `<!-- agent-contract:end -->` with the labels Owner boundary, Setup, Gates and Commits, and a link to the organization `AGENTS.md` at `https://github.com/Knuckles-Team/.github/blob/main/AGENTS.md`. The block is tool-neutral; a tool-specific entry file such as `CLAUDE.md` only imports `AGENTS.md`. The connector scaffold in `universal-skills` generates both the script and the block. | `pipelines-hook agent-contract --strict` fails for an `AGENTS.md` without the block, a missing label or a missing org link, and passes for a conformant fixture. | requirement | PIPE-CONNSPEC | VERIFIED | 2a35ac8c46c0 tests/hooks/test_agent_contract.py:31 tests/hooks/test_agent_contract.py:39 |
| PIPE-CONNSPEC-R177 The agent-contract check is warn-level first Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**The agent-contract check is warn-level first.** The hook `agent-contract` (pre-push) reports findings and exits 0; `--strict` makes them blocking once the fleet has converged. It reads the tracked set only. | The default run exits 0 with a `WARN` line for a nonconforming fixture, and `--strict` exits 1. | requirement | PIPE-CONNSPEC | VERIFIED | 2a35ac8c46c0 tests/hooks/test_agent_contract.py:47 tests/hooks/test_agent_contract.py:58 |
| PIPE-CONNSPEC-R101 `ansible-tower-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`ansible-tower-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 afd8a5efe60e tests/test_connector_consumer_r101_r106_r116.py:65 tests/test_connector_consumer_r101_r106_r116.py:66 tests/test_connector_consumer_r101_r106_r116.py:67 tests/test_connector_consumer_r101_r115.py:72 tests/test_connector_consumer_r101_r115.py:97 |
| PIPE-CONNSPEC-R101.1 `ansible-tower-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ansible-tower-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:72 tests/test_connector_consumer_r101_r115.py:97 |
| PIPE-CONNSPEC-R101.2 `ansible-tower-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ansible-tower-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:65 |
| PIPE-CONNSPEC-R101.3 `ansible-tower-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ansible-tower-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/ansible-tower-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:66 |
| PIPE-CONNSPEC-R101.4 `ansible-tower-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ansible-tower-mcp` has the rapid-delivery section in its development skill. | Check that its `ansible-tower-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:67 |
| PIPE-CONNSPEC-R102 `archimate-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`archimate-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2cfb5169e508 449c1193701b afd8a5efe60e tests/test_connector_consumer_r101_r115.py:111 tests/test_connector_consumer_r101_r115.py:136 tests/test_connector_consumer_r101_r115.py:73 tests/test_connector_consumer_r102.py:150 tests/test_connector_consumer_r102.py:62 |
| PIPE-CONNSPEC-R102.1 `archimate-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archimate-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:73 |
| PIPE-CONNSPEC-R102.2 `archimate-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archimate-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:111 |
| PIPE-CONNSPEC-R102.3 `archimate-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archimate-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/archimate-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:136 |
| PIPE-CONNSPEC-R102.4 `archimate-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archimate-mcp` has the rapid-delivery section in its development skill. | Check that its `archimate-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2cfb5169e508 449c1193701b tests/test_connector_consumer_r102.py:150 tests/test_connector_consumer_r102.py:62 |
| PIPE-CONNSPEC-R103 `archivebox-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`archivebox-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a75eb4ea62fd ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:138 tests/test_connector_consumer_r103_r152_public_batch.py:96 tests/test_connector_consumer_remeasure_20261028.py:172 tests/test_connector_consumer_rollout.py:49 |
| PIPE-CONNSPEC-R103.1 `archivebox-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archivebox-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:49 |
| PIPE-CONNSPEC-R103.2 `archivebox-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archivebox-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:172 |
| PIPE-CONNSPEC-R103.3 `archivebox-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archivebox-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/archivebox-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:96 |
| PIPE-CONNSPEC-R103.4 `archivebox-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`archivebox-api` has the rapid-delivery section in its development skill. | Check that its `archivebox-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:138 |
| PIPE-CONNSPEC-R104 `aris-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`aris-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd d982a5d40269 tests/test_connector_consumer_rollout.py:124 tests/test_connector_consumer_rollout.py:224 tests/test_connector_consumer_rollout.py:50 tests/test_connector_consumer_rollout.py:80 |
| PIPE-CONNSPEC-R104.1 `aris-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`aris-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:50 |
| PIPE-CONNSPEC-R104.2 `aris-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`aris-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:80 |
| PIPE-CONNSPEC-R104.3 `aris-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`aris-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/aris-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:124 |
| PIPE-CONNSPEC-R104.4 `aris-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`aris-mcp` has the rapid-delivery section in its development skill. | Check that its `aris-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | d982a5d40269 tests/test_connector_consumer_rollout.py:224 |
| PIPE-CONNSPEC-R105 `arr-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`arr-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd f82d25db4632 tests/test_connector_consumer_r105.py:62 tests/test_connector_consumer_r105.py:63 tests/test_connector_consumer_rollout.py:51 tests/test_connector_consumer_rollout.py:81 |
| PIPE-CONNSPEC-R105.1 `arr-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`arr-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:51 |
| PIPE-CONNSPEC-R105.2 `arr-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`arr-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:81 |
| PIPE-CONNSPEC-R105.3 `arr-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`arr-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/arr-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | f82d25db4632 tests/test_connector_consumer_r105.py:62 |
| PIPE-CONNSPEC-R105.4 `arr-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`arr-mcp` has the rapid-delivery section in its development skill. | Check that its `arr-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | f82d25db4632 tests/test_connector_consumer_r105.py:63 |
| PIPE-CONNSPEC-R106 `atlassian-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`atlassian-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 afd8a5efe60e tests/test_connector_consumer_r101_r106_r116.py:68 tests/test_connector_consumer_r101_r106_r116.py:69 tests/test_connector_consumer_r101_r106_r116.py:70 tests/test_connector_consumer_r101_r115.py:74 |
| PIPE-CONNSPEC-R106.1 `atlassian-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`atlassian-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:74 |
| PIPE-CONNSPEC-R106.2 `atlassian-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`atlassian-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:68 |
| PIPE-CONNSPEC-R106.3 `atlassian-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`atlassian-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/atlassian-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:69 |
| PIPE-CONNSPEC-R106.4 `atlassian-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`atlassian-agent` has the rapid-delivery section in its development skill. | Check that its `atlassian-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:70 |
| PIPE-CONNSPEC-R107 `audio-transcriber` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`audio-transcriber` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 a75eb4ea62fd d7d1a86cc659 tests/test_connector_consumer_r107_r155_public_batch.py:127 tests/test_connector_consumer_r107_r155_public_batch.py:76 tests/test_connector_consumer_rollout.py:52 tests/test_connector_consumer_rollout.py:82 |
| PIPE-CONNSPEC-R107.1 `audio-transcriber` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audio-transcriber` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:52 |
| PIPE-CONNSPEC-R107.2 `audio-transcriber` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audio-transcriber` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:82 |
| PIPE-CONNSPEC-R107.3 `audio-transcriber` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audio-transcriber` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/audio-transcriber/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 d7d1a86cc659 tests/test_connector_consumer_r107_r155_public_batch.py:76 |
| PIPE-CONNSPEC-R107.4 `audio-transcriber` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audio-transcriber` has the rapid-delivery section in its development skill. | Check that its `audio-transcriber-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 d7d1a86cc659 tests/test_connector_consumer_r107_r155_public_batch.py:127 |
| PIPE-CONNSPEC-R108 `audiobookshelf-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`audiobookshelf-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 afd8a5efe60e tests/test_connector_consumer_r101_r115.py:112 tests/test_connector_consumer_r101_r115.py:75 tests/test_connector_consumer_r108_r115.py:79 tests/test_connector_consumer_r108_r115.py:80 |
| PIPE-CONNSPEC-R108.1 `audiobookshelf-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audiobookshelf-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:75 |
| PIPE-CONNSPEC-R108.2 `audiobookshelf-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audiobookshelf-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:112 |
| PIPE-CONNSPEC-R108.3 `audiobookshelf-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audiobookshelf-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/audiobookshelf-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:79 |
| PIPE-CONNSPEC-R108.4 `audiobookshelf-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`audiobookshelf-mcp` has the rapid-delivery section in its development skill. | Check that its `audiobookshelf-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:80 |
| PIPE-CONNSPEC-R109 `caddy-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`caddy-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 4c822b3c2dd7 a75eb4ea62fd tests/test_connector_consumer_rollout.py:125 tests/test_connector_consumer_rollout.py:148 tests/test_connector_consumer_rollout.py:53 tests/test_connector_consumer_rollout.py:83 |
| PIPE-CONNSPEC-R109.1 `caddy-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`caddy-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:53 |
| PIPE-CONNSPEC-R109.2 `caddy-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`caddy-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:83 |
| PIPE-CONNSPEC-R109.3 `caddy-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`caddy-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/caddy-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:125 |
| PIPE-CONNSPEC-R109.4 `caddy-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`caddy-mcp` has the rapid-delivery section in its development skill. | Check that its `caddy-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 4c822b3c2dd7 tests/test_connector_consumer_rollout.py:148 |
| PIPE-CONNSPEC-R110 `camunda-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`camunda-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd d982a5d40269 tests/test_connector_consumer_rollout.py:126 tests/test_connector_consumer_rollout.py:225 tests/test_connector_consumer_rollout.py:54 tests/test_connector_consumer_rollout.py:84 |
| PIPE-CONNSPEC-R110.1 `camunda-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`camunda-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:54 |
| PIPE-CONNSPEC-R110.2 `camunda-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`camunda-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:84 |
| PIPE-CONNSPEC-R110.3 `camunda-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`camunda-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/camunda-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:126 |
| PIPE-CONNSPEC-R110.4 `camunda-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`camunda-mcp` has the rapid-delivery section in its development skill. | Check that its `camunda-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | d982a5d40269 tests/test_connector_consumer_rollout.py:225 |
| PIPE-CONNSPEC-R111 `ciso-assistant-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`ciso-assistant-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 5536587da291 a75eb4ea62fd tests/test_connector_consumer_r107_r155_public_batch.py:128 tests/test_connector_consumer_r107_r155_public_batch.py:77 tests/test_connector_consumer_remeasure_20261028.py:173 tests/test_connector_consumer_rollout.py:55 |
| PIPE-CONNSPEC-R111.1 `ciso-assistant-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ciso-assistant-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:55 |
| PIPE-CONNSPEC-R111.2 `ciso-assistant-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ciso-assistant-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:173 |
| PIPE-CONNSPEC-R111.3 `ciso-assistant-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ciso-assistant-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/ciso-assistant-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:77 |
| PIPE-CONNSPEC-R111.4 `ciso-assistant-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`ciso-assistant-api` has the rapid-delivery section in its development skill. | Check that its `ciso-assistant-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:128 |
| PIPE-CONNSPEC-R112 `clarity-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`clarity-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 afd8a5efe60e tests/test_connector_consumer_r101_r115.py:113 tests/test_connector_consumer_r101_r115.py:76 tests/test_connector_consumer_r108_r115.py:81 tests/test_connector_consumer_r108_r115.py:82 |
| PIPE-CONNSPEC-R112.1 `clarity-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`clarity-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:76 |
| PIPE-CONNSPEC-R112.2 `clarity-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`clarity-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:113 |
| PIPE-CONNSPEC-R112.3 `clarity-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`clarity-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/clarity-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:81 |
| PIPE-CONNSPEC-R112.4 `clarity-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`clarity-api` has the rapid-delivery section in its development skill. | Check that its `clarity-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:82 |
| PIPE-CONNSPEC-R113 `container-manager-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`container-manager-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 afd8a5efe60e tests/test_connector_consumer_r101_r115.py:77 tests/test_connector_consumer_r108_r115.py:83 tests/test_connector_consumer_r108_r115.py:84 tests/test_connector_consumer_r108_r115.py:85 |
| PIPE-CONNSPEC-R113.1 `container-manager-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`container-manager-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:77 |
| PIPE-CONNSPEC-R113.2 `container-manager-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`container-manager-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:83 |
| PIPE-CONNSPEC-R113.3 `container-manager-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`container-manager-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/container-manager-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:84 |
| PIPE-CONNSPEC-R113.4 `container-manager-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`container-manager-mcp` has the rapid-delivery section in its development skill. | Check that its `container-manager-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:85 |
| PIPE-CONNSPEC-R114 `data-science-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`data-science-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 afd8a5efe60e tests/test_connector_consumer_r101_r115.py:114 tests/test_connector_consumer_r101_r115.py:78 tests/test_connector_consumer_r108_r115.py:86 tests/test_connector_consumer_r108_r115.py:87 |
| PIPE-CONNSPEC-R114.1 `data-science-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`data-science-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:78 |
| PIPE-CONNSPEC-R114.2 `data-science-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`data-science-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:114 |
| PIPE-CONNSPEC-R114.3 `data-science-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`data-science-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/data-science-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:86 |
| PIPE-CONNSPEC-R114.4 `data-science-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`data-science-mcp` has the rapid-delivery section in its development skill. | Check that its `data-science-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:87 |
| PIPE-CONNSPEC-R115 `dockerhub-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`dockerhub-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 afd8a5efe60e tests/test_connector_consumer_r101_r115.py:115 tests/test_connector_consumer_r101_r115.py:79 tests/test_connector_consumer_r108_r115.py:88 tests/test_connector_consumer_r108_r115.py:89 |
| PIPE-CONNSPEC-R115.1 `dockerhub-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`dockerhub-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:79 |
| PIPE-CONNSPEC-R115.2 `dockerhub-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`dockerhub-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | afd8a5efe60e tests/test_connector_consumer_r101_r115.py:115 |
| PIPE-CONNSPEC-R115.3 `dockerhub-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`dockerhub-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/dockerhub-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:88 |
| PIPE-CONNSPEC-R115.4 `dockerhub-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`dockerhub-api` has the rapid-delivery section in its development skill. | Check that its `dockerhub-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 3023e9165c48 tests/test_connector_consumer_r108_r115.py:89 |
| PIPE-CONNSPEC-R116 `documentdb-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`documentdb-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 a75eb4ea62fd ede2cdeae90f tests/test_connector_consumer_r101_r106_r116.py:71 tests/test_connector_consumer_r101_r106_r116.py:72 tests/test_connector_consumer_r103_r152_public_batch.py:139 tests/test_connector_consumer_rollout.py:56 |
| PIPE-CONNSPEC-R116.1 `documentdb-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`documentdb-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:56 |
| PIPE-CONNSPEC-R116.2 `documentdb-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`documentdb-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:71 |
| PIPE-CONNSPEC-R116.3 `documentdb-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`documentdb-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/documentdb-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 939290c617c5 tests/test_connector_consumer_r101_r106_r116.py:72 |
| PIPE-CONNSPEC-R116.4 `documentdb-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`documentdb-mcp` has the rapid-delivery section in its development skill. | Check that its `documentdb-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:139 |
| PIPE-CONNSPEC-R117 `egeria-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`egeria-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd d982a5d40269 tests/test_connector_consumer_rollout.py:127 tests/test_connector_consumer_rollout.py:226 tests/test_connector_consumer_rollout.py:57 tests/test_connector_consumer_rollout.py:85 |
| PIPE-CONNSPEC-R117.1 `egeria-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`egeria-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:57 |
| PIPE-CONNSPEC-R117.2 `egeria-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`egeria-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:85 |
| PIPE-CONNSPEC-R117.3 `egeria-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`egeria-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/egeria-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a75eb4ea62fd tests/test_connector_consumer_rollout.py:127 |
| PIPE-CONNSPEC-R117.4 `egeria-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`egeria-mcp` has the rapid-delivery section in its development skill. | Check that its `egeria-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | d982a5d40269 tests/test_connector_consumer_rollout.py:226 |
| PIPE-CONNSPEC-R118 `emerald-exchange` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`emerald-exchange` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:49 tests/test_connector_consumer_remeasure_20261028.py:174 tests/test_connector_consumer_remeasure_20261028.py:200 tests/test_connector_consumer_remeasure_20261028.py:225 |
| PIPE-CONNSPEC-R118.1 `emerald-exchange` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`emerald-exchange` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:49 |
| PIPE-CONNSPEC-R118.2 `emerald-exchange` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`emerald-exchange` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:174 |
| PIPE-CONNSPEC-R118.3 `emerald-exchange` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`emerald-exchange` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/emerald-exchange/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:200 |
| PIPE-CONNSPEC-R118.4 `emerald-exchange` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`emerald-exchange` has the rapid-delivery section in its development skill. | Check that its `emerald-exchange-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:225 |
| PIPE-CONNSPEC-R119 `erpnext-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`erpnext-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 a56aeaef8e7f tests/test_connector_consumer_r107_r155_public_batch.py:129 tests/test_connector_consumer_r118_137.py:147 tests/test_connector_consumer_r118_137.py:50 tests/test_connector_consumer_r118_137.py:94 |
| PIPE-CONNSPEC-R119.1 `erpnext-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`erpnext-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:50 |
| PIPE-CONNSPEC-R119.2 `erpnext-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`erpnext-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:94 |
| PIPE-CONNSPEC-R119.3 `erpnext-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`erpnext-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/erpnext-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:147 |
| PIPE-CONNSPEC-R119.4 `erpnext-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`erpnext-agent` has the rapid-delivery section in its development skill. | Check that its `erpnext-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:129 |
| PIPE-CONNSPEC-R120 `fan-manager` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`fan-manager` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 a56aeaef8e7f tests/test_connector_consumer_r107_r155_public_batch.py:130 tests/test_connector_consumer_r107_r155_public_batch.py:78 tests/test_connector_consumer_r118_137.py:51 tests/test_connector_consumer_r118_137.py:95 |
| PIPE-CONNSPEC-R120.1 `fan-manager` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`fan-manager` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:51 |
| PIPE-CONNSPEC-R120.2 `fan-manager` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`fan-manager` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:95 |
| PIPE-CONNSPEC-R120.3 `fan-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`fan-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/fan-manager/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:78 |
| PIPE-CONNSPEC-R120.4 `fan-manager` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`fan-manager` has the rapid-delivery section in its development skill. | Check that its `fan-manager-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:130 |
| PIPE-CONNSPEC-R121 `firefly-iii-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`firefly-iii-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2523602d5bf6 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:52 tests/test_connector_consumer_r118_137.py:96 tests/test_connector_consumer_r121.py:148 tests/test_connector_consumer_r121.py:186 tests/test_connector_consumer_r121.py:67 |
| PIPE-CONNSPEC-R121.1 `firefly-iii-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`firefly-iii-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:52 |
| PIPE-CONNSPEC-R121.2 `firefly-iii-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`firefly-iii-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:96 |
| PIPE-CONNSPEC-R121.3 `firefly-iii-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`firefly-iii-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/firefly-iii-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2523602d5bf6 tests/test_connector_consumer_r121.py:148 tests/test_connector_consumer_r121.py:67 |
| PIPE-CONNSPEC-R121.4 `firefly-iii-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`firefly-iii-mcp` has the rapid-delivery section in its development skill. | Check that its `firefly-iii-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2523602d5bf6 tests/test_connector_consumer_r121.py:186 tests/test_connector_consumer_r121.py:68 |
| PIPE-CONNSPEC-R122 `freshrss-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`freshrss-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 5536587da291 a56aeaef8e7f tests/test_connector_consumer_r107_r155_public_batch.py:131 tests/test_connector_consumer_r118_137.py:53 tests/test_connector_consumer_r118_137.py:97 tests/test_connector_consumer_remeasure_20261028.py:201 |
| PIPE-CONNSPEC-R122.1 `freshrss-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`freshrss-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:53 |
| PIPE-CONNSPEC-R122.2 `freshrss-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`freshrss-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:97 |
| PIPE-CONNSPEC-R122.3 `freshrss-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`freshrss-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/freshrss-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:201 |
| PIPE-CONNSPEC-R122.4 `freshrss-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`freshrss-agent` has the rapid-delivery section in its development skill. | Check that its `freshrss-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:131 |
| PIPE-CONNSPEC-R123 `genius-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`genius-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:54 tests/test_connector_consumer_r118_137.py:98 tests/test_connector_consumer_remeasure_20261028.py:202 tests/test_connector_consumer_remeasure_20261028.py:226 |
| PIPE-CONNSPEC-R123.1 `genius-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`genius-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:54 |
| PIPE-CONNSPEC-R123.2 `genius-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`genius-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:98 |
| PIPE-CONNSPEC-R123.3 `genius-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`genius-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/genius-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:202 |
| PIPE-CONNSPEC-R123.4 `genius-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`genius-agent` has the rapid-delivery section in its development skill. | Check that its `genius-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:226 |
| PIPE-CONNSPEC-R124 `github-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`github-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:55 tests/test_connector_consumer_remeasure_20261028.py:175 tests/test_connector_consumer_remeasure_20261028.py:203 tests/test_connector_consumer_remeasure_20261028.py:227 |
| PIPE-CONNSPEC-R124.1 `github-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`github-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:55 |
| PIPE-CONNSPEC-R124.2 `github-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`github-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:175 |
| PIPE-CONNSPEC-R124.3 `github-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`github-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/github-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:203 |
| PIPE-CONNSPEC-R124.4 `github-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`github-agent` has the rapid-delivery section in its development skill. | Check that its `github-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:227 |
| PIPE-CONNSPEC-R125 `gitlab-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`gitlab-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:140 tests/test_connector_consumer_r103_r152_public_batch.py:97 tests/test_connector_consumer_r118_137.py:56 tests/test_connector_consumer_remeasure_20261028.py:176 |
| PIPE-CONNSPEC-R125.1 `gitlab-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gitlab-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:56 |
| PIPE-CONNSPEC-R125.2 `gitlab-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gitlab-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:176 |
| PIPE-CONNSPEC-R125.3 `gitlab-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gitlab-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/gitlab-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:97 |
| PIPE-CONNSPEC-R125.4 `gitlab-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gitlab-api` has the rapid-delivery section in its development skill. | Check that its `gitlab-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:140 |
| PIPE-CONNSPEC-R126 `gramps-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`gramps-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:141 tests/test_connector_consumer_r103_r152_public_batch.py:98 tests/test_connector_consumer_r118_137.py:57 tests/test_connector_consumer_r118_137.py:99 |
| PIPE-CONNSPEC-R126.1 `gramps-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gramps-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:57 |
| PIPE-CONNSPEC-R126.2 `gramps-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gramps-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:99 |
| PIPE-CONNSPEC-R126.3 `gramps-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gramps-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/gramps-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:98 |
| PIPE-CONNSPEC-R126.4 `gramps-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`gramps-mcp` has the rapid-delivery section in its development skill. | Check that its `gramps-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:141 |
| PIPE-CONNSPEC-R127 `hdhomerun-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`hdhomerun-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:142 tests/test_connector_consumer_r103_r152_public_batch.py:99 tests/test_connector_consumer_r118_137.py:100 tests/test_connector_consumer_r118_137.py:58 |
| PIPE-CONNSPEC-R127.1 `hdhomerun-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`hdhomerun-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:58 |
| PIPE-CONNSPEC-R127.2 `hdhomerun-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`hdhomerun-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:100 |
| PIPE-CONNSPEC-R127.3 `hdhomerun-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`hdhomerun-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/hdhomerun-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:99 |
| PIPE-CONNSPEC-R127.4 `hdhomerun-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`hdhomerun-mcp` has the rapid-delivery section in its development skill. | Check that its `hdhomerun-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:142 |
| PIPE-CONNSPEC-R128 `home-assistant-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`home-assistant-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 a56aeaef8e7f tests/test_connector_consumer_r107_r155_public_batch.py:132 tests/test_connector_consumer_r107_r155_public_batch.py:79 tests/test_connector_consumer_r118_137.py:101 tests/test_connector_consumer_r118_137.py:59 |
| PIPE-CONNSPEC-R128.1 `home-assistant-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`home-assistant-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:59 |
| PIPE-CONNSPEC-R128.2 `home-assistant-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`home-assistant-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:101 |
| PIPE-CONNSPEC-R128.3 `home-assistant-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`home-assistant-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/home-assistant-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:79 |
| PIPE-CONNSPEC-R128.4 `home-assistant-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`home-assistant-agent` has the rapid-delivery section in its development skill. | Check that its `home-assistant-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:132 |
| PIPE-CONNSPEC-R129 `jellyfin-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`jellyfin-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:100 tests/test_connector_consumer_r103_r152_public_batch.py:143 tests/test_connector_consumer_r118_137.py:102 tests/test_connector_consumer_r118_137.py:60 |
| PIPE-CONNSPEC-R129.1 `jellyfin-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jellyfin-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:60 |
| PIPE-CONNSPEC-R129.2 `jellyfin-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jellyfin-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:102 |
| PIPE-CONNSPEC-R129.3 `jellyfin-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jellyfin-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/jellyfin-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:100 |
| PIPE-CONNSPEC-R129.4 `jellyfin-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jellyfin-mcp` has the rapid-delivery section in its development skill. | Check that its `jellyfin-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:143 |
| PIPE-CONNSPEC-R130 `jena-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`jena-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 a56aeaef8e7f tests/test_connector_consumer_r107_r155_public_batch.py:133 tests/test_connector_consumer_r118_137.py:103 tests/test_connector_consumer_r118_137.py:148 tests/test_connector_consumer_r118_137.py:61 |
| PIPE-CONNSPEC-R130.1 `jena-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jena-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:61 |
| PIPE-CONNSPEC-R130.2 `jena-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jena-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:103 |
| PIPE-CONNSPEC-R130.3 `jena-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jena-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/jena-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:148 |
| PIPE-CONNSPEC-R130.4 `jena-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`jena-mcp` has the rapid-delivery section in its development skill. | Check that its `jena-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:133 |
| PIPE-CONNSPEC-R131 `kafka-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`kafka-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:62 tests/test_connector_consumer_remeasure_20261028.py:177 tests/test_connector_consumer_remeasure_20261028.py:204 tests/test_connector_consumer_remeasure_20261028.py:228 |
| PIPE-CONNSPEC-R131.1 `kafka-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`kafka-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:62 |
| PIPE-CONNSPEC-R131.2 `kafka-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`kafka-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:177 |
| PIPE-CONNSPEC-R131.3 `kafka-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`kafka-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/kafka-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:204 |
| PIPE-CONNSPEC-R131.4 `kafka-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`kafka-mcp` has the rapid-delivery section in its development skill. | Check that its `kafka-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:228 |
| PIPE-CONNSPEC-R132 `keycloak-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`keycloak-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 a56aeaef8e7f tests/test_connector_consumer_r107_r155_public_batch.py:134 tests/test_connector_consumer_r118_137.py:104 tests/test_connector_consumer_r118_137.py:149 tests/test_connector_consumer_r118_137.py:63 |
| PIPE-CONNSPEC-R132.1 `keycloak-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`keycloak-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:63 |
| PIPE-CONNSPEC-R132.2 `keycloak-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`keycloak-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:104 |
| PIPE-CONNSPEC-R132.3 `keycloak-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`keycloak-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/keycloak-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:149 |
| PIPE-CONNSPEC-R132.4 `keycloak-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`keycloak-agent` has the rapid-delivery section in its development skill. | Check that its `keycloak-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 tests/test_connector_consumer_r107_r155_public_batch.py:134 |
| PIPE-CONNSPEC-R133 `lakekeeper-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`lakekeeper-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:144 tests/test_connector_consumer_r118_137.py:105 tests/test_connector_consumer_r118_137.py:64 tests/test_connector_consumer_remeasure_20261028.py:205 |
| PIPE-CONNSPEC-R133.1 `lakekeeper-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lakekeeper-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:64 |
| PIPE-CONNSPEC-R133.2 `lakekeeper-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lakekeeper-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:105 |
| PIPE-CONNSPEC-R133.3 `lakekeeper-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lakekeeper-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/lakekeeper-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:205 |
| PIPE-CONNSPEC-R133.4 `lakekeeper-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lakekeeper-mcp` has the rapid-delivery section in its development skill. | Check that its `lakekeeper-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:144 |
| PIPE-CONNSPEC-R134 `langfuse-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`langfuse-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:101 tests/test_connector_consumer_r103_r152_public_batch.py:145 tests/test_connector_consumer_r118_137.py:106 tests/test_connector_consumer_r118_137.py:65 |
| PIPE-CONNSPEC-R134.1 `langfuse-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`langfuse-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:65 |
| PIPE-CONNSPEC-R134.2 `langfuse-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`langfuse-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:106 |
| PIPE-CONNSPEC-R134.3 `langfuse-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`langfuse-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/langfuse-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:101 |
| PIPE-CONNSPEC-R134.4 `langfuse-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`langfuse-agent` has the rapid-delivery section in its development skill. | Check that its `langfuse-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:145 |
| PIPE-CONNSPEC-R135 `leanix-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`leanix-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:102 tests/test_connector_consumer_r103_r152_public_batch.py:146 tests/test_connector_consumer_r118_137.py:107 tests/test_connector_consumer_r118_137.py:66 |
| PIPE-CONNSPEC-R135.1 `leanix-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`leanix-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:66 |
| PIPE-CONNSPEC-R135.2 `leanix-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`leanix-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:107 |
| PIPE-CONNSPEC-R135.3 `leanix-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`leanix-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/leanix-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:102 |
| PIPE-CONNSPEC-R135.4 `leanix-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`leanix-agent` has the rapid-delivery section in its development skill. | Check that its `leanix-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:146 |
| PIPE-CONNSPEC-R136 `legal-peripherals-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`legal-peripherals-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:67 tests/test_connector_consumer_remeasure_20261028.py:178 tests/test_connector_consumer_remeasure_20261028.py:206 tests/test_connector_consumer_remeasure_20261028.py:229 |
| PIPE-CONNSPEC-R136.1 `legal-peripherals-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`legal-peripherals-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:67 |
| PIPE-CONNSPEC-R136.2 `legal-peripherals-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`legal-peripherals-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:178 |
| PIPE-CONNSPEC-R136.3 `legal-peripherals-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`legal-peripherals-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/legal-peripherals-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:206 |
| PIPE-CONNSPEC-R136.4 `legal-peripherals-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`legal-peripherals-mcp` has the rapid-delivery section in its development skill. | Check that its `legal-peripherals-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:229 |
| PIPE-CONNSPEC-R137 `lgtm-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`lgtm-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 a56aeaef8e7f tests/test_connector_consumer_r118_137.py:108 tests/test_connector_consumer_r118_137.py:150 tests/test_connector_consumer_r118_137.py:68 tests/test_connector_consumer_remeasure_20261028.py:230 |
| PIPE-CONNSPEC-R137.1 `lgtm-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lgtm-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:68 |
| PIPE-CONNSPEC-R137.2 `lgtm-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lgtm-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:108 |
| PIPE-CONNSPEC-R137.3 `lgtm-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lgtm-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/lgtm-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a56aeaef8e7f tests/test_connector_consumer_r118_137.py:150 |
| PIPE-CONNSPEC-R137.4 `lgtm-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`lgtm-mcp` has the rapid-delivery section in its development skill. | Check that its `lgtm-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:230 |
| PIPE-CONNSPEC-R138 `listmonk-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`listmonk-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2dadce373942 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:125 tests/test_connector_consumer_r138_157.py:63 tests/test_connector_consumer_r138_r145.py:114 tests/test_connector_consumer_r138_r145.py:115 tests/test_connector_consumer_r138_r145.py:203 |
| PIPE-CONNSPEC-R138.1 `listmonk-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`listmonk-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:63 |
| PIPE-CONNSPEC-R138.2 `listmonk-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`listmonk-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:125 |
| PIPE-CONNSPEC-R138.3 `listmonk-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`listmonk-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/listmonk-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2dadce373942 tests/test_connector_consumer_r138_r145.py:114 tests/test_connector_consumer_r138_r145.py:203 |
| PIPE-CONNSPEC-R138.4 `listmonk-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`listmonk-api` has the rapid-delivery section in its development skill. | Check that its `listmonk-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2dadce373942 tests/test_connector_consumer_r138_r145.py:115 tests/test_connector_consumer_r138_r145.py:243 |
| PIPE-CONNSPEC-R139 `bellwether-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`bellwether-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). The repository was renamed from `market-data-mcp`; the old name redirects to it. | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:64 tests/test_connector_consumer_remeasure_20261028.py:179 tests/test_connector_consumer_remeasure_20261028.py:207 tests/test_connector_consumer_remeasure_20261028.py:231 |
| PIPE-CONNSPEC-R139.1 `bellwether-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`bellwether-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:64 |
| PIPE-CONNSPEC-R139.2 `bellwether-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`bellwether-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:179 |
| PIPE-CONNSPEC-R139.3 `bellwether-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`bellwether-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/bellwether-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:207 |
| PIPE-CONNSPEC-R139.4 `bellwether-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`bellwether-mcp` has the rapid-delivery section in its development skill. | Check that its `market-data-mcp-development` skill, which still carries the pre-rename directory name, has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:231 |
| PIPE-CONNSPEC-R140 `mattermost-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`mattermost-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:158 tests/test_connector_consumer_r138_157.py:65 tests/test_connector_consumer_remeasure_20261028.py:180 tests/test_connector_consumer_remeasure_20261028.py:232 |
| PIPE-CONNSPEC-R140.1 `mattermost-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mattermost-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:65 |
| PIPE-CONNSPEC-R140.2 `mattermost-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mattermost-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:180 |
| PIPE-CONNSPEC-R140.3 `mattermost-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mattermost-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/mattermost-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:158 |
| PIPE-CONNSPEC-R140.4 `mattermost-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mattermost-mcp` has the rapid-delivery section in its development skill. | Check that its `mattermost-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:232 |
| PIPE-CONNSPEC-R141 `mealie-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`mealie-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 1211cdf00063 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:126 tests/test_connector_consumer_r138_157.py:66 tests/test_connector_consumer_r141.py:148 tests/test_connector_consumer_r141.py:186 tests/test_connector_consumer_r141.py:67 |
| PIPE-CONNSPEC-R141.1 `mealie-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mealie-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:66 |
| PIPE-CONNSPEC-R141.2 `mealie-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mealie-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:126 |
| PIPE-CONNSPEC-R141.3 `mealie-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mealie-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/mealie-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 1211cdf00063 tests/test_connector_consumer_r141.py:148 tests/test_connector_consumer_r141.py:67 |
| PIPE-CONNSPEC-R141.4 `mealie-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`mealie-mcp` has the rapid-delivery section in its development skill. | Check that its `mealie-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 1211cdf00063 tests/test_connector_consumer_r141.py:186 tests/test_connector_consumer_r141.py:68 |
| PIPE-CONNSPEC-R142 `media-downloader` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`media-downloader` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:67 tests/test_connector_consumer_remeasure_20261028.py:181 tests/test_connector_consumer_remeasure_20261028.py:208 tests/test_connector_consumer_remeasure_20261028.py:233 |
| PIPE-CONNSPEC-R142.1 `media-downloader` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`media-downloader` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:67 |
| PIPE-CONNSPEC-R142.2 `media-downloader` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`media-downloader` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:181 |
| PIPE-CONNSPEC-R142.3 `media-downloader` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`media-downloader` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/media-downloader/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:208 |
| PIPE-CONNSPEC-R142.4 `media-downloader` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`media-downloader` has the rapid-delivery section in its development skill. | Check that its `media-downloader-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:233 |
| PIPE-CONNSPEC-R143 `microsoft-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`microsoft-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:68 tests/test_connector_consumer_remeasure_20261028.py:182 tests/test_connector_consumer_remeasure_20261028.py:209 tests/test_connector_consumer_remeasure_20261028.py:234 |
| PIPE-CONNSPEC-R143.1 `microsoft-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`microsoft-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:68 |
| PIPE-CONNSPEC-R143.2 `microsoft-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`microsoft-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:182 |
| PIPE-CONNSPEC-R143.3 `microsoft-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`microsoft-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/microsoft-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:209 |
| PIPE-CONNSPEC-R143.4 `microsoft-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`microsoft-agent` has the rapid-delivery section in its development skill. | Check that its `microsoft-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:234 |
| PIPE-CONNSPEC-R144 `nextcloud-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`nextcloud-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 1bd43d95d2c6 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:127 tests/test_connector_consumer_r138_157.py:69 tests/test_connector_consumer_r144.py:136 tests/test_connector_consumer_r144.py:174 tests/test_connector_consumer_r144.py:50 |
| PIPE-CONNSPEC-R144.1 `nextcloud-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`nextcloud-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:69 |
| PIPE-CONNSPEC-R144.2 `nextcloud-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`nextcloud-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:127 |
| PIPE-CONNSPEC-R144.3 `nextcloud-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`nextcloud-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/nextcloud-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 1bd43d95d2c6 tests/test_connector_consumer_r144.py:136 tests/test_connector_consumer_r144.py:50 |
| PIPE-CONNSPEC-R144.4 `nextcloud-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`nextcloud-agent` has the rapid-delivery section in its development skill. | Check that its `nextcloud-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 1bd43d95d2c6 tests/test_connector_consumer_r144.py:174 tests/test_connector_consumer_r144.py:51 |
| PIPE-CONNSPEC-R145 `objectstore-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`objectstore-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2dadce373942 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:128 tests/test_connector_consumer_r138_157.py:70 tests/test_connector_consumer_r138_r145.py:116 tests/test_connector_consumer_r138_r145.py:117 tests/test_connector_consumer_r138_r145.py:204 |
| PIPE-CONNSPEC-R145.1 `objectstore-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`objectstore-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:70 |
| PIPE-CONNSPEC-R145.2 `objectstore-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`objectstore-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:128 |
| PIPE-CONNSPEC-R145.3 `objectstore-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`objectstore-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/objectstore-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2dadce373942 tests/test_connector_consumer_r138_r145.py:116 tests/test_connector_consumer_r138_r145.py:204 |
| PIPE-CONNSPEC-R145.4 `objectstore-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`objectstore-mcp` has the rapid-delivery section in its development skill. | Check that its `objectstore-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2dadce373942 tests/test_connector_consumer_r138_r145.py:117 tests/test_connector_consumer_r138_r145.py:244 |
| PIPE-CONNSPEC-R146 `okta-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`okta-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a9c07ce2625e ed11593ea8c8 tests/test_connector_consumer_r138_157.py:129 tests/test_connector_consumer_r138_157.py:71 tests/test_connector_consumer_r146.py:148 tests/test_connector_consumer_r146.py:186 tests/test_connector_consumer_r146.py:67 |
| PIPE-CONNSPEC-R146.1 `okta-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`okta-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:71 |
| PIPE-CONNSPEC-R146.2 `okta-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`okta-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:129 |
| PIPE-CONNSPEC-R146.3 `okta-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`okta-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/okta-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | a9c07ce2625e tests/test_connector_consumer_r146.py:148 tests/test_connector_consumer_r146.py:67 |
| PIPE-CONNSPEC-R146.4 `okta-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`okta-agent` has the rapid-delivery section in its development skill. | Check that its `okta-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | a9c07ce2625e tests/test_connector_consumer_r146.py:186 tests/test_connector_consumer_r146.py:68 |
| PIPE-CONNSPEC-R147 `onetrust-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`onetrust-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:159 tests/test_connector_consumer_r138_157.py:72 tests/test_connector_consumer_remeasure_20261028.py:183 tests/test_connector_consumer_remeasure_20261028.py:235 |
| PIPE-CONNSPEC-R147.1 `onetrust-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`onetrust-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:72 |
| PIPE-CONNSPEC-R147.2 `onetrust-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`onetrust-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:183 |
| PIPE-CONNSPEC-R147.3 `onetrust-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`onetrust-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/onetrust-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:159 |
| PIPE-CONNSPEC-R147.4 `onetrust-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`onetrust-api` has the rapid-delivery section in its development skill. | Check that its `onetrust-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:235 |
| PIPE-CONNSPEC-R148 `openbao-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`openbao-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 95c31e627d5e ed11593ea8c8 tests/test_connector_consumer_r138_157.py:130 tests/test_connector_consumer_r138_157.py:160 tests/test_connector_consumer_r138_157.py:73 tests/test_connector_consumer_r148.py:163 tests/test_connector_consumer_r148.py:77 |
| PIPE-CONNSPEC-R148.1 `openbao-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`openbao-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:73 |
| PIPE-CONNSPEC-R148.2 `openbao-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`openbao-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:130 |
| PIPE-CONNSPEC-R148.3 `openbao-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`openbao-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/openbao-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:160 |
| PIPE-CONNSPEC-R148.4 `openbao-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`openbao-mcp` has the rapid-delivery section in its development skill. | Check that its `openbao-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 95c31e627d5e tests/test_connector_consumer_r148.py:163 tests/test_connector_consumer_r148.py:77 |
| PIPE-CONNSPEC-R149 `opensearch-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`opensearch-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 8b12b7066e0b d0b62fe19086 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:131 tests/test_connector_consumer_r138_157.py:74 tests/test_connector_consumer_r149.py:127 tests/test_connector_consumer_r149.py:166 tests/test_connector_consumer_r149.py:198 |
| PIPE-CONNSPEC-R149.1 `opensearch-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`opensearch-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:74 |
| PIPE-CONNSPEC-R149.2 `opensearch-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`opensearch-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:131 |
| PIPE-CONNSPEC-R149.3 `opensearch-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`opensearch-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/opensearch-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 8b12b7066e0b d0b62fe19086 tests/test_connector_consumer_r149.py:127 tests/test_connector_consumer_r149.py:198 tests/test_connector_consumer_r149.py:44 |
| PIPE-CONNSPEC-R149.4 `opensearch-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`opensearch-mcp` has the rapid-delivery section in its development skill. | Check that its `opensearch-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 8b12b7066e0b d0b62fe19086 tests/test_connector_consumer_r149.py:166 tests/test_connector_consumer_r149.py:45 |
| PIPE-CONNSPEC-R150 `owncast-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`owncast-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:75 tests/test_connector_consumer_remeasure_20261028.py:184 tests/test_connector_consumer_remeasure_20261028.py:210 tests/test_connector_consumer_remeasure_20261028.py:236 |
| PIPE-CONNSPEC-R150.1 `owncast-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`owncast-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:75 |
| PIPE-CONNSPEC-R150.2 `owncast-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`owncast-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:184 |
| PIPE-CONNSPEC-R150.3 `owncast-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`owncast-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/owncast-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:210 |
| PIPE-CONNSPEC-R150.4 `owncast-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`owncast-agent` has the rapid-delivery section in its development skill. | Check that its `owncast-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:236 |
| PIPE-CONNSPEC-R151 `paperless-ngx-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`paperless-ngx-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:76 tests/test_connector_consumer_remeasure_20261028.py:185 tests/test_connector_consumer_remeasure_20261028.py:211 tests/test_connector_consumer_remeasure_20261028.py:237 |
| PIPE-CONNSPEC-R151.1 `paperless-ngx-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`paperless-ngx-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:76 |
| PIPE-CONNSPEC-R151.2 `paperless-ngx-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`paperless-ngx-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:185 |
| PIPE-CONNSPEC-R151.3 `paperless-ngx-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`paperless-ngx-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/paperless-ngx-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:211 |
| PIPE-CONNSPEC-R151.4 `paperless-ngx-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`paperless-ngx-mcp` has the rapid-delivery section in its development skill. | Check that its `paperless-ngx-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:237 |
| PIPE-CONNSPEC-R152 `plane-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`plane-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:103 tests/test_connector_consumer_r103_r152_public_batch.py:147 tests/test_connector_consumer_r138_157.py:77 tests/test_connector_consumer_remeasure_20261028.py:186 |
| PIPE-CONNSPEC-R152.1 `plane-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`plane-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:77 |
| PIPE-CONNSPEC-R152.2 `plane-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`plane-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:186 |
| PIPE-CONNSPEC-R152.3 `plane-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`plane-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/plane-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:103 |
| PIPE-CONNSPEC-R152.4 `plane-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`plane-agent` has the rapid-delivery section in its development skill. | Check that its `plane-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | ede2cdeae90f tests/test_connector_consumer_r103_r152_public_batch.py:147 |
| PIPE-CONNSPEC-R153 `portainer-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`portainer-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | d37c6af0e600 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:132 tests/test_connector_consumer_r138_157.py:78 tests/test_connector_consumer_r153.py:143 tests/test_connector_consumer_r153.py:185 tests/test_connector_consumer_r153.py:61 |
| PIPE-CONNSPEC-R153.1 `portainer-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`portainer-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:78 |
| PIPE-CONNSPEC-R153.2 `portainer-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`portainer-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:132 |
| PIPE-CONNSPEC-R153.3 `portainer-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`portainer-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/portainer-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | d37c6af0e600 tests/test_connector_consumer_r153.py:143 tests/test_connector_consumer_r153.py:61 |
| PIPE-CONNSPEC-R153.4 `portainer-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`portainer-agent` has the rapid-delivery section in its development skill. | Check that its `portainer-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | d37c6af0e600 tests/test_connector_consumer_r153.py:185 tests/test_connector_consumer_r153.py:62 |
| PIPE-CONNSPEC-R154 `postiz-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`postiz-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | c940238f01fc ed11593ea8c8 tests/test_connector_consumer_r138_157.py:133 tests/test_connector_consumer_r138_157.py:207 tests/test_connector_consumer_r138_157.py:223 tests/test_connector_consumer_r138_157.py:79 |
| PIPE-CONNSPEC-R154.1 `postiz-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`postiz-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:79 |
| PIPE-CONNSPEC-R154.2 `postiz-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`postiz-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:133 |
| PIPE-CONNSPEC-R154.3 `postiz-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`postiz-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/postiz-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | c940238f01fc tests/test_connector_consumer_r138_157.py:207 |
| PIPE-CONNSPEC-R154.4 `postiz-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`postiz-agent` has the rapid-delivery section in its development skill. | Check that its `postiz-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | c940238f01fc tests/test_connector_consumer_r138_157.py:223 |
| PIPE-CONNSPEC-R155 `pulselink-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`pulselink-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 5536587da291 d7d1a86cc659 ed11593ea8c8 tests/test_connector_consumer_r107_r155_public_batch.py:135 tests/test_connector_consumer_r138_157.py:80 tests/test_connector_consumer_remeasure_20261028.py:187 tests/test_connector_consumer_remeasure_20261028.py:212 |
| PIPE-CONNSPEC-R155.1 `pulselink-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`pulselink-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:80 |
| PIPE-CONNSPEC-R155.2 `pulselink-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`pulselink-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:187 |
| PIPE-CONNSPEC-R155.3 `pulselink-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`pulselink-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/pulselink-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:212 |
| PIPE-CONNSPEC-R155.4 `pulselink-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`pulselink-mcp` has the rapid-delivery section in its development skill. | Check that its `pulselink-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5536587da291 d7d1a86cc659 tests/test_connector_consumer_r107_r155_public_batch.py:135 |
| PIPE-CONNSPEC-R156 `qbittorrent-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`qbittorrent-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 ed11593ea8c8 tests/test_connector_consumer_r138_157.py:134 tests/test_connector_consumer_r138_157.py:81 tests/test_connector_consumer_remeasure_20261028.py:213 tests/test_connector_consumer_remeasure_20261028.py:238 |
| PIPE-CONNSPEC-R156.1 `qbittorrent-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`qbittorrent-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:81 |
| PIPE-CONNSPEC-R156.2 `qbittorrent-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`qbittorrent-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:134 |
| PIPE-CONNSPEC-R156.3 `qbittorrent-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`qbittorrent-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/qbittorrent-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:213 |
| PIPE-CONNSPEC-R156.4 `qbittorrent-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`qbittorrent-agent` has the rapid-delivery section in its development skill. | Check that its `qbittorrent-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:238 |
| PIPE-CONNSPEC-R157 `repository-manager` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`repository-manager` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R157.1 `repository-manager` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`repository-manager` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:82 |
| PIPE-CONNSPEC-R157.2 `repository-manager` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`repository-manager` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R157.3 `repository-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`repository-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/repository-manager/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | ed11593ea8c8 tests/test_connector_consumer_r138_157.py:161 |
| PIPE-CONNSPEC-R157.4 `repository-manager` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`repository-manager` has the rapid-delivery section in its development skill. | Check that its `repository-manager-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:239 |
| PIPE-CONNSPEC-R158 `rom-manager` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`rom-manager` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:49 tests/test_connector_consumer_r163_r167.py:82 tests/test_connector_consumer_r163_r167.py:83 tests/test_connector_consumer_r163_r167.py:84 |
| PIPE-CONNSPEC-R158.1 `rom-manager` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`rom-manager` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:49 |
| PIPE-CONNSPEC-R158.2 `rom-manager` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`rom-manager` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:82 |
| PIPE-CONNSPEC-R158.3 `rom-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`rom-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/rom-manager/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:83 |
| PIPE-CONNSPEC-R158.4 `rom-manager` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`rom-manager` has the rapid-delivery section in its development skill. | Check that its `rom-manager-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:84 |
| PIPE-CONNSPEC-R159 `salesforce-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`salesforce-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:50 tests/test_connector_consumer_r158_167.py:85 tests/test_connector_consumer_r159_r169.py:76 tests/test_connector_consumer_r159_r169.py:77 |
| PIPE-CONNSPEC-R159.1 `salesforce-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`salesforce-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:50 |
| PIPE-CONNSPEC-R159.2 `salesforce-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`salesforce-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:85 |
| PIPE-CONNSPEC-R159.3 `salesforce-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`salesforce-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/salesforce-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:76 |
| PIPE-CONNSPEC-R159.4 `salesforce-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`salesforce-agent` has the rapid-delivery section in its development skill. | Check that its `salesforce-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:77 |
| PIPE-CONNSPEC-R160 `scholarx` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`scholarx` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:51 tests/test_connector_consumer_r159_r169.py:78 tests/test_connector_consumer_r159_r169.py:79 tests/test_connector_consumer_r159_r169.py:80 |
| PIPE-CONNSPEC-R160.1 `scholarx` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`scholarx` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:51 |
| PIPE-CONNSPEC-R160.2 `scholarx` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`scholarx` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:78 |
| PIPE-CONNSPEC-R160.3 `scholarx` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`scholarx` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/scholarx/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:79 |
| PIPE-CONNSPEC-R160.4 `scholarx` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`scholarx` has the rapid-delivery section in its development skill. | Check that its `scholarx-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:80 |
| PIPE-CONNSPEC-R161 `searxng-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`searxng-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 444f49d63af1 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:52 tests/test_connector_consumer_r159_r169.py:81 tests/test_connector_consumer_r159_r169.py:82 tests/test_connector_consumer_remeasure_20261028.py:188 |
| PIPE-CONNSPEC-R161.1 `searxng-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`searxng-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:52 |
| PIPE-CONNSPEC-R161.2 `searxng-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`searxng-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 444f49d63af1 tests/test_connector_consumer_remeasure_20261028.py:188 |
| PIPE-CONNSPEC-R161.3 `searxng-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`searxng-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/searxng-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:81 |
| PIPE-CONNSPEC-R161.4 `searxng-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`searxng-mcp` has the rapid-delivery section in its development skill. | Check that its `searxng-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:82 |
| PIPE-CONNSPEC-R162 `servicenow-api` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`servicenow-api` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:53 tests/test_connector_consumer_r158_167.py:86 tests/test_connector_consumer_r159_r169.py:83 tests/test_connector_consumer_r159_r169.py:84 |
| PIPE-CONNSPEC-R162.1 `servicenow-api` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`servicenow-api` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:53 |
| PIPE-CONNSPEC-R162.2 `servicenow-api` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`servicenow-api` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:86 |
| PIPE-CONNSPEC-R162.3 `servicenow-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`servicenow-api` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/servicenow-api/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:83 |
| PIPE-CONNSPEC-R162.4 `servicenow-api` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`servicenow-api` has the rapid-delivery section in its development skill. | Check that its `servicenow-api-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:84 |
| PIPE-CONNSPEC-R163 `spark-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`spark-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:54 tests/test_connector_consumer_r158_167.py:87 tests/test_connector_consumer_r163_r167.py:85 tests/test_connector_consumer_r163_r167.py:86 |
| PIPE-CONNSPEC-R163.1 `spark-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`spark-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:54 |
| PIPE-CONNSPEC-R163.2 `spark-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`spark-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:87 |
| PIPE-CONNSPEC-R163.3 `spark-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`spark-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/spark-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:85 |
| PIPE-CONNSPEC-R163.4 `spark-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`spark-mcp` has the rapid-delivery section in its development skill. | Check that its `spark-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:86 |
| PIPE-CONNSPEC-R164 `sql-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`sql-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:55 tests/test_connector_consumer_r158_167.py:88 tests/test_connector_consumer_r163_r167.py:87 tests/test_connector_consumer_r163_r167.py:88 |
| PIPE-CONNSPEC-R164.1 `sql-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`sql-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:55 |
| PIPE-CONNSPEC-R164.2 `sql-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`sql-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:88 |
| PIPE-CONNSPEC-R164.3 `sql-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`sql-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/sql-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:87 |
| PIPE-CONNSPEC-R164.4 `sql-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`sql-mcp` has the rapid-delivery section in its development skill. | Check that its `sql-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:88 |
| PIPE-CONNSPEC-R165 `stirlingpdf-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`stirlingpdf-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:56 tests/test_connector_consumer_r158_167.py:89 tests/test_connector_consumer_r163_r167.py:89 tests/test_connector_consumer_r163_r167.py:90 |
| PIPE-CONNSPEC-R165.1 `stirlingpdf-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`stirlingpdf-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:56 |
| PIPE-CONNSPEC-R165.2 `stirlingpdf-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`stirlingpdf-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:89 |
| PIPE-CONNSPEC-R165.3 `stirlingpdf-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`stirlingpdf-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/stirlingpdf-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:89 |
| PIPE-CONNSPEC-R165.4 `stirlingpdf-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`stirlingpdf-agent` has the rapid-delivery section in its development skill. | Check that its `stirlingpdf-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:90 |
| PIPE-CONNSPEC-R166 `systems-manager` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`systems-manager` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 90a9705f15b2 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:57 tests/test_connector_consumer_r166.py:65 tests/test_connector_consumer_r166.py:66 tests/test_connector_consumer_r166.py:67 |
| PIPE-CONNSPEC-R166.1 `systems-manager` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`systems-manager` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:57 |
| PIPE-CONNSPEC-R166.2 `systems-manager` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`systems-manager` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 90a9705f15b2 tests/test_connector_consumer_r166.py:65 |
| PIPE-CONNSPEC-R166.3 `systems-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`systems-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/systems-manager/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 90a9705f15b2 tests/test_connector_consumer_r166.py:66 |
| PIPE-CONNSPEC-R166.4 `systems-manager` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`systems-manager` has the rapid-delivery section in its development skill. | Check that its `systems-manager-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 90a9705f15b2 tests/test_connector_consumer_r166.py:67 |
| PIPE-CONNSPEC-R167 `technitium-dns-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`technitium-dns-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 a86b11ee9b95 tests/test_connector_consumer_r158_167.py:58 tests/test_connector_consumer_r158_167.py:90 tests/test_connector_consumer_r163_r167.py:91 tests/test_connector_consumer_r163_r167.py:92 |
| PIPE-CONNSPEC-R167.1 `technitium-dns-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`technitium-dns-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:58 |
| PIPE-CONNSPEC-R167.2 `technitium-dns-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`technitium-dns-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r158_167.py:90 |
| PIPE-CONNSPEC-R167.3 `technitium-dns-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`technitium-dns-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/technitium-dns-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:91 |
| PIPE-CONNSPEC-R167.4 `technitium-dns-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`technitium-dns-mcp` has the rapid-delivery section in its development skill. | Check that its `technitium-dns-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 5e8e39a52de7 tests/test_connector_consumer_r163_r167.py:92 |
| PIPE-CONNSPEC-R168 `tunnel-manager` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`tunnel-manager` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 a86b11ee9b95 tests/test_connector_consumer_r159_r169.py:85 tests/test_connector_consumer_r159_r169.py:86 tests/test_connector_consumer_r168_177.py:46 tests/test_connector_consumer_r168_177.py:93 |
| PIPE-CONNSPEC-R168.1 `tunnel-manager` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`tunnel-manager` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:46 |
| PIPE-CONNSPEC-R168.2 `tunnel-manager` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`tunnel-manager` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:93 |
| PIPE-CONNSPEC-R168.3 `tunnel-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`tunnel-manager` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/tunnel-manager/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:85 |
| PIPE-CONNSPEC-R168.4 `tunnel-manager` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`tunnel-manager` has the rapid-delivery section in its development skill. | Check that its `tunnel-manager-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:86 |
| PIPE-CONNSPEC-R169 `twenty-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`twenty-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 a86b11ee9b95 tests/test_connector_consumer_r159_r169.py:87 tests/test_connector_consumer_r159_r169.py:88 tests/test_connector_consumer_r168_177.py:47 tests/test_connector_consumer_r168_177.py:94 |
| PIPE-CONNSPEC-R169.1 `twenty-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`twenty-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:47 |
| PIPE-CONNSPEC-R169.2 `twenty-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`twenty-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:94 |
| PIPE-CONNSPEC-R169.3 `twenty-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`twenty-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/twenty-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:87 |
| PIPE-CONNSPEC-R169.4 `twenty-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`twenty-mcp` has the rapid-delivery section in its development skill. | Check that its `twenty-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 2d9cc833b524 tests/test_connector_consumer_r159_r169.py:88 |
| PIPE-CONNSPEC-R170 `uptime-kuma-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`uptime-kuma-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 c6421c2094dd tests/test_connector_consumer_r168_177.py:48 tests/test_connector_consumer_r170_r171.py:66 tests/test_connector_consumer_r170_r171.py:67 tests/test_connector_consumer_r170_r171.py:68 |
| PIPE-CONNSPEC-R170.1 `uptime-kuma-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`uptime-kuma-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:48 |
| PIPE-CONNSPEC-R170.2 `uptime-kuma-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`uptime-kuma-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | c6421c2094dd tests/test_connector_consumer_r170_r171.py:66 |
| PIPE-CONNSPEC-R170.3 `uptime-kuma-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`uptime-kuma-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/uptime-kuma-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | c6421c2094dd tests/test_connector_consumer_r170_r171.py:67 |
| PIPE-CONNSPEC-R170.4 `uptime-kuma-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`uptime-kuma-agent` has the rapid-delivery section in its development skill. | Check that its `uptime-kuma-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | c6421c2094dd tests/test_connector_consumer_r170_r171.py:68 |
| PIPE-CONNSPEC-R171 `vaultwarden-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`vaultwarden-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 c6421c2094dd tests/test_connector_consumer_r168_177.py:49 tests/test_connector_consumer_r168_177.py:95 tests/test_connector_consumer_r170_r171.py:69 tests/test_connector_consumer_r170_r171.py:70 |
| PIPE-CONNSPEC-R171.1 `vaultwarden-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vaultwarden-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:49 |
| PIPE-CONNSPEC-R171.2 `vaultwarden-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vaultwarden-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:95 |
| PIPE-CONNSPEC-R171.3 `vaultwarden-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vaultwarden-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/vaultwarden-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | c6421c2094dd tests/test_connector_consumer_r170_r171.py:69 |
| PIPE-CONNSPEC-R171.4 `vaultwarden-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vaultwarden-mcp` has the rapid-delivery section in its development skill. | Check that its `vaultwarden-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | c6421c2094dd tests/test_connector_consumer_r170_r171.py:70 |
| PIPE-CONNSPEC-R172 `vector-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`vector-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 a86b11ee9b95 tests/test_connector_consumer_r168_177.py:50 tests/test_connector_consumer_r172_r174.py:74 tests/test_connector_consumer_r172_r174.py:75 tests/test_connector_consumer_r172_r174.py:76 |
| PIPE-CONNSPEC-R172.1 `vector-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vector-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:50 |
| PIPE-CONNSPEC-R172.2 `vector-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vector-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 tests/test_connector_consumer_r172_r174.py:74 |
| PIPE-CONNSPEC-R172.3 `vector-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vector-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/vector-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 tests/test_connector_consumer_r172_r174.py:75 |
| PIPE-CONNSPEC-R172.4 `vector-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`vector-mcp` has the rapid-delivery section in its development skill. | Check that its `vector-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 tests/test_connector_consumer_r172_r174.py:76 |
| PIPE-CONNSPEC-R173 `wger-agent` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`wger-agent` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 dd326634dc85 eeffa360f86b tests/test_connector_consumer_r168_177.py:51 tests/test_connector_consumer_r173.py:63 tests/test_connector_consumer_r173.py:64 tests/test_connector_consumer_r173.py:65 |
| PIPE-CONNSPEC-R173.1 `wger-agent` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`wger-agent` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:51 |
| PIPE-CONNSPEC-R173.2 `wger-agent` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`wger-agent` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | dd326634dc85 eeffa360f86b tests/test_connector_consumer_r173.py:63 |
| PIPE-CONNSPEC-R173.3 `wger-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`wger-agent` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/wger-agent/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | dd326634dc85 eeffa360f86b tests/test_connector_consumer_r173.py:64 |
| PIPE-CONNSPEC-R173.4 `wger-agent` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`wger-agent` has the rapid-delivery section in its development skill. | Check that its `wger-agent-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | dd326634dc85 eeffa360f86b tests/test_connector_consumer_r173.py:65 |
| PIPE-CONNSPEC-R174 `world-reference-mcp` adopts the standard spec-delivery method and page Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**`world-reference-mcp` adopts the standard spec-delivery method and page.** Rollup of the four children below, following the reference implementation (PIPE-CONNSPEC-R001 to PIPE-CONNSPEC-R005). | The rollup is the minimum state of its four children. | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 a86b11ee9b95 tests/test_connector_consumer_r168_177.py:52 tests/test_connector_consumer_r172_r174.py:77 tests/test_connector_consumer_r172_r174.py:78 tests/test_connector_consumer_r172_r174.py:79 |
| PIPE-CONNSPEC-R174.1 `world-reference-mcp` has a `specs/` tree with a generated `status.json` Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`world-reference-mcp` has a `specs/` tree with a generated `status.json`. | Check that `specs/` exists and contains a `status.json` written by `pipelines-hook spec-status --write`. | requirement | PIPE-CONNSPEC | VERIFIED | a86b11ee9b95 tests/test_connector_consumer_r168_177.py:52 |
| PIPE-CONNSPEC-R174.2 `world-reference-mcp` has the three spec hooks in its pre-commit config Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`world-reference-mcp` has the three spec hooks in its pre-commit config. | Check that the pre-commit config lists `spec-status`, `spec-decomposition`, and `spec-trailers` from `Knuckles-Team/pipelines`. | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 tests/test_connector_consumer_r172_r174.py:77 |
| PIPE-CONNSPEC-R174.3 `world-reference-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`world-reference-mcp` has a caller of the reusable Pages workflow with the dashboard enabled and Pages turned on. | Check that a workflow calls `pages_pipeline.yml@main` with `spec_dashboard_enabled: true`, and `gh api repos/Knuckles-Team/world-reference-mcp/pages` returns a site. | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 tests/test_connector_consumer_r172_r174.py:78 |
| PIPE-CONNSPEC-R174.4 `world-reference-mcp` has the rapid-delivery section in its development skill Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source`world-reference-mcp` has the rapid-delivery section in its development skill. | Check that its `world-reference-mcp-development` skill has the section "Rapid delivery: the 5-minute contract". | requirement | PIPE-CONNSPEC | VERIFIED | 83ced38ba830 tests/test_connector_consumer_r172_r174.py:79 |
| PIPE-CONNSPEC-R008 Canonical title determines generated spec identity Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Canonical title determines generated spec identity.** The generator reuses the spec-standard title parser; a missing canonical title retains the prior identity or directory fallback. | `test_canonical_title_controls_generated_identity` covers missing and stale metadata without changing requirement IDs. | requirement | PIPE-CONNSPEC | VERIFIED | 0f9f73b150d7 tests/hooks/test_spec_status.py:502 |
| PIPE-CONNSPEC-R009 Requirement state read from the engine (rollup) Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Requirement state read from the engine (rollup).** The status generator must compare its output with the engine-derived state of EG-SDLC-R005 when an endpoint is set. A difference fails the spec-status gate and names each row. `status.json` stays a generated export. Children `.1` and `.2` deliver it. | See each child. | requirement | PIPE-CONNSPEC | SPECIFIED | b6d61da291ad |
| PIPE-CONNSPEC-R009.1 Wiring Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Wiring.** `main` at `pipelines_hooks/specs/status.py:99` calls `compare_engine_state` in `pipelines_hooks/specs/engine_state.py` after generation. It reads the arbora `spec.status` operation over plain HTTP. | `tests/hooks/test_engine_state.py::test_difference_names_rows` feeds one differing row. | requirement | PIPE-CONNSPEC | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R009.2 Hot-path proof Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Hot-path proof.** The test generates status for a fixture repository and reads a fixture endpoint. Equal states pass. One differing row fails the gate with that row ID. | `tests/hooks/test_engine_state.py::test_generator_and_engine_agree` asserts both outcomes. | requirement | PIPE-CONNSPEC | SPECIFIED | No recorded commit/test evidence |
| PIPE-CONNSPEC-R010 Binding suggester ranks existing tests for unverified rows Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Binding suggester ranks existing tests for unverified rows.** `main` in `pipelines_hooks/specs/bind_suggest.py` scores each tracked test against every SPECIFIED or LANDED leaf row. It scores a test that the row text names, a test that names the row ID or an old alias, and a test whose name shares at least two title terms. It reads and writes no repository file, and the same tree gives the same ranked output. | `tests/hooks/test_spec_bind_suggest.py::test_ranks_named_test_first_and_is_repeatable` asserts the ranking, the term threshold and repeatability on a fixture repository. | requirement | PIPE-CONNSPEC | VERIFIED | b6d61da291ad c9681d3a4727 tests/hooks/test_spec_bind_suggest.py:41 |
| PIPE-CONNSPEC-R011 Explicit retired standard-ID aliases Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Explicit retired standard-ID aliases.** An exact retired standard requirement ID may map to one current active requirement row through `.config/spec-aliases.toml`. Require the source ID to be absent from current requirement rows, including retired tombstones. Reject absent or retired targets, alias chains and cycles, and exact standard aliases intercepted by retired prefixes. Keep one-hop prefix and pre-standard aliases unchanged. Historical and current trailer ranges retain unknown-ID and bound-test enforcement; an exact alias never applies to unlisted children. | `tests/hooks/test_spec_standard_aliases.py` covers renumbered history, current ranges, status evidence, and adversarial aliases. | requirement | PIPE-CONNSPEC | VERIFIED | 026b93b29c01 b6d61da291ad tests/hooks/test_spec_standard_aliases.py:14 |
| PIPE-CONNSPEC-R012 Row-level Depends-on Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Row-level Depends-on.** `parse_rows` in `pipelines_hooks/specs/requirements_doc.py` reads prerequisite IDs from a requirement cell, including IDs of other repositories. No other field is added to a row. | `tests/hooks/test_goal_priority.py::test_row_depends_on_parses` | requirement | PIPE-CONNSPEC | VERIFIED | 645ed8876446 a7d9241136c9 tests/hooks/test_goal_priority.py:12 tests/hooks/test_goal_priority.py:20 |
| PIPE-CONNSPEC-R013 Priority from competency questions Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Priority from competency questions.** `score` in `pipelines_hooks/specs/priority.py` computes 10 for each `EG-CQ-` row that transitively depends on a row, plus 2 for each open row it transitively unblocks, halved for a non-functional row. | `tests/hooks/test_goal_priority.py::test_priority_formula` | requirement | PIPE-CONNSPEC | VERIFIED | a7d9241136c9 tests/hooks/test_goal_priority.py:58 |
| PIPE-CONNSPEC-R014 Priority, frontier, and unserved from the organization aggregate Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Priority, frontier, and unserved from the organization aggregate.** `aggregate` in `scripts/architecture_explorer/delivery.py` computes `priority`, `frontier`, and `unserved` over the rows of every repository. The per-repository `status.json` generator writes none of them, so a repository's `status.json` keeps its prior shape. Unserved rows are open functional leaf rows no competency question reaches. | `tests/hooks/test_goal_priority.py::test_generator_leaves_status_shape_unchanged` and `tests/test_architecture_delivery.py::test_aggregate_over_repositories` | requirement | PIPE-CONNSPEC | VERIFIED | 1da5fcbd5c7f a7d9241136c9 tests/hooks/test_goal_priority.py:81 tests/hooks/test_goal_priority.py:88 |
| PIPE-CONNSPEC-R015 Derived release bundles Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Derived release bundles.** `bundles` in `pipelines_hooks/specs/priority.py` groups open rows joined by cross-repository `Depends-on` edges. Each bundle orders its repositories by the release train and lists, per row, the bundle rows it unblocks. The bundle priority is the maximum row priority. | `tests/hooks/test_goal_priority.py::test_bundle_orders_steps_by_release_train` | requirement | PIPE-CONNSPEC | VERIFIED | 8f6b2234e190 a7d9241136c9 tests/hooks/test_goal_priority.py:103 |
| PIPE-CONNSPEC-R016 Architecture page delivery views Definition — PIPE-CONNSPEC / PIPE-CONNSPEC — Connector spec-delivery rolloutCanonical requirement and verification source**Architecture page delivery views.** `scripts/architecture_explorer/delivery.py` recomputes the scores over every repository. `template.html` shows Next up, Delivery path, a priority sort, a competency-question filter, a “No CQ dependency path” filter that distinguishes CQ reachability from architecture placement and implementation links, and competency-question badges on each row. | `tests/test_architecture_delivery.py::test_aggregate_over_repositories` and `test_page_embeds_delivery_views` | requirement | PIPE-CONNSPEC | VERIFIED | a7d9241136c9 b99e7e0b5d7b tests/test_architecture_delivery.py:41 tests/test_architecture_delivery.py:52 tests/test_architecture_delivery.py:74 |
| PIPE-PAGES PIPE-PAGES — Ecosystem Pages parity and release receipt | spec | None | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R001 Repository switcher kept in sync with the core repo list Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Repository switcher kept in sync with the core repo list.** The documentation site's repository switcher is renamed and its repository list is completed to match the full declared set of core repositories, replacing any per-repository duplicate copies and staying synchronized with the shared parity check and release receipt. Meristem's now-obsolete generator for a standalone web UI deployment manifest is also removed, since the web UI runs within Arbora. | A parity check confirms the switcher's repository list matches the declared core-repository set and release receipt, and a source scan confirms the obsolete standalone deployment generator no longer exists. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R002 Layered documentation from overview to reference Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Layered documentation from overview to reference.** The published documentation presents a layered information architecture: concise top-level introductions, then per-component overviews, then detailed reference pages, so a reader can go only as deep as they need. | A navigation-depth and link-structure audit confirms each tier, introduction, component, and reference, exists and links progressively into the next. | requirement | PIPE-PAGES | LANDED | fe4d11323d0b |
| PIPE-PAGES-R003 Present-tense docs with accessible embedded start Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Present-tense docs with accessible embedded start.** The published README and documentation home present content in the intended canonical order, include an embedded observable quick-start demonstration, use accessible multimodal and shared visual assets, run on the shared Material-themed site with short navigation, and describe the running engine's current behavior in present tense rather than its history. | Strict documentation build, theme, accessibility, and content-diff checks confirm the README order, embedded start, shared visuals, and present-tense wording. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R004 One progressively disclosed skill-graph corpus Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**One progressively disclosed skill-graph corpus.** Concepts, components, and reference pages are drawn from one progressively disclosed skill-graph content corpus rather than separate, independently maintained sources. | A build check confirms the published concept, component, and reference pages are generated from the single skill-graph corpus with consistent navigation depth. | requirement | PIPE-PAGES | VERIFIED | fe4d11323d0b tests/test_skill_graph_registry_comparison.py:243 |
| PIPE-PAGES-R005 Generate architecture and reference pages from registries Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Generate architecture and reference pages from registries.** Architecture, capability, and reference documentation pages are generated directly from the underlying registries and contracts rather than hand-authored, so published content stays consistent with the implementation it describes. | A build-time comparison confirms each generated page's content matches its source registry or contract. | requirement | PIPE-PAGES | VERIFIED | 38133654c6e9 6048c059727f tests/test_skill_graph_registry_comparison.py:107 tests/test_skill_graph_registry_comparison.py:83 |
| PIPE-PAGES-R006 Rehome generated docs out of the legacy docs directory Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Rehome generated docs out of the legacy docs directory.** Every generated or gate-checked artifact currently stored under a repository's legacy docs directory is moved to its new canonical tracked location, every quality gate that referenced the old location is repointed to the new one, and the legacy docs directory is then removed. | A source scan confirms no gate or build step still reads from the removed docs directory and that each migrated artifact exists at its new tracked location. | requirement | PIPE-PAGES | VERIFIED | 38133654c6e9 fabe92a1aa4c tests/test_docs_rehomed.py:19 tests/test_docs_rehomed.py:24 tests/test_docs_rehomed.py:31 tests/test_docs_rehomed.py:40 tests/test_docs_rehomed.py:56 |
| PIPE-PAGES-R007 Ecosystem flow diagram with exact names and project marks Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Ecosystem flow diagram with exact names and project marks.** The documentation home page renders the shared Material theme chrome together with an architecture flow diagram showing the path from people through the Arbora web UI, Tuig, Axil, and messaging/protocol clients to Arbora, Meristem, and Medulla, plus the source-system-to-Scion SDK flow, using each project's exact display title and a versioned logo mark. | Focused theme rendering tests plus a changed-file documentation build confirm the diagram's flow, project titles, and logo marks render correctly. | requirement | PIPE-PAGES | LANDED | 525086d94efb 64e34ca63385 |
| PIPE-PAGES-R008 Correct ownership and quick start in consumer parity checks Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Correct ownership and quick start in consumer parity checks.** The shared Pages parity check verifies that a consumer site's documentation correctly states process and front-door ownership, includes a stdio-based quick start, renders on the shared Material theme with short navigation, and keeps its content flows accessible. | A multi-page render, link, and accessibility audit plus a changed-file build check confirm ownership statements, the quick start, and accessible navigation on the consumer site. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R009 The shared generator must show accessible component package diagrams and export Mermaid source. It must include every spec Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe shared generator must show accessible component package diagrams and export Mermaid source. It must include every spec. | `test_deterministic_escaped_output_and_plan_diagram_coverage` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 5b454e4b7eb4 tests/test_spec_dashboard_metadata.py:95 |
| PIPE-PAGES-R010 Generate API contract docs from the contract registry Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Generate API contract docs from the contract registry.** API contract documentation pages are generated from the canonical contract and method registry rather than hand-written, so the published reference stays synchronized with the registry's actual definitions. | A build-time comparison between the generated documentation pages and the source contract registry confirms they match. | requirement | PIPE-PAGES | VERIFIED | 38133654c6e9 6048c059727f tests/test_skill_graph_registry_comparison.py:161 tests/test_skill_graph_registry_comparison.py:192 |
| PIPE-PAGES-R011 Present-tense home page with screenshot and repo map Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Present-tense home page with screenshot and repo map.** The shared theme's documentation home page is present-tense HTML with short navigation, a real product screenshot, a map of the full declared core-repository set from the shared registry (currently seven), and an Arbora-hosted observable quick-start walkthrough. | Strict MkDocs render, accessibility, theme, and privacy gates, together with the documentation build run, confirm the home page's content and that it passes without regressions. | requirement | PIPE-PAGES | LANDED | ebfaa43bc233 |
| PIPE-PAGES-R012 The spec-delivery page must map specs to implementation references. It must replace the Concepts column Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe spec-delivery page must map specs to implementation references. It must replace the Concepts column. | `test_implementation_tests_docs_and_missing_sources_are_distinct` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | 5b454e4b7eb4 tests/test_spec_dashboard_metadata.py:60 |
| PIPE-PAGES-R012.1 The generator must read Code declarations and existing source citations from spec.md and plan.md Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe generator must read Code declarations and existing source citations from spec.md and plan.md. | `test_source_declarations_and_citations_in_both_documents` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 303d05f2ffc1 tests/test_spec_dashboard_metadata.py:201 |
| PIPE-PAGES-R012.2 Source declarations must survive status regeneration without adding hand-edited status fields Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceSource declarations must survive status regeneration without adding hand-edited status fields. | Needs a status-regeneration integration check. `test_enrichment_preserves_delivery_records_and_status_bytes` checks enrichment only; it does not prove regeneration. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 303d05f2ffc1 tests/hooks/test_spec_status.py:373 |
| PIPE-PAGES-R012.3 Each implementation link must identify its source revision and path. External links must remain unverified Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceEach implementation link must identify its source revision and path. External links must remain unverified. | `test_implementation_tests_docs_and_missing_sources_are_distinct` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 303d05f2ffc1 tests/test_spec_dashboard_metadata.py:61 |
| PIPE-PAGES-R012.4 The page must state Not mapped when a spec has no code references Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe page must state Not mapped when a spec has no code references. | `test_code_cells_replace_concepts` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 303d05f2ffc1 tests/test_spec_dashboard_metadata.py:137 |
| PIPE-PAGES-R012.5 The spec table must distinguish implementation, test, and documentation links Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe spec table must distinguish implementation, test, and documentation links. | `test_implementation_tests_docs_and_missing_sources_are_distinct` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 0fc12ceeb003 13e5f2f6b948 170f1bc883a2 tests/test_spec_dashboard_metadata.py:62 |
| PIPE-PAGES-R012.6 The caption must count specs without resolved implementation links Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe caption must count specs without resolved implementation links. | `test_code_cells_replace_concepts` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 0fc12ceeb003 13e5f2f6b948 tests/test_spec_dashboard_metadata.py:138 |
| PIPE-PAGES-R012.7 The generator must reject unsafe links and paths outside the checkout. It must retain unresolved mappings Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe generator must reject unsafe links and paths outside the checkout. It must retain unresolved mappings. | `test_examples_unsafe_links_and_parent_escape_are_not_mappings` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 0fc12ceeb003 13e5f2f6b948 tests/test_spec_dashboard_metadata.py:113 |
| PIPE-PAGES-R013 The page must show declared dependencies within and across repositories. It must distinguish references and shared code Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe page must show declared dependencies within and across repositories. It must distinguish references and shared code. | `test_local_and_external_dependencies_have_links_and_canonical_identity` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 0fc12ceeb003 13e5f2f6b948 170f1bc883a2 5b454e4b7eb4 6cd8906edd00 tests/test_spec_dashboard_metadata.py:215 tests/test_spec_dashboard_metadata.py:226 tests/test_spec_dashboard_metadata.py:28 tests/test_spec_dashboard_metadata.py:29 tests/test_spec_dashboard_metadata.py:30 |
| PIPE-PAGES-R013.1 Depends-on declarations must resolve local spec and requirement IDs through canonical spec ownership Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceDepends-on declarations must resolve local spec and requirement IDs through canonical spec ownership. | `test_local_and_external_dependencies_have_links_and_canonical_identity` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 6cd983d5fe0b tests/test_spec_dashboard_metadata.py:29 |
| PIPE-PAGES-R013.2 The generator must distinguish Depends-on, Extends, and References declarations. Mere mentions must not imply prerequisite order Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe generator must distinguish Depends-on, Extends, and References declarations. Mere mentions must not imply prerequisite order. | `test_explicit_edge_kinds_remain_distinct_from_mentions` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 6cd8906edd00 6cd983d5fe0b 911c63f923e5 tests/test_spec_dashboard_metadata.py:215 tests/test_spec_dashboard_reference_prose.py:10 |
| PIPE-PAGES-R013.3 Repository and component groups must include orphan specs. Missing components must remain Unassigned Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceRepository and component groups must include orphan specs. Missing components must remain Unassigned. | `test_unknowns_empty_and_isolated_specs_remain_discoverable` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 6cd983d5fe0b tests/test_spec_dashboard_metadata.py:81 |
| PIPE-PAGES-R013.4 The page must render package diagrams without browser scripts. Mermaid export must escape source labels Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe page must render package diagrams without browser scripts. Mermaid export must escape source labels. | `test_deterministic_escaped_output_and_plan_diagram_coverage` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 170f1bc883a2 6cd983d5fe0b tests/test_spec_dashboard_metadata.py:96 |
| PIPE-PAGES-R013.5 Every relationship must retain its label, source declaration, target link, and evidence limit Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceEvery relationship must retain its label, source declaration, target link, and evidence limit. | `test_local_and_external_dependencies_have_links_and_canonical_identity` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 6cd983d5fe0b tests/test_spec_dashboard_metadata.py:30 |
| PIPE-PAGES-R013.6 The relationship index must retain unresolved targets and specs without declared relationships Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe relationship index must retain unresolved targets and specs without declared relationships. | `test_unknowns_empty_and_isolated_specs_remain_discoverable` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 6cd983d5fe0b tests/test_spec_dashboard_metadata.py:82 |
| PIPE-PAGES-R013.7 Large diagrams must split into navigable groups without hiding any spec or relationship Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceLarge diagrams must split into navigable groups without hiding any spec or relationship. | `test_large_groups_keep_all_specs_and_relationships` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 13e5f2f6b948 6cd983d5fe0b tests/test_spec_dashboard_metadata.py:226 |
| PIPE-PAGES-R014 Three-level drill-down from the ecosystem view to the spec Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Three-level drill-down from the ecosystem view to the spec.** Rollup of the children below. The organisation architecture view links to each repository page, and that page links to each spec section. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R014.1 Add `ecosystem_components()` to `scripts/spec_dashboard_drilldown.py`. It returns the list defined by PIPE-PAGES-R001 (the core repository list) and defines no second list Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceAdd `ecosystem_components()` to `scripts/spec_dashboard_drilldown.py`. It returns the list defined by PIPE-PAGES-R001 (the core repository list) and defines no second list. | Run `test_components_equal_core_list` in `tests/test_spec_dashboard_drilldown.py` expects equality with the R001 list. | requirement | PIPE-PAGES | VERIFIED | fe2b599895fa tests/test_spec_dashboard_drilldown.py:18 |
| PIPE-PAGES-R014.2 Define the URL form in `scripts/spec_dashboard_drilldown.py`: level 1 `https://knuckles-team.github.io/<repo>/spec-delivery/`, level 2 `.../spec-delivery/#spec-<ID>`, level 3 row `.../spec-delivery/#req-<ID>`. Add `anchor_for(kind, id)` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceDefine the URL form in `scripts/spec_dashboard_drilldown.py`: level 1 `https://knuckles-team.github.io/<repo>/spec-delivery/`, level 2 `.../spec-delivery/#spec-<ID>`, level 3 row `.../spec-delivery/#req-<ID>`. Add `anchor_for(kind, id)`. | Run `test_anchor_forms` in `tests/test_spec_dashboard_drilldown.py` expects the three forms. | requirement | PIPE-PAGES | VERIFIED | fe2b599895fa tests/test_spec_dashboard_drilldown.py:23 |
| PIPE-PAGES-R014.3 Emit the anchors in `spec_row` (`scripts/spec_dashboard_panels.py`): each spec section gets `id="spec-<ID>"` and lists its rows, state, code references, and bound tests; each row gets `id="req-<ID>"` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceEmit the anchors in `spec_row` (`scripts/spec_dashboard_panels.py`): each spec section gets `id="spec-<ID>"` and lists its rows, state, code references, and bound tests; each row gets `id="req-<ID>"`. | Run `test_spec_section_has_anchor` in `tests/test_spec_dashboard_drilldown.py` expects the anchor and four content blocks. | requirement | PIPE-PAGES | VERIFIED | 0fc12ceeb003 170f1bc883a2 5b454e4b7eb4 tests/test_spec_dashboard_drilldown.py:41 |
| PIPE-PAGES-R014.4 Link each box in `relation_view` (`scripts/spec_dashboard_relations_view.py`) to `#spec-<ID>` of its own page, or to the other repository's page for a cross-repository node Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceLink each box in `relation_view` (`scripts/spec_dashboard_relations_view.py`) to `#spec-<ID>` of its own page, or to the other repository's page for a cross-repository node. | Run `test_relation_box_links_to_spec_section` in `tests/test_spec_dashboard_drilldown.py` expects the href on every box. | requirement | PIPE-PAGES | VERIFIED | 0fc12ceeb003 tests/test_spec_dashboard_drilldown.py:49 |
| PIPE-PAGES-R014.5 Cross-repository row, owner `Knuckles-Team/.github` (BLOCKED until that repository carries a spec tree): link each component in `profile/README.md` to `ecosystem_components()` URLs at level 1. Add `scripts/render_profile_links.py` here as the producer Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceCross-repository row, owner `Knuckles-Team/.github` (BLOCKED until that repository carries a spec tree): link each component in `profile/README.md` to `ecosystem_components()` URLs at level 1. Add `scripts/render_profile_links.py` here as the producer. | Run `test_profile_links_cover_components` in `tests/test_render_profile_links.py` expects one level-1 link per component. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R014.6 Add `check_drilldown_links(readme, site_index)` to `scripts/spec_dashboard_drilldown.py`. It fails when a component link or spec anchor does not resolve in the generated site Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceAdd `check_drilldown_links(readme, site_index)` to `scripts/spec_dashboard_drilldown.py`. It fails when a component link or spec anchor does not resolve in the generated site. | Run `test_unresolved_component_link_fails` in `tests/test_spec_dashboard_drilldown.py` expects exit 1 for a missing page. | requirement | PIPE-PAGES | VERIFIED | fe2b599895fa tests/test_spec_dashboard_drilldown.py:32 |
| PIPE-PAGES-R015 One generator for connectors and client repositories Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**One generator for connectors and client repositories.** Rollup of the children below. Connectors and the client repositories get PIPE-PAGES-R012 to PIPE-PAGES-R014 from the same reusable workflow. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 246cc47a897a 5b454e4b7eb4 6f853265406b tests/test_pages_pipeline_contract.py:257 tests/test_pages_pipeline_contract.py:303 tests/test_spec_dashboard_metadata.py:157 |
| PIPE-PAGES-R015.1 The reusable workflow `.github/workflows/pages_pipeline.yml` must run the R012 to R014 steps for every caller. It adds no per-repository input and no per-repository copy Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe reusable workflow `.github/workflows/pages_pipeline.yml` must run the R012 to R014 steps for every caller. It adds no per-repository input and no per-repository copy. | Run `test_pages_workflow_runs_relation_steps` in `tests/test_pages_pipeline_contract.py` expects the steps and no repository names. | requirement | PIPE-PAGES | VERIFIED | 246cc47a897a tests/test_pages_pipeline_contract.py:257 |
| PIPE-PAGES-R015.2 Overstory, Tuig, and Axil adopt it through the caller pattern in PIPE-CONNSPEC-R004. Each caller change belongs to the repository's own spec Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceOverstory, Tuig, and Axil adopt it through the caller pattern in PIPE-CONNSPEC-R004. Each caller change belongs to the repository's own spec. | Run `test_client_callers_use_reusable_workflow` in `tests/test_pages_pipeline_contract.py` expects each caller to reference the workflow at `main`. | requirement | PIPE-PAGES | VERIFIED | 6f853265406b tests/test_pages_pipeline_contract.py:303 |
| PIPE-PAGES-R015.3 Connectors must inherit code references and relationship views through the shared Pages generator when enabled Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceConnectors must inherit code references and relationship views through the shared Pages generator when enabled. | `test_generator_entry_point_writes_architecture` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | VERIFIED | 5b454e4b7eb4 tests/test_spec_dashboard_metadata.py:157 |
| PIPE-PAGES-R016 Spec-delivery page shows only the current spec state Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Spec-delivery page shows only the current spec state.** Rollup of the children below. The page is an as-is functional requirements view of the current `specs/` tree. Git history, state transitions, trends and burn charts are not rendered; earlier states live in git. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 9e705970e4c9 a81cc87849a5 tests/test_spec_dashboard.py:161 tests/test_spec_dashboard.py:169 tests/test_spec_dashboard.py:176 tests/test_spec_dashboard.py:198 tests/test_spec_dashboard.py:210 |
| PIPE-PAGES-R016.1 Remove the `history` field and the `--history-limit` option from `create_snapshot` and `argument_parser` in `scripts/spec_dashboard.py`. The snapshot holds only records read from the current tree, so no ID absent from that tree enters it Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceRemove the `history` field and the `--history-limit` option from `create_snapshot` and `argument_parser` in `scripts/spec_dashboard.py`. The snapshot holds only records read from the current tree, so no ID absent from that tree enters it. | Run `test_snapshot_has_no_history_field` in `tests/test_spec_dashboard.py` expects no `history` key in the snapshot. | requirement | PIPE-PAGES | VERIFIED | a81cc87849a5 tests/test_spec_dashboard.py:161 |
| PIPE-PAGES-R016.2 Remove `history_panels` and the history and per-commit panels from `scripts/spec_dashboard_render.py`, then delete `scripts/spec_dashboard_charts.py`, `scripts/spec_dashboard_history.py`, `scripts/spec_dashboard_history_metrics.py`, and `scripts/spec_dashboard_history_views.py` with their tests. No state-transition table, chart, metric or panel is rendered Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceRemove `history_panels` and the history and per-commit panels from `scripts/spec_dashboard_render.py`, then delete `scripts/spec_dashboard_charts.py`, `scripts/spec_dashboard_history.py`, `scripts/spec_dashboard_history_metrics.py`, and `scripts/spec_dashboard_history_views.py` with their tests. No state-transition table, chart, metric or panel is rendered. | Run `test_page_has_no_history_panels` in `tests/test_spec_dashboard.py` expects no history, transition or timeline marker in the HTML. | requirement | PIPE-PAGES | VERIFIED | a81cc87849a5 tests/test_spec_dashboard.py:169 |
| PIPE-PAGES-R016.3 Render only records present in the current `specs/` tree. A requirement ID that was removed in an earlier commit appears nowhere in the HTML Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceRender only records present in the current `specs/` tree. A requirement ID that was removed in an earlier commit appears nowhere in the HTML. | Run `test_removed_id_absent_from_page` in `tests/test_spec_dashboard.py` expects a removed ID to be absent from the page built from a repository whose history contains it. | requirement | PIPE-PAGES | VERIFIED | a81cc87849a5 tests/test_spec_dashboard.py:176 |
| PIPE-PAGES-R016.4 Remove the history scripts from the sparse checkout and the history option from the dashboard call in `.github/workflows/pages_pipeline.yml`. The Pages workflow does not invoke the history modules Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceRemove the history scripts from the sparse checkout and the history option from the dashboard call in `.github/workflows/pages_pipeline.yml`. The Pages workflow does not invoke the history modules. | Run `test_workflow_does_not_reference_history_scripts` in `tests/test_spec_dashboard.py` expects no `spec_dashboard_history` or `spec_dashboard_charts` in the workflow. | requirement | PIPE-PAGES | VERIFIED | a81cc87849a5 tests/test_spec_dashboard.py:210 |
| PIPE-PAGES-R016.5 Do not render records whose state is `RETIRED`. `read_records` in `scripts/spec_dashboard_sources.py` drops them, so no row, count, legend entry, link, relationship or percentage includes one Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceDo not render records whose state is `RETIRED`. `read_records` in `scripts/spec_dashboard_sources.py` drops them, so no row, count, legend entry, link, relationship or percentage includes one. | Run `test_retired_record_is_not_rendered` in `tests/test_spec_dashboard.py` expects one VERIFIED record rendered, the RETIRED ID absent, and one record counted. | requirement | PIPE-PAGES | VERIFIED | 9e705970e4c9 tests/test_spec_dashboard.py:198 |
| PIPE-PAGES-R017 Three states only Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Three states only.** Rollup of the children below. A requirement row and a spec have one state field with the values `SPECIFIED`, `LANDED` and `VERIFIED`. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 71203d08a166 tests/test_spec_dashboard_states.py:28 tests/test_spec_dashboard_states.py:35 tests/test_spec_dashboard_states.py:43 |
| PIPE-PAGES-R017.1 The state legend lists exactly three states, `SPECIFIED`, `LANDED` and `VERIFIED`, each with a one-line definition, in `definitions_panel` in `scripts/spec_dashboard_panels.py` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceThe state legend lists exactly three states, `SPECIFIED`, `LANDED` and `VERIFIED`, each with a one-line definition, in `definitions_panel` in `scripts/spec_dashboard_panels.py`. | See test-spec.md. | requirement | PIPE-PAGES | VERIFIED | 71203d08a166 tests/test_spec_dashboard_states.py:28 |
| PIPE-PAGES-R017.2 Every record row shows one state cell. The page has no acceptance column, no release column and no second state label Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceEvery record row shows one state cell. The page has no acceptance column, no release column and no second state label. | See test-spec.md. | requirement | PIPE-PAGES | VERIFIED | 71203d08a166 tests/test_spec_dashboard_states.py:35 |
| PIPE-PAGES-R017.3 A `delivery_state` outside the three states, after `RETIRED` is filtered, renders as `INVALID` and counts in one visible invalid-state number Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceA `delivery_state` outside the three states, after `RETIRED` is filtered, renders as `INVALID` and counts in one visible invalid-state number. | See test-spec.md. | requirement | PIPE-PAGES | VERIFIED | 71203d08a166 tests/test_spec_dashboard_states.py:43 |
| PIPE-PAGES-R018 Spec delivery is a native menu entry on every documentation site Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Spec delivery is a native menu entry on every documentation site.** Rollup of the children below. Every page of a site with a spec-delivery page links to it and to the other repositories' pages. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 2f6747267768 64ce2e92a6da 7eca7920c666 8f6b2234e190 ffddb8aba2bc tests/test_spec_delivery_nav.py:21 tests/test_spec_delivery_nav.py:29 tests/test_spec_delivery_nav.py:36 tests/test_spec_delivery_nav.py:42 tests/test_spec_delivery_nav.py:54 |
| PIPE-PAGES-R018.1 Add the `spec_delivery` flag to `extra:` in `templates/mkdocs-theme/base.mkdocs.yml` as `!ENV [SPEC_DELIVERY_ENABLED, false]`. Set the variable from `inputs.spec_dashboard_enabled` on the Build Docs step of `.github/workflows/pages_pipeline.yml` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceAdd the `spec_delivery` flag to `extra:` in `templates/mkdocs-theme/base.mkdocs.yml` as `!ENV [SPEC_DELIVERY_ENABLED, false]`. Set the variable from `inputs.spec_dashboard_enabled` on the Build Docs step of `.github/workflows/pages_pipeline.yml`. | Run `test_flag_is_env_driven` in `tests/test_spec_delivery_nav.py` expects the `!ENV` flag and the workflow variable. | requirement | PIPE-PAGES | VERIFIED | 2f6747267768 64ce2e92a6da 7eca7920c666 tests/test_spec_delivery_nav.py:21 |
| PIPE-PAGES-R018.2 Render a `Spec delivery` link in `templates/mkdocs-theme/overrides/main.html`. The link must use `base_url` and `/spec-delivery/`, and the block must render only when the flag is set Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceRender a `Spec delivery` link in `templates/mkdocs-theme/overrides/main.html`. The link must use `base_url` and `/spec-delivery/`, and the block must render only when the flag is set. | Run `test_entry_is_root_relative_and_flag_gated` in `tests/test_spec_delivery_nav.py` expects `base_url`, no host, and the flag guard. | requirement | PIPE-PAGES | VERIFIED | 2f6747267768 ffddb8aba2bc tests/test_spec_delivery_nav.py:29 |
| PIPE-PAGES-R018.3 List the `spec-delivery/` page of each repository in a native `<details>` list inside the same navigation landmark. The list must iterate `extra.ecosystem.sites` and must hold no second repository list Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceList the `spec-delivery/` page of each repository in a native `<details>` list inside the same navigation landmark. The list must iterate `extra.ecosystem.sites` and must hold no second repository list. | Run `test_menu_iterates_the_single_site_list` in `tests/test_spec_delivery_nav.py` expects the loop over `extra.ecosystem.sites` and no literal repository URL in the template. | requirement | PIPE-PAGES | VERIFIED | 2f6747267768 tests/test_spec_delivery_nav.py:36 |
| PIPE-PAGES-R018.4 Keep every `extra.ecosystem.sites` URL in `templates/mkdocs-theme/base.mkdocs.yml` equal to its `REPOS` entry in `scripts/skill_graph/model.py` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceKeep every `extra.ecosystem.sites` URL in `templates/mkdocs-theme/base.mkdocs.yml` equal to its `REPOS` entry in `scripts/skill_graph/model.py`. | Run `test_site_urls_match_repos` in `tests/test_spec_delivery_nav.py` expects each site URL to equal the REPOS URL for its slug. | requirement | PIPE-PAGES | VERIFIED | 2f6747267768 8f6b2234e190 tests/test_spec_delivery_nav.py:42 |
| PIPE-PAGES-R018.5 Style the entry in a `<style>` element inside the block in `templates/mkdocs-theme/overrides/main.html` with a visible focus outline. The override is served from the theme checkout through `custom_dir`, so the theme sync check needs no consumer change Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceStyle the entry in a `<style>` element inside the block in `templates/mkdocs-theme/overrides/main.html` with a visible focus outline. The override is served from the theme checkout through `custom_dir`, so the theme sync check needs no consumer change. | Run `test_theme_sync_check_passes_with_entry` in `tests/test_spec_delivery_nav.py` expects an empty drift list. | requirement | PIPE-PAGES | VERIFIED | 2f6747267768 tests/test_spec_delivery_nav.py:54 |
| PIPE-PAGES-R019 The spec-delivery page carries the documentation site's navigation Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**The spec-delivery page carries the documentation site's navigation.** Rollup of the children below. Readers must move between the documentation and the page without the browser's address bar. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 556a2a4e800e tests/test_spec_dashboard_nav.py:27 tests/test_spec_dashboard_nav.py:34 tests/test_spec_dashboard_nav.py:41 tests/test_spec_dashboard_nav.py:49 tests/test_spec_dashboard_nav.py:56 |
| PIPE-PAGES-R019.1 Add `site_nav(repository)` to `scripts/spec_dashboard_nav.py`. It renders `<nav aria-label="Site">` with the repository name and a `Documentation` link, both to `../` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceAdd `site_nav(repository)` to `scripts/spec_dashboard_nav.py`. It renders `<nav aria-label="Site">` with the repository name and a `Documentation` link, both to `../`. | Run `test_nav_landmark_links_documentation` in `tests/test_spec_dashboard_nav.py` expects the stated result. | requirement | PIPE-PAGES | VERIFIED | 556a2a4e800e tests/test_spec_dashboard_nav.py:27 |
| PIPE-PAGES-R019.2 Mark the current page in `site_nav` with `aria-current="page"` on the `Spec delivery` entry Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceMark the current page in `site_nav` with `aria-current="page"` on the `Spec delivery` entry. | Run `test_current_page_is_marked` in `tests/test_spec_dashboard_nav.py` expects the stated result. | requirement | PIPE-PAGES | VERIFIED | 556a2a4e800e tests/test_spec_dashboard_nav.py:34 |
| PIPE-PAGES-R019.3 List every repository in `site_nav` from `ecosystem_components()` in `scripts/spec_dashboard_drilldown.py`. Link each to its level-1 URL and mark the current repository. Define no second list Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceList every repository in `site_nav` from `ecosystem_components()` in `scripts/spec_dashboard_drilldown.py`. Link each to its level-1 URL and mark the current repository. Define no second list. | Run `test_repository_links_equal_single_source` in `tests/test_spec_dashboard_nav.py` expects the stated result. | requirement | PIPE-PAGES | VERIFIED | 556a2a4e800e tests/test_spec_dashboard_nav.py:41 |
| PIPE-PAGES-R019.4 Add `skip_link()` to `scripts/spec_dashboard_nav.py` and wrap the sheet in `<main id="main">` in `render` in `scripts/spec_dashboard_render.py`. Style the bar with the existing tokens in `scripts/spec_dashboard_style.py` Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceAdd `skip_link()` to `scripts/spec_dashboard_nav.py` and wrap the sheet in `<main id="main">` in `render` in `scripts/spec_dashboard_render.py`. Style the bar with the existing tokens in `scripts/spec_dashboard_style.py`. | Run `test_skip_link_targets_main` in `tests/test_spec_dashboard_nav.py` expects the stated result. | requirement | PIPE-PAGES | VERIFIED | 556a2a4e800e tests/test_spec_dashboard_nav.py:49 |
| PIPE-PAGES-R019.5 Add `scripts/spec_dashboard_nav.py` to the sparse checkout in `.github/workflows/pages_pipeline.yml`. The page must keep every existing panel Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification sourceAdd `scripts/spec_dashboard_nav.py` to the sparse checkout in `.github/workflows/pages_pipeline.yml`. The page must keep every existing panel. | Run `test_page_keeps_existing_panels` in `tests/test_spec_dashboard_nav.py` expects the stated result. | requirement | PIPE-PAGES | VERIFIED | 556a2a4e800e tests/test_spec_dashboard_nav.py:56 |
| PIPE-PAGES-R020 Documentation claims must match the repository Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Documentation claims must match the repository.** Rollup of the children below. The public-surface gate resolves each documented path, command, gate name and count against the tree. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add frozen dataclass `DocClaim` (file, line, kind, text) to `pipelines_hooks/docs/claims.py`. The `kind` field takes one of `path`, `command`, `gate`, `count`, `diagram-node`. | Run `test_doc_claim_kind_is_closed` in `tests/hooks/test_doc_claims.py` expects a `ValueError` for any other kind. | requirement | PIPE-PAGES | VERIFIED | 65928c5c8223 e50c603b621e faf488ed3698 tests/hooks/test_doc_claims.py:36 |
| PIPE-PAGES-R020.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Add `claim_findings(root, claims)` to `pipelines_hooks/docs/claims.py`. Each kind has one named resolver in `RESOLVERS`: a path must exist, a gate must be in `GATES`, a count must equal the measured count, a diagram node must match a registry name. Each resolver is a replaceable default. | Run `test_resolvers_check_each_kind` in `tests/hooks/test_doc_claims.py` expects one finding per false claim and none for true claims. | requirement | PIPE-PAGES | VERIFIED | 65928c5c8223 e50c603b621e faf488ed3698 tests/hooks/test_doc_claims.py:42 |
| PIPE-PAGES-R020.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Call `claim_findings` from `validate` at `pipelines_hooks/docs/public_surface.py:31`. `main` in `pipelines_hooks/cli.py:79` reaches it through `run_gate` at `pipelines_hooks/cli.py:66`. The `public-surface` hook at `.pre-commit-hooks.yaml:183` is the production caller. | Run `test_validate_calls_claim_findings` in `tests/hooks/test_doc_claims.py` expects a claim finding from `validate` on a stale fixture. | requirement | PIPE-PAGES | VERIFIED | 65928c5c8223 e50c603b621e faf488ed3698 tests/hooks/test_doc_claims.py:66 tests/hooks/test_public_surface_claims.py:43 tests/hooks/test_public_surface_claims.py:71 |
| PIPE-PAGES-R020.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** When a claim has no resolver or the registry is unreadable, `claim_findings` returns the typed finding `claims-unchecked` with the file and line. It never passes silently. | Run `test_unresolvable_claim_is_reported` in `tests/hooks/test_doc_claims.py` expects the `claims-unchecked` finding. | requirement | PIPE-PAGES | VERIFIED | 65928c5c8223 e50c603b621e faf488ed3698 tests/hooks/test_doc_claims.py:86 tests/hooks/test_public_surface_claims.py:95 |
| PIPE-PAGES-R020.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** The gate prints one line `claims: checked N, unresolved M` and one finding per unresolved claim as `file:line kind text`. | Run `test_claims_summary_line` in `tests/hooks/test_doc_claims.py` expects the counts to equal the fixture. | requirement | PIPE-PAGES | VERIFIED | 65928c5c8223 e50c603b621e faf488ed3698 tests/hooks/test_doc_claims.py:94 |
| PIPE-PAGES-R020.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is `pipelines-hook public-surface`, run through `main` in `pipelines_hooks/cli.py:79` on a fixture repository whose README names a missing path. The hook must exit 1 and print that path's `file:line`. | Run `test_public_surface_hook_fails_on_stale_claim` in `tests/hooks/test_public_surface_claims.py` expects exit 1 and the finding. | requirement | PIPE-PAGES | VERIFIED | 65928c5c8223 e50c603b621e faf488ed3698 tests/hooks/test_public_surface_claims.py:27 |
| PIPE-PAGES-R020.7 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend the R020 claim contract with `LocatedFinding` in `pipelines_hooks/docs/claims.py`. Fields are source path, positive line, source digest, rule, observed value, expected value and evidence digest. Findings may describe documentation or code; measured evidence is required. | Run `test_located_finding_schema` in `tests/hooks/test_public_surface_claims.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 0acc8ec13b85 tests/hooks/test_public_surface_claims.py:130 |
| PIPE-PAGES-R020.8 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Validate findings against the exact scanned tree before export. The `located-evidence` default resolves repository-relative paths, verifies line bounds and source digests, and compares observed values with recorded measurements. A textual assertion alone is not measured evidence. | Run `test_located_evidence_matches_tree` in `tests/hooks/test_public_surface_claims.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 0acc8ec13b85 cbe3171bc838 tests/hooks/test_public_surface_claims.py:143 |
| PIPE-PAGES-R020.9 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned `claim_findings` call at `pipelines_hooks/docs/public_surface.py:31`. Add a shared finding validator at the report boundary, reused by skill grading and test quality. `pipelines_hooks/cli.py:59` dispatches the public-surface entry point. There is no production caller of this new validator today. | Run `test_finding_validator_is_wired` in `tests/hooks/test_public_surface_claims.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 0acc8ec13b85 tests/hooks/test_public_surface_claims.py:167 |
| PIPE-PAGES-R020.10 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Return `unsupported-finding` for absent measurements, escaped paths, invalid lines or mismatched source digests. Malformed evidence is `CannotRun` and exit 2; a measured failed rule is exit 1. Never convert an unchecked finding into a clean result. | Run `test_unsupported_finding_refused` in `tests/hooks/test_public_surface_claims.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 0acc8ec13b85 tests/hooks/test_public_surface_claims.py:196 |
| PIPE-PAGES-R020.11 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit deterministic records with repository-relative path, line, rule, source digest, observed and expected values, and evidence digest. Record rejected findings separately with their refusal reason. Export neither absolute machine paths nor source secrets. | Run `test_located_evidence_export` in `tests/hooks/test_public_surface_claims.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 0acc8ec13b85 tests/hooks/test_public_surface_claims.py:253 |
| PIPE-PAGES-R020.12 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point `pipelines-hook public-surface --root <fixture>` through the CLI and report validator. In `tests/hooks/test_public_surface_claims.py`, verify a measured stale claim exits 1 with an exact location. Missing measurement, out-of-range line and changed source each exit 2. Repairing the claim exits 0. | Run `test_public_surface_located_evidence_cli` in `tests/hooks/test_public_surface_claims.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 0acc8ec13b85 cbe3171bc838 tests/hooks/test_public_surface_claims.py:282 tests/hooks/test_public_surface_claims.py:333 |
| PIPE-PAGES-R020.13 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend R020 with `ChangelogPolicy`, `ReleaseSection` and `ChangelogFinding` in new `pipelines_hooks/docs/changelog.py`. Policy declares document path, grammar version, version/tag syntax, URL templates and parser limits. Sections bind version or `Unreleased`, optional date, categories, entries and comparison link to source lines. Findings have closed rules for version, date, category, entry, link, duplicate and order violations. | Run `test_changelog_model` in `tests/hooks/test_changelog_gate.py`. Reject unknown grammar fields and duplicate releases; represent dated releases and an optional unreleased section with exact locations. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.14 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The `changelog-v1` default accepts dated level-two version headings, nonempty categorized bullet entries and resolved version links. Version labels have three dot-separated nonnegative decimal components without leading zeroes except zero itself. Optional hyphen-prefixed prerelease and plus-prefixed build suffixes contain nonempty dot-separated ASCII alphanumeric/hyphen identifiers; digits-only prerelease identifiers have no leading zeroes. Use valid calendar dates in YYYY-MM-DD form. Releases descend by date; a single undated `Unreleased` section may appear first. Categories are Added, Changed, Deprecated, Removed, Fixed and Security. Features use Added and fixes use Fixed; explicit `[Breaking]` entry markers identify incompatible changes. Reject entries outside a category and unknown categories. Empty optional categories are omitted. | Run `test_changelog_grammar` in `tests/hooks/test_changelog_gate.py`. Accept dated categorized releases; independently reject invalid dates/versions, misplaced entries, duplicate headings and unknown categories. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.15 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Add `changelog` to `GATES` at `pipelines_hooks/cli.py:13`, dispatched by `run_gate` at `pipelines_hooks/cli.py:59`. Publish a separate shared hook beside `public-surface` in `.pre-commit-hooks.yaml`, catalogue and self-run configuration consumed by `.github/workflows/ci.yml:86`. Extend configuration keys at `pipelines_hooks/core/config.py:21`. Reuse snapshot selection at `pipelines_hooks/core/comparison.py:53` and blob reads at `pipelines_hooks/core/gitenv.py:81`. Preserve existing public-surface behavior. No production caller reaches this checker today. | Run `test_changelog_hook_wiring` in `tests/hooks/test_changelog_gate.py`. The published CLI/hook reads policy and changelog from one Git snapshot and invokes the new grammar checker. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.16 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Grammar deviations return located findings and exit 1. Missing declared files, unreadable UTF-8, unsupported policy, exceeded parser limits, unsafe paths or unavailable snapshots raise `CannotRun` and exit 2. An Unreleased-only document, empty or populated, exits 2 with `missing-release-anchor` at its heading; no comparison baseline is invented. Missing or duplicate link definitions and invalid comparison targets fail; no network request is needed. A URL passing syntax checks is not proof of remote availability. Never silently skip a declared file, rewrite history or reformat a repository during checking. | Run `test_changelog_refusals` in `tests/hooks/test_changelog_gate.py`. Missing files and malformed policy exit 2; missing links and malformed release entries exit 1, with path and source line. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.17 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit sorted path/line/rule findings, policy and document digests, Git snapshot identity, checked release/category/link counts and typed refusal. Each release link records its declared comparison endpoints. Keep syntax validation distinct from unchecked remote reachability and semantic completeness of release notes. No passing verdict is emitted when the document was unchecked. | Run `test_changelog_evidence` in `tests/hooks/test_changelog_gate.py`. Bind findings to exact Git bytes and explicitly mark network reachability and change completeness as unverified. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.18 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point `pipelines-hook changelog --root <fixture>` in `tests/hooks/test_changelog_gate.py` on a real temporary Git repository with the published hook installed. Valid dated releases with feature, fix and marked breaking entries pass. Independently stage an invalid date, missing comparison link, misplaced bullet and missing file; assert located nonzero exits through CLI and hook. A fresh Git fixture containing only empty Unreleased exits 2 with `missing-release-anchor`, including when a guessed comparison link is supplied. Adding the first valid dated release, its release/tag link and the Unreleased comparison repairs it to exit 0 through both entry points. An unstaged repair cannot hide staged invalid text; a clean committed snapshot remains independent of worktree edits. | Run `test_changelog_cli` in `tests/hooks/test_changelog_gate.py`. Assert valid exit 0, grammar exit 1, missing-file and initial-history exit 2, then a valid first-release repair to exit 0, exact locations, snapshot isolation and no file writes or network calls. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.19 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add RuntimeEnvContract, EnvUse and LauncherEnvBinding in new pipelines_hooks/docs/env_documentation.py. Runtime variables bind name, typed default or no-default, purpose, requiredness, source locations and provider provenance to one Git snapshot. Launcher bindings add tracked JSON path, launcher/entrypoint identity, JSON pointer, variable name and a versioned adapter for literal or sourced-value semantics. Declare supported language roots, central providers and finite dynamic-name resolvers. Declare each launcher's applicable runtime-variable set and reconcile declared and discovered launcher files. | Run `test_env_documentation_model` in `tests/hooks/test_env_documentation.py`. Reject duplicate names, unknown fields, contradictory defaults and unmapped launcher bindings. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.20 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Reconcile every supported runtime read with matching name/default/purpose/requiredness in both example environment file and README. For every tracked MCP/launcher configuration, check every applicable variable binding against that same contract, including safe defaults and required/sourced semantics. Missing, renamed or unexpected bindings and default/requiredness drift fail. Use syntax-aware Python and declared provider adapters, not regex completeness claims. Secret defaults use an explicit secret/no-default marker; never store credential defaults. | Run `test_env_documentation_behavior` in `tests/hooks/test_env_documentation.py`. Independently corrupt each documentation field and remove, rename or contradict each launcher binding to fail. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.21 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register env-documentation in pipelines_hooks/cli.py:13, dispatched by run_gate at line 59. Its main calls one reconciliation pass over runtime reads, example file, README and declared/discovered launcher JSON bindings before a verdict. Publish the shared/self-run hook consumed by .github/workflows/ci.yml:86. Reuse core/config.py:21, core/comparison.py:53 and core/gitenv.py:81 with the same-snapshot policy seam. Preserve env-sprawl placement checks. No caller reaches this inventory today. | Run `test_env_documentation_wiring` in `tests/hooks/test_env_documentation.py`. Invoke CLI and configured pre-commit with all three consumer surfaces from the same indexed snapshot. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.22 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing/inconsistent documentation, missing declared launcher files, malformed JSON or binding drift is exit 1. Unresolved computed names, unbounded enumeration, unknown wrappers, unsupported source languages or launcher dialects, dynamic substitutions, unavailable providers or conflicting runtime defaults are CannotRun exit 2 with located uncertainty. A resolver must prove a finite set with digest-bound evidence. Unmapped discovered launchers cannot be silently skipped. Never execute repository imports, launchers or credential expansion to validate bindings. | Run `test_env_documentation_refusal` in `tests/hooks/test_env_documentation.py`. Malformed and missing launcher JSON fails; unsupported substitutions and computed names refuse without execution. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.23 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit all resolved names, example/README locations and each launcher path/identity/JSON pointer with source line, adapter, applicable variable set and safe binding/default/requiredness verdict. Bind source, consumer, policy and provider digests to one snapshot. Record all declared/discovered launchers, unmatched bindings and unresolved reads. Redact credentials and expanded environment values. Unchecked reads or launcher bindings forbid a complete receipt. | Run `test_env_documentation_evidence` in `tests/hooks/test_env_documentation.py`. Check exact third-surface locations/digests, missing binding evidence, uncertainty and secret redaction. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.24 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook env-documentation --root <fixture> and configured pre-commit on a real Git repository with runtime reads, example file, README and tracked MCP JSON. All three consumer surfaces pass when consistent. Independently corrupt example-file and README metadata to fail. Independently remove/rename a launcher key, change its safe default or required binding, corrupt/delete its JSON file and repair it; assert located exit 1 then 0. Unknown substitution and computed-name cases exit 2. An unstaged launcher repair cannot rescue staged drift; committed-tree checks ignore worktree edits. | Run `test_env_documentation_cli` in `tests/hooks/test_env_documentation.py`. Assert CLI/hook exits 0/1/2 for all three surfaces, exact JSON pointers, snapshot isolation and no launch/import/network execution. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.25 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add ProjectConfigInventory and TemplateReceipt in new pipelines_hooks/hygiene/config_inventory.py. A complete declared project set maps four required roles: version-bump, pre-commit, project metadata and pytest configuration, to canonical paths, parser/schema versions, pinned template digests and rendering parameters. Two roles may share one file through distinct validated sections. | Run `test_config_inventory_model` in `tests/hooks/test_config_inventory.py`. Require all four roles for every declared project and reject duplicate effective authorities. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.26 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Provide deterministic template rendering and read-only completeness checks. Validate required role fields and rendered managed sections using format parsers; compare template version and parameter digests. Preserve explicitly owned custom sections. Validate the full declared inventory, including unchanged projects; an existing file alone does not prove template origin or conformance. | Run `test_config_inventory_behavior` in `tests/hooks/test_config_inventory.py`. Render all roles twice byte-identically and detect missing files, sections and managed-field drift. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.27 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register config-inventory in pipelines_hooks/cli.py:13 with --check and --render modes. Publish --check as the pre-commit/CI hook; package versioned templates under templates/project-config/. Reuse core/config.py:21 strict schema, core/comparison.py:53 and core/gitenv.py:81. Existing templates contain only the Pages theme; no standard project-config renderer or completeness caller exists. | Run `test_config_inventory_wiring` in `tests/hooks/test_config_inventory.py`. The installed hook invokes check mode; an explicit scratch render runs the same templates and parsers. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.28 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing required roles/files, invalid format or managed-section drift exit 1. Unknown templates, ambiguous project discovery, unsupported schemas, unavailable Git bytes or unsafe destinations raise CannotRun exit 2. Rendering requires an explicit destination and refuses existing outputs; checking never overwrites user configuration or creates an authority beside a canonical file. | Run `test_config_inventory_refusal` in `tests/hooks/test_config_inventory.py`. Reject traversal and overwrite, and fail a project omitted from the declared inventory. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.29 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record project/role/path/section, parser and template identity, parameter digest, expected/observed managed-section digests and exact failure location. Record all discovered and declared project roots. A template receipt is reproducibility evidence, not proof of historical authorship. | Run `test_config_inventory_evidence` in `tests/hooks/test_config_inventory.py`. Prove all projects and four roles appear, and drift identifies the affected section. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.30 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is the published CLI and configured hook. Through pipelines-hook config-inventory and configured pre-commit, render templates into a new real Git fixture with two projects, stage outputs and validate successfully. Independently remove bump, pre-commit, metadata and pytest roles; corrupt each format and alter a managed value. Add an undeclared project root. Each invalid inventory must fail with the correct project/role. | Run `test_config_inventory_cli` in `tests/hooks/test_config_inventory.py`. Assert deterministic rendering, per-role failures, complete multi-project coverage and no check-mode writes. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.31 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add a versioned validated Pydantic ValidationReport in new pipelines_hooks/core/validation_report.py. It nests repository/snapshot, category, executed test or analyzer identity and stable rule records. Outcomes are pass, fail or skip, each with a reason; failures preserve structured verbosity and located evidence. Invocation status separately records complete or cannot-run, so a skip cannot masquerade as pass. | Run `test_validation_report_model` in `tests/hooks/test_validation_report.py`. Reject unknown outcomes, duplicate record identities and counts inconsistent with records. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.32 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Serialize to canonical JSON and deserialize without losing nesting, reasons, evidence, pass/fail/skip metrics or schema version. Render Markdown from the same object; do not parse Markdown as authoritative evidence. Recompute counts and verdict on import. Preserve empty/not-applicable categories as explicit skips and never invent successful tests. | Run `test_validation_report_behavior` in `tests/hooks/test_validation_report.py`. Round-trip mixed nested outcomes and compare every field, stable ordering and recomputed metrics. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.33 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Add structured result adapters before text rendering in the R020 claim, R021 repository-validation and R023 skill-grade paths. Register repository-validation in cli.py:13 and let its --report-json and --report-markdown options export the shared object. Preserve existing run_gate exit mapping at cli.py:59. The aggregate consumes R021.27 lint_type.analyze results under explicit lint/import-order/type categories and preserves their rules, reasons and verdicts through JSON/Markdown. Current modules print distinct formats; no common report producer/consumer exists today. | Run `test_validation_report_wiring` in `tests/hooks/test_validation_report.py`. Run aggregate lint-type results through JSON/Markdown and retain all three phase categories, rules and verdicts. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.34 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Unknown schema, malformed evidence, stale source digests, mismatched counters or unsupported adapters are CannotRun exit 2. Any failing required rule exits 1 unless cannot-run takes precedence. A skipped required check exits 2; declared non-applicable optional checks remain skips. Optional skips cannot create a full-coverage receipt. Truncated output is not a valid report. | Run `test_validation_report_refusal` in `tests/hooks/test_validation_report.py`. Tampered verdict/counts, required skips and malformed/truncated JSON refuse rather than pass. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.35 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Preserve exact rule IDs, repository-relative locations, bounded redacted diagnostics, command identity, duration, source/policy digests and scope. Report original pass/fail/skip counts by category and repository plus invocation status. Bound serialized size and escape Markdown content without executing it. | Run `test_validation_report_evidence` in `tests/hooks/test_validation_report.py`. Retain failure detail and skip reasons through JSON and Markdown; never leak secret payloads. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.36 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is the published CLI and configured hook. Execute repository-validation on real Git fixtures containing passing checks, a real lint failure and a deliberately unavailable optional adapter. Deserialize the produced JSON and render Markdown; compare every nested outcome, reason and metric with the actual analyzer results. Independently trigger real lint, import-order and type findings through the aggregate; each survives serialization in its matching category and gives exit 1 even if health is 100. A required unavailable adapter must give exit 2 in local and CI modes. | Run `test_validation_report_cli` in `tests/hooks/test_validation_report.py`. Assert real lint/import/type round-trip, exit 1 at unchanged health score, repaired exit 0 and required-phase skip exit 2. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.37 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add ToolDocMapping in new pipelines_hooks/docs/tool_mapping.py: canonical registry/tool/method IDs, nested method relation, parameter names/types/defaults/requiredness, result schema and request/result examples. Bind registry and generated table locations to source digests. The owner exports registry data; pipelines creates no second tool authority. | Run `test_tool_mapping_model` in `tests/hooks/test_tool_mapping.py`. Reject duplicate identities, missing schema fields and unbound examples. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.38 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Extend R010 with exact set equality between the complete published tool/method inventory and documentation rows. Require all parameters, result fields and at least one schema-valid request/result example per method, including nested methods. Explicitly describe void results and empty parameter sets. Reject extra, omitted or stale rows and mismatched defaults. | Run `test_tool_mapping_behavior` in `tests/hooks/test_tool_mapping.py`. Independently remove a tool, nested method, parameter, result or example and fail. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.39 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Create tool-mapping in pipelines_hooks/cli.py:13 and call it through run_gate at line 59 and the shared hook. Reuse registry extraction at scripts/skill_graph/eg.py:112 and generation at scripts/skill_graph/render_pages.py:39 through versioned owner adapters. Extend exports to carry full schemas; current method grouping/counts do not prove mapping completeness. Run the checker before artifact upload at .github/workflows/pages_pipeline.yml:244. | Run `test_tool_mapping_wiring` in `tests/hooks/test_tool_mapping.py`. The configured docs CLI/hook consumes the real exported registry and generated mapping. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.40 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** A missing mapping row or schema/example mismatch exits 1 with registry identity and document location. Unsupported registry formats, missing producer evidence, ambiguous schemas or stale digests are CannotRun exit 2. Never import arbitrary repository modules or invent examples/results to claim complete coverage. | Run `test_tool_mapping_refusal` in `tests/hooks/test_tool_mapping.py`. Unknown schema and stale registry refuse; an omitted tool is a located failure. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.41 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Report exact tool/method set, parameter/result/example counts, registry producer/version/digest, table row/anchor, source snapshot and each comparison. Missing rows locate both the registry declaration and expected table section. Schema-valid examples are not evidence that a deployed method succeeds. | Run `test_tool_mapping_evidence` in `tests/hooks/test_tool_mapping.py`. Locate absent nested rows and preserve the distinction between schema and runtime evidence. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.42 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook tool-mapping on a real Git fixture whose registered fixture tool exports its contract through the owner producer. Generate and serve its actual reference page; the installed hook passes the full mapping. Independently delete a tool row, nested method, parameter, result or example and assert exit 1 plus exact identity/location; restore to pass. | Run `test_tool_mapping_cli` in `tests/hooks/test_tool_mapping.py`. Assert real producer-to-renderer-to-hook integration and stale-export exit 2. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.43 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add GuideMigrationManifest in new pipelines_hooks/docs/guide_migration.py: old/new snapshots, canonical guide path, configurable size limit, complete source block/statement IDs and digests, destination path/anchor and claim-evidence kind for every moved assertion. Track diagrams and code examples as explicit blocks. | Run `test_guide_migration_model` in `tests/hooks/test_guide_migration.py`. Reject duplicate IDs, uncovered source ranges and destinations outside canonical content roots. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.44 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Extend R002 by generating a reviewable split into declared architecture/agent/feature/reference pages with a concise linking guide. Account for every source block as retained, moved or explicitly reviewed retirement; no silent deletion. Verify moved claims through R020 resolvers and digest-bound measurements. Unknown factual assertions remain unverified and block a complete-verification receipt. | Run `test_guide_migration_behavior` in `tests/hooks/test_guide_migration.py`. Omitting or changing an assertion without matching evidence fails; unsupported claim kinds remain unresolved. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.45 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register guide-migration in pipelines_hooks/cli.py:13 with check and explicit scratch-render modes. Reuse planned docs/claims.py resolvers attached at docs/public_surface.py:31, containment at docs/public_surface_links.py:29 and corpus navigation at scripts/skill_graph/nav.py. The existing link checker does not split guides or verify every moved fact. Publish the check hook and consume it in the Pages workflow before upload. | Run `test_guide_migration_wiring` in `tests/hooks/test_guide_migration.py`. The real CLI materializes the declared split and the hook checks its served navigation and claim evidence. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.46 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing blocks, broken links or oversized output give located failures and exit 1; stale evidence, unsupported claim kinds or unavailable old/new snapshots are CannotRun exit 2. A human approval records review, not machine proof of arbitrary truth. Refuse overwrite in render mode and never rewrite the caller guide during checking. Invalid diagrams fail through the declared renderer. | Run `test_guide_migration_refusal` in `tests/hooks/test_guide_migration.py`. Unresolved assertions and unrenderable diagrams cannot produce complete migration evidence. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.47 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit source-to-destination block mapping, before/after digests and lines, retained/retired/moved counts, measured size, resolved navigation and per-claim evidence or unresolved reason. Distinguish byte preservation, editorial review and measured factual verification. Account for all blocks even when some claims cannot be verified. | Run `test_guide_migration_evidence` in `tests/hooks/test_guide_migration.py`. A coverage total equals the original inventory and each moved claim retains its evidence kind. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.48 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook guide-migration on a real Git fixture with a large guide, measured command/path facts, an unsupported assertion and a diagram. Render the split, serve the generated site and follow the guide links. Omitted blocks, changed claims and broken diagram rendering fail; unsupported facts exit 2. A fully supported, measured fixture passes after repair. | Run `test_guide_migration_cli` in `tests/hooks/test_guide_migration.py`. Assert actual CLI/hook, renderer and served-link behavior without helper-only completion. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.49 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add DeploymentDocMatrix in new pipelines_hooks/docs/deployment_docs.py with exactly four pattern IDs: uv-stdio, uv-local-http, local-container-http and remote-container-url. Each binds owner/runtime capability, supported or constrained status, MCP configuration, launch/connect argv, prerequisite/default placeholders and documentation anchors. Container runtime is a declared Docker or Podman variant. | Run `test_deployment_docs_model` in `tests/hooks/test_deployment_docs.py`. Require all four records and parse configuration/command shapes without fabricated capabilities. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.50 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Extend R008 beyond stdio: every supported pattern includes valid MCP JSON and executable owner-published launch/connect commands. Validate argv, package/image refs, transport, environment bindings and config-command agreement from the checked registry. Remote URL mode uses a safe example endpoint and separate owner-host launch instructions; never invent a local spawn command for a hosted URL. | Run `test_deployment_docs_behavior` in `tests/hooks/test_deployment_docs.py`. Missing configuration, command or mismatched transport fails independently in every pattern. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.51 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register deployment-docs at pipelines_hooks/cli.py:13, reuse public_surface_quickstart.findings through docs/public_surface.py:31 and R020 launcher-binding validation. Publish the shared hook and invoke it before .github/workflows/pages_pipeline.yml:244 upload. Add owner capability/export adapters; no current checker establishes this four-pattern matrix. | Run `test_deployment_docs_wiring` in `tests/hooks/test_deployment_docs.py`. Configured pre-commit and docs CLI validate the same owner export, JSON and argv matrix. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.52 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing records or mismatched examples exit 1. Unknown transport, unavailable owner capability evidence or unsupported command grammar is CannotRun exit 2. An owner-constrained pattern must show a reason and owner evidence, cannot advertise a runnable command and remains visibly unsupported; a contract requiring four runnable patterns remains incomplete. Docs checks never start containers or contact production endpoints. | Run `test_deployment_docs_refusal` in `tests/hooks/test_deployment_docs.py`. Unsupported patterns are explicit constraints, never false pass coverage or invented commands. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.53 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit per-pattern support state, owner/contract digest, configuration pointer, command block location, exact parsed argv and safe prerequisite references. Record syntax/contract validation separately from optional exact-version runtime receipts. Redact credentials and keep hosted ownership distinct from client connection setup. | Run `test_deployment_docs_evidence` in `tests/hooks/test_deployment_docs.py`. Export all four patterns and distinguish docs parity from a runtime deployment receipt. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.54 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook deployment-docs and configured pre-commit on real Git fixtures with all four declared patterns. Run documented supported commands only in owner-controlled disposable acceptance environments with a loopback fixture server; independently parse/validate each MCP configuration and observe the selected transport. Corrupt each pattern in turn to fail; constrained owners produce explicit unsupported evidence. | Run `test_deployment_docs_cli` in `tests/hooks/test_deployment_docs.py`. Assert four-pattern CLI/hook parity and independent owner runtime receipts; documentation alone cannot certify deployment. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.55 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend R020 ProjectConfigInventory with documentation roles: README, agent guide, canonical content tree/index, changelog and documentation configuration. Bind every declared project, role/path/section, template version/digest, render parameters and navigation edges. Reuse config-inventory ownership; do not create a parallel project list. | Run `test_doc_inventory_model` in `tests/hooks/test_doc_inventory.py`. Require every documentation role for every project and reject duplicate canonical authorities. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.56 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Render deterministic templates to new scratch output and validate whole-inventory drift. Check required sections, links from README/guide through index to overview/component/reference pages, document configuration and changelog grammar. Discover canonical paths through policy and compare all declared projects, including unchanged files. Preserve custom content outside managed sections. | Run `test_doc_inventory_behavior` in `tests/hooks/test_doc_inventory.py`. Missing roles, malformed config, stale managed sections and orphan navigation fail independently. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.57 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend planned hygiene/config_inventory.py from R020.27 with documentation adapters and templates/project-docs/. Reuse scripts/sync_mkdocs_theme.py:83, scripts/pages_fleet_parity.py:54 and public-surface link checks at docs/public_surface.py:31. Publish config-inventory --check documentation coverage in the same hook and .github/workflows/pages_pipeline.yml:244 pre-upload path. Existing theme sync/parity does not prove all these per-project roles. | Run `test_doc_inventory_wiring` in `tests/hooks/test_doc_inventory.py`. The existing proposed config-inventory entry consumes both configuration and documentation roles once. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.58 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Absent roles, invalid config, missing index edges or template drift exit 1. Unknown templates, ambiguous canonical locations, unavailable snapshots or escaping paths are CannotRun exit 2. Never recreate retired docs roots, overwrite custom sections, treat an empty directory as a complete tree or silently omit a project. | Run `test_doc_inventory_refusal` in `tests/hooks/test_doc_inventory.py`. Retired-path fallback and an undiscovered declared project cannot pass. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.59 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit project/role/path inventory, template and content digests, managed-section comparisons, navigation graph and exact missing/broken edge locations. Bind the site artifact and report to the same source/config tree. Reuse the structured pass/fail/skip report; historical changelog text remains outside template-owned content. | Run `test_doc_inventory_evidence` in `tests/hooks/test_doc_inventory.py`. Prove every role and project is checked and preserve user-owned prose during rendering. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.60 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook config-inventory --check on a real two-project Git fixture generated from templates. Build and serve its actual documentation, traverse overview/component/reference links and validate all roles. Independently delete a guide/index/changelog/config, corrupt a navigation target and move content to a retired path; installed CLI/hook must fail then pass after repair. | Run `test_doc_inventory_cli` in `tests/hooks/test_doc_inventory.py`. Assert deterministic generation, real served navigation and whole-inventory drift failures. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.61 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add ReadmeHeaderContract in new pipelines_hooks/docs/readme_header.py: project title, unique versioned mark with alt text, concise description, ordered Documentation/Capabilities/Interfaces/Status links and a visible telemetry badge inventory. Bind consumer identity and destinations to scripts/skill_graph/model.py:15 REPOS and declared owner metadata. Classify scope before requiring header fields: the seven consumers validate normally; only the policy-pinned provider identity github.com/Knuckles-Team/pipelines is declared non-applicable. Resolve full host/namespace/repository identity from origin, or a sole remote if origin is absent, without network access. A basename or caller-supplied provider flag cannot select this exception. | Run `test_readme_header_model` in `tests/hooks/test_readme_header.py`. Reject missing/duplicate consumer header fields; only the exact provider identity selects non-applicable scope. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.62 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Extend R003/R011 with the same header order in README and served documentation home. Require every declared telemetry badge beside the other top badges, outside collapsed details. Resolve all four navigation targets and retain a unique project mark. Reconcile the obsolete five-core wording with the existing seven-entry REPOS source; do not add a second hard-coded registry. | Run `test_readme_header_behavior` in `tests/hooks/test_readme_header.py`. Missing interface/status links, hidden badges, stale owner counts and reused wrong-project marks fail. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.63 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register readme-header at pipelines_hooks/cli.py:13; reuse public_surface_links at docs/public_surface.py:31 for contained links and scripts/skill_graph/model.py:15 for consumer identities. Add a shared header template beside templates/mkdocs-theme/overrides/main.html:1 and consumer Markdown rendering. Wire header validation into shared/self-run hooks and Pages pre-upload at .github/workflows/pages_pipeline.yml:244. Self-run on the identified provider returns structured skip with reason provider-not-consumer and exit 0 locally and in CI; this is declared non-applicable scope, not an unavailable required consumer check under R020.34. Consumer fixture acceptance still runs in CI. Current theme chrome does not enforce this README header. | Run `test_readme_header_wiring` in `tests/hooks/test_readme_header.py`. The installed provider self-run yields declared non-applicable exit 0; known consumers still execute the shared renderer/checker. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.64 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing fields, hidden badges, broken local targets or identity drift within a known consumer exit 1. Unknown repositories, unresolved/ambiguous remote identity, unknown badge provenance, unavailable metadata, unsupported rendering or stale status evidence are CannotRun exit 2. No generic unknown-consumer exemption is allowed. Never invent a green telemetry value or count remote URL syntax as reachability proof. Offline fixtures use pinned badge content, not network calls. | Run `test_readme_header_refusal` in `tests/hooks/test_readme_header.py`. Unknown consumer, same basename under another namespace and unresolved identity exit 2; unavailable telemetry cannot become a measured success. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.65 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit header node order, resolved destinations, mark identity/digest, badge visibility and provenance/as-of data, registry digest and served-artifact identity for checked consumers. Provider non-applicable evidence records resolved identity and its source, snapshot, policy/registry digests, provider-not-consumer reason and zero consumer checks; omit header grades and consumer coverage receipts. Separate navigation checks, telemetry freshness and visual presentation. Preserve the source distinction between project identity and shared layout. | Run `test_readme_header_evidence` in `tests/hooks/test_readme_header.py`. Bind seven-owner coverage to its registry; provider skip evidence cannot count as a passed consumer or completed header check. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.66 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook readme-header on generated README and a real served site in a temporary Git fixture. Browser assertions verify the four ordered links, project mark/alt text and visible telemetry. Break a link, collapse a badge or substitute another project mark; CLI/hook and served checks fail. In disposable Git fixtures run the installed CLI and actual self-run hook with the exact provider remote (exit 0, structured non-applicable, zero consumer checks), an unknown consumer and same-basename different-namespace remote (exit 2), and a known consumer with broken header and a caller provider flag (never skip; fail). No remote contact is needed. | Run `test_readme_header_cli` in `tests/hooks/test_readme_header.py`. Assert real renderer/browser coverage plus provider CLI/self-run exit 0, unknown identity exit 2 and no consumer bypass through a provider flag. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.67 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add ThemeImageContract in new pipelines_hooks/docs/image_theme.py: complete discovered image inventory, source/DOM identity, light/dark media selectors or declared dual-theme single asset, alt text, theme backgrounds and semantic diagram endpoints. Bind asset and rendered page digests to the same tree. | Run `test_image_theme_model` in `tests/hooks/test_image_theme.py`. Reject omitted images, missing theme modes and ambiguous diagram edge identities. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.68 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Check every declared and discovered README/site image at light and dark prefers-color-scheme settings. Require actual asset loading, visible labels and boundaries, accessible alternatives and consistent semantic arrow direction. Use deterministic pixel/contrast probes for declared foreground/background regions and reviewed render evidence where automatic legibility is insufficient. Media-query text alone is not proof. | Run `test_image_theme_behavior` in `tests/hooks/test_image_theme.py`. Missing dark variant, invisible labels, wrong diagram arrow endpoints and unaccounted images fail. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.69 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register image-theme at pipelines_hooks/cli.py:13 and create a browser-check adapter for rendered artifacts. Reuse the existing light/dark palette at templates/mkdocs-theme/base.mkdocs.yml:35 and shared assets; preserve R009 HTML/CSS diagrams instead of adding a new diagram system. Run the static inventory hook and consume exact-artifact browser evidence before Pages upload at .github/workflows/pages_pipeline.yml:244. Existing palette support does not check individual images. | Run `test_image_theme_wiring` in `tests/hooks/test_image_theme.py`. The production docs check evaluates the actual served artifact under both browser media settings. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.70 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing assets, required theme selectors or contrast probes, or reversed declared edges exit 1. Unavailable browser/render evidence, unsupported image analysis, unknown backgrounds or stale artifact digests are CannotRun exit 2. Do not claim arbitrary image legibility from regex or two identical screenshots. Single assets need positive evidence for both modes. | Run `test_image_theme_refusal` in `tests/hooks/test_image_theme.py`. An image lacking trustworthy theme evidence cannot silently pass or disappear from inventory. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.71 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record each image and both media modes, chosen source/currentSrc, load status, geometry, alt text, declared contrast measurements, diagram endpoint checks and screenshot digests. Record manual review scope separately from measured probes; neither substitutes for missing actual renders. Use safe repository-relative evidence references. | Run `test_image_theme_evidence` in `tests/hooks/test_image_theme.py`. Every image has two bound render results with exact failure locations and reasons. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.72 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point pipelines-hook image-theme with a real built site served on loopback and a browser rendering light then dark. Inspect actual image load/currentSrc and declared label/background probes. Delete the dark source, make a label match its background and reverse a diagram edge independently; assert nonzero gate results, then repair. | Run `test_image_theme_cli` in `tests/hooks/test_image_theme.py`. Assert real served dual-media coverage for every image, failed adversarial probes and stale-receipt exit 2. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021 Test quality gate for repository validation Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Test quality gate for repository validation.** Rollup of the children below. The gate rejects placeholder tests and unjustified suppressions, and enforces a coverage threshold. Each finding names its rule and location, so the fixer addresses the root cause before the re-test. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add frozen dataclass `TestQualityFinding` (path, line, rule) to `pipelines_hooks/code/test_quality.py`. The `rule` field takes one of `placeholder-test`, `unjustified-suppression`, `coverage-below-threshold`. | Run `test_finding_rule_is_closed` in `tests/hooks/test_test_quality.py` expects a `ValueError` for any other rule. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Add `scan(root, threshold)` to `pipelines_hooks/code/test_quality.py`. A test whose body is only `pass`, `...` or `assert True` is a placeholder. A suppression needs a reason of at least 10 characters. The coverage threshold defaults to 80 percent. Each rule is a replaceable default. | Run `test_scan_flags_placeholder_and_bare_suppression` in `tests/hooks/test_test_quality.py` expects one finding per violation. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** This row creates the call site. Add `test-quality` to `GATES` at `pipelines_hooks/cli.py:33` and a hook entry beside `no-stub` at `.pre-commit-hooks.yaml:141`. `run_gate` at `pipelines_hooks/cli.py:59` is its caller. | Run `test_test_quality_is_registered` in `tests/hooks/test_test_quality.py` expects the name in `GATES` and in the hook file. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** When no coverage report exists, `main` raises `CannotRun`. `run_gate` maps it to exit 2. The gate never reports a pass without a measured percentage. | Run `test_missing_coverage_report_cannot_run` in `tests/hooks/test_test_quality.py` expects exit 2. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** The gate prints `test-quality: files N, placeholders M, coverage P%, threshold T%` and one `path:line rule` line per finding. | Run `test_test_quality_summary_line` in `tests/hooks/test_test_quality.py` expects the stated fields. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is `pipelines-hook test-quality` through `main` in `pipelines_hooks/cli.py:79`. A fixture repository with a placeholder test and 70 percent coverage must exit 1 and list both findings. | Run `test_test_quality_hook_fails_fixture` in `tests/hooks/test_test_quality_hook.py` expects exit 1 and two findings. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.7 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend `TestQualityFinding` with `interface-violation`, `missing-property-proof`, `missing-integration-proof` and `orphan-module`. A versioned component declaration names roots, interfaces, allowed edges, entry modules and risky handoff test IDs. Dependency edges carry source location and kind: `eager-runtime`, `deferred-runtime` or `type-only`. Declare permitted type-only edges separately. | Run `test_component_contract_model` in `tests/hooks/test_test_quality_hook.py`. Assert the closed edge kinds and separate runtime/type-only permissions. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.8 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The `declared-boundaries` default checks all statically resolvable runtime imports, including imports inside `def`, `async def` and conditional branches. The `orphan-reach` default follows both eager and deferred runtime edges from declared entry modules. Proven `TYPE_CHECKING` branches produce type-only edges; check their separate permissions but exclude them from runtime reachability. The `handoff-proof` default requires passing property and real-component integration receipts at the scanned commit. | Run `test_component_contract_checks` in `tests/hooks/test_test_quality_hook.py`. Assert allowed lazy imports preserve reachability, forbidden lazy imports fail, and type-only imports cannot prove runtime reachability. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.9 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend R021 `test-quality` at `pipelines_hooks/cli.py:14`. Add a static dependency traversal beside `build_eager_graph` at `pipelines_hooks/code/import_graph.py:71`; reuse module discovery and target resolution, not its eager-only walker. Wire the static runtime graph into boundary and orphan checks before the verdict. Keep the eager graph for eager-cycle checks. Publish the hook and self-run configuration consumed by `.github/workflows/ci.yml:86`. No production caller reaches the added pass today. | Run `test_component_checks_are_wired` in `tests/hooks/test_test_quality_hook.py`. Assert the CLI boundary/orphan path consumes the static runtime graph and cycle checks retain the eager graph. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.10 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Raise `CannotRun` for malformed declarations, unsupported language adapters or missing, stale or skipped test receipts. Static violations and unproved risky handoffs fail. Unresolved computed imports produce located dynamic-edge uncertainty. Require declared dynamic entry modules; unresolved reachability cannot produce a clean verdict or a definite orphan finding. An unproven type-only guard remains a possible runtime edge. | Run `test_component_proof_refusals` in `tests/hooks/test_test_quality_hook.py`. Assert unresolved dynamic reachability is exit 2, never a false clean or definite orphan; retain receipt refusals. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.11 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit declaration and source digests, dependency locations and edge kinds, checked interface permissions, runtime reachability, type-only exclusions, dynamic uncertainty, test IDs, property seeds and outcomes. Integration receipts identify both real components. Bind evidence to the scanned commit and the R020 located-finding contract. | Run `test_component_evidence_receipts` in `tests/hooks/test_test_quality_hook.py`. Assert runtime, type-only and unresolved dynamic evidence remain distinguishable. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.12 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Run entry point `pipelines-hook test-quality --root <fixture>` in `tests/hooks/test_test_quality_hook.py`. Execute a real component handoff with imports inside both `def` and `async def`. Allowed lazy edges pass without false orphans; forbidden lazy edges exit 1 at their import lines. A type-only edge cannot make a module runtime-reachable. Computed import uncertainty exits 2. Retain property/integration receipts and the skipped-test and unreachable-module failure cases. | Run `test_component_handoff_cli` and `test_component_lazy_import_cli` in `tests/hooks/test_test_quality_hook.py`. Assert CLI exit codes, exact edge locations, type-only separation and no false orphan for allowed lazy imports. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.13 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend the finding rule set with `outcome-not-observed`. Add `OutcomeContract` and `OutcomeProof` beside the planned `TestQualityFinding` in `pipelines_hooks/code/test_quality.py`. A contract binds a collected test ID and subject entry point to applicable outcomes: `return-value`, `error-state` or `side-effect`. Each outcome names an observable, expected predicate and bounded counterexample. Proof binds source, test and policy digests to baseline and counterexample results, assertion locations and `pass`, `fail` or `unchecked`. | Run `test_outcome_contract_schema` in `tests/hooks/test_test_quality_outcomes.py`. Reject unknown outcome kinds, empty observables and missing source bindings; accept return, error and side-effect contracts. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.14 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The `observed-outcome` default requires every collected test case in the declared scope to verify its applicable outcomes. Static screening flags absent or constant assertions but cannot prove semantic adequacy. Runtime proof requires the baseline to pass and each declared wrong outcome to fail at the designated outcome assertion. Wrong values, wrong or missing errors, and missing or extra side effects are counterexamples where applicable. Unrelated assertions that still pass yield `outcome-not-observed`. Assertion helpers and exception contexts use explicit adapters rather than an assert-keyword count. | Run `test_outcome_counterexamples` in `tests/hooks/test_test_quality_outcomes.py`. Reject a passing test that ignores the result; accept exact return, error and state assertions that detect their counterexamples. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.15 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned `test-quality` entry at `pipelines_hooks/cli.py:14`, dispatched by `run_gate` at `pipelines_hooks/cli.py:59`. Before its verdict, call an outcome runner and checker from `pipelines_hooks/code/test_quality.py`. Read repository policy through `load_config` at `pipelines_hooks/core/config.py:91`; publish the CLI options with the existing R021 hook and CI integration. Use the declared test runner with argument arrays in isolated fixture trees; never alter the caller tree. No production caller reaches this outcome checker today. | Run `test_outcome_checker_wiring` in `tests/hooks/test_test_quality_outcomes.py`. Assert the published CLI invokes the configured runner, validates its receipts and includes outcome findings in its exit code. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.16 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** A test lacking an applicable outcome contract or surviving a valid counterexample fails with `outcome-not-observed`. Return `CannotRun` and exit 2 for unsupported assertion adapters, stale receipts, skipped or uncollected cases, unavailable runners or exceeded time limits. A counterexample that fails during import, setup or unrelated assertions is unchecked, not a proof. Explicitly justified not-applicable categories remain visible; an all-empty contract cannot pass. | Run `test_outcome_proof_refusals` in `tests/hooks/test_test_quality_outcomes.py`. Missing contracts and surviving counterexamples exit 1; stale, skipped, setup-failing and timed-out proofs exit 2. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.17 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit test and subject IDs, applicable outcome kinds, expected predicates, baseline and counterexample verdicts, assertion locations, source/test/policy digests and refusals. Separate static findings from measured runtime proof. Use R020 located evidence; record bounded execution scope and remaining unmeasured behavior. A passing proof covers only its declared observables and counterexamples, never all possible semantics. | Run `test_outcome_evidence` in `tests/hooks/test_test_quality_outcomes.py`. Assert distinct static/runtime records and digest-bound receipts; never report coverage or assertion count as outcome proof. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.18 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Run entry point `pipelines-hook test-quality --root <fixture>` in `tests/hooks/test_test_quality_outcomes.py` with a real fixture command that returns a value, raises a typed error and writes a temporary state file. Exact return, exception and before/after state assertions pass their baseline and fail declared wrong outcomes. A passing test that ignores the command result, a constant assertion and an unrelated assertion each fail admission. A skipped case or counterexample setup failure exits 2. Preserve R021 coverage and handoff prerequisites. | Run `test_outcome_quality_cli` in `tests/hooks/test_test_quality_outcomes.py`. Assert exit 0 for proved outcomes, exit 1 for missing observation and exit 2 for unchecked proof through the real CLI and runner. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.19 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add CodeQualityPolicy and AnalyzerInvocation in new pipelines_hooks/code/lint_type.py. Declare supported language profile, complete first-party source/test roots, pinned linter/import-order/type tools, effective configurations and invocation budgets. Initial Python profile uses Ruff lint/import-order diagnostics and mypy type diagnostics through versioned adapters. | Run `test_lint_type_policy_model` in `tests/hooks/test_lint_type_policy.py`. Reject unpinned tools, missing phases and scope omissions. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.20 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Run all three required phases on every tracked first-party Python source and test in the selected snapshot. Require zero findings with zero exceptions: no baseline, per-file ignore, inline noqa/type-ignore, disabled required rule or skip may hide a finding. Detect effective config and invocation suppression. This policy governs these code checks; retain PIPE-CONNSPEC-R007 historical prose exemptions and existing separate gate policies. | Run `test_lint_type_policy_behavior` in `tests/hooks/test_lint_type_policy.py`. Independent lint, import-order, type and suppression fixtures fail; a clean supported project passes. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.21 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register lint-type in cli.py:13 and publish shared/self-run hooks consumed by .github/workflows/ci.yml:86. New lint_type.main launches locked tool argument arrays on a materialized disposable Git snapshot; reuse core/comparison.py:53 and core/gitenv.py:81. The current .config/pre-commit.yaml:30 runs pytest, not this combined analyzer path. Import-cycle and test-quality checks do not substitute for any required phase. | Run `test_lint_type_policy_wiring` in `tests/hooks/test_lint_type_policy.py`. Configured pre-commit calls all three real tool phases and the shared report adapter. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.22 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** A finding or suppression exits 1. Missing tools, unsupported source languages, incomplete scope, version mismatch, timeout, malformed output or unresolvable tool configuration is CannotRun exit 2, locally and in CI. No tool installation, autofix, network lookup or narrowed fallback occurs during checking. | Run `test_lint_type_policy_refusal` in `tests/hooks/test_lint_type_policy.py`. Unavailable type checker and an unsupported declared language must not return a clean verdict. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.23 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit tool versions, exact argument arrays, effective config/source digests, full checked file set, phase outcomes and located diagnostics. Preserve findings from all completed phases when another cannot run. Record configured scope and any unsupported files explicitly. | Run `test_lint_type_policy_evidence` in `tests/hooks/test_lint_type_policy.py`. Prove all three phases ran against identical source bytes and each diagnostic retains its original rule ID. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.24 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is the published CLI and configured hook. Use pipelines-hook lint-type and installed pre-commit on a real Git repository with locked real analyzers. Stage separate unused-import, import-order and type-assignment errors; each must fail at its actual rule/location. Try inline and configuration suppressions, then a clean repair. An unstaged repair cannot hide indexed defects. | Run `test_lint_type_policy_cli` in `tests/hooks/test_lint_type_policy.py`. Assert real analyzer results, zero-exception enforcement, snapshot isolation and no autofix/network writes. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.25 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add AnalyzerHealthPolicy and HealthSummary in new pipelines_hooks/code/repository_validation.py using R020 ValidationReport. Scored categories are dead code, secrets, dependency risk, complexity hotspots and untested surfaces. Required report categories also include lint, import-order and type; they affect verdict and fix priority but are excluded from the health arithmetic. Each adapter declares version, scope, rules, severity mapping, requiredness and evidence kind; policy gives positive integer weights to scored categories and declares severity penalties. | Run `test_analyzer_health_model` in `tests/hooks/test_analyzer_health.py`. Accept the five scored and three required unscored categories; reject unknown categories and invalid weights or snapshots. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.26 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Aggregate existing measured analyzer results into one deterministic 0–100 health score and prioritized fix list. Deduplicate by repository/category/rule/path/location/evidence identity. Sort fixes by blocking status, severity, category, path, line and rule. A score cannot override a required failure, including lint, import-order or type; missing required code phases yield exit 2 even with complete health-category measurements. Any unchecked scored category makes the authoritative score unavailable; retain partial measurements with coverage indicators. | Run `test_analyzer_health_behavior` in `tests/hooks/test_analyzer_health.py`. Stable permutations yield identical score/order; missing categories cannot inflate health. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.27 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register repository-validation in cli.py:13, with shared hook/catalogue/self-run CI configuration. Adapt supply_chain/gate.py:58 findings and complexity/census.py:main measurements; reuse the planned R021 coverage/test-quality receipts and R020 evidence validator. Add a pinned dead-code adapter where absent. Preserve existing gate verdicts and local Unavailable semantics, but record skips structurally before cli.py:59 could turn them into exit 0. Create the aggregate call from repository_validation.main to lint_type.analyze(snapshot, policy), the structured runner also used by lint_type.main. Collect all three phase results before reporting or computing the exit code; do not re-run or scrape the standalone CLI. No aggregate health caller exists today. | Run `test_analyzer_health_wiring` in `tests/hooks/test_analyzer_health.py`. The aggregate calls the real structured lint-type runner once and exports every phase with existing health adapters. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.28 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Required analyzer findings fail with exit 1; missing required analyzers, stale receipts, unknown severity, malformed results or mismatched scope raise CannotRun exit 2. Missing optional adapters are explicit skips and cannot count as healthy. Reject unsupported dependency-risk coverage instead of treating dependency-format checks as vulnerability proof. Never copy an external product score, baseline or suppression policy. | Run `test_analyzer_health_refusal` in `tests/hooks/test_analyzer_health.py`. A clean score cannot mask a secret finding, skipped required adapter or stale coverage receipt. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.29 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit counts for both scored and unscored categories, per-finding normalized severity with original rule, score policy/version, arithmetic inputs, checked coverage and ordered repair suggestions. Mark lint/import-order/type as required and unscored; their failures cannot disappear from the report or final verdict. Redact secret values while retaining exact safe locations and evidence digests. Distinguish dead-code candidates from proven unreachable code and measured test coverage from proof of semantic correctness. | Run `test_analyzer_health_evidence` in `tests/hooks/test_analyzer_health.py`. Recompute health from only scored categories; retain required lint/import/type verdicts, priority and evidence. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.30 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is the published CLI and configured hook. Run repository-validation through the installed CLI and configured pre-commit on disposable Git fixtures using real pinned analyzers. Include an unused symbol, dummy secret-shaped fixture token, dependency-risk receipt, complexity hotspot and untested function. Also introduce and repair isolated real lint/import-order/type defects through the aggregate. Export/deserialise mixed results, assert their exact category/rule and exit 1 despite unchanged health score, then repair to exit 0. Preserve deterministic score changes and fix priority for scored-category defects. | Run `test_analyzer_health_cli` in `tests/hooks/test_analyzer_health.py`. Assert real aggregate lint/import/type reachability, failing-to-repaired verdicts, stable health score and required-skip exit 2. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022 Scheduled mutation testing reports test gaps Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Scheduled mutation testing reports test gaps.** Rollup of the children below. A scheduled run mutates core modules, and each surviving mutation is reported as a test gap with its module and line. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add frozen dataclasses `MutationPolicy` (modules, schedule) and `SurvivingMutation` (module, line, operator) to `pipelines_hooks/code/mutation_gaps.py`. The default `modules` value is `pipelines_hooks/core`. | Run `test_policy_defaults` in `tests/hooks/test_mutation_gaps.py` expects the default module list. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Add `survivors(policy, runner)` to `pipelines_hooks/code/mutation_gaps.py`. It returns one `SurvivingMutation` per mutant the tests did not kill and none for killed mutants. The runner is a replaceable default. | Run `test_only_survivors_are_reported` in `tests/hooks/test_mutation_gaps.py` expects survivors only. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** This row creates the call site. Add `mutation-gaps` to `GATES` at `pipelines_hooks/cli.py:33`. Add `.github/workflows/mutation.yml` with a weekly schedule that runs `pipelines-hook mutation-gaps`. `run_gate` at `pipelines_hooks/cli.py:59` is the caller. | Run `test_mutation_workflow_runs_gate` in `tests/hooks/test_mutation_gaps.py` expects the cron entry and the gate command. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** When the runner is absent, `main` raises `Unavailable`, which `run_gate` at `pipelines_hooks/cli.py:66` fails closed in CI. A module with no tests yields the finding `no-tests-for-module`. | Run `test_absent_runner_fails_closed_in_ci` in `tests/hooks/test_mutation_gaps.py` expects exit 2 under `CI=1`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** The report prints one line `module:line operator` per survivor and one `module: killed K, survived S` line per module. | Run `test_mutation_report_lines` in `tests/hooks/test_mutation_gaps.py` expects the stated lines. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R022.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is `pipelines-hook mutation-gaps` through `main` in `pipelines_hooks/cli.py:79`. A fixture module with one untested branch must exit 1 and print that module and line. | Run `test_mutation_gaps_hook_reports_untested_branch` in `tests/hooks/test_mutation_gaps_hook.py` expects exit 1 and the line. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023 Deterministic skill quality grading Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Deterministic skill quality grading.** Rollup of the children below. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add `SkillGradePolicy` and `SkillGradeReport` in `pipelines_hooks/docs/skill_grade.py`. Policy fields are schema version, criterion weights and minimum grade. Reports bind repository-relative skill document path and source digest to criterion scores. Link context keeps the containing document directory separate from the repository containment root. Criteria are frontmatter, description, structure, links and file metadata. | Run `test_skill_grade_model` in `tests/hooks/test_skill_grade_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 68a712a91899 ebef404d2f75 tests/hooks/test_skill_grade_hook.py:209 tests/hooks/test_skill_grade_hook.py:54 |
| PIPE-PAGES-R023.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The `skill-grade-v1` default assigns 20 points to each criterion and requires 80 of 100. Check required frontmatter keys, a nonempty description naming purpose and use conditions, required body sections, resolved local links and safe UTF-8 file metadata. Resolve local links from the containing skill document directory. Check decoded, normalized targets against the repository root after symlink resolution; allow parent-relative targets that remain inside it. Invalid frontmatter or unsafe paths fail regardless of score. All heuristics and weights are versioned, deterministic and reviewable. | Run `test_skill_grade_criteria` in `tests/hooks/test_skill_grade_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 68a712a91899 ebef404d2f75 tests/hooks/test_skill_grade_hook.py:294 tests/hooks/test_skill_grade_hook.py:79 |
| PIPE-PAGES-R023.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Create `skill-grade` in `GATES` at `pipelines_hooks/cli.py:14`; `run_gate` at `pipelines_hooks/cli.py:59` calls its `main`. Publish it in `.pre-commit-hooks.yaml`, the hook catalogue and `.config/pre-commit.yaml`, consumed by `.github/workflows/ci.yml:86`. Adapt local link checks at `pipelines_hooks/docs/public_surface_links.py:29` to accept a document base independently of the repository root. Preserve root-level README behavior. No production caller reaches the grader today. | Run `test_skill_grade_registration` in `tests/hooks/test_skill_grade_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 4061148a6359 68a712a91899 ebef404d2f75 tests/hooks/test_skill_grade_hook.py:112 |
| PIPE-PAGES-R023.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Malformed policy, unreadable files or unsupported schema raise `CannotRun`, giving exit 2. A grade below minimum or a hard criterion failure gives exit 1. An empty declared skill set is reported as not applicable, never as a measured passing grade. Out-of-repository document bases, out-of-repository traversal and symlink escapes fail as unsafe paths. External links remain explicitly unchecked by this offline gate. | Run `test_skill_grade_refusals` in `tests/hooks/test_skill_grade_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 68a712a91899 ebef404d2f75 tests/hooks/test_skill_grade_hook.py:118 tests/hooks/test_skill_grade_hook.py:249 |
| PIPE-PAGES-R023.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit policy and source digests, each criterion score, measured finding locations, total grade and threshold. Link findings include the source document and repository-relative target or typed refusal. Use the R020 evidence validator. A host may consume this receipt for admission; the gate does not install skills or approve deployment. | Run `test_skill_grade_evidence` in `tests/hooks/test_skill_grade_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 68a712a91899 ebef404d2f75 tests/hooks/test_skill_grade_hook.py:158 tests/hooks/test_skill_grade_hook.py:250 tests/hooks/test_skill_grade_hook.py:295 |
| PIPE-PAGES-R023.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point `pipelines-hook skill-grade --root <fixture>` in `tests/hooks/test_skill_grade_hook.py`. A valid skill passes. Broken frontmatter, vague description, missing sections, a broken link and unsafe metadata each produce the matching criterion result. A nested skill with a sibling link and an in-repository parent link passes; missing targets, out-of-repository traversal and escaping symlinks fail. Preserve root README link behavior. Below-threshold and hard failures exit 1; malformed policy exits 2. | Run `test_skill_grade_cli` and `test_nested_skill_links_cli` in `tests/hooks/test_skill_grade_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 68a712a91899 ebef404d2f75 tests/hooks/test_skill_grade_hook.py:177 tests/hooks/test_skill_grade_hook.py:195 tests/hooks/test_skill_grade_hook.py:210 |
| PIPE-PAGES-R023.7 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend SkillGradePolicy with a declared external rule-pack inventory: pack ID/version/content digest, origin credit, rule IDs, supported deterministic predicate adapters, target scope, weight and hard-failure flag. Every applied finding identifies both pack and rule. Rule content is data, never executable instructions or downloaded code. | Run `test_external_grade_rules_model` in `tests/hooks/test_external_grade_rules.py`. Reject duplicate rule IDs, unsupported predicate adapters and unpinned rule packs. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.8 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Combine reviewed external predicates with local grading criteria through an explicit versioned mapping. Preserve existing mandatory frontmatter/path checks and the default 80/100 threshold; default external rules add diagnostics without changing grade. Any weighted replacement must declare its complete normalized 100-point policy and cannot remove mandatory hard failures. Apply only declared rules and report conflicts; do not infer rules from arbitrary prose. | Run `test_external_grade_rules_behavior` in `tests/hooks/test_external_grade_rules.py`. An applied external rule is identifiable; a conflicting or unmapped heuristic cannot silently alter grade. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.9 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend planned docs/skill_grade.py grading before its report export through cli.py:13 skill-grade registration and run_gate at line 59. Reuse R020 located evidence and report serialization. Load pinned rule packs from the checked snapshot via core/gitenv.py:81 and strict config schema at core/config.py:21. Neither skill grading nor external-rule incorporation has a production caller today. | Run `test_external_grade_rules_wiring` in `tests/hooks/test_external_grade_rules.py`. The real skill-grade CLI loads the declared pack and emits its exact rule ID in JSON and Markdown. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.10 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Unknown rules, pack digest mismatch, conflicting weights, unsupported predicates, unsafe paths or missing provenance raise CannotRun exit 2. A configured hard-rule violation exits 1. Inapplicable scope is an explicit reasoned skip. Missing rule books are not silently replaced with model guesses, fetched online or executed. | Run `test_external_grade_rules_refusal` in `tests/hooks/test_external_grade_rules.py`. Tampered packs and unsupported prose-only rules refuse; applicable hard failures retain exit 1. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.11 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit pack credit/identity/digest, external rule ID, local criterion mapping, source location, predicate measurements and score contribution or diagnostic disposition for each finding. Record every declared but skipped rule and reason; keep external credit distinct from an arXiv research citation. | Run `test_external_grade_rules_evidence` in `tests/hooks/test_external_grade_rules.py`. Round-trip per-finding rule lineage and prove unchanged baseline grading when packs are diagnostic only. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.12 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The entry point is the published CLI and configured hook. Through pipelines-hook skill-grade and configured pre-commit, grade a real nested skill in a temporary Git repository with a pinned rule-pack fixture and a deterministic forbidden-heading predicate with hard-failure enabled. A failing heading records the external rule and correct exit; repair passes. Tamper with pack bytes, use an unknown adapter and request an inapplicable rule; assert refusal or explicit skip without weakening local mandatory criteria. | Run `test_external_grade_rules_cli` in `tests/hooks/test_external_grade_rules.py`. Assert installed CLI/hook integration, exact external rule evidence and stable serialized grading. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R024 Located structural similarity and extraction guidance Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Located structural similarity and extraction guidance.** Rollup of the children below. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:104 tests/hooks/test_similarity_guidance_hook.py:120 tests/hooks/test_similarity_guidance_hook.py:134 tests/hooks/test_similarity_guidance_hook.py:149 tests/hooks/test_similarity_guidance_hook.py:187 |
| PIPE-PAGES-R024.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Reuse the validated clone fields at `pipelines_hooks/clones/dupehound_report.py:66`: both paths, lines, names and finite similarity. Add diagnostic threshold, enforcement threshold, source digests and extraction advice to the report. Rust and Python retain the shared supported-source and exclusion contract. | Run `test_similarity_report_model` in `tests/hooks/test_similarity_guidance_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:104 |
| PIPE-PAGES-R024.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Keep the reviewed enforcement default at `DUPEHOUND_THRESHOLD` in `pipelines_hooks/clones/contract.py:14` (0.85). Add named diagnostic default 0.80, inclusive: report qualifying pairs with both locations and suggest shared-function extraction. Scores below enforcement remain diagnostic. Advice must not rewrite code or imply that extraction is safe without review. | Run `test_similarity_threshold_boundaries` in `tests/hooks/test_similarity_guidance_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:120 |
| PIPE-PAGES-R024.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend `main` at `pipelines_hooks/clones/dupehound_gate.py:46`, reached by `pipelines-hook dupehound-changed` through `pipelines_hooks/cli.py:59`. Reuse `command` at `pipelines_hooks/clones/dupehound.py:64` and `verdict` at `pipelines_hooks/clones/dupehound_gate.py:28`. Scan at the diagnostic floor and partition reports before enforcing the existing threshold and reviewed register. Detection is reachable today; diagnostic partition and extraction advice have no production caller today. | Run `test_similarity_reporting_wiring` in `tests/hooks/test_similarity_guidance_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:134 |
| PIPE-PAGES-R024.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Reuse report validation and `CannotRun` for malformed scores, unsafe paths or scanner failure. Missing scanners remain visibly skipped locally and exit 2 in CI. Reject invalid threshold ordering. Preserve the digest-bound distinct-pair review and rot behavior; a diagnostic setting cannot weaken enforcement. | Run `test_similarity_refusals` in `tests/hooks/test_similarity_guidance_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:149 |
| PIPE-PAGES-R024.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** For each pair emit both paths and lines, source digests, scanner identity, measured similarity, both thresholds, verdict and extraction suggestion. Record exclusions and reviewed-distinct disposition. Never describe no changed supported source as a full-tree clean scan. | Run `test_similarity_evidence` in `tests/hooks/test_similarity_guidance_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:187 |
| PIPE-PAGES-R024.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Use entry point `pipelines-hook dupehound-changed --root <fixture> --base-ref <base>` in `tests/hooks/test_similarity_guidance_hook.py`. Commit Rust and Python clone fixtures. Run the pinned scanner through the production CLI, assert located guidance at 0.80 and failure at 0.85. A distinct pair passes; malformed scanner output fails closed in CI. | Run `test_similarity_guidance_cli` in `tests/hooks/test_similarity_guidance_hook.py`; assert the stated result. | requirement | PIPE-PAGES | VERIFIED | 59dde3729f84 tests/hooks/test_similarity_guidance_hook.py:221 tests/hooks/test_similarity_guidance_hook.py:281 |
| PIPE-PAGES-R020.73 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add strict Pydantic UserStory, AcceptanceCriteria and Task models in proposed pipelines_hooks/specs/artifacts.py. Schema version 1 must reject extra fields. Each artifact must carry an ID, owner, source references and requirement IDs. Stories contain actor, goal and benefit. Criteria contain observable predicates and proof IDs. Tasks contain producer prerequisites, target paths and proof IDs. | Run `test_spec_artifacts_model` in `tests/hooks/test_spec_artifacts.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.74 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The artifact adapter must emit UTF-8 JSON with schema_version and all three artifact arrays. It must validate unique IDs, typed references and acyclic task prerequisites before rendering the six standard spec files. It must preserve requirement IDs and source provenance across serialization. Durable graph facts remain engine-owned. | Run `test_spec_artifacts_behavior` in `tests/hooks/test_spec_artifacts.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.75 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Add a spec-artifacts entry to pipelines_hooks/cli.py:13, dispatched through run_gate at line 59. Proposed artifacts.main must validate generator-skill output before the existing specs/generator.py:93 status consumer reads rendered requirements. Generator skills must invoke this adapter with their output path; direct unvalidated output cannot receive a compatibility receipt. | Run `test_spec_artifacts_wiring` in `tests/hooks/test_spec_artifacts.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.76 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** The adapter must refuse unknown schema versions, extra fields, duplicate IDs, missing references and unsafe output paths. Malformed artifacts exit 1; unavailable schema authority exits 2. Checking must not overwrite existing spec sources or change delivery evidence. | Run `test_spec_artifacts_refusal` in `tests/hooks/test_spec_artifacts.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.77 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** The adapter must emit schema version and digest, source and output digests, artifact IDs and reference-validation results. A rendered artifact proves schema compatibility only. It must not imply implemented behavior, graph ingestion or runtime acceptance. | Run `test_spec_artifacts_evidence` in `tests/hooks/test_spec_artifacts.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.78 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The published spec-artifacts CLI must consume actual generator-skill output in a disposable repository. Deserialize, render, regenerate canonical status and round-trip every artifact field. Inject an unknown field, missing criterion reference and cyclic task dependency independently. Each invalid output must refuse before writing canonical files. | Run `test_spec_artifacts_cli` in `tests/hooks/test_spec_artifacts.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.8 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define the external interchange format as spec-bundle/1 in proposed pipelines_hooks/specs/artifacts.py. A bundle must contain the six standard files within existing capability directories. Its manifest must bind UTF-8 encoding, schema version, canonical IDs, relative paths and source digests. Generated status remains machine-owned. | Run `test_spec_bundle_compatibility_model` in `tests/hooks/test_spec_bundle_compatibility.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.9 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The compatibility adapter must accept conforming spec-bundle/1 files unchanged, including bytes and canonical IDs. It must extend the matching capability directory for a feature. It must refuse a second directory for an already-owned capability. Other external formats remain unsupported until a versioned adapter defines them. | Run `test_spec_bundle_compatibility_behavior` in `tests/hooks/test_spec_bundle_compatibility.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.10 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend proposed spec-artifacts at pipelines_hooks/cli.py:13 through run_gate at line 59. Validate the bundle before specs/generator.py:93 and dashboard source ingestion. EG-ORCH-VOCAB-R012 owns graph ingestion. Its owner adapter must consume the identical bundle bytes; the Pages renderer must not invent graph compatibility. | Run `test_spec_bundle_compatibility_wiring` in `tests/hooks/test_spec_bundle_compatibility.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.11 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Unknown format versions, escaping paths, missing files, ambiguous ownership or altered input bytes must refuse compatibility. An unavailable external consumer must produce unchecked evidence and exit 2. A Markdown extension alone must not establish supported semantics. | Run `test_spec_bundle_compatibility_refusal` in `tests/hooks/test_spec_bundle_compatibility.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.12 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record input and consumed-file digests, format version, owner mapping and consumer revision. Record canonical generation and graph ingestion separately. External tooling support means only the declared spec-bundle/1 contract, never unspecified compatibility with every generator. | Run `test_spec_bundle_compatibility_evidence` in `tests/hooks/test_spec_bundle_compatibility.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.13 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The spec-artifacts CLI must accept a real externally emitted spec-bundle/1 fixture without rewriting it. Canonical generation and the real owner ingestion adapter must read matching bytes. A feature targeting an existing capability must extend it. Unknown versions and duplicate capability directories must fail. | Run `test_spec_bundle_compatibility_cli` in `tests/hooks/test_spec_bundle_compatibility.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.31 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend proposed repository_validation.py with SkillDependencyAudit records. Each record binds skill path, snapshot digest, declared dependency groups, resolved versions and advisory snapshot. A proposed version-update request must carry old and target versions, finding IDs and provenance. EG-SUPPLY-VOCAB-R002 owns durable vocabulary; SDK-GOVERNED-WRITEBACK-R001 owns authorization. | Run `test_skill_dependency_audit_model` in `tests/hooks/test_skill_dependency_audit.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.32 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The audit must enumerate every dependency declared by the selected skill snapshot. It must invoke the dependency-risk adapter once per resolved inventory. Vulnerabilities must yield graph-stored update proposals through the owner connector. The audit path must never install packages, change locks or apply its own proposal. | Run `test_skill_dependency_audit_behavior` in `tests/hooks/test_skill_dependency_audit.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.33 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned repository-validation registration at pipelines_hooks/cli.py:13 and run_gate at line 59. Proposed repository_validation.main must pass the skill inventory to the supply-chain adapter beside supply_chain/gate.py:58. The owner connector must return a durable proposal identity before approval consumers receive it. | Run `test_skill_dependency_audit_wiring` in `tests/hooks/test_skill_dependency_audit.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.34 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing dependency declarations, unresolved versions, stale advisory evidence or unavailable owner storage must exit 2. A vulnerability must remain a finding even when proposal storage fails. Installation requests on the audit path must fail. A separate authorized consumer must bind approval to the exact proposal and artifact digest. | Run `test_skill_dependency_audit_refusal` in `tests/hooks/test_skill_dependency_audit.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.35 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit skill and inventory digests, advisory identity, affected dependency and version, proposal identity and storage receipt. Preserve approval state separately from the audit result. Record installation effects as zero for this path; a suggested upgrade must not count as applied remediation. | Run `test_skill_dependency_audit_evidence` in `tests/hooks/test_skill_dependency_audit.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.36 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The repository-validation CLI must audit a vulnerable fixture skill against pinned advisory evidence. The real owner storage adapter must persist a proposal, verified through independent readback. Observe zero package or lock changes before approval. A stale approval or direct-install attempt must refuse without effects. | Run `test_skill_dependency_audit_cli` in `tests/hooks/test_skill_dependency_audit.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.13 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend the proposed ValidationReport with a skill inventory and one result per discovered skill. Each result must bind snapshot, skill digest, grade policy, rule lineage, findings and skip reasons. Discover tracked SKILL.md files under every declared skill root; an omitted root must remain a scope error. | Run `test_aggregate_skill_grade_model` in `tests/hooks/test_aggregate_skill_grade.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.14 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** One repository-validation invocation must discover and grade every skill in the selected snapshot. It must preserve local criteria and external rule-pack outcomes from R023. Aggregate failures must propagate regardless of health score. An empty inventory must report non-applicability with its checked roots, never a passing grade. | Run `test_aggregate_skill_grade_behavior` in `tests/hooks/test_aggregate_skill_grade.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.15 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend planned repository_validation.main to call a structured skill_grade.grade(snapshot, policy) adapter once before its final verdict. Register through pipelines_hooks/cli.py:13 and run_gate at line 59. Reuse the standalone grader contract; neither proposed module exists on this source revision. | Run `test_aggregate_skill_grade_wiring` in `tests/hooks/test_aggregate_skill_grade.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.16 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** A hard grading failure or below-threshold grade must produce exit 1. Missing required grader, stale source binding, unsupported rule or incomplete discovery must produce exit 2. Optional skips must remain visible and must not contribute healthy measurements. | Run `test_aggregate_skill_grade_refusal` in `tests/hooks/test_aggregate_skill_grade.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.17 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** JSON and Markdown reports must retain every skill, criterion score, external pack and rule ID, finding location and skip. Bind all aggregate results to the same source digest. Report serialization must preserve the standalone grading verdict without recalculation. | Run `test_aggregate_skill_grade_evidence` in `tests/hooks/test_aggregate_skill_grade.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.18 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Run the actual repository-validation CLI and installed hook on a repository containing two nested skills. A failing external rule must appear with lineage and fail the aggregate. Repair must pass. Missing grader and escaping skill roots must refuse; an empty declared inventory must remain explicit. | Run `test_aggregate_skill_grade_cli` in `tests/hooks/test_aggregate_skill_grade.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.14 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add a versioned capability inventory adapter beside pipelines_hooks/specs/bindings.py. Canonical capability IDs must resolve to the engine-owned registry export. Each binding must identify repository, path, qualified symbol or collected test/tool identity and source digest. Specification requirement IDs remain distinct from capability IDs. | Run `test_capability_inventory_model` in `tests/hooks/test_capability_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.15 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Inventory every first-party function, collected test and registered MCP implementation in declared project roots. Initial language adapters must cover Python AST and Rust syntax, including nested functions and methods. Each item must carry a valid capability binding. Emit function-test-tool coverage for every capability, including missing sets. | Run `test_capability_inventory_behavior` in `tests/hooks/test_capability_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.16 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Create a capability-coverage registration at pipelines_hooks/cli.py:13 and dispatch through run_gate at line 59. Reuse specs/bindings.py test discovery and owner-exported MCP inventories. Add static source adapters before the verdict. Dashboard source declarations must consume the resulting receipt without claiming exhaustive coverage themselves. | Run `test_capability_inventory_wiring` in `tests/hooks/test_capability_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.17 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing or invalid IDs and mismatched source bindings must fail with item locations. Unsupported languages, unresolved generated sources, missing registry exports or incomplete tool inventories must exit 2. The adapter must not mint replacement capability IDs or infer identity from shared code. | Run `test_capability_inventory_refusal` in `tests/hooks/test_capability_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.18 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Report complete discovered counts and identities for functions, tests and tools. Bind the registry revision, source snapshot and adapter versions. Publish unmatched items and per-capability three-way counts. Zero tools must be an explicit project scope fact, never an omitted column. | Run `test_capability_inventory_evidence` in `tests/hooks/test_capability_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.19 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The published capability-coverage CLI must scan real Python and Rust fixture functions, collected tests and registered MCP tools. Remove one function ID and one tool ID independently; each must fail with exact identity. Repair must pass. An unsupported language must refuse exhaustive coverage. | Run `test_capability_inventory_cli` in `tests/hooks/test_capability_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.20 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define stable capability ID authority and exhaustive language/tool inventory with source-binding semantics. | Run `test_eg7_capability_authority_model` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.21 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Every function, test and MCP implementation carries valid capability ID or fails coverage gate. | Run `test_eg7_complete_binding_coverage` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.22 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire missing-ID refusal in shared gate refusing absent/invalid capability identities. | Run `test_eg7_binding_gate_wiring` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.23 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing or invalid capability ID prevents three-way coverage claim, exit 2 for unsupported language adapters. | Run `test_eg7_refusal_missing_identity` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.24 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Exhaustive language/tool inventory and three-way source/test/tool coverage proven per capability. | Run `test_eg7_coverage_evidence` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R012.25 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Remove one function ID from real fixture; published CLI exits 1 with missing identity. Repair passes. | Run `test_eg7_identity_enforcement_cli` in `tests/test_spec_dashboard_metadata.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.37 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend the existing KISS policy with explicit function-argument and try-body statement limits. Python arguments include positional-only, positional, keyword-only, variadic positional and variadic keyword parameters, including self and cls. Count direct statements in each try body; nested bodies are measured separately. Limits must be nonnegative integers. | Run `test_structural_limits_model` in `tests/hooks/test_structural_limits.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | VERIFIED | 93cec20a4de6 tests/hooks/test_structural_limits.py:46 |
| PIPE-PAGES-R021.38 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The shared build check must fail when either measured count exceeds its configured limit. Equality must pass. Every finding must identify repository-relative path, qualified function, line, measured count and limit. Preserve existing positional-argument and complexity rules as separate predicates. | Run `test_structural_limits_behavior` in `tests/hooks/test_structural_limits.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | VERIFIED | 93cec20a4de6 tests/hooks/test_structural_limits.py:71 |
| PIPE-PAGES-R021.39 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend pipelines_hooks/kiss/census.py:31 for build enforcement and kiss/staged.py:50 for changed-source admission. Their existing callers are pipelines_hooks/cli.py:59. Arbora must configure both limits and invoke the shared check in its build. Unsupported scanner measurements require a versioned adapter, not guessed values. | Run `test_structural_limits_wiring` in `tests/hooks/test_structural_limits.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.40 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing limits in the adopted profile, invalid values or unsupported source measurement must exit 2. A count above either configured limit must exit 1. The checker must not truncate findings or treat an unavailable scanner as measured compliance. | Run `test_structural_limits_refusal` in `tests/hooks/test_structural_limits.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.41 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit scanner and policy digests, checked source inventory and one count per function and try body. Separate argument-count failures from try-body failures. Record Arbora consumer configuration and source revision in its adoption receipt. | Run `test_structural_limits_evidence` in `tests/hooks/test_structural_limits.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.42 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Run the installed shared CLI through the Arbora build fixture. Test exact-limit and limit-plus-one cases independently for both rules. Include keyword-only, variadic and nested-try cases. Both violations must name their functions and fail the build; repaired functions must pass. | Run `test_structural_limits_cli` in `tests/hooks/test_structural_limits.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.43 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add PathPortabilityPolicy in proposed pipelines_hooks/hygiene/path_portability.py. Version 1 covers every tracked package source path under declared build roots. Measure repository-relative paths after NFC normalization: at most 240 UTF-16 code units overall and 255 UTF-8 bytes per component. The overall limit reserves checkout-prefix headroom separately. | Run `test_source_path_portability_model` in `tests/hooks/test_source_path_portability.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.44 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Reject absolute paths, traversal, control characters, Windows-invalid characters, trailing spaces or periods and case-folded NFC collisions. Reject CON, PRN, AUX, NUL, COM1-COM9 and LPT1-LPT9, including extensions and case variants. Linux and macOS checks must reject NUL and slash inside components. Sources must never be silently renamed. | Run `test_source_path_portability_behavior` in `tests/hooks/test_source_path_portability.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.45 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register source-path-portability at pipelines_hooks/cli.py:13 and dispatch through run_gate at line 59. Publish a shared pre-commit hook and invoke it before package builds. Inventory Git paths and declared package roots statically; artifact platform tags do not replace source-path validation. | Run `test_source_path_portability_wiring` in `tests/hooks/test_source_path_portability.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.46 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** A forbidden name, collision or exceeded bound must exit 1 with the original path and violated rule. Undeclared build roots, undecodable paths or unsupported policy versions must exit 2. Absolute installation-path support requires a separately declared prefix budget; relative checks must not imply arbitrary checkout support. | Run `test_source_path_portability_refusal` in `tests/hooks/test_source_path_portability.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.47 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Report policy version, source snapshot, package roots, normalized comparison keys and measured lengths. Retain original path spelling. Report every collision participant and supported platform predicate. Never claim compatibility outside declared roots or prefix assumptions. | Run `test_source_path_portability_evidence` in `tests/hooks/test_source_path_portability.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.48 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The published CLI and installed build hook must inspect tracked fixture paths containing reserved names, normalization collisions and over-limit lengths. Each defect must block before building. Exact-boundary legal paths must pass. A check must leave original source paths and bytes unchanged. | Run `test_source_path_portability_cli` in `tests/hooks/test_source_path_portability.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.49 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add CoverageClosurePolicy beside proposed code/test_quality.py. Reuse the project inventory and declare every first-party executable source root, runner argv, coverage adapter and timeout. A coverage receipt must bind source, test and policy digests to executable and uncovered line sets for each project. | Run `test_coverage_closure_model` in `tests/hooks/test_coverage_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.50 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** A closure request must run the configured coverage producer for every declared project in disposable snapshots. Require zero uncovered executable lines and complete source inventory. Preserve the 80-percent default for ordinary threshold checks; it cannot satisfy closure. Outcome proofs under R021.13-R021.18 remain separate requirements. | Run `test_coverage_closure_behavior` in `tests/hooks/test_coverage_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.51 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned test-quality registration at pipelines_hooks/cli.py:13 and run_gate at line 59 with an explicit closure mode. Proposed test_quality.main must invoke the declared runner before evaluating closure. Reuse the existing outcome runner and coverage adapters rather than adding another project registry. | Run `test_coverage_closure_wiring` in `tests/hooks/test_coverage_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.52 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Uncovered lines or omitted declared files must fail closure with exit 1. Missing runners, unsupported formats, skipped projects, stale digests or timeouts must exit 2. Generated-source exclusions require an explicit producer mapping; exclusions must not conceal first-party executable paths. | Run `test_coverage_closure_refusal` in `tests/hooks/test_coverage_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.53 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit each project, every executable file, executable lines, uncovered lines, runner result and exact digests. Separate threshold result, closure result and semantic outcome proof. A zero-line project must explain its non-executable scope and cannot inflate another project coverage. | Run `test_coverage_closure_evidence` in `tests/hooks/test_coverage_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.54 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Run the real test-quality closure CLI on two projects with a planted uncovered branch. The report must list its project, file and line and refuse closure. Add the test and pass. A stale report and skipped second project must refuse despite a high aggregate percentage. | Run `test_coverage_closure_cli` in `tests/hooks/test_coverage_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.79 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend proposed hygiene/config_inventory.py with a validation behavior manifest. Pin the former central command repository, revision and entry point. Enumerate its validation and test behaviors, inputs, environment and expected exits. Map every behavior to a configured hook in every supported project. | Run `test_validation_behavior_inventory_model` in `tests/hooks/test_validation_behavior_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.80 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The migration check must compare the complete historical behavior inventory with each project hook configuration. Every behavior needs positive and negative fixtures with matching observations. Intentional retirements require explicit owner decisions and remain visible; an absent mapping must not count as equivalent behavior. | Run `test_validation_behavior_inventory_behavior` in `tests/hooks/test_validation_behavior_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.81 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the proposed config-inventory registration at pipelines_hooks/cli.py:13 through run_gate at line 59. Reuse the existing project inventory and configured hook parser. Execute the pinned baseline and consumer hooks in disposable trees. Connector spec-hook adoption alone must not establish complete validation coverage. | Run `test_validation_behavior_inventory_wiring` in `tests/hooks/test_validation_behavior_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.82 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing historical revision or unknown former command must exit 2 and leave migration unproved. Missing project mappings or changed observed verdicts must exit 1. Unsupported historical environments must remain unavailable evidence; the checker must not reconstruct behavior from recollection. | Run `test_validation_behavior_inventory_refusal` in `tests/hooks/test_validation_behavior_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.83 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit baseline revision and behavior IDs, complete project-hook mappings, fixture digests and compared outputs/exits. Preserve unknown historical scope explicitly. No historical baseline is supplied by this definition; runtime acceptance requires its independent recovery and pinning. | Run `test_validation_behavior_inventory_evidence` in `tests/hooks/test_validation_behavior_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.84 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The config-inventory CLI must compare a real pinned former command with installed hooks in two fixture projects. Remove one behavior mapping and plant one changed failure exit; both must fail. An unavailable baseline must exit 2, never produce a complete-migration receipt. | Run `test_validation_behavior_inventory_cli` in `tests/hooks/test_validation_behavior_inventory.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.55 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add UnitProfile beside proposed code/test_quality.py. Its project inventory must enumerate adapters, retrievers, servers, CLI modules and other declared unit categories. Each external database, API and client seam must name a deterministic double, fixed clock/random seed and expected contract. Integration profiles remain separate. | Run `test_offline_unit_profile_model` in `tests/hooks/test_offline_unit_profile.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.56 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The unit runner must deny outbound network connections and container creation or attachment. It must use isolated temporary state and deterministic doubles for declared external seams. Unit scope must cover every inventoried category. Real-component hot-path integration remains mandatory under its separate profile and cannot use these doubles as delivery proof. | Run `test_offline_unit_profile_behavior` in `tests/hooks/test_offline_unit_profile.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.57 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned test-quality registration at pipelines_hooks/cli.py:13 through run_gate at line 59. The proposed outcome runner must apply UnitProfile isolation before test collection and execution. Enforcement must cover subprocesses, not only patched Python socket calls. Consumers must select the unit profile explicitly. | Run `test_offline_unit_profile_wiring` in `tests/hooks/test_offline_unit_profile.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.58 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Attempted egress or container access must fail the run with the requesting test or process identity. Missing doubles, omitted categories or unsupported isolation must exit 2. The runner must not retry with network enabled, reuse production credentials or silently skip external-seam tests. | Run `test_offline_unit_profile_refusal` in `tests/hooks/test_offline_unit_profile.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.59 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit category and test inventories, double identities, seed/clock policy, isolation mechanism and denied attempts. Bind source and test digests. Separate unit results from required real-component integration receipts; an offline pass must not imply successful external integration. | Run `test_offline_unit_profile_evidence` in `tests/hooks/test_offline_unit_profile.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.60 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The actual unit-profile CLI must run adapter, retriever, server and CLI fixtures with deterministic doubles. Plant outbound socket and container-client attempts, including subprocess attempts; each must fail without effects. Repeat clean runs for equal observations, then verify independent integration receipts remain required. | Run `test_offline_unit_profile_cli` in `tests/hooks/test_offline_unit_profile.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.85 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add an ontology input profile in proposed pipelines_hooks/docs/ontology_governance.py. It must enumerate tracked ontology roots, supported RDF formats and engine-owned rule IDs. Required rule classes are syntax, namespace ownership, duplicate identity, shape constraints and vocabulary compatibility. Bind generated checks or served verdicts to authority and source digests. | Run `test_ontology_governance_hook_model` in `tests/hooks/test_ontology_governance_hook.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.86 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The Python-only hook must evaluate every declared ontology file using engine-owned generated checks or a pinned served verdict. Python-only describes the local hook process, not a second semantic engine. The hook must preserve each authority rule and located finding; pipelines must not recreate ontology policy. | Run `test_ontology_governance_hook_behavior` in `tests/hooks/test_ontology_governance_hook.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.87 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Register ontology-governance at pipelines_hooks/cli.py:13 and dispatch through run_gate at line 59. Publish the pre-commit hook with complete ontology discovery before commit admission. The adapter must consume the generated OntologyInspect/ShaclValidate client or generated offline authority artifacts. Read-only inspection alone does not establish validation. | Run `test_ontology_governance_hook_wiring` in `tests/hooks/test_ontology_governance_hook.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.88 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** An authority governance violation must block commit with exit 1. Missing authority, stale verdicts, unsupported formats, unavailable generated rules or incomplete scope must exit 2. Local commit checks must not depend on live network availability; absent pinned offline evidence must refuse rather than invent semantics. | Run `test_ontology_governance_hook_refusal` in `tests/hooks/test_ontology_governance_hook.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.89 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit file inventory, input and authority digests, rule IDs, verdict provenance and located violations. Distinguish syntax checks from semantic authority results. Every required rule class must have bound evidence; a successful parser alone must not produce a governance pass. | Run `test_ontology_governance_hook_evidence` in `tests/hooks/test_ontology_governance_hook.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R020.90 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Installed pre-commit must validate a real staged ontology against engine-generated authority fixtures. Plant a shape violation and namespace violation separately; each must block commit with exact rule and location. An unstaged repair must not hide staged defects. Missing authority must refuse without network fallback. | Run `test_ontology_governance_hook_cli` in `tests/hooks/test_ontology_governance_hook.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.61 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add TestLayoutPolicy beside proposed code/test_quality.py. Every project must declare unit and integration module roots, shared fixture locations and required category modules. Declare isolation boundaries, reset contracts, two fixed shuffle seeds and a timeout. Discovery must include collected tests beyond files changed in the current patch. | Run `test_test_layout_independence_model` in `tests/hooks/test_test_layout_independence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.62 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The checker must verify every declared project fixture and module before execution. Run collected tests in declared order, reverse order and both seeded permutations in isolated trees. Compare per-test outcomes and declared state observations. Detect shared state beyond each reset contract. This bounded check must not claim all possible order independence. | Run `test_test_layout_independence_behavior` in `tests/hooks/test_test_layout_independence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.63 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned test-quality entry at pipelines_hooks/cli.py:13 through run_gate at line 59. Reuse proposed config-inventory project roots and the outcome runner. Publish the test-layout profile through the shared hook. Preserve separate real-component integration and recovery acceptance contracts. | Run `test_test_layout_independence_wiring` in `tests/hooks/test_test_layout_independence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.64 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing required fixtures/modules, undeclared shared state or order-dependent outcomes must exit 1. Uncollected tests, unsupported reset enforcement, timeouts or incomplete permutations must exit 2. Tests must not be removed from the inventory to obtain a passing result. | Run `test_test_layout_independence_refusal` in `tests/hooks/test_test_layout_independence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.65 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit full project/layout and collected-test inventories, execution orders, seeds, reset observations and per-test outcomes. Bind policy and source digests. Record only the measured permutation scope and retain integration-profile distinctions. | Run `test_test_layout_independence_evidence` in `tests/hooks/test_test_layout_independence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.66 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The actual test-quality CLI and installed hook must check two projects with shared fixtures. Remove a required module and plant a test consuming previous-test state; each must fail. Restore reset isolation and pass all four orders. A timeout must leave independence unproved. | Run `test_test_layout_independence_cli` in `tests/hooks/test_test_layout_independence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.67 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Add SolutionSizeEvidence to the proposed ValidationReport. Each run must record total first-party source bytes, nonblank lines and syntax-node counts by declared language adapter. Bind baseline and candidate snapshots plus required behavior receipts. Changed-line counts must remain separate from total solution size. | Run `test_solution_size_evidence_model` in `tests/hooks/test_solution_size_evidence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.68 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The producer must measure every candidate within the same declared scope, including unchanged source. It must exclude generated and vendor content only through explicit producer-bound categories. Adequacy receipts must precede any minimalism comparison. The engine owns choosing among adequate candidates; pipelines supplies measurements only. | Run `test_solution_size_evidence_behavior` in `tests/hooks/test_solution_size_evidence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.69 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend planned repository_validation.main before its report export through pipelines_hooks/cli.py:13 and run_gate at line 59. Reuse source inventory and R020 report serialization. Publish measurements to the owner allocation consumer under EG-DECISION-ENGINE-R136.4. Meristem run receipts must preserve the same source and evidence identities. | Run `test_solution_size_evidence_wiring` in `tests/hooks/test_solution_size_evidence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.70 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing adequacy receipts, mismatched scopes or unsupported syntax adapters must leave comparison unavailable. Smaller size must not override a failing requirement. No shortcut-comment rule is introduced here: the coordinator must resolve the reserved comment-style obligation before that portion can close. | Run `test_solution_size_evidence_refusal` in `tests/hooks/test_solution_size_evidence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.71 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Report absolute and delta size, language adapter versions, source digests, exclusions and adequacy receipt IDs. Include the owner decision identity when available; measurements must not invent the allocation decision. Record unresolved shortcut documentation policy separately from measured size. | Run `test_solution_size_evidence_evidence` in `tests/hooks/test_solution_size_evidence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.72 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The repository-validation CLI must measure two real candidate snapshots, including unchanged modules. A smaller candidate with a failing behavior receipt must remain ineligible. An adequate candidate must yield exact reproducible counts consumed by the owner adapter. Changed-line statistics alone must fail the evidence contract. | Run `test_solution_size_evidence_cli` in `tests/hooks/test_solution_size_evidence.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.73 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend proposed handoff proof receipts with workflow identity, graph revision, engine decision, execution source, ingestion transaction and readback digest. Medulla owns committed choices and source ingestion. Meristem owns execution and Scion SDK owns governed source effects. Each receipt must bind one end-to-end run identity. | Run `test_graph_workflow_receipt_model` in `tests/hooks/test_graph_workflow_receipt.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.74 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The acceptance flow must load a persisted workflow from the real graph, obtain an engine decision and execute through Meristem. It must ingest resulting knowledge through the owner boundary and verify durable hydration through an independent graph read. A fake engine or catalog must not satisfy this contract. | Run `test_graph_workflow_receipt_behavior` in `tests/hooks/test_graph_workflow_receipt.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.75 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend the planned test-quality handoff verifier at pipelines_hooks/cli.py:13 through run_gate at line 59. Consume the owner acceptance receipt joining Meristem graph_orchestrate, execute_workflow and Medulla SourceIngest. The shared gate verifies provenance and outcomes; it must not become a runtime workflow orchestrator. | Run `test_graph_workflow_receipt_wiring` in `tests/hooks/test_graph_workflow_receipt.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.76 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing graph-load evidence, mismatched run identities, uncommitted ingestion or absent independent readback must fail acceptance. Unavailable real components or stale source bindings must exit 2. A cached or mocked catalog result must not become a real graph-load receipt. | Run `test_graph_workflow_receipt_refusal` in `tests/hooks/test_graph_workflow_receipt.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.77 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emit producer revisions, persisted workflow identity, selected decision, executed step IDs and committed ingestion receipt. Record independent readback query, expected hydrated identities and observed digest. Separate Scion SDK source effects from graph durability and retain failure/cancellation evidence. | Run `test_graph_workflow_receipt_evidence` in `tests/hooks/test_graph_workflow_receipt.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.78 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The actual test-quality CLI must consume a real graph-to-Meristem-to-ingestion acceptance run. An independent client must read hydrated identities after commit. Remove readback, substitute a fake catalog or mismatch the decision identity; each must refuse. A passing helper-only test must not satisfy the receipt. | Run `test_graph_workflow_receipt_cli` in `tests/hooks/test_graph_workflow_receipt.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.79 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define coverage runner, declared project/path universe and per-project uncovered-line report contract. | Run `test_pipe9_coverage_runner_model` in `tests/hooks/test_coverage_closure.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.80 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Measure uncovered lines by project, declare path scope and produce per-project inventory for closure. | Run `test_pipe9_inventory_behavior` in `tests/hooks/test_coverage_closure.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.81 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire coverage runner before closure gate decision, refusing incomplete closure with PIPE:14 owner. | Run `test_pipe9_gate_wiring` in `tests/hooks/test_coverage_closure.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.82 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Untested paths prevent closure even at 80 percent threshold, exit 1 with per-project location. | Run `test_pipe9_threshold_refusal` in `tests/hooks/test_coverage_closure.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.83 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Per-project uncovered-line enumeration and closure decision evidence bound to source. | Run `test_pipe9_closure_evidence` in `tests/hooks/test_coverage_closure.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.84 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Coverage report closes with PIPE:14 owner review; missing/incomplete projects fail. | Run `test_pipe9_closure_cli` in `tests/hooks/test_coverage_closure.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.85 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define workflow-load and SourceIngest producer receipts plus Meristem execution consumer definition. | Run `test_pipe10_workflow_model` in `tests/hooks/test_graph_workflow_receipt.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.86 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Join graph-load/execution/hydration/readback contract with independent verification. | Run `test_pipe10_readback_behavior` in `tests/hooks/test_graph_workflow_receipt.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.87 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Bind Medulla producer to Meristem consumer, independent readback in gate, no runtime orchestrator. | Run `test_pipe10_gate_wiring` in `tests/hooks/test_graph_workflow_receipt.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.88 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing graph-load or independent readback proof prevents acceptance receipt, exit 2. | Run `test_pipe10_readback_refusal` in `tests/hooks/test_graph_workflow_receipt.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.89 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Hot-path receipt joining producer/consumer/readback with durable source bindings. | Run `test_pipe10_receipt_evidence` in `tests/hooks/test_graph_workflow_receipt.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.90 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** graph_orchestrate → SourceIngest → independent readback through published CLI. | Run `test_pipe10_cli_proof` in `tests/hooks/test_graph_workflow_receipt.py`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R025 Packaging role-to-extra closure contracts and build gates Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Packaging role-to-extra closure contracts and build gates.** Rollup of the children below. Declare supported package role/extra combinations and ensure build gates prove dependency closure for each role. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R025.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define role/extra inventory and closure assertions. | Run packaging gate test. | requirement | PIPE-PAGES | SPECIFIED | tests/hooks/test_packaging_roles.py:113 |
| PIPE-PAGES-R025.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Build gate verifies role-specific closure. | Run role verification test. | requirement | PIPE-PAGES | SPECIFIED | tests/hooks/test_packaging_roles.py:121 |
| PIPE-PAGES-R025.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Import harness binds gate to packaging workflow. | Run integration test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R025.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Out-of-extra imports and role violations fail. | Run violation test. | requirement | PIPE-PAGES | SPECIFIED | tests/hooks/test_packaging_roles.py:136 tests/hooks/test_packaging_roles.py:151 |
| PIPE-PAGES-R025.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Closure evidence proves package constraint. | Run evidence test. | requirement | PIPE-PAGES | SPECIFIED | tests/hooks/test_packaging_roles.py:167 |
| PIPE-PAGES-R025.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** `uvx pipelines-hook` validates role matrix. | Run `test_packaging_role_closure_cli`. | requirement | PIPE-PAGES | SPECIFIED | tests/hooks/test_packaging_roles.py:177 |
| PIPE-PAGES-R026 User story and artifact schema generation contracts Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**User story and artifact schema generation contracts.** Rollup of the children below. Bind generator skills to UserStory, AcceptanceCriteria and Task Pydantic schema contracts. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R026.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Three artifact model schemas with versioned generator. | Run schema validation test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R026.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Generator emits valid schemas matching contract. | Run generator test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R026.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Consumer deserialization validates artifact models. | Run consumer test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R026.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Malformed artifacts and schema mismatch fail. | Run refusal test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R026.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Emitted schemas round-trip through validation. | Run round-trip test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R026.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** `uvx pipelines-hook` validates generated artifacts. | Run `test_artifact_schema_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027 Specification tooling compatibility and layout standard Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Specification tooling compatibility and layout standard.** Rollup of the children below. Support external artifact formats and reconcile with current directory standards. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** External format/version contract. | Run format test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Unchanged-file interoperability fixture passes. | Run interop test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Ingestion classifies standard layout. | Run classification test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Incompatible format and layout failures fail. | Run compat test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Standard layout and version agreement proven. | Run agreement test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R027.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** `uvx pipelines-hook` validates format support. | Run `test_spec_format_compat_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028 Release coordination with multi-phase version-bump policy Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Release coordination with multi-phase version-bump policy.** Rollup of the children below. Configure phase ordering, inter-phase delays and live status reporting. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Phase/wait policy with typed status contract. | Run phase test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Coordinator executes phases with configurable delays. | Run execution test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** CLI/UI consumes live project-status stream. | Run stream test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing policy and status event failures fail. | Run event test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Phase transitions and wait periods recorded. | Run transition test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R028.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Coordinator CLI observes configured phases. | Run `test_release_phase_coordination_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029 Skill-scoped dependency audit and version-update proposal workflow Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Skill-scoped dependency audit and version-update proposal workflow.** Rollup of the children below. Inventory skill dependencies, bind reports to Medulla proposals and control installation. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Skill inventory snapshot and version-update proposal. | Run inventory test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Audit supplies durable proposal with provenance. | Run audit test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Approval gate prevents direct skill install. | Run approval test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Unauthorized installs and audit gaps fail. | Run auth test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Proposal ID and audit binding proven. | Run binding test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R029.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Vulnerable skill yields zero install until approved. | Run `test_skill_dependency_audit_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030 Project-version reference discovery and code-enhancer binding Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Project-version reference discovery and code-enhancer binding.** Rollup of the children below. Define discoverable scope and require safe static inventory completeness. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Reference discovery policy and inventory-completeness contract. | Run discovery test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Code-enhancer compares discovered vs. configured. | Run comparison test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Unmapped reference refusal integrated in workflow. | Run refusal test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Undeclared version references fail without evaluation. | Run undeclared test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Discovered set and mapping gaps located. | Run gap test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R030.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Undeclared reference blocks, then passes after mapping. | Run `test_version_reference_discovery_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R023.19 Aggregate skill grader call contract and lineage preservation Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Aggregate skill grader call contract and lineage preservation.** Same repository-analysis invocation discovers skills, calls grader and includes results in aggregate. | Run `test_aggregate_skill_grade_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R031 Package source-path portability and cross-platform legality Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Package source-path portability and cross-platform legality.** Rollup of the children below. Define path policy and wire pre-commit refusal for illegal paths. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 4061148a6359 742c49315101 c175cd490b06 tests/hooks/test_hygiene_published_evidence.py:30 tests/hooks/test_hygiene_published_evidence.py:44 tests/hooks/test_source_path_portability.py:103 tests/hooks/test_source_path_portability.py:123 tests/hooks/test_source_path_portability.py:132 |
| PIPE-PAGES-R031.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Path-length, reserved-name and normalization rules. | Run rules test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_source_path_portability.py:25 |
| PIPE-PAGES-R031.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Portability check rejects Windows/macOS violations. | Run platform test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_source_path_portability.py:41 |
| PIPE-PAGES-R031.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Shared check in build and pre-commit gates. | Run gate test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 4061148a6359 tests/hooks/test_hygiene_published_evidence.py:30 tests/hooks/test_source_path_portability.py:67 tests/hooks/test_source_path_portability.py:77 |
| PIPE-PAGES-R031.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Reserved names and too-long paths fail without sanitizing. | Run sanitize test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_source_path_portability.py:103 tests/hooks/test_source_path_portability.py:123 tests/hooks/test_source_path_portability.py:132 |
| PIPE-PAGES-R031.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Policy version and violation locations proven. | Run location test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_source_path_portability.py:142 |
| PIPE-PAGES-R031.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Reserved name and long path both fail then pass. | Run `test_path_portability_cli`. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_hygiene_published_evidence.py:44 tests/hooks/test_source_path_portability.py:161 |
| PIPE-PAGES-R032 Lossless OWL/RDF workflow export-import with version refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Lossless OWL/RDF workflow export-import with version refusal.** Rollup of the children below. Preserve original export-time condition and define exact version comparison to prevent silent forward/backward compatibility moves. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R032.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define export-time coordinator decision condition and version refusal semantics. | Run export-import model test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R032.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Lossless workflow round-trip and exact version comparison without weakening freshness. | Run round-trip behavior test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R032.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire to existing skill-package owner for export/import contract. | Run export wiring test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R032.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Version move without strict comparison or loss of export condition prevents import. | Run version refusal test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R032.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Export-time condition and version comparison verified per round-trip. | Run version comparison evidence test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R032.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Test equal/older/newer export flows without R100 freshness weakening. | Run `test_eg56_export_import_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033 Installer skill entry binding with supported IDE/agent target matrix Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Installer skill entry binding with supported IDE/agent target matrix.** Rollup of the children below. Bind installer contract explicitly to skill/command and per-target configuration/parser/client proof. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define installer entry, supported target/version matrix and per-target binding contract. | Run installer model test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Bind existing installer contract to skill/command with per-target proof. | Run target binding behavior test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Link CLI.py registration to versioned harness adapters and target configuration. | Run harness wiring test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Supported targets cannot be unaccounted for; missing per-target proof fails. | Run target proof refusal test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Target set and per-target configuration/parser/client proof locations bound. | Run target coverage evidence test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R033.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Per-target configuration/parser/client proof verified via published CLI. | Run `test_au96_target_binding_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034 Single-binary portable deployment with zero external-service dependency parity Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Single-binary portable deployment with zero external-service dependency parity.** Rollup of the children below. Extend portable deployment definitions with concrete single binary/image profile and capability/refusal parity matrix. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define portable deployment profile with zero external-service dependency specification. | Run portable profile model test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Concrete single binary/image with external-dependency-free acceptance and parity. | Run dependency-free behavior test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Extend deployment package definitions with capability/refusal parity matrix. | Run parity matrix wiring test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Incomplete profiles or missing parity matrix prevent single-binary deployment claim. | Run parity refusal test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Dependency inventory and clustered capability/refusal parity proven. | Run parity evidence test. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R034.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Single binary/image deployment without external services verified. | Run `test_eg53_portable_deployment_cli`. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R035 Stable prompt JSON/Pydantic disk formatting with difference oracle Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Stable prompt JSON/Pydantic disk formatting with difference oracle.** Rollup of the children below. Define stable prompt format and exact difference semantics retaining new semantic roundtrip coverage. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 4061148a6359 7228a30b5eb2 tests/hooks/test_hygiene_published_evidence.py:63 tests/hooks/test_hygiene_published_evidence.py:76 tests/hooks/test_prompt_format.py:108 tests/hooks/test_prompt_format.py:121 tests/hooks/test_prompt_format.py:142 |
| PIPE-PAGES-R035.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define stable prompt JSON and Pydantic disk format with difference oracle. | Run prompt format model test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_prompt_format.py:33 |
| PIPE-PAGES-R035.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Establish exact difference oracle and semantic roundtrip coverage. | Run roundtrip behavior test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_prompt_format.py:44 |
| PIPE-PAGES-R035.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Link R094.2-.7 exports/adopts to disk serializer and difference oracle. | Run serializer wiring test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 4061148a6359 tests/hooks/test_hygiene_published_evidence.py:63 tests/hooks/test_prompt_format.py:65 |
| PIPE-PAGES-R035.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Semantic roundtrip cannot weaken earlier R094 export coverage. | Run coverage refusal test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_prompt_format.py:142 tests/hooks/test_prompt_format.py:86 |
| PIPE-PAGES-R035.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Disk-format semantics and difference oracle proof bound to snapshots. | Run oracle evidence test. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_prompt_format.py:108 |
| PIPE-PAGES-R035.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Equal/older/newer disk format round-trip verified via published CLI. | Run `test_au121_roundtrip_cli`. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_hygiene_published_evidence.py:76 tests/hooks/test_prompt_format.py:121 tests/hooks/test_prompt_format.py:170 tests/hooks/test_prompt_format.py:197 |
| PIPE-PAGES-R021.91 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Record former validate behaviors and their deployment state. | Complete inventory lists every validation action. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.92 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Map each behavior to every supported project hook. | Hook adopters configure and pass both success and failure cases. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.93 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Require configured pre-commit parity before hook passes. | Pre-commit configuration names every mapped behavior for all projects. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.94 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing historical baseline cannot mask incomplete coverage. | Baseline gaps remain visible in inventory and findings. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.95 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Bind behavior inventory and baseline to source snapshot. | Baseline state appears in all hook findings. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R021.96 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Installed hook rejects unmapped project behavior. | Test missing behavior in pre-commit configuration. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037 Unit-test profile with enforced external determinism Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Unit-test profile with enforced external determinism.** Rollup of the children below. Unit tests must isolate external dependencies and refuse network or container access. | Rollup is minimum state of children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define unit-test profile with declared external dependency categories. | Profile specifies doubles for database, API, client code. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Enforce deterministic doubles for all declared external seams. | Unit runner rejects planted network and container attempts. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire unit profile enforcement into test-quality gate. | Profile adoption gates must reject unmocked external dependencies. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing doubles or network egress causes unit test fail. | Runner cannot silently skip external dependency mocking. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record declared external categories, discovered doubles and test scope. | Evidence separates unit isolation from integration tests. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R037.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Installed gate blocks unmocked network access in tests. | Test planted database and API calls. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038 Python-only pre-commit hook for ontology governance validation Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Python-only pre-commit hook for ontology governance validation.** Rollup of the children below. Python hook consumes Medulla-owned ontology checks with fail-closed authority. | Rollup is minimum state of children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define Python-only execution boundary and governance rule set. | Hook declares ontology file inputs and check outputs. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Hook consumes Medulla-generated verdicts without local semantic authority. | Failed verdict causes commit refusal via hook exit. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Pre-commit hook integration consumes Medulla's published check service. | Hook reaches Medulla service identity and pins verdict version. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Unavailable Medulla service causes hook to fail closed. | Missing verdicts block commits rather than permit them. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record Medulla verdict identity, pinned version and applied rules. | Evidence separates local execution from remote verdict authority. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R038.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Planted ontology violation blocks commit through installed hook. | Test proves local authority cannot override Medulla. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R039 Complete project test-layout inventory with isolation and order policies Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Complete project test-layout inventory with isolation and order policies.** Rollup of the children below. Every project declares fixtures, modules and test independence requirements. | Rollup is minimum state of children. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 4061148a6359 tests/hooks/test_hygiene_published_evidence.py:127 tests/hooks/test_hygiene_published_evidence.py:141 tests/hooks/test_test_layout_independence.py:102 tests/hooks/test_test_layout_independence.py:121 tests/hooks/test_test_layout_independence.py:138 |
| PIPE-PAGES-R039.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define project layout inventory with shared fixtures and modules. | Inventory lists required fixtures, modules and isolation requirements. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_test_layout_independence.py:56 tests/hooks/test_test_layout_independence.py:75 |
| PIPE-PAGES-R039.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Enforce test independence via fixture-isolation gate. | Tests must pass regardless of test order. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_test_layout_independence.py:102 tests/hooks/test_test_layout_independence.py:121 tests/hooks/test_test_layout_independence.py:152 tests/hooks/test_test_layout_independence.py:165 tests/hooks/test_test_layout_independence.py:83 |
| PIPE-PAGES-R039.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire inventory check into test-quality gate. | Gate verifies every project's fixture and module declarations. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 4061148a6359 tests/hooks/test_hygiene_published_evidence.py:127 tests/hooks/test_test_layout_independence.py:68 |
| PIPE-PAGES-R039.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing fixtures or test order dependencies cause gate fail. | Gate refuses fixtures listed outside declared project inventory. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_test_layout_independence.py:138 tests/hooks/test_test_layout_independence.py:178 tests/hooks/test_test_layout_independence.py:251 tests/hooks/test_test_layout_independence.py:269 |
| PIPE-PAGES-R039.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record project inventory, discovered fixtures and independence check results. | Evidence documents failed isolation and order-dependency tests. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_test_layout_independence.py:190 |
| PIPE-PAGES-R039.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Gate blocks planted fixture dependency in test suite. | Test proves missing fixture causes isolation failure. | requirement | PIPE-PAGES | VERIFIED | 2a00d9d10fb2 tests/hooks/test_hygiene_published_evidence.py:141 tests/hooks/test_test_layout_independence.py:215 |
| PIPE-PAGES-R040 Coverage-decrease refusal in Meristem proposal and admission Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Coverage-decrease refusal in Meristem proposal and admission.** Rollup of the children below. Meristem must reject every enhancement or refactor decreasing test coverage. | Rollup is minimum state of children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R040.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Extend approval criteria with baseline and candidate evidence. | Proposal must carry coverage baseline and candidate measurements. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R040.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Reject proposals where coverage decreases from baseline. | Gate compares candidate metrics against baseline deterministically. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R040.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire coverage check into Meristem proposal admission. | Baseline and candidate evidence bind to revision. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R040.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing or stale coverage evidence causes proposal rejection. | Unmeasured coverage proposals fail rather than pass. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R040.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record baseline and candidate coverage with proposal identity. | Evidence preserves graph authorization and materialization receipt. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R040.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Gate rejects proposal that decreases coverage metrics. | Test planted coverage decrease in candidate revision. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041 Configured structural limits with named-function failure reporting Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Configured structural limits with named-function failure reporting.** Rollup of the children below. Build failures name each violating function and state limit. | Rollup is minimum state of children. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** Define function-argument-count and try-block-statement-count limits. | Configuration specifies nonnegative integer limits for each. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** Build fails when function or try-block exceeds limit. | Every violation identifies repository-relative path and function. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** Wire limits into shared KISS gate and Arbora build. | Arbora configuration pins both limits and invokes check. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** Missing configuration or unsupported measurement causes build failure. | Missing limits exit 2; violations above limits exit 1. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** Record policy digest, per-function count and configured limits. | Evidence identifies repository-relative path and qualified function. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R041.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** Build fails on function exceeding argument-count limit. | Test keyword-only, variadic and nested-try function cases. | requirement | PIPE-PAGES | SPECIFIED | No recorded commit/test evidence |
| PIPE-PAGES-R042 One generated architecture explorer, always current Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**One generated architecture explorer, always current.** The canonical architecture explorer is published at `https://knuckles-team.github.io/.github/architecture/`. The organization site builds it with this generator in github mode every 30 minutes and on a `specs-changed` repository dispatch; the reusable `notify_org_site.yml` is the one implementation that sends that dispatch, and each core repository calls it from `.github/workflows/org-site.yml` on every push to main with no path filter. It does nothing, and exits 0, until both optional `org_site_app_id` and `org_site_app_private_key` secrets exist (the org secrets `ORG_SITE_APP_ID` and `ORG_SITE_APP_PRIVATE_KEY` reach it through `secrets: inherit`), then mints a GitHub App token for `.github` with a SHA-pinned `actions/create-github-app-token` and posts with it; a failed mint or post only warns. Github mode scans every public, unarchived organization repository that has `specs/`, so a new repository appears and a removed repository, row or connector part disappears on the next build. The explorer places each row on the deepest architecture part, lists each row that it cannot place under an Unmapped part and fails the build until a part owns it (the reviewed allowlist stays empty, so a new row needs a part in `model.json`, for example WEBUI-APPS-R050 on the composed deployment acceptance part), and stamps its corner with the build time and the head commit of every scanned repository. A pinned layered layout engine precomputes every level, so the page needs no runtime layout. Each core repository site serves `/architecture/` as a redirect to the canonical explorer that keeps the `#<node>` anchor, and the shared theme links it from every page at the node of the current repository. A content page that shows the static runtime diagram must also link the explorer. | `tests/test_architecture_explorer.py` places fixture rows, proves a deleted row disappears, reconciles discovery, fits the connector fleet, checks the stamp and builds the page and redirect variants offline; `tests/test_pages_pipeline_contract.py` and `tests/test_spec_delivery_nav.py` check the workflow step, the dispatch and the theme link; `tests/test_sync_mkdocs_theme.py::test_check_requires_the_diagram_to_link_the_explorer` checks the diagram link. | requirement | PIPE-PAGES | VERIFIED | 07557fa5390a 07e22bc44394 0a82ba72ff9d 0c089432fdc8 1127e9047bfa tests/test_architecture_explorer.py:1006 tests/test_architecture_explorer.py:1030 tests/test_architecture_explorer.py:105 tests/test_architecture_explorer.py:1086 tests/test_architecture_explorer.py:1107 |
| PIPE-PAGES-R042.1 Index Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Index.** The build emits one compact search index in the page: every spec row as ID, title, owning repository, spec family, status and the node it maps to; every node as name, description and code paths; and the retired-ID aliases read from each repository's `.config/spec-aliases.toml`. Repeated strings are stored once in shared tables, so the index adds no row text beyond the title; search also reads each row's description from the page's own rows (R042.6). | `tests/test_architecture_explorer.py::test_search_index_covers_every_row_and_maps_it_to_a_node` and `tests/test_architecture_explorer.py::test_search_index_carries_repository_aliases`. | requirement | PIPE-PAGES | VERIFIED | 22a4c85e6a09 tests/test_architecture_explorer.py:539 tests/test_architecture_explorer.py:562 |
| PIPE-PAGES-R042.2 Ranking Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Ranking.** A search box ranks client-side with no dependency: an exact ID (or retired alias) first, then rows whose title words match every term, then node descriptions and node names. A query shaped like an ID matches by ID only, with the exact row followed by its sub-rows. A title shared by many rows ranks below the one unique row, so the owning row of a capability comes first. | `tests/test_architecture_explorer.py::test_a_capability_search_ranks_the_owning_row_first` and `tests/test_architecture_explorer.py::test_an_id_search_is_exact`. | requirement | PIPE-PAGES | VERIFIED | 22a4c85e6a09 tests/test_architecture_explorer.py:572 tests/test_architecture_explorer.py:583 |
| PIPE-PAGES-R042.3 Deep links Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Deep links.** The page opens at `#q=<query>` (the top result is selected and the ranked list stays open) and at `#node=<id>`; the older `#<node>` anchor keeps working so repository redirects and the shared theme link are unchanged. The page writes the matching hash back as the view settles. | `tests/test_architecture_explorer.py::test_deep_links_parse`. | requirement | PIPE-PAGES | VERIFIED | 22a4c85e6a09 tests/test_architecture_explorer.py:604 |
| PIPE-PAGES-R042.4 Landing and access Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Landing and access.** Choosing a result flies the camera to the owning node with the same fit and openness rules as a part click, zooming in just far enough that every ancestor box is open, highlights the node, and shows the matching rows in its panel with a link to the spec file on GitHub. The `/` key focuses the box; arrow keys, Enter and Escape drive it; the box and list carry combobox and listbox roles with a live result count; the colors follow the light and dark themes. The three outside boxes (people, clients, source systems) are all marked external: the map shows "external system" instead of spec counts and no status bar for them, the side panel is headed "Outside the ecosystem" and says no spec rows are written for the box and the connected parts own the rows, and no row places on them. | `tests/test_architecture_explorer.py::test_a_q_deep_link_lands_on_the_owning_part_in_a_browser` loads the page in a headless Chromium when one is installed. | requirement | PIPE-PAGES | VERIFIED | 22a4c85e6a09 7e98f025d34c tests/test_architecture_explorer.py:126 tests/test_architecture_explorer.py:659 |
| PIPE-PAGES-R042.5 Viewport Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Viewport.** The map fills the browser window at any aspect ratio. The page has no width cap and narrow margins, and the map and side panel take the full height below the toolbar, so the page never scrolls on a desktop screen. The overview layout is at least 1.6 times as wide as it is tall. The overview background bands span the full width of the map at any zoom, with their labels at the layout's right edge. A full-screen button and the `F` key show the map alone, and a panel button hides the side panel; both refit the current view. | `tests/test_architecture_explorer.py::test_the_map_fills_the_viewport_with_full_screen_and_panel_toggle`. | requirement | PIPE-PAGES | VERIFIED | 5ca115dab2f1 c1c4645b2f48 tests/test_architecture_explorer.py:690 |
| PIPE-PAGES-R042.6 Row description Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Row description.** Each spec row in the panel list shows a short plain-text description under its title: the first sentence of its requirement text in the family's `requirements.md`, at most 160 characters, with markdown removed and a bold lead that only repeats the title skipped. The description is muted and clamped to two lines, is carried on the row in the page, and is matched by search below every title, ID, family and part match. The page holds no other requirement text, so its size grows by at most the description of each row. | `tests/test_architecture_explorer.py::test_description_is_the_first_plain_sentence_capped_at_160`, `tests/test_architecture_explorer.py::test_page_rows_carry_desc_and_never_the_full_text`, `tests/test_architecture_explorer.py::test_page_size_grows_by_a_bounded_amount_per_row` and `tests/test_architecture_explorer.py::test_search_matches_a_description_only_after_title_and_id_matches`. | requirement | PIPE-PAGES | VERIFIED | 72f7362888b8 9ad2ff194f2a tests/test_architecture_explorer.py:778 tests/test_architecture_explorer.py:799 tests/test_architecture_explorer.py:920 tests/test_architecture_explorer.py:936 |
| PIPE-PAGES-R042.7 Expandable full spec Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Expandable full spec.** A row expands inline from its title button (`aria-expanded`) or a click on the row, and the panel offers Expand all shown and Collapse all over the filtered rows; the status filter, part scope and paging are unchanged. An expanded row shows the full requirement, the acceptance text, the status with `landed_in` commits, `verified_by` test lines and `rollup_of` rows (commits and test files link to GitHub on the default branch), the test-spec lines that name the row, links to the family files, and a Design section with collapsible Plan, design or architecture, and Test spec documents. The build writes one JSON file per family at `spec-details/<repo>/<family>.json` next to the page, replacing any earlier set, and the page fetches a family on its first expand and caches it. The organization hub workflow uploads the page directory, so the files publish with the page. | `tests/test_architecture_explorer.py::test_one_family_json_is_written_per_family_with_full_row_detail`, `tests/test_architecture_explorer.py::test_a_row_whose_family_has_no_plan_still_gets_detail` and `tests/test_architecture_explorer.py::test_expanding_a_row_fetches_its_family_once_and_renders_it_safely`. | requirement | PIPE-PAGES | VERIFIED | 72f7362888b8 9ad2ff194f2a bf0cc60fbd80 tests/test_architecture_explorer.py:336 tests/test_architecture_explorer.py:819 tests/test_architecture_explorer.py:853 tests/test_architecture_explorer.py:961 |
| PIPE-PAGES-R042.8 Safe rendering Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Safe rendering.** Spec markdown is rendered to HTML at build time as a safe subset (headings, paragraphs, lists, code, tables, links) with every source character escaped, so raw HTML never reaches a page or a family file. Only http(s) links and links relative to the family directory (resolved to GitHub) are kept. The page parses the rendered HTML inertly and copies it through a tag allowlist, uses no `innerHTML`, and loads no third-party script; tables and code scroll inside their own block so an expanded row never widens the page. | `tests/test_architecture_explorer.py::test_markdown_escapes_raw_html_and_drops_unsafe_links` and `tests/test_architecture_explorer.py::test_page_never_assigns_markup_and_exposes_the_expand_controls`. | requirement | PIPE-PAGES | VERIFIED | 72f7362888b8 tests/test_architecture_explorer.py:867 tests/test_architecture_explorer.py:902 |
| PIPE-PAGES-R042.9 Every scanned repository has a part Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Every scanned repository has a part.** Each repository in the explorer registry that has specs is owned by a part of the model, so its rows place on that part and none rely on the unmapped allowlist. The skill-graphs repository is scanned and owned by the Skill graphs part under the skills box, which describes packaged skill graphs served through the Scion SDK convention and takes the `catalog-content` family. | `tests/test_architecture_explorer.py::test_every_registered_repository_has_a_part_and_its_rows_place_without_the_allowlist`. | requirement | PIPE-PAGES | VERIFIED | 9dd3e4967209 bf0cc60fbd80 tests/test_architecture_explorer.py:1006 tests/test_architecture_explorer.py:336 |
| PIPE-PAGES-R042.10 The explorer links back to the contribution front door Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**The explorer links back to the contribution front door.** The page footer carries one muted line linking the contribution guide (`CONTRIBUTING.md` in the organization repository) and the organization front door, and states that the explorer is rebuilt on every merge to main and at least every 30 minutes. The header carries no such links. The expanded detail of a `SPECIFIED` row adds an open-work line linking the contribution guide and the owner repository's `specs/<family>/` directory; other statuses do not. | `tests/test_architecture_explorer.py::test_footer_links_the_guide_and_front_door_and_only_specified_rows_point_to_the_guide`. | requirement | PIPE-PAGES | VERIFIED | a97422e107a9 tests/test_architecture_explorer.py:1030 |
| PIPE-PAGES-R042.11 The explorer states the contribution path in a form a person or an agent finds without guessing Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**The explorer states the contribution path in a form a person or an agent finds without guessing.** Below the footer the page carries a collapsed `How to contribute (for people and agents)` block with five ordered steps: the front door, the contribution guide, picking a `SPECIFIED` row, setting up with the `arbora-development` skill, and opening a pull request whose commit carries a `Spec:` trailer. The page head declares `rel="help"` (the contribution guide), `rel="start"` (the front door) and a description that names the front door. Every build writes `llms.txt` beside the page with the front door, the guide, the skills directory, the spec-details file pattern and the same five steps. | `tests/test_architecture_explorer.py::test_contribution_path_is_in_the_page_head_details_and_llms_txt` and `tests/test_architecture_explorer.py::test_a_build_writes_llms_txt_beside_the_page`. | requirement | PIPE-PAGES | VERIFIED | dbbaf2116d8c tests/test_architecture_explorer.py:1086 tests/test_architecture_explorer.py:1107 |
| PIPE-PAGES-R043 Agent-readiness and static documentation delivery Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Agent-readiness and static documentation delivery.** Rollup of the children below. | The rollup is the minimum state of its children. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_pipeline_contract.py:146 tests/test_pages_readiness.py:195 tests/test_pages_readiness.py:247 tests/test_pages_readiness.py:367 tests/test_pages_readiness.py:377 |
| PIPE-PAGES-R043.1 Model Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Model.** The readiness validator must consume declared input, schema, readiness manifest, and Markdown mirror manifest without another generator. | Run `tests/test_pages_readiness.py::test_second_build_and_offline_tck_are_idempotent`. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_readiness.py:247 |
| PIPE-PAGES-R043.2 Behavior Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Behavior.** The delivery builder must publish declared Markdown fallbacks and discovery files while preserving existing site directives. | Run `tests/test_pages_readiness.py::test_build_publishes_source_markdown_and_served_mime`. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_readiness.py:195 |
| PIPE-PAGES-R043.3 Wiring Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Wiring.** The workflow at `.github/workflows/pages_pipeline.yml:253` must invoke the readiness CLI only through explicit opt-in. | Run `tests/test_pages_pipeline_contract.py::test_enabled_path_checks_strict_build_and_runs_owned_tck`. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_pipeline_contract.py:146 |
| PIPE-PAGES-R043.4 Refusal Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Refusal.** The validator must reject stale source digests and private capability references before publication. | Run `tests/test_pages_readiness.py::test_stale_source_digest_fails_closed`. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_readiness.py:367 |
| PIPE-PAGES-R043.5 Evidence Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Evidence.** The CLI must report versioned failure results rather than imply successful validation. | Run `tests/test_pages_readiness.py::test_cli_failure_result_is_versioned`. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_readiness.py:377 |
| PIPE-PAGES-R043.6 Hot-path proof Definition — PIPE-PAGES / PIPE-PAGES — Ecosystem Pages parity and release receiptCanonical requirement and verification source**Hot-path proof.** The direct script entry must load the sparse readiness package and validate the declared content source. | Run `tests/test_pages_readiness.py::test_direct_entry_requires_and_loads_the_sparse_readiness_package`. | requirement | PIPE-PAGES | VERIFIED | afcf5e9611e3 tests/test_pages_readiness.py:836 |
| PIPE-GATES PIPE-GATES — Gate landing policy | spec | None | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R001 Pre-land fast set and post-land full set Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pre-land fast set and post-land full set.** The eight blocking gates partition into a pre-land fast set and a post-land full set. The fast set is `format`, `hygiene`, `secrets`, `types`, and `tests-fast`; it runs server-side against the changeset's tree in seconds and decides whether the changeset lands. The full set is the remaining blocking gates, `spec`, `tests`, and `supply-chain`; it runs after landing. Landing applies no merge queue. | The partition test asserts both sets' exact membership from the published gate configuration and asserts that the full set is the fast set's complement within the eight blocking gates. | requirement | PIPE-GATES | VERIFIED | 54442c92173d tests/hooks/test_gate_runner.py:119 tests/hooks/test_gate_runner.py:34 tests/hooks/test_gate_runner.py:45 tests/hooks/test_gate_runner.py:55 tests/hooks/test_gate_runner.py:62 |
| PIPE-GATES-R002 Auto-revert versus fix-forward Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auto-revert versus fix-forward.** A failed post-land gate triggers a recorded decision. The failure class decides it. The gate runner classifies each failure as `product` or `infrastructure`. An infrastructure failure means the gate produced no result, for example a lost runner. An unclassified failure is `product`. Auto-revert is the default; it reverts the failed changeset without operator action. Fix-forward applies only when the owner opens a fix-forward task within 300 s of the failed verdict. A passing re-run never changes the decision for a product failure. An infrastructure failure may re-run once. A passing re-run records `infrastructure-rerun`, and nothing reverts. The decision record carries the gate ID, the changeset ID, the verdict, the failure class, the threshold that fired, and the evidence digest. The record is replayable. | The policy test asserts the decision and the complete record for each failure class and threshold. A product failure whose re-run passes auto-reverts. | requirement | PIPE-GATES | VERIFIED | 47057b890626 5792bcbbd148 tests/hooks/test_landing_policy.py:103 tests/hooks/test_landing_policy.py:111 tests/hooks/test_landing_policy.py:119 tests/hooks/test_landing_policy.py:127 tests/hooks/test_landing_policy.py:133 |
| PIPE-GATES-R003 Gates run against the engine tree Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Gates run against the engine tree.** Every blocking gate runs against the Medulla tree without a local checkout. The gate reads file content by path and blob digest. Its verdict and evidence digest agree with the same gate run on a materialized checkout of the same revision. No working copy is required to land. | The contract test runs one blocking gate on an engine-tree fixture and on an identical materialized checkout and asserts that both runs produce the same verdict and evidence digest. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R004 Gate verdicts publish to the engine (rollup) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Gate verdicts publish to the engine (rollup).** Each blocking gate run must publish its verdict as an EG-SCM-R008 record through the arbora `source.*` HTTP operations. The record binds gate id, input digest, verdict, evidence digest and duration. A publish failure never changes the verdict. Children `.1` and `.2` deliver it. | See each child. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R004.1 Wiring Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wiring.** `run_gate_on` at `pipelines_hooks/gate_runner.py:62` calls `publish_verdict` in `pipelines_hooks/verdict_publish.py` after each gate. It uses plain HTTP and no ecosystem package. The arbora endpoint and token come from the CI environment. With no endpoint, the publish is skipped and logged. | `tests/test_verdict_publish.py::test_gate_run_posts_one_verdict` runs one gate against a fixture endpoint. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R004.2 Hot-path proof Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Hot-path proof.** The test runs the fast gate set against a fixture tree with a fixture arbora endpoint. It observes one verdict record per gate with the tree digest. An endpoint error leaves every verdict unchanged. | `tests/test_verdict_publish.py::test_fast_set_publishes_and_survives_endpoint_error` asserts both cases. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006 Changeset migration waves with entry and exit criteria (rollup) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Changeset migration waves with entry and exit criteria (rollup).** Repositories move to engine changesets in seven ordered waves. A wave starts only when its entry criteria hold and the prior wave has exited. Each wave exits on its own criteria. GitHub stays a byte-identical mirror in every wave. Children `.1` to `.7` name the waves. | Satisfied only when `.1` to `.7` are verified. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.1 Wave 1: webarchiver Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1: webarchiver.** Entry: EG-SCM-R001 to R004 and EG-SCM-R010 are verified. RM-SCM-R001 and RM-SCM-R002 are verified. ARBORA-OPS-R848.2 and ARBORA-OPS-R849 are verified. Exit: 20 changesets land through `source.land`. Each mirror commit has the tree hash of its changeset. One auto-revert rehearsal of PIPE-GATES-R002 passes. The mirror shows no divergence for 7 days. | `tests/hooks/test_migration_waves.py::test_wave_1_entry_and_exit` evaluates a fixture ledger and asserts each criterion. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.2 Wave 2: small connectors Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 2: small connectors.** A small connector has under 10,000 source lines. Entry: wave 1 has exited. EG-SCM-R007 is verified. Exit: every small connector meets the wave 1 exit criteria for itself. | `test_wave_2_entry_and_exit` asserts the size bound and the per-repository exit. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.3 Wave 3: the remaining connectors Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 3: the remaining connectors.** Entry: wave 2 has exited. EG-SCM-R011 is verified. Exit: every connector meets the wave 1 exit criteria. Each connector release publishes from the mirror unchanged. | `test_wave_3_entry_and_exit` asserts the criteria. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.4 Wave 4: skills, pipelines and the user interfaces Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 4: skills, pipelines and the user interfaces.** Entry: wave 3 has exited. PIPE-GATES-R003 is verified, so every blocking gate runs on the engine tree. Exit: universal-skills, pipelines, Overstory, Tuig and Axil meet the wave 1 exit criteria. | `test_wave_4_entry_and_exit` asserts the criteria. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.5 Wave 5: the Scion SDK and the harness Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 5: the Scion SDK and the harness.** Entry: wave 4 has exited. SDK-SCM-R002 and AU-SCM-R001 are verified. Exit: Scion SDK and Meristem meet the wave 1 exit criteria. | `test_wave_5_entry_and_exit` asserts the criteria. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.6 Wave 6: arbora Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 6: arbora.** Entry: wave 5 has exited. ARBORA-OPS-R850 and ARBORA-OPS-R851 are verified. Exit: arbora meets the wave 1 exit criteria. One release deploys from a changeset tree. | `test_wave_6_entry_and_exit` asserts the criteria. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R006.7 Wave 7: Medulla, last Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 7: Medulla, last.** Entry: wave 6 has exited. EG-SCM-R009 is verified. One restore of the engine source from the git mirror passes. Exit: Medulla meets the wave 1 exit criteria. A second restore rehearsal passes. | `test_wave_7_entry_and_exit` asserts the criteria and the two restores. | requirement | PIPE-GATES | SPECIFIED | No recorded commit/test evidence |
| PIPE-GATES-R005 Spec text names no third-party product Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Spec text names no third-party product.** `pipelines-hook spec-standard` must refuse a third-party product or project name in authored `specs/**/*.md` text. The denylist is `pipelines_hooks/specs/third_party_names.toml`. Its `[allow]` table lets a connector name its own target system. Inline code, fenced code, URLs, link targets and spec IDs are ignored. Open standards and protocol names are never listed. | `tests/test_spec_third_party_names.py` asserts a finding for each named product, a pass for identifiers, code, links and standards, and the per-repository allowance. | requirement | PIPE-GATES | VERIFIED | d0cb9114aec1 tests/test_spec_third_party_names.py:50 tests/test_spec_third_party_names.py:87 |
| PIPE-GATES-R007 Canonical legacy-concept check Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Canonical legacy-concept check.** Publish `no-legacy-concepts` from pipelines, not product repositories. Scan tracked Python, Rust and Markdown for the original numeric-pillar marker pattern, retaining historical filename/directory exclusions and path/line diagnostics. Explicit target repositories and worktrees are independent of ambient Git selectors, including the index. Findings fail with exit one; Git/read failures fail closed with exit two. This opt-in gate does not change the eight-gate landing partition. | Real Git fixtures cover detection, exclusions, tracked versus ignored/untracked files, foreign worktrees, polluted Git variables and CLI failure exits. | requirement | PIPE-GATES | VERIFIED | afcf5e9611e3 tests/hooks/test_no_legacy_concepts.py:106 tests/hooks/test_no_legacy_concepts.py:20 tests/hooks/test_no_legacy_concepts.py:64 |
| PIPE-GATES-R008 Lock artifact version mirrors Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Lock artifact version mirrors.** Publish opt-in `lockfile-version-mirrors` for an explicit consumer repository root. Compare the self-package literal uv.lock version to project.version (fallback .bumpversion.cfg current_version); accept omitted editable versions and absent artifacts. Direct requirements.txt pins must satisfy project.dependencies and non-pin ranges must match them. This does not replace uv lock --check. | `tests/hooks/test_lockfile_version_mirrors.py` exercises the public CLI, version fallback, editable omission, pins, ranges and missing artifacts. | requirement | PIPE-GATES | VERIFIED | 180d570777d4 5ff231c270b1 tests/hooks/test_connector_central.py:428 tests/hooks/test_lockfile_version_mirrors.py:14 |
| PIPE-GATES-R008.1 No version mirror outside `pyproject.toml` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**No version mirror outside `pyproject.toml`.** A connector's version is the `[project]` `version` line alone. `connector-standard` (member `connector-files`) fails a tracked `.bumpversion.cfg` and any tracked Python file that spells `__version__ = "<project version>"`; code reads package metadata. `pipelines-connector version bump {major,minor,patch}` changes only that line and keeps its trailing comment. | `tests/hooks/test_connector_central.py::test_a_hardcoded_package_version_is_a_finding_and_metadata_is_not` and `::test_bump_changes_pyproject_only_and_keeps_the_comment`. | requirement | PIPE-GATES | VERIFIED | 5ff231c270b1 tests/hooks/test_connector_central.py:428 |
| PIPE-GATES-R009 Configured static import boundary Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Configured static import boundary.** Publish opt-in `coupling` over consumer-configured package paths and denied module prefixes with allowed submodule prefixes. Scan tracked Python AST imports using the target repository's own index. Missing policy, paths, invalid source or Git failures refuse with exit two; prohibited imports give located exit-one findings. No file exemptions or sibling discovery. This checks static imports, not dynamic runtime access. | `tests/hooks/test_coupling.py` exercises the public CLI, allowed client imports, forbidden internals, syntax refusal, tracked-only scope and polluted Git selectors. | requirement | PIPE-GATES | VERIFIED | 180d570777d4 tests/hooks/test_coupling.py:17 |
| PIPE-GATES-R010 Connector names agree with the declared fleet name Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Connector names agree with the declared fleet name.** Publish `connector-name` from pipelines. It reads the fleet name a connector declares as its single `agent_connector_sdk.connector` entry point in `pyproject.toml`. It compares that name with the `CONNECTOR` constant of each generated `connector_sources.py` (read by AST, never imported) and each `connector=` literal in a `ConnectorContent` or `IngestBinding` call. A disagreeing literal fails the gate and names the file. An undeclared connector with a literal gets a warning; `--strict` makes it a failure. A repository with neither passes. | `tests/hooks/test_connector_name.py` covers agreement, disagreement, the undeclared warning, `--strict`, a non-connector repository and that a leftover `connector_manifest.yml` is never read. | requirement | PIPE-GATES | VERIFIED | a268ca1599c8 cf912c89cd2f tests/hooks/test_connector_name.py:11 |
| PIPE-GATES-R011 Shared hooks are current and snapshots accept symlinks Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Shared hooks are current and snapshots accept symlinks.** `gates_pipeline.yml` keys its pre-commit cache on the config hash and the current pipelines `main` commit. A cache restore then never serves hooks older than pipelines `main`. `jscpd_snapshot.materialize` skips a tracked symlink and keeps its in-tree target. It still refuses every other non-regular entry. | `tests/hooks/test_jscpd_snapshot.py` snapshots a tree with a symlinked root manifest. The workflow cache key names `steps.hook-rev.outputs.sha`. | requirement | PIPE-GATES | VERIFIED | 147049d18114 270b968a56a4 tests/hooks/test_jscpd_snapshot.py:13 |
| PIPE-GATES-R012 A connector that imports GraphQL declares it via the Scion SDK extra Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**A connector that imports GraphQL declares it via the Scion SDK extra.** Publish `connector-graphql` from pipelines. It applies to a repository whose non-test Python imports `gql` or `graphql`. Its core dependencies must hold `scion-sdk` (the legacy `agent-connector-sdk` alias remains accepted during transition) with the `graphql` extra. A direct `gql` or `graphql-core` requirement in the core dependencies or any extra is a duplicate. Each finding names the file or section. Findings warn by default; `--strict` makes them failures. A repository without such imports passes, and the Scion SDK itself is exempt. | `tests/hooks/test_connector_graphql.py` covers the declared extra, the missing extra, direct declarations, function-level imports, skipped tests and exempt repositories. | requirement | PIPE-GATES | VERIFIED | c16b8de6ac2d tests/hooks/test_connector_graphql.py:11 |
| PIPE-GATES-R013 A connector uses the Scion SDK capability instead of its own copy Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**A connector uses the Scion SDK capability instead of its own copy.** Publish `sdk-conformance` from pipelines. It applies to a repository that depends on `scion-sdk` or the legacy `agent-connector-sdk` alias, other than the Scion SDK. It scans non-test Python, outside `tests`, `scripts`, `examples` and `docs`, and `pyproject.toml`. Each finding cites the Scion SDK row it breaks: `SDK-CENTRALIZED-CAPABILITIES-R001` for a direct `requests` import, a hand-built `httpx` client or call, or an own retry loop; `R008` for TLS verification turned off, a silenced insecure-request warning, or a hand-built SSL context; `R009` for a hand-parsed `env://` or `openbao://` reference; `R016` for an own GraphQL client on the protocol library's `Client` or transports; `R040` for a direct requirement on a package a Scion SDK extra carries, one finding per package. The direct GraphQL library declaration stays with `connector-graphql` (`PIPE-GATES-R012`). Findings warn by default; `--strict` makes them failures, and a repository turns strict on in its own configuration once migrated. | `tests/hooks/test_sdk_conformance.py` covers each pattern and its row, clean Scion SDK use, one finding per pinned package, the skipped paths, non-connector and Scion SDK repositories, the default warning and `--strict`. | requirement | PIPE-GATES | VERIFIED | 635e34079332 db468196e870 tests/hooks/test_sdk_conformance.py:11 |
| PIPE-GATES-R014 A connector ships and serves all five surfaces with a parent-linked ontology Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**A connector ships and serves all five surfaces with a parent-linked ontology.** Publish `connector-surface-audit` from pipelines. It reads one connector checkout, or every repository of a fleet directory at a ref in detached worktrees, and prints one sorted JSON record per connector. Each record holds the `agent_connector_sdk.connector`, `skill_providers`, `prompt_providers` and `ontology_providers` entry points and any plugin group outside the Scion SDK namespace. It holds the counts of `<package>/skills/<name>/SKILL.md`, `<package>/prompts/<name>.json` with an `instructions.core_directive`, `<package>/ontology/*.ttl` and `<package>/ontology/shapes/*.ttl`. It records whether the server source registers that content with the Scion SDK (`ConnectorContent`, `register_connector_content` or `register_ontology_resources`). For each ontology file it records the `owl:Ontology` header, whether `owl:imports` names the parent IRI `http://knuckles.team/kg`, and each declared class as a parent term, linked (a direct or transitive `rdfs:subClassOf` that reaches a parent class) or orphan. The parent classes come from the Medulla parent ontology directory given with `--parent-ontology`. A record is complete when it has no gap. The audit reports by default; `--strict` exits 1 when any record is incomplete. The live surface and the engine pack contents are read by the arbora acceptance `surface_audit.py`, not by this audit. | `tests/hooks/test_connector_surface.py` builds fixture connectors and a fixture parent ontology in a temporary directory. It checks a complete connector, an orphan vocabulary, unserved content, a plugin group outside the SDK namespace, IRIs that hold `#`, literals that hold `.` and `#`, deterministic output and `--strict`. | requirement | PIPE-GATES | VERIFIED | d98a324dd874 fe1919ed8edb tests/hooks/test_connector_surface.py:12 |
| PIPE-GATES-R015 Orphan connector classes get a reviewed parent class Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Orphan connector classes get a reviewed parent class.** Publish `connector-ontology-map` from pipelines. `propose` reads each connector's ontology files at a git ref and the Medulla parent ontology directory. For each orphan root class (the audit's reading of `orphan`) it scores candidate parent classes from an exact match of local name, label or alias, a head-noun match, a curated synonym table, a shared parent property, and a parent class named in the class comment. Each proposal carries its confidence and its reasons. Only an exact match is accepted unreviewed, and an exact match on a generic or BFO class is not. A class with no candidate is listed as a candidate for a new parent class. `decide` turns proposals and a reviewer's overrides into links and refuses an override that names a class the parent ontology lacks, so no parent class is invented. `apply` writes `rdfs:subClassOf` lines into the connector's Turtle text, and `owl:imports` of the parent IRI where the header lacks it, and changes nothing else in the file. `scaffold` writes the connector's `tests/test_ontology_parent_link.py`, which reads the ontology with the standard library only and asserts that the orphan classes are exactly the pending set. | `tests/hooks/test_ontology_orphan_map.py` builds a fixture parent ontology and connector ontologies in a temporary directory. It checks the exact, head-noun and synonym signals, the generic-class rule, the synonym entry that names a missing parent class, the new-parent candidate, the override check, the apply output (links, import, idempotence, unchanged text elsewhere) and deterministic output. | requirement | PIPE-GATES | VERIFIED | 147049d18114 e4e8fe71c024 f58ea0355db7 tests/hooks/test_ontology_orphan_map.py:12 |
| PIPE-GATES-R016 The composed ontology graph is reachable and bridged Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**The composed ontology graph is reachable and bridged.** Model: `connector-ontology-map graph-check` composes every Medulla `*.ttl` at a ref (optionally overlaid with the ontology files an extra ref changed) and every fleet connector pack (`<pkg>/ontology/*.ttl`, shapes, and the generated `<pkg>/connector_sources.py`, whose `source_meta` entries, `SCHEMA_MAPPINGS` and `RESOURCES` are read statically by AST without importing the package) into one rdflib graph, with one module per Medulla file and one per pack. Behavior: it reports findings with the codes `PARSE_ERROR`, `ORPHAN_CLASS` (with chain length), `ISLAND_MODULE`, `ISLAND_PACK`, `DANGLING_REFERENCE` (file and line), `PROPERTY_UNTYPED`, `ISOLATED_CLASS` (data-only classes listed, not flagged), `UNBRIDGED_SAME_CONCEPT`, `INGEST_TYPE_MISSING`, `MAPPING_TARGET_MISSING`, `NO_JOIN_KEY`, `CONFLICTING_PARENT`, `DUPLICATE_LABEL` and `CQ_PATH_BROKEN`; it counts connected components of the module graph (reference edges and shared-IRI edges); it evaluates competency questions from a data file, each with the class and property hops it needs, and names every missing hop; and it groups the exact triples to add by owning repository (shared concepts in Medulla, system-specific ones in the pack). Refusal: the exit code is 1 when any finding exists and 0 when clean; `--warn` always exits 0; an unparseable file is a finding and never aborts the run. Evidence: the JSON result (summary per code, pack and module, questions, fix plan, findings) and a Markdown report, deterministic with sorted keys and no timestamps. Hot-path: a read-only pass over `git show` output; no checkout and no network, about 25 seconds for the whole fleet. | `tests/hooks/test_ontology_graph_check.py` builds fixture graphs that exercise every code, the question evaluation with a missing hop, the owner grouping of the fix plan, determinism, the exit codes and the Markdown report, the static declaration read (never imported, a broken declaration is a `PARSE_ERROR`, a legacy manifest is ignored) and the command against a temporary git repository. | requirement | PIPE-GATES | VERIFIED | 03512169cad3 072841d0fc31 0e879efdfea4 10797d760f22 12874ccce7f9 tests/hooks/test_connector_central.py:388 tests/hooks/test_connector_central.py:408 tests/hooks/test_connector_central.py:419 tests/hooks/test_connector_central.py:491 tests/hooks/test_connector_central.py:505 |
| PIPE-GATES-R016.1 An import bridges modules Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**An import bridges modules.** In the module graph an `owl:imports` of an ontology IRI joins the importing module to the module that declares that ontology, in both edge sets. An import-only catalog is therefore not an island (EG-ORCH-VOCAB-R008.2). | `tests/hooks/test_ontology_graph_check.py::test_owl_imports_bridges_modules` composes an import-only module and its target and asserts one component. | requirement | PIPE-GATES | VERIFIED | 296583a3f006 tests/hooks/test_ontology_graph_check.py:257 |
| PIPE-GATES-R016.2 An individual's type is a reference Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**An individual's type is a reference.** A named individual typed by a class joins its module to the module declaring that class. A module holding only individuals is not an island. | `tests/hooks/test_ontology_graph_check.py::test_individual_type_bridges_modules` asserts the edge and one component. | requirement | PIPE-GATES | VERIFIED | 296583a3f006 tests/hooks/test_ontology_graph_check.py:271 |
| PIPE-GATES-R016.3 Test-fixture ontologies are outside the corpus Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Test-fixture ontologies are outside the corpus.** A file under any directory whose name ends in `fixture` or `fixtures` is skipped for Medulla and pack sources, by that path rule and not by file name. | `tests/hooks/test_ontology_graph_check.py::test_fixture_dirs_are_excluded` asserts the rule and the filtered Medulla source listing. | requirement | PIPE-GATES | VERIFIED | 296583a3f006 tests/hooks/test_ontology_graph_check.py:282 |
| PIPE-GATES-R016.4 A pack import of Medulla is a finding, never a bridge Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**A pack import of Medulla is a finding, never a bridge.** `owl:imports` joins modules only for Medulla-internal modules; an individual's type likewise bridges Medulla modules only. A pack that imports the Medulla catalog or any ontology a Medulla module declares gets `PACK_IMPORTS_CORE` with file and line. Islands come from class and property edges only. | `tests/hooks/test_ontology_graph_check.py::test_pack_import_of_eg_is_finding_and_not_a_bridge` asserts two components and one finding. | requirement | PIPE-GATES | VERIFIED | 1e870800c5cb tests/hooks/test_ontology_graph_check.py:303 |
| PIPE-GATES-R016.5 Every pack class rolls up to Medulla core Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Every pack class rolls up to Medulla core.** `NOT_ROLLED_UP_TO_CORE` flags a pack class whose `subClassOf`/`equivalentClass` chain never reaches a class declared in a Medulla module; reaching BFO or a pack-local root does not count. It replaces the pack side of `ORPHAN_CLASS`, which stays for Medulla modules. | `tests/hooks/test_ontology_graph_check.py::test_rollup_requires_eg_class_not_bfo_or_pack_root` asserts the flagged set and no pack `ORPHAN_CLASS`. | requirement | PIPE-GATES | VERIFIED | 1e870800c5cb tests/hooks/test_ontology_graph_check.py:315 |
| PIPE-GATES-R016.6 `connector-ontology-map fix` drops imports and stops redeclaration (R1, R2) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**`connector-ontology-map fix` drops imports and stops redeclaration (R1, R2).** The subcommand works on one pack dir (`--pack`, applies unless `--dry-run`) or the fleet (`--fleet`, dry-run only) and patches `.ttl` files only. R1 removes the pack's `owl:imports` of a Medulla ontology. R2 removes a pack's `subClassOf`, label and comment triples for an IRI that Medulla also declares and keeps other pack triples. A rewritten file keeps the prefixes the file declares (a `schema:` prefix stays `schema:`), and the codemod writes no `.ttl` file unless every changed file re-parses as Turtle; otherwise it writes nothing and exits non-zero. | `tests/hooks/test_ontology_codemod.py::test_r1_drops_only_the_eg_import`, `::test_r2_removes_redeclared_parent_label_comment_keeps_rest`, `::test_drop_triples_keeps_schema_org_prefix_and_reparses` and `::test_codemod_refuses_to_write_a_file_that_does_not_reparse`. | requirement | PIPE-GATES | VERIFIED | 1e870800c5cb 6f525f99c1b7 ac14690526b3 tests/hooks/test_ontology_codemod.py:235 tests/hooks/test_ontology_codemod.py:247 tests/hooks/test_ontology_codemod.py:79 tests/hooks/test_ontology_codemod.py:86 |
| PIPE-GATES-R016.7 Roll-up is mechanical, the residue is reviewed (R3, R4, R5) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Roll-up is mechanical, the residue is reviewed (R3, R4, R5).** R3 adds `subClassOf` to the one Medulla class matching a pack class by name, label or `skos:altLabel` (case-insensitive, singularized); an alias shared by two Medulla classes is ambiguous and goes to review. R4 applies the checked-in override table (`ontology_codemod_overrides.json`), which maps pack-local classes onto the Medulla domain-module classes where one fits; a null or non-Medulla target goes to review. R5 only proposes a head-noun parent into the review queue. | `tests/hooks/test_ontology_codemod.py::test_r3_exact_name_singularized_and_r4_override_and_r5_proposal`, `::test_r3_matches_eg_alt_label_and_sends_shared_alias_to_review` and `::test_overrides_map_the_domain_module_classes`. | requirement | PIPE-GATES | VERIFIED | 1e870800c5cb 6f525f99c1b7 tests/hooks/test_ontology_codemod.py:186 tests/hooks/test_ontology_codemod.py:205 tests/hooks/test_ontology_codemod.py:96 |
| PIPE-GATES-R016.8 Mappings and dangling references never invent classes (R6, R7) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Mappings and dangling references never invent classes (R6, R7).** R6 reports a null `ontology_class` whose type name resolves to a declared class, or has none, in the review queue and patches no manifest. R7 rewrites an undeclared IRI to the single declared class or property with the same normalized name and queues the rest. | `tests/hooks/test_ontology_codemod.py::test_r6_report_only_never_patches_manifest` and `::test_r7_rewrites_unique_match_and_queues_the_rest`. | requirement | PIPE-GATES | VERIFIED | 1e870800c5cb tests/hooks/test_ontology_codemod.py:113 tests/hooks/test_ontology_codemod.py:121 |
| PIPE-GATES-R016.9 Untyped properties and the run contract (R8) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Untyped properties and the run contract (R8).** R8 adds a missing domain or range from SHACL shapes and manifest relations only when exactly one candidate exists. Every decision is taken on the original composed graph, so the run is idempotent and independent of input order. The output is per-repo patches, `summary.json` (files and rule counts per repo, findings before and after from a re-run over the patched sources) and `review-queue.json` grouped by repo and rule; `ISOLATED_CLASS` is listed, never fixed. | `tests/hooks/test_ontology_codemod.py::test_r8_infers_only_a_single_candidate`, `::test_idempotent_deterministic_and_projection` and `::test_cli_dry_run_writes_patch_summary_and_queue`. | requirement | PIPE-GATES | VERIFIED | 1e870800c5cb tests/hooks/test_ontology_codemod.py:134 tests/hooks/test_ontology_codemod.py:144 tests/hooks/test_ontology_codemod.py:157 |
| PIPE-GATES-R016.10 Declarations from the retired files (migrate a) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Declarations from the retired files (migrate a).** `connector-ontology-map migrate` writes `<pkg>/connector_sources.py` from the manifest, presets and ingest sources by a fixed template: sorted keys, one `source_meta(tool=...)` per tool (a preset and an ingest source on the same tool merge; the ingest id wins), schema mappings and resources as data. No tool function is edited. A source with no tool, id field or valid id is a blocking review item and nothing is written. | `tests/hooks/test_connector_migrate.py::test_declarations_are_generated_sorted_and_loadable`, `::test_record_type_rule_prefers_tool_noun_then_doc_type` and `::test_unresolvable_preset_is_a_blocking_review_item`. | requirement | PIPE-GATES | VERIFIED | 64c83743091d tests/hooks/test_connector_migrate.py:128 tests/hooks/test_connector_migrate.py:145 tests/hooks/test_connector_migrate.py:152 |
| PIPE-GATES-R016.11 Cut files and packaging (migrate b) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Cut files and packaging (migrate b).** The five cut files and their `pyproject` package-data and `MANIFEST.in` entries are deleted; the certification digests of them are dropped. | `tests/hooks/test_connector_migrate.py::test_cut_files_and_packaging_entries_are_removed` and `::test_manifest_schema_mapping_reads_are_redirected_and_certification_digests_dropped`. | requirement | PIPE-GATES | VERIFIED | 072841d0fc31 tests/hooks/test_connector_migrate.py:163 tests/hooks/test_connector_migrate.py:261 |
| PIPE-GATES-R016.12 Prompts (migrate c) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Prompts (migrate c).** `extends` and `compose` lines are removed from `prompts/*.json`, keeping the file format; a file that does not strip cleanly is a review item. | `tests/hooks/test_connector_migrate.py::test_prompt_extends_and_compose_are_stripped_keeping_format`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_migrate.py:175 tests/hooks/test_connector_migrate.py:176 |
| PIPE-GATES-R016.13 Scion SDK floor and version (migrate e) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Scion SDK floor and version (migrate e).** Every Scion SDK floor below 0.4.1 becomes `>=0.4.1` and the patch version is bumped through the repo's `.bumpversion.cfg` file list; a floor already at 0.4.0 changes nothing. `uv.lock` is refreshed. | `tests/hooks/test_connector_migrate.py::test_sdk_floor_and_patch_bump_follow_the_repo_bump_config` and `::test_floor_already_at_or_above_leaves_version_alone`. | requirement | PIPE-GATES | VERIFIED | e51a658f9189 tests/hooks/test_connector_migrate.py:185 tests/hooks/test_connector_migrate.py:195 |
| PIPE-GATES-R016.14 Tests (migrate f) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Tests (migrate f).** Tests that read the cut files are rewritten by fixed rules (ingest-source and schema-mapping reads go to the generated module) or deleted (manifest, fingerprint and preset tests); every other match goes to the review list unedited. | `tests/hooks/test_connector_migrate.py::test_tests_are_redirected_or_deleted_by_fixed_rules`, `::test_unmatched_test_goes_to_review_unedited` and `::test_mapping_item_access_follows_the_declaration_model` and `::test_connector_name_read_from_the_manifest_uses_the_entry_point_identity` and `::test_scaffolded_parent_import_assertion_is_dropped_because_r1_removes_the_import` (the scaffolded parent-link test no longer asserts the Medulla import that R1 removes). | requirement | PIPE-GATES | VERIFIED | 64c83743091d 65d2cf8bb640 fbcdac36c764 tests/hooks/test_connector_migrate.py:204 tests/hooks/test_connector_migrate.py:216 tests/hooks/test_connector_migrate.py:262 tests/hooks/test_connector_migrate.py:286 tests/hooks/test_connector_migrate.py:298 |
| PIPE-GATES-R016.15 Idempotent hard cutover Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Idempotent hard cutover.** A second run changes nothing and equal inputs give equal output. Any tracked file still naming a cut file is a blocking review item; the exit code is 2 when any blocking item exists. | `tests/hooks/test_connector_migrate.py::test_second_run_is_a_no_op_and_output_is_deterministic`, `::test_leftover_reference_to_a_cut_file_is_blocking` and `::test_cli_writes_the_report_and_exit_code_follows_blocking_items`. | requirement | PIPE-GATES | VERIFIED | 569c0031884d tests/hooks/test_connector_migrate.py:227 tests/hooks/test_connector_migrate.py:240 tests/hooks/test_connector_migrate.py:249 |
| PIPE-GATES-R016.16 Batch driver and verify Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Batch driver and verify.** `scripts/connector_migrate_batch.py` runs worktree, migrate, commit, verify, push, PR, `gates` and squash-merge per repo, 4 in flight at most, with a resumable JSON ledger and `review.json`; `scripts/connector_verify.py` starts the server over stdio and checks `connector://resources`, `ontology://` and `shapes://` and that no `manifest://` alias is served. A test that reads the connector name from the manifest is rewritten to `connector_name()` of the entry-point identity. | `tests/hooks/test_connector_migrate.py``::test_driver_dry_run_migrates_commits_verifies_and_records_the_ledger` and `::test_driver_failure_stops_that_repo_and_lands_in_the_ledger` run the driver on a fixture repo with the external commands stubbed; `::test_driver_applies_a_reviewed_per_repo_patch_after_migrate` covers the reviewed one-off `scripts/connector_migrate_patches/<repo>.patch`, applied after migrate and never a codemod rule. | requirement | PIPE-GATES | VERIFIED | 10797d760f22 3c9520af33c8 64c83743091d 6feb14333fd2 7a345cc4295e tests/hooks/test_connector_migrate.py:1158 tests/hooks/test_connector_migrate.py:372 tests/hooks/test_connector_migrate.py:387 tests/hooks/test_connector_migrate.py:401 tests/hooks/test_connector_migrate.py:408 |
| PIPE-GATES-R016.17 Docs (migrate g) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Docs (migrate g).** In README and docs (`.md`, `.rst`), a line or table row that only names a cut file (a bare bullet, a tree entry with an optional comment, a table row whose first cell is the file) is removed; any other mention stays and is a non-blocking review item. | `tests/hooks/test_connector_migrate.py::test_docs_lines_that_only_name_a_cut_file_are_removed_and_ambiguous_ones_stay` and `::test_migrate_edits_docs_and_leaves_ambiguous_mentions_as_non_blocking_review`. | requirement | PIPE-GATES | VERIFIED | e51a658f9189 tests/hooks/test_connector_migrate.py:466 tests/hooks/test_connector_migrate.py:476 |
| PIPE-GATES-R016.18 Re-bump of a migrated repo Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Re-bump of a migrated repo.** `migrate --rebump` (driver `--rebump`) raises the Scion SDK floor, bumps the patch version through `.bumpversion.cfg` and refreshes the lock, and changes nothing else; a second run changes nothing. | `tests/hooks/test_connector_migrate.py::test_rebump_raises_the_floor_bumps_the_patch_and_touches_nothing_else`. | requirement | PIPE-GATES | VERIFIED | e51a658f9189 tests/hooks/test_connector_migrate.py:486 tests/hooks/test_connector_migrate.py:733 |
| PIPE-GATES-R016.19 Reference strings (migrate f) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Reference strings (migrate f).** In tests, relation and mapping reference assertions follow the live layout: `resources/<C>/relations/<R>` becomes `relations/<C>/<R>`, an `endswith` of `relations/<R>` or `/relations/<R>` becomes `/<R>`, `schema_mappings/` becomes `mappings/`, `manifest:<name>#...` becomes `connector:<name>#...`, `rsplit("/relations/", 1)` becomes `rsplit("/", 1)`, and an Scion SDK floor literal below 0.4.1 becomes 0.4.1; the re-bump applies the same rewrite. | `tests/hooks/test_connector_migrate.py::test_reference_strings_follow_the_live_layout_and_sdk_literals_follow_the_floor` and `::test_rebump_also_points_reference_assertions_at_the_live_layout`. | requirement | PIPE-GATES | VERIFIED | 25a9ac7195f6 2cf12e1a110e tests/hooks/test_connector_migrate.py:562 |
| PIPE-GATES-R016.20 Cut reads in tests (migrate f) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Cut reads in tests (migrate f).** The fleet-name test, with or without the `manifest_path` fallback, asserts `connector_name("<pkg>")` and drops the fingerprint block; a bare string item naming a cut file is removed; a test function that reads a cut file or `manifest://` is deleted whole with its spec ids reported (non-blocking), and a test file left without tests is deleted. | `tests/hooks/test_connector_migrate.py::test_fleet_name_test_with_manifest_path_fallback_reads_connector_name_instead`, `::test_list_items_naming_cut_files_and_test_functions_reading_them_are_deleted` and `::test_migrate_deletes_cut_tests_and_files_left_without_tests`. | requirement | PIPE-GATES | VERIFIED | abd6a72f11b7 tests/hooks/test_connector_migrate.py:537 tests/hooks/test_connector_migrate.py:622 tests/hooks/test_connector_migrate.py:633 |
| PIPE-GATES-R016.21 Source prose and wiring (migrate g) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Source prose and wiring (migrate g).** Docstring, comment and `.ttl` comment mentions of a cut file name `<pkg>.connector_sources`; a `connectors/__init__.py` that is only a docstring gets the fixed docstring; the `manifest_path=` keyword of `ConnectorContent` is removed. | `tests/hooks/test_connector_migrate.py::test_prose_mentions_the_connectors_init_and_manifest_path_follow_the_generated_module`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_migrate.py:644 tests/hooks/test_connector_migrate.py:645 |
| PIPE-GATES-R016.22 Packaging and generator scripts (migrate b) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Packaging and generator scripts (migrate b).** The `source_connector_providers` entry point and comment blocks naming a cut file leave `pyproject.toml`; cut names leave hook `exclude` patterns; `scripts/generate_tool_schemas.py` and `compute_tool_fingerprints.py` (when they name a cut file), the scripts that only drive them, their pre-commit hooks and `<pkg>/connectors/adapters.py` are deleted, and tests importing a deleted module are deleted. | `tests/hooks/test_connector_migrate.py::test_provider_entry_point_hook_alternatives_scripts_and_adapters_go`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_migrate.py:660 tests/hooks/test_connector_migrate.py:661 |
| PIPE-GATES-R016.23 Certification and version targets (migrate b, e) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Certification and version targets (migrate b, e).** `ontology/certification.json` is rewritten in canonical format with the cut digests dropped, whatever its previous format; a version-bump target that does not contain the version string is skipped with a non-blocking review item. | `tests/hooks/test_connector_migrate.py::test_certification_is_canonicalized_then_stripped_and_missing_bump_targets_are_skipped`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_migrate.py:695 tests/hooks/test_connector_migrate.py:696 |
| PIPE-GATES-R016.24 Action tools and list values (migrate a) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Action tools and list values (migrate a).** Without a served-tool list a preset that calls its tool with an `action` is a non-blocking review item (see R016.27); list values inside a source declaration are written as JSON lists, never tuples. | `tests/hooks/test_connector_migrate.py::test_an_action_preset_is_reported_and_lists_in_presets_stay_json_lists`. | requirement | PIPE-GATES | VERIFIED | ac8d6790d275 tests/hooks/test_connector_migrate.py:713 |
| PIPE-GATES-R016.25 Driver isolation and sync Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Driver isolation and sync.** Each repo gets its own `PRE_COMMIT_HOME`; a re-run of a failed repo starts from a clean `origin/main` worktree; the environment is synced again after migrate so the verify run uses the raised Scion SDK; when `--all-extras` cannot build, sync uses the `sync-args` of the repo's own `connector-pr.yml`. | `tests/hooks/test_connector_migrate.py::test_driver_sync_falls_back_to_the_pr_gate_extras_and_each_repo_gets_its_own_pre_commit_home`, `::test_driver_retry_starts_clean_and_resyncs_after_migrate_with_per_repo_envs`. | requirement | PIPE-GATES | VERIFIED | 1abb4303df99 tests/hooks/test_connector_migrate.py:744 tests/hooks/test_connector_migrate.py:773 |
| PIPE-GATES-R016.26 Typed module and test rules Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Typed module and test rules.** The generated `connector_sources.py` is fully type-annotated and already ruff-formatted (`SOURCES`, `SCHEMA_MAPPINGS`, `RESOURCES`, `specs`), so strict mypy and the formatter hook leave it unchanged. Tests: `assert HUB_IRI in imports` is dropped with the hub import; a `>=X.Y.Z` literal on a line naming the Scion SDK is raised to the floor; a test function naming `source_connector_providers` is deleted with its spec ids reported. The leftover scan skips the frozen `validation/` evidence directory, and verify requires `shapes://` only when `ontology/shapes/*.ttl` exists. | `tests/hooks/test_connector_migrate.py::test_generated_module_is_fully_typed_and_test_rules_follow_the_live_layout` and `::test_validation_evidence_is_not_a_leftover_and_verify_needs_shapes_only_with_shape_files`. | requirement | PIPE-GATES | VERIFIED | 16df550a8c49 9667f5c5649c tests/hooks/test_connector_migrate.py:863 tests/hooks/test_connector_migrate.py:884 |
| PIPE-GATES-R016.27 Action tools resolved from the served tool list Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Action tools resolved from the served tool list.** The driver lists the tools the connector serves over stdio before migrate (`connector_served_tools.py`, `--served-tools`). A preset with an `action` becomes the one served tool named `<tool prefix>_<action>[_<rest of tool>]`, `<tool>_<action>` or `<server stem>_<action>[_<tool>]` and drops the `action` argument; zero or several candidates are a blocking review item, never a guess. | `tests/hooks/test_connector_migrate.py::test_an_action_preset_resolves_to_the_one_served_split_tool_else_is_a_blocking_review_item`. | requirement | PIPE-GATES | VERIFIED | 16df550a8c49 aaf473b4312d tests/hooks/test_connector_migrate.py:896 tests/hooks/test_connector_migrate.py:984 |
| PIPE-GATES-R016.28 Changelog entry Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Changelog entry.** A `CHANGELOG.md` with `## [x]` headings gets one fixed entry for the bumped version (Scion SDK floor and declared sources), once; release-version tests pin it. | `tests/hooks/test_connector_migrate.py::test_changelog_gets_one_fixed_entry_for_the_bumped_version`. | requirement | PIPE-GATES | VERIFIED | 16df550a8c49 tests/hooks/test_connector_migrate.py:574 tests/hooks/test_connector_migrate.py:923 |
| PIPE-GATES-R016.29 Driver commit loop and reviewed patches Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Driver commit loop and reviewed patches.** The commit hooks format the allowlist; a failed commit whose hooks changed the tree is re-staged and retried while each attempt changes something (at most 4, a no-change failure is final), runs with the synced venv first on `PATH` and an ignored missing `.env` created from `.env.example`; an earlier commit ahead of `origin/main` is kept, and nothing to stage with nothing ahead is a no-op recorded as merged only when the cut files are absent on `origin/main`. A pytest abort with `Fatal Python error: Illegal instruction` (host CPU lacks an instruction set a wheel needs) is recorded as `local_tests_skipped` and the PR gates run the tests. A reviewed `<repo>.pre.patch` applies before migrate (`<repo>.patch` still after), both with `git apply --recount` because the whitespace hooks trim blank context lines of a stored patch. | `tests/hooks/test_connector_migrate.py::test_commit_restages_after_a_formatter_hook_stops_when_nothing_changes_and_reports_noop`. | requirement | PIPE-GATES | VERIFIED | 16df550a8c49 27ead1c901f9 aaf473b4312d tests/hooks/test_connector_migrate.py:947 |
| PIPE-GATES-R016.30 Mapping reads in tests Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Mapping reads in tests.** `schema_mappings[<key>]["ontology_class"]` and `["fields"]` on the generated declaration become attribute reads (the declaration's mappings are models). | `tests/hooks/test_connector_migrate.py::test_mapping_subscripts_on_the_declaration_become_attribute_reads`. | requirement | PIPE-GATES | VERIFIED | aaf473b4312d tests/hooks/test_connector_migrate.py:996 |
| PIPE-GATES-R016.31 Scripts that drive a deleted script Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Scripts that drive a deleted script.** The scripts deleted with the cut generators are found to a fixed point (a driver sorting before the script it imports is deleted too) and by module stem as well as file name, so a test importing `from scripts import <deleted>` is deleted with the module-level import it cannot run. | `tests/hooks/test_connector_migrate.py::test_scripts_driving_a_deleted_script_go_to_a_fixed_point_and_tests_importing_them_are_deleted`. | requirement | PIPE-GATES | VERIFIED | 12a4ba5cbca4 tests/hooks/test_connector_migrate.py:1008 |
| PIPE-GATES-R016.32 Prompt key assertions Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Prompt key assertions.** `assert x["extends"] == ...`, `assert x["compose"] == ...` and `assert "extends" in x` are dropped from tests, because the prompt no longer carries the stripped keys. | `tests/hooks/test_connector_migrate.py::test_assertions_on_the_stripped_prompt_keys_are_dropped`. | requirement | PIPE-GATES | VERIFIED | 12a4ba5cbca4 tests/hooks/test_connector_migrate.py:1032 |
| PIPE-GATES-R016.33 Package name from `pyproject.toml` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Package name from `pyproject.toml`.** The startup-test form that derives the package from the checkout directory name (`.parent.parent.name.replace("-", "_")`) reads `[project].name` instead, so it passes in any worktree directory. | `tests/hooks/test_connector_migrate.py::test_a_startup_test_reads_the_package_name_from_pyproject_not_the_checkout_directory`. | requirement | PIPE-GATES | VERIFIED | 12a4ba5cbca4 tests/hooks/test_connector_migrate.py:1044 |
| PIPE-GATES-R016.34 Empty-source module and file endings Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Empty-source module and file endings.** A connector declaring no source gets `SOURCES: tuple[Any, ...] = ()` and no `source_meta` import (the formatter and ruff leave it unchanged); a test file left by deleting cut tests ends with exactly one newline. | `tests/hooks/test_connector_migrate.py::test_a_connector_without_sources_renders_an_import_free_empty_tuple_and_cut_tests_leave_no_trailing_blank_lines`. | requirement | PIPE-GATES | VERIFIED | 12a4ba5cbca4 tests/hooks/test_connector_migrate.py:1070 |
| PIPE-GATES-R016.35 Hooks a connector's own workflow covers Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Hooks a connector's own workflow covers.** `connector_pr_pipeline.yml` takes a `skip-hooks` input (default `docker-compose-check`); a connector whose hook cannot run on a hosted runner passes it there. The hosted PR gate installs the pinned dupehound itself (R016.40). The reviewed `webarchiver.patch` skips `scanner-versions`. | `tests/test_connector_release_pipeline.py::test_connector_pr_workflow_forwards_skip_hooks_and_the_webarchiver_patch_skips_the_scanner_hook`. | requirement | PIPE-GATES | VERIFIED | 12a4ba5cbca4 tests/test_connector_release_pipeline.py:100 |
| PIPE-GATES-R016.36 Entity ids are validated strings Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Entity ids are validated strings.** In package source, `Entity(id=r.get("id"), node_type=r.get("node_type"), ...)` (typed `Any \| None`, while Scion SDK 0.4 requires `str`) reads both through one `_required_text` helper that raises `ValueError` for a missing or empty value; the comment saying validation is left to the Scion SDK goes with it. | `tests/hooks/test_connector_migrate.py::test_entity_ids_read_with_get_become_validated_strings`. | requirement | PIPE-GATES | VERIFIED | 2e3dfbb4af02 9a1fb34a84ee tests/hooks/test_connector_migrate.py:1091 |
| PIPE-GATES-R016.37 Provider entry point under either group Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Provider entry point under either group.** The source-provider entry-point table is dropped whether it sits under `agent_connector_sdk.` or `agent_utilities.source_connector_providers`. | `tests/hooks/test_connector_migrate.py::test_the_source_provider_entry_point_is_dropped_under_either_group`. | requirement | PIPE-GATES | VERIFIED | 9a1fb34a84ee tests/hooks/test_connector_migrate.py:1117 |
| PIPE-GATES-R016.38 Illegal-instruction detection Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Illegal-instruction detection.** The driver looks for the `Fatal Python error: Illegal instruction` header in the full pytest output, not in the 2000-character tail kept in the ledger, so a crash dump that pushes the header out of the tail is still recorded as `local_tests_skipped`. | `tests/hooks/test_connector_migrate.py::test_an_illegal_instruction_abort_is_found_in_the_full_output_not_the_cut_tail`. | requirement | PIPE-GATES | VERIFIED | 9a1fb34a84ee tests/hooks/test_connector_migrate.py:1128 |
| PIPE-GATES-R016.39 Ontology artifacts are generated at release, not committed Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ontology artifacts are generated at release, not committed.** `pipelines-connector generate` writes `<pkg>/ontology/shapes/connector.shacl.ttl` (one `<Class>GovernanceShape` per `:Class a owl:Class` of `<pkg>/ontology/<ontology_source>.ttl`, sorted, or `[tool.pipelines.ontology] shape_classes`) and `<pkg>/ontology/certification.json` (SHA-256 digests of the committed artifacts and the generated shapes, fixed compatibility, `validated_at` from `SOURCE_DATE_EPOCH` or the last commit time) into the build tree; the same inputs give the same bytes. `python_pipeline.yml` takes `connector` and runs it before the wheel is built; `connector-files` fails a tracked copy of either file. | `tests/hooks/test_connector_central.py::test_generate_is_deterministic_and_derives_shapes_from_declared_classes`, `::test_generate_honours_the_shape_classes_override_and_refuses_a_missing_source` and `::test_python_release_workflow_generates_before_the_build`. | requirement | PIPE-GATES | VERIFIED | 5ff231c270b1 tests/hooks/test_connector_central.py:388 tests/hooks/test_connector_central.py:408 tests/hooks/test_connector_central.py:419 |
| PIPE-GATES-R016.40 The connector PR gate runs dupehound Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**The connector PR gate runs dupehound.** `connector_pr_pipeline.yml` passes `scanners: dupehound` to `gates_pipeline.yml`, which builds the pinned dupehound with `scripts/install_scanners.sh <root> dupehound` (cached on the installer) and puts it on PATH before the hooks, so `dupehound-changed` runs instead of failing closed. The installer builds and prints only the named scanners; with none named it installs all four. | `tests/hooks/test_connector_central.py::test_connector_pr_workflow_builds_the_pinned_dupehound_instead_of_skipping_it` and `::test_scanner_installer_installs_only_the_named_scanners`. | requirement | PIPE-GATES | VERIFIED | 5ff231c270b1 tests/hooks/test_connector_central.py:491 tests/hooks/test_connector_central.py:520 |
| PIPE-GATES-R016.41 The repo-local version hook leaves the connector (migrate e) Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**The repo-local version hook leaves the connector (migrate e).** The migrate codemod removes the `check-bumpversion` hook from `.pre-commit-config.yaml`, because `pipelines-connector version` owns the version and the PR runner has no `bump2version`; the other hooks stay, and the version bump through `.bumpversion.cfg` is unchanged until the central-config pass removes that file. A second run changes nothing. | `tests/hooks/test_connector_migrate.py::test_repo_local_check_bumpversion_hook_is_removed_and_the_rest_stays`. | requirement | PIPE-GATES | VERIFIED | 8ac2fce8e6c1 tests/hooks/test_connector_migrate.py:1137 |
| PIPE-GATES-R016.42 The connector PR gate installs the identity catalog from the caller's variable Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**The connector PR gate installs the identity catalog from the caller's variable.** `connector_pr_pipeline.yml`'s setup command writes the caller's `PROHIBITED_IDENTITY_CATALOG` Actions variable (passed to the setup step by `gates_pipeline.yml`) to `~/.config/agent-utilities/governance/prohibited-identities.json` before the project sync, the way the core repositories' CI does. The `tracked-privacy` member of the `secrets` hook stays fail-closed: a caller without the variable fails with `CANNOT RUN`, and no skip is offered. | `tests/hooks/test_connector_central.py::test_connector_pr_workflow_installs_the_identity_catalog_from_the_callers_variable_and_stays_fail_closed`. | requirement | PIPE-GATES | VERIFIED | 89e96300d187 tests/hooks/test_connector_central.py:505 |
| PIPE-GATES-R016.43 Home paths are case-sensitive path segments Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Home paths are case-sensitive path segments.** `tracked-privacy` flags `/home/<name>/` and `/Users/<name>/` (and `/mnt/<drive>/Users/<name>/`) only with that exact case, and Windows drive paths (`C:\Users\<name>`) in any case; a lowercase `/users/me/` API route is not a home path. A stand-in account from the documented list still passes. | `tests/hooks/test_privacy.py::test_privacy_ignores_a_lowercase_users_api_route` and `::test_privacy_still_fires_on_real_home_paths`. | requirement | PIPE-GATES | VERIFIED | a40c555e675c tests/hooks/test_privacy.py:32 tests/hooks/test_privacy.py:38 |
| PIPE-GATES-R016.44 The connector repository set is the workspace manifest's `agents` group intersected with the non-archived GitHub repositories Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**The connector repository set is the workspace manifest's `agents` group intersected with the non-archived GitHub repositories.** The batch driver and the census build their repository list from `workspace.yml` and `gh repo list --no-archived`; local checkout directories are never the source, an archived or unlisted repository is excluded, and an explicit repository list is filtered the same way. | `tests/hooks/test_connector_central_fleet.py::test_the_set_is_the_agents_group_of_the_manifest` and `::test_an_archived_repository_is_excluded_and_an_unlisted_local_checkout_never_enters`. | requirement | PIPE-GATES | VERIFIED | 313d63c9dbce 7b82e010533f tests/hooks/test_connector_central_fleet.py:32 tests/hooks/test_connector_central_fleet.py:37 |
| PIPE-GATES-R016.50 Wave 1 (Scion SDK 0.5) rule `w1.g1` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g1`.** `connector-ontology-map migrate --central`: entry point value names `<pkg>:connector`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_order_lists_every_wave1_rule_and_all_are_registered`, `::test_g1_entry_point_names_the_connector_value`, `::test_g1_tests_asserting_the_entry_point_table_follow_the_connector_value`, `::test_g1_unmatched_value_goes_to_review_and_unreviewed_bootstrap_is_untouched`. | requirement | PIPE-GATES | VERIFIED | 16bb950f6cf8 8e8272f805dd tests/hooks/test_connector_central_wave1.py:276 tests/hooks/test_connector_central_wave1.py:284 tests/hooks/test_connector_central_wave1.py:294 tests/hooks/test_connector_central_wave1.py:311 |
| PIPE-GATES-R016.51 Wave 1 (Scion SDK 0.5) rule `w1.g2` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g2`.** `connector-ontology-map migrate --central`: console script becomes `agent_connector_sdk.cli:serve`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_g2_console_script_becomes_serve`, `::test_g2_unknown_script_value_is_reviewed`. | requirement | PIPE-GATES | VERIFIED | 30ef5ecba1fc 39e835a22c93 tests/hooks/test_connector_central_wave1.py:1521 tests/hooks/test_connector_central_wave1.py:326 tests/hooks/test_connector_central_wave1.py:336 |
| PIPE-GATES-R016.52 Wave 1 (Scion SDK 0.5) rule `w1.g3` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g3`.** `connector-ontology-map migrate --central`: `mcp_server.py` bootstrap is deleted and its values extracted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_g3_clusters.py::test_dispatch_with_a_stdio_fallback_else_is_the_sdk_run_loop`, `::test_dispatch_with_extra_stderr_banner_lines_and_an_error_exit`, `::test_dispatch_serving_a_subset_declares_the_transports`, `::test_dispatch_that_changes_what_a_transport_does_is_refused`, `::test_tools_module_imported_from_the_package_becomes_a_dotted_tools_value`, `::test_tools_module_that_is_not_a_package_module_is_refused`, `::test_surface_without_client_declares_no_api`, `::test_verbose_targets_computed_from_the_configuration_is_refused`, `::test_verbose_targets_from_a_function_that_reads_nothing_moves_to_import_time`, `::test_computed_client_class_stays_in_review`, `::test_registrars_become_discovery_of_the_module_namespace`, `::test_registrars_with_another_register_function_in_the_module_are_refused`, `::test_literal_tool_registry_with_derived_tags_is_expressed_as_discovery`, `::test_imported_tool_registry_with_derived_tags_names_that_module`, `::test_manifest_becomes_the_first_verbose_target`, `::test_manifest_keeps_the_given_verbose_targets_after_the_main_client`, `::test_logging_that_reads_anything_else_stays_in_review`, `::test_inert_openapi_import_block_and_its_dead_lists_are_deleted`, `::test_openapi_block_under_a_different_condition_stays_in_review`, `::test_constant_health_payload_with_headers_is_deleted`, `::test_hand_built_server_names_the_registration_context_adapter_to_write`, `::test_comment_mentioning_get_mcp_instance_in_another_module_does_not_block`, `::test_code_using_get_mcp_instance_in_another_module_still_blocks`, `::test_imported_function_called_with_the_server_gets_a_registration_context_adapter`, `::test_server_and_args_must_come_first_in_the_returned_tuple`, `::test_omitted_tools_module_is_not_defaulted_to_mcp_server`, `::test_omitted_tools_module_with_a_package_tools_module_is_refused`, `::test_g3_accepts_forwarded_command_args_and_delegates_the_build_server_wrapper`, `::test_g3_refuses_a_wrapper_that_does_more_than_return_the_server`, `::test_options_dispatch_is_the_sdk_run_loop`, `::test_instructions_variable_and_argv_isolation_are_the_sdk_defaults`, `::test_bootstrap_in_a_second_module_is_extracted_and_the_wrapper_loses_the_reexport`, `::test_g3_deletes_a_main_guard_that_skips_under_pytest`, `::test_tool_registry_with_a_hyphenated_tag_becomes_connector_tool_registry`, `::test_literal_registry_written_in_the_bootstrap_is_inlined`, `::test_imported_registry_with_underived_tags_becomes_a_tuple_of_the_import`, `::test_registry_that_is_not_a_literal_stays_refused`, `::test_register_split_action_tools_becomes_action_tools_and_prefixes`, `::test_action_split_module_stays_when_a_test_still_imports_it`, `::test_serve_action_tools_in_a_tags_guard_and_a_surface_free_bootstrap`, `::test_action_registration_without_a_tool_surface_declares_no_client`, `::test_action_registration_from_outside_the_package_is_refused`, `::test_inline_tools_are_hoisted_and_declared`, `::test_inline_tool_that_reads_the_server_is_refused`, `::test_inline_tool_calling_another_inline_tool_is_refused`, `::test_health_route_that_probes_the_backend_becomes_readiness`, `::test_ready_route_becomes_readiness_beside_the_plain_health_route`, `::test_two_backend_probes_are_refused`, `::test_other_custom_route_becomes_a_declared_route`, `::test_route_with_other_custom_route_keywords_is_refused`, `::test_local_one_parameter_registration_takes_the_registration_context`, `::test_local_registration_function_used_elsewhere_gets_an_adapter_instead`, `::test_calls_with_other_arguments_become_one_register_extras`, `::test_extra_call_reading_a_bootstrap_local_is_refused`, `::test_registration_before_the_tool_surface_is_refused`, `::test_content_that_restates_the_convention_is_dropped`, `::test_content_under_a_subdirectory_becomes_content_root`, `::test_content_under_another_connector_name_is_noted_for_review`, `::test_content_that_is_not_the_package_directory_is_refused`, `::test_discovered_registrars_stay_listed_so_the_unused_import_tidy_keeps_them`, `tests/hooks/test_connector_central_wave1.py::test_g3_bootstrap_is_deleted_and_only_its_imports_are_pruned`, `tests/hooks/test_connector_central_wave1.py::test_g3_registration_beyond_the_plain_surface_goes_to_review_untouched`, `tests/hooks/test_connector_central_wave1.py::test_g3_known_os_environ_lines_are_dropped_with_a_non_blocking_note`, `tests/hooks/test_connector_central_wave1.py::test_g3_any_other_os_environ_key_or_value_stays_blocking`, `tests/hooks/test_connector_central_wave1.py::test_g3_registered_tags_assignment_and_tags_banner_are_deleted_with_the_bootstrap`, `tests/hooks/test_connector_central_wave1.py::test_g3_registered_tags_used_outside_the_bootstrap_stays_blocking`, `tests/hooks/test_connector_central_wave1.py::test_g3_bare_local_function_call_becomes_extra_registrations_in_source_order`, `tests/hooks/test_connector_central_wave1.py::test_g3_bare_call_outside_the_allowed_set_stays_blocking`, `tests/hooks/test_connector_central_wave1.py::test_g3_bare_call_before_the_surface_registration_stays_blocking`, `tests/hooks/test_connector_central_wave1.py::test_g3_version_banner_goes_with_the_version_and_k1_no_longer_blocks`, `tests/hooks/test_connector_central_wave1.py::test_g3_version_banner_is_kept_when_the_version_is_read_elsewhere`, `tests/hooks/test_connector_central_wave1.py::test_g3_copies_surface_keywords_and_a_module_constant_instructions`, `tests/hooks/test_connector_central_wave1.py::test_g3_manifest_keyword_is_reviewed`. | requirement | PIPE-GATES | VERIFIED | 56a34a613573 cc72dc4172bc tests/hooks/test_connector_central_g3_clusters.py:1004 tests/hooks/test_connector_central_g3_clusters.py:1020 tests/hooks/test_connector_central_g3_clusters.py:1039 tests/hooks/test_connector_central_g3_clusters.py:1060 tests/hooks/test_connector_central_g3_clusters.py:1069 |
| PIPE-GATES-R016.53 Wave 1 (Scion SDK 0.5) rule `w1.g4` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g4`.** `connector-ontology-map migrate --central`: package `__init__.py` declares `connector = Connector(...)`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_g3_clusters.py::test_g4_deletes_the_tests_that_import_the_scaffold_helpers`, `::test_g4_keeps_the_scaffold_when_a_read_sits_outside_a_test`, `::test_g4_deletes_tests_that_read_the_package_through_the_scaffold`, `::test_g4_deletes_a_test_file_whose_every_test_is_scaffold_only`, `::test_g4_keeps_a_scaffold_only_file_that_another_file_imports`, `::test_g4_does_not_repeat_the_g3_reason_when_there_is_nothing_to_extract`, `tests/hooks/test_connector_central_wave1.py::test_g4_init_declares_the_connector`, `tests/hooks/test_connector_central_wave1.py::test_g4_without_an_extractable_bootstrap_is_reviewed`. | requirement | PIPE-GATES | VERIFIED | 12874ccce7f9 tests/hooks/test_connector_central_g3_clusters.py:538 tests/hooks/test_connector_central_g3_clusters.py:557 tests/hooks/test_connector_central_g3_clusters.py:573 tests/hooks/test_connector_central_g3_clusters.py:594 tests/hooks/test_connector_central_g3_clusters.py:612 |
| PIPE-GATES-R016.54 Wave 1 (Scion SDK 0.5) rule `w1.g5` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g5`.** `connector-ontology-map migrate --central`: `__main__.py` calls `run()`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_g3_clusters.py::test_g5_main_with_a_docstring_and_future_import_is_the_plain_entry`, `tests/hooks/test_connector_central_wave1.py::test_g5_main_calls_run`, `tests/hooks/test_connector_central_wave1.py::test_g5_main_that_runs_the_mcp_server_in_another_way_is_reviewed`, `tests/hooks/test_connector_central_wave1.py::test_g5_main_that_runs_the_package_cli_is_left_alone`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_g3_clusters.py:492 tests/hooks/test_connector_central_g3_clusters.py:493 tests/hooks/test_connector_central_wave1.py:628 tests/hooks/test_connector_central_wave1.py:639 tests/hooks/test_connector_central_wave1.py:649 |
| PIPE-GATES-R016.55 Wave 1 (Scion SDK 0.5) rule `w1.g6` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g6`.** `connector-ontology-map migrate --central`: the repo's own `/health` route is deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_g6_health_route_is_deleted_with_the_bootstrap`, `::test_g6_stray_health_route_elsewhere_is_reported`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_wave1.py:570 tests/hooks/test_connector_central_wave1.py:571 tests/hooks/test_connector_central_wave1.py:579 |
| PIPE-GATES-R016.56 Wave 1 (Scion SDK 0.5) rule `w1.g7` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.g7`.** `connector-ontology-map migrate --central`: tests importing deleted bootstrap functions are deleted or reviewed. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_g7_test_calling_the_deleted_entry_point_is_deleted`, `::test_g7_three_tuple_unpack_becomes_build_server_in_a_function`, `::test_g7_args_are_kept_when_read_and_the_old_tags_slot_is_dropped`, `::test_g7_star_target_and_module_level_unpack`, `::test_g7_other_names_in_the_import_are_kept`, `::test_g7_test_reading_middlewares_is_deleted_with_a_non_blocking_item`, `::test_g7_patching_tests_are_deleted_one_by_one_and_unused_imports_pruned`, `::test_g7_class_loses_its_unexpressible_methods_and_goes_when_none_are_left`, `::test_g7_a_docstring_or_comment_naming_the_function_is_not_a_use`, `::test_g7_module_attribute_call_becomes_build_server_and_the_dead_import_goes`, `::test_g7_subscript_of_the_result_and_a_literal_argv_patch`, `::test_g7_other_uses_of_the_result_are_refused_untouched`, `::test_g7_orphaned_fixture_is_pruned_but_a_fixture_use_blocks`, `::test_g7_module_level_use_next_to_a_test_use_keeps_the_file_untouched`, `::test_g7_deleting_tests_is_idempotent`, `::test_g7_rewrite_is_idempotent_and_leaves_no_stale_import`, `::test_g7_with_k1_and_k4_a_package_version_assert_leaves_nothing_blocking`, `::test_g7_scaffold_test_is_left_to_rule_h`. | requirement | PIPE-GATES | VERIFIED | 313d63c9dbce 74ad5d0baab0 tests/hooks/test_connector_central_wave1.py:670 tests/hooks/test_connector_central_wave1.py:682 tests/hooks/test_connector_central_wave1.py:694 tests/hooks/test_connector_central_wave1.py:706 tests/hooks/test_connector_central_wave1.py:719 |
| PIPE-GATES-R016.57 Wave 1 (Scion SDK 0.5) rule `w1.h` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.h`.** `connector-ontology-map migrate --central`: scaffold tests and conftest env lines are deleted by fingerprint. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_h_scaffold_test_matching_a_fingerprint_is_deleted`, `::test_h_unmatched_file_is_left_and_reported_with_its_hash`, `::test_h_ontology_parent_link_with_pending_entries_is_reviewed`, `::test_h_conftest_env_line_only_file_is_deleted_and_fixture_conftest_keeps_its_fixtures`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_wave1.py:1325 tests/hooks/test_connector_central_wave1.py:1326 tests/hooks/test_connector_central_wave1.py:1338 tests/hooks/test_connector_central_wave1.py:1350 tests/hooks/test_connector_central_wave1.py:1369 |
| PIPE-GATES-R016.58 Wave 1 (Scion SDK 0.5) rule `w1.k1` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.k1`.** `connector-ontology-map migrate --central`: `__version__` assignments are deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_fixes7b.py::test_k1_a_non_test_module_reading_the_version_through_an_alias_is_reviewed`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_in_module_readers_use_installed_metadata`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_reader_in_a_module_that_binds_the_alias_uses_another_alias`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_assigned_elsewhere_is_reviewed`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_import_of_version_with_author_and_credits`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_test_attribute_reads_use_installed_metadata`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_non_test_attribute_read_is_reviewed`, `tests/hooks/test_connector_central_i1_clusters.py::test_k1_test_reading_all_that_lists_version_is_reviewed`, `tests/hooks/test_connector_central_wave1.py::test_k1_version_assignments_are_deleted`, `tests/hooks/test_connector_central_wave1.py::test_k1_version_still_read_in_the_module_is_reviewed`, `tests/hooks/test_connector_central_wave1.py::test_k1_connector_importer_gets_metadata_version`, `tests/hooks/test_connector_central_wave1.py::test_k1_test_importer_with_other_use_is_reviewed`. | requirement | PIPE-GATES | VERIFIED | efa9b98ace15 tests/hooks/test_connector_central_fixes7b.py:34 tests/hooks/test_connector_central_fixes7b.py:63 tests/hooks/test_connector_central_i1_clusters.py:209 tests/hooks/test_connector_central_i1_clusters.py:221 tests/hooks/test_connector_central_i1_clusters.py:230 |
| PIPE-GATES-R016.59 Wave 1 (Scion SDK 0.5) rule `w1.k2` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.k2`.** `connector-ontology-map migrate --central`: `.bumpversion.cfg` reduced (then deleted by n). A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_k2_bumpversion_reduced_to_pyproject_only`, `::test_k2_without_pyproject_section_is_reviewed`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_wave1.py:981 tests/hooks/test_connector_central_wave1.py:982 tests/hooks/test_connector_central_wave1.py:993 |
| PIPE-GATES-R016.60 Wave 1 (Scion SDK 0.5) rule `w1.k3` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.k3`.** `connector-ontology-map migrate --central`: README package-version lines are deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_k3_readme_package_version_line_is_deleted`, `::test_k3_prose_mentions_are_left`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_wave1.py:1003 tests/hooks/test_connector_central_wave1.py:1004 tests/hooks/test_connector_central_wave1.py:1015 |
| PIPE-GATES-R016.61 Wave 1 (Scion SDK 0.5) rule `w1.k4` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.k4`.** `connector-ontology-map migrate --central`: `__version__` assertions in tests are deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_fixes7b.py::test_k4_version_tests_left_with_only_dead_setup_are_deleted_and_noted`, `::test_k4_keeps_other_tests_and_drops_only_the_setup_that_fed_the_assertion`, `::test_k4_keeps_assignments_with_side_effects_or_later_reads`, `tests/hooks/test_connector_central_i1_clusters.py::test_k4_presence_checks_of_version_are_deleted`, `tests/hooks/test_connector_central_i1_clusters.py::test_k4_class_left_without_tests_is_deleted`, `tests/hooks/test_connector_central_wave1.py::test_k4_version_assertions_are_deleted`, `tests/hooks/test_connector_central_wave1.py::test_k4_other_comparisons_are_left`, `tests/hooks/test_connector_central_wave1.py::test_k4_not_none_and_bare_version_asserts_are_deleted`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_fixes7b.py:147 tests/hooks/test_connector_central_fixes7b.py:148 tests/hooks/test_connector_central_fixes7b.py:157 tests/hooks/test_connector_central_fixes7b.py:171 tests/hooks/test_connector_central_i1_clusters.py:316 |
| PIPE-GATES-R016.62 Wave 1 (Scion SDK 0.5) rule `w1.i1` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.i1`.** `connector-ontology-map migrate --central`: `connector_sources.declaration()` is deleted and call sites use `load_declaration`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_i1_clusters.py::test_i1_typed_declaration_cluster_is_migrated`, `::test_i1_typed_declaration_without_docstring_is_migrated`, `::test_i1_typed_declaration_with_package_call_sites`, `::test_i1_nested_import_keeps_its_indentation`, `tests/hooks/test_connector_central_wave1.py::test_i1_declaration_is_deleted_and_call_sites_use_load_declaration`, `tests/hooks/test_connector_central_wave1.py::test_i1_module_attribute_and_connector_constant_users_are_rewritten`, `tests/hooks/test_connector_central_wave1.py::test_i1_modified_declaration_body_is_reviewed`, `tests/hooks/test_connector_central_wave1.py::test_i1_callable_passed_around_is_reviewed_untouched`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_i1_clusters.py:121 tests/hooks/test_connector_central_i1_clusters.py:122 tests/hooks/test_connector_central_i1_clusters.py:136 tests/hooks/test_connector_central_i1_clusters.py:144 tests/hooks/test_connector_central_i1_clusters.py:156 |
| PIPE-GATES-R016.63 Wave 1 (Scion SDK 0.5) rule `w1.i2` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.i2`.** `connector-ontology-map migrate --central`: identical schema-mapping field dicts become `FIELD_SETS`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_i1_clusters.py::test_i1_then_i2_groups_the_shared_fields_of_an_annotated_module`, `tests/hooks/test_connector_central_wave1.py::test_i2_identical_field_dicts_become_field_sets`, `tests/hooks/test_connector_central_wave1.py::test_i2_without_repeated_dicts_or_literals_nothing_changes`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_i1_clusters.py:179 tests/hooks/test_connector_central_i1_clusters.py:180 tests/hooks/test_connector_central_wave1.py:1102 tests/hooks/test_connector_central_wave1.py:1124 |
| PIPE-GATES-R016.64 Wave 1 (Scion SDK 0.5) rule `w1.l1` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.l1`.** `connector-ontology-map migrate --central`: conventional provider entry-point tables are deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_l1_conventional_provider_tables_and_their_comment_are_deleted`, `::test_l1_non_conventional_value_stays_and_is_reviewed`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_wave1.py:1141 tests/hooks/test_connector_central_wave1.py:1142 tests/hooks/test_connector_central_wave1.py:1153 |
| PIPE-GATES-R016.65 Wave 1 (Scion SDK 0.5) rule `w1.l2` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.l2`.** `connector-ontology-map migrate --central`: empty content `__init__.py` markers are deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_l2_empty_marker_deleted_when_package_data_covers_the_content`, `::test_l2_missing_package_data_glob_is_added`, `::test_l2_non_empty_marker_is_kept`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_wave1.py:1166 tests/hooks/test_connector_central_wave1.py:1174 tests/hooks/test_connector_central_wave1.py:1186 |
| PIPE-GATES-R016.66 Wave 1 (Scion SDK 0.5) rule `w1.l3` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.l3`.** `connector-ontology-map migrate --central`: the lazy-import scaffold is deleted from `__init__.py`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_wave1.py::test_l3_tests_asserting_the_deleted_scaffold_are_deleted`, `::test_l3_scaffold_is_deleted_with_the_connector_and_test_imports_follow`, `::test_l3_unresolvable_name_keeps_the_scaffold_and_is_reviewed`, `::test_l3_scaffold_with_extra_code_is_not_deleted`, `::test_l3_scaffold_survives_when_the_bootstrap_was_not_migrated`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_wave1.py:1196 tests/hooks/test_connector_central_wave1.py:1197 tests/hooks/test_connector_central_wave1.py:1216 tests/hooks/test_connector_central_wave1.py:1228 tests/hooks/test_connector_central_wave1.py:1238 |
| PIPE-GATES-R016.67 Wave 1 (Scion SDK 0.5) rule `w1.l4` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Wave 1 (Scion SDK 0.5) rule `w1.l4`.** `connector-ontology-map migrate --central`: Scion SDK floor, merged extras and dropped one-element extras. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_fixes7b.py::test_l4_extras_of_a_dropped_one_element_extra_move_to_the_pin`, `tests/hooks/test_connector_central_wave1.py::test_l4_sdk_floor_merged_extras_and_dropped_one_element_extras`, `tests/hooks/test_connector_central_wave1.py::test_l4_pin_uses_base_sdk_pin_for_the_plain_mcp_extra`, `tests/hooks/test_connector_central_wave1.py::test_l4_multi_element_extra_stays_and_missing_dependency_is_reviewed`, `tests/hooks/test_connector_central_wave1.py::test_l4_an_all_extra_naming_the_deleted_mcp_extra_is_dropped_with_it`, `tests/hooks/test_connector_central_wave1.py::test_l4_repairs_an_already_migrated_repo_whose_all_extra_dangles`. | requirement | PIPE-GATES | VERIFIED | a879bf2fe9bb ac8367c08c89 cd9696207d4c db468196e870 f4b1cc173371 tests/hooks/test_connector_central_fixes7b.py:110 tests/hooks/test_connector_central_wave1.py:1259 tests/hooks/test_connector_central_wave1.py:1270 tests/hooks/test_connector_central_wave1.py:1280 tests/hooks/test_connector_central_wave1.py:1295 |
| PIPE-GATES-R016.68 Auth standardization rule `auth.r1` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r1`.** `connector-ontology-map migrate --central`: static bearer token declaration. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r1_bearer_rewrite`, `::test_r1_unmatched_shape_goes_to_review_untouched`, `::test_no_scheme_rule_is_one_review_item`, `::test_second_run_changes_nothing`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:123 tests/hooks/test_connector_central_auth.py:124 tests/hooks/test_connector_central_auth.py:133 tests/hooks/test_connector_central_auth.py:457 tests/hooks/test_connector_central_auth.py:474 |
| PIPE-GATES-R016.69 Auth standardization rule `auth.r2` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r2`.** `connector-ontology-map migrate --central`: API key in a fixed header declaration. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r2_api_key_header_rewrite`, `::test_r2_authorization_token_prefix_and_extra_setting_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:146 tests/hooks/test_connector_central_auth.py:147 tests/hooks/test_connector_central_auth.py:155 |
| PIPE-GATES-R016.70 Auth standardization rule `auth.r3` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r3`.** `connector-ontology-map migrate --central`: API key in a query parameter declaration. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r3_api_key_query_rewrite`, `::test_r3_default_url_goes_to_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:171 tests/hooks/test_connector_central_auth.py:172 tests/hooks/test_connector_central_auth.py:180 |
| PIPE-GATES-R016.71 Auth standardization rule `auth.r4` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r4`.** `connector-ontology-map migrate --central`: basic user and password declaration. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r4_basic_rewrite`, `::test_r4_and_r11_evidence_is_several_rules`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:198 tests/hooks/test_connector_central_auth.py:199 tests/hooks/test_connector_central_auth.py:207 |
| PIPE-GATES-R016.72 Auth standardization rule `auth.r5` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r5`.** `connector-ontology-map migrate --central`: client credentials declaration. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r5_client_credentials_rewrite`, `::test_r5_without_a_literal_token_url_goes_to_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:227 tests/hooks/test_connector_central_auth.py:228 tests/hooks/test_connector_central_auth.py:241 |
| PIPE-GATES-R016.73 Auth standardization rule `auth.r6` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r6`.** `connector-ontology-map migrate --central`: refresh token declaration. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r6_refresh_token_rewrite`, `::test_r6_two_token_urls_go_to_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:259 tests/hooks/test_connector_central_auth.py:260 tests/hooks/test_connector_central_auth.py:273 |
| PIPE-GATES-R016.74 Auth standardization rule `auth.r7` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r7`.** `connector-ontology-map migrate --central`: per-thread delegation holder is deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r7_delegation_holder_is_review_with_delegation_proposal`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_auth.py:299 |
| PIPE-GATES-R016.75 Auth standardization rule `auth.r8` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r8`.** `connector-ontology-map migrate --central`: delegation wrappers are deleted for `delegation=True`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r8_delegation_wrappers_are_review`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_auth.py:308 |
| PIPE-GATES-R016.76 Auth standardization rule `auth.r9` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r9`.** `connector-ontology-map migrate --central`: resolved TLS profile becomes `tls="<name>"`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r9_tls_profile_becomes_tls_name`, `::test_r9_missing_tls_profile_is_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:318 tests/hooks/test_connector_central_auth.py:319 tests/hooks/test_connector_central_auth.py:327 |
| PIPE-GATES-R016.77 Auth standardization rule `auth.r10` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r10`.** `connector-ontology-map migrate --central`: hand-configured requests session is deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r10_hand_configured_session_is_review`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_auth.py:336 |
| PIPE-GATES-R016.78 Auth standardization rule `auth.r11` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r11`.** `connector-ontology-map migrate --central`: cookie login becomes `SessionLogin`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r11_session_login_rewrite`, `::test_r11_two_login_paths_are_reviewed_with_an_exact_fallback_reason`. | requirement | PIPE-GATES | VERIFIED | 1abb4303df99 tests/hooks/test_connector_central_auth.py:356 tests/hooks/test_connector_central_auth.py:367 |
| PIPE-GATES-R016.79 Auth standardization rule `auth.r12` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r12`.** `connector-ontology-map migrate --central`: global client singleton becomes `client_factory`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r12_singleton_becomes_factory_with_close_alias`, `::test_r12_non_singleton_has_no_close_alias`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:381 tests/hooks/test_connector_central_auth.py:382 tests/hooks/test_connector_central_auth.py:392 |
| PIPE-GATES-R016.80 Auth standardization rule `auth.r13` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r13`.** `connector-ontology-map migrate --central`: local-only tool becomes `NoAuth()`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r13_local_tool_without_url_deletes_unused_auth`, `::test_r13_noauth_for_public_api_with_url_only`, `::test_r13_imported_auth_is_not_deleted`, `::test_no_auth_py_is_silent`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:400 tests/hooks/test_connector_central_auth.py:401 tests/hooks/test_connector_central_auth.py:410 tests/hooks/test_connector_central_auth.py:422 tests/hooks/test_connector_central_auth.py:467 |
| PIPE-GATES-R016.81 Auth standardization rule `auth.r14` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Auth standardization rule `auth.r14`.** `connector-ontology-map migrate --central`: plaintext setting becomes `allow_plaintext_env`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_auth.py::test_r14_allow_plaintext_setting_becomes_env_name`, `::test_r14_unknown_extra_flag_is_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_auth.py:431 tests/hooks/test_connector_central_auth.py:432 tests/hooks/test_connector_central_auth.py:445 |
| PIPE-GATES-R016.82 Ingest (Scion SDK 0.5.2) rule `ingest.i1` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i1`.** `connector-ontology-map migrate --central`: duplicated ingest plumbing is deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i1_deletes_standard_plumbing_only`, `::test_i1_name_insensitive_match`, `::test_i1_connector_mismatch_derives_from_the_sdk_identity`, `::test_i1_nonstandard_body_goes_to_review`, `::test_no_kg_ingest_is_a_silent_no_op`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_ingest.py:216 tests/hooks/test_connector_central_ingest.py:217 tests/hooks/test_connector_central_ingest.py:234 tests/hooks/test_connector_central_ingest.py:245 tests/hooks/test_connector_central_ingest.py:254 |
| PIPE-GATES-R016.83 Ingest (Scion SDK 0.5.2) rule `ingest.i2` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i2`.** `connector-ontology-map migrate --central`: `STREAM = SourceStream...` replaces `_BINDING`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i2_for_package_stream_and_imports`, `::test_i2_explicit_binding_before_wave1_entry_point`, `::test_i2_without_i1_plan_does_nothing`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_ingest.py:271 tests/hooks/test_connector_central_ingest.py:272 tests/hooks/test_connector_central_ingest.py:283 tests/hooks/test_connector_central_ingest.py:293 |
| PIPE-GATES-R016.84 Ingest (Scion SDK 0.5.2) rule `ingest.i3` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i3`.** `connector-ontology-map migrate --central`: ingest call sites use `STREAM.entities` and `STREAM.documents`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i3_rewrites_call_sites_and_deletes_helper_tests`, `::test_i3_function_local_relative_import`, `::test_i3_aliased_import_or_monkeypatch_goes_to_review_untouched`, `::test_all_rules_idempotent`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_ingest.py:310 tests/hooks/test_connector_central_ingest.py:311 tests/hooks/test_connector_central_ingest.py:329 tests/hooks/test_connector_central_ingest.py:342 tests/hooks/test_connector_central_ingest.py:534 |
| PIPE-GATES-R016.85 Ingest (Scion SDK 0.5.2) rule `ingest.i4` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i4`.** `connector-ontology-map migrate --central`: exact dispatch tables become stream mappers. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i4_dispatch_table_is_noted`. | requirement | PIPE-GATES | VERIFIED | 1bd2f8fcfb6c tests/hooks/test_connector_central_ingest.py:360 tests/hooks/test_connector_central_ingest.py:370 |
| PIPE-GATES-R016.86 Ingest (Scion SDK 0.5.2) rule `ingest.i5` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i5`.** `connector-ontology-map migrate --central`: exact mapper bodies become `RecordMap`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i5_mapper_functions_are_noted`. | requirement | PIPE-GATES | VERIFIED | 1bd2f8fcfb6c tests/hooks/test_connector_central_ingest.py:377 tests/hooks/test_connector_central_ingest.py:386 |
| PIPE-GATES-R016.87 Ingest (Scion SDK 0.5.2) rule `ingest.i6` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i6`.** `connector-ontology-map migrate --central`: local helpers equal to Scion SDK helpers are replaced. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i6_helper_equal_to_sdk_is_replaced`, `::test_i6_helper_that_differs_is_kept`. | requirement | PIPE-GATES | VERIFIED | 072841d0fc31 tests/hooks/test_connector_central_ingest.py:411 tests/hooks/test_connector_central_ingest.py:423 |
| PIPE-GATES-R016.88 Ingest (Scion SDK 0.5.2) rule `ingest.i7` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i7`.** `connector-ontology-map migrate --central`: checkpointed paging goes to review. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i7_paging_is_review_and_stops_i1`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_ingest.py:443 tests/hooks/test_connector_central_ingest.py:444 |
| PIPE-GATES-R016.89 Ingest (Scion SDK 0.5.2) rule `ingest.i8` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i8`.** `connector-ontology-map migrate --central`: best-effort wrapper and split document stream options. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i8_best_effort_wrapper_is_review_and_stops_i1`. | requirement | PIPE-GATES | VERIFIED | 1bd2f8fcfb6c 8d8cc8f2e3ba tests/hooks/test_connector_central_ingest.py:465 tests/hooks/test_connector_central_ingest.py:476 |
| PIPE-GATES-R016.90 Ingest (Scion SDK 0.5.2) rule `ingest.i9` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Ingest (Scion SDK 0.5.2) rule `ingest.i9`.** `connector-ontology-map migrate --central`: media and mixed change sets use `STREAM.media` and `STREAM.batch`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_ingest.py::test_i9_media_change_set_is_review_and_stops_i1`. | requirement | PIPE-GATES | VERIFIED | 1bd2f8fcfb6c tests/hooks/test_connector_central_ingest.py:500 tests/hooks/test_connector_central_ingest.py:515 |
| PIPE-GATES-R016.91 Pipelines-owned boilerplate rule `pl.n` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.n`.** `connector-ontology-map migrate --central`: version lives in `pyproject.toml` only. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_n_removes_bumpversion_readme_line_literal_and_test_assertion`, `::test_n_resolves_dynamic_version_from_bumpversion`, `::test_n_reviews_version_still_read_and_leaves_file`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_pipelines.py:142 tests/hooks/test_connector_central_pipelines.py:143 tests/hooks/test_connector_central_pipelines.py:162 tests/hooks/test_connector_central_pipelines.py:176 |
| PIPE-GATES-R016.92 Pipelines-owned boilerplate rule `pl.o` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.o`.** `connector-ontology-map migrate --central`: container files are rendered, not committed. The rendered template is the standard: a developer `debug.Dockerfile`, a `../.env.example` env file, an image variable with a default, a health probe that only adds a timeout, `ENTRYPOINT` for `CMD`, the `ARG PORT` default and a combined mcp+agent compose file differ non-functionally and are replaced; a published port other than 8000 is read from the compose file into the table `port`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pl_clusters.py::test_o_nonfunctional_compose_and_dockerfile_differences_are_normalised`, `::test_o_an_image_variable_with_a_default_becomes_the_required_digest_form`, `::test_o_an_env_example_env_file_is_dropped_as_not_functional`, `::test_o_the_sdist_names_of_a_single_stage_dockerfile_are_not_part_of_its_form`, `tests/hooks/test_connector_central_fixes7.py::test_generations_scan_set_is_the_drivers_set_not_the_directories`, `::test_generations_recorded_entries_survive_while_one_repo_carries_them`, `tests/hooks/test_connector_central_pipelines.py::test_o_removes_rendered_files_and_wires_callers`, `tests/hooks/test_connector_central_pipelines.py::test_o_ports_exceptions_into_the_container_table`, `tests/hooks/test_connector_central_pipelines.py::test_o_unexpected_difference_is_blocking_and_files_stay`, `tests/hooks/test_connector_central_pipelines.py::test_o_accepts_the_dist_extra_that_rule_l4_dropped`, `tests/hooks/test_connector_central_pipelines.py::test_o_other_extra_difference_stays_blocking`, `tests/hooks/test_connector_central_pipelines.py::test_o_accepts_a_stale_semver_on_the_dist_own_pin`, `tests/hooks/test_connector_central_pipelines.py::test_o_another_package_pin_difference_stays_blocking`, `tests/hooks/test_connector_central_pipelines.py::test_o_ports_compose_limits_only_when_they_differ_from_the_template`, `tests/hooks/test_connector_central_pipelines.py::test_o_default_limits_leave_the_render_and_table_unchanged`, `tests/hooks/test_connector_central_pipelines.py::test_container_limits_table_rejects_unknown_keys`, `tests/hooks/test_connector_central_pipelines.py::test_render_without_config_mounts_has_no_volumes_block`, `tests/hooks/test_connector_central_pipelines.py::test_render_writes_each_config_mount_as_a_read_only_bind_between_restart_and_env_file`, `tests/hooks/test_connector_central_pipelines.py::test_o_ports_committed_read_only_binds_into_the_container_table`, `tests/hooks/test_connector_central_pipelines.py::test_o_unknown_workflow_shape_is_blocking`, `tests/hooks/test_connector_central_pipelines.py::test_second_run_changes_nothing`, `tests/hooks/test_connector_central_pl_clusters.py::test_generation_table_entries_each_occur_in_several_repositories`, `tests/hooks/test_connector_central_pl_clusters.py::test_a_recorded_insertion_rewrite_is_not_applied_twice`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_accepts_the_recorded_single_stage_dockerfile`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_a_changed_single_stage_dockerfile_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_accepts_the_stub_debug_image_and_stub_compose`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_an_edited_stub_compose_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_deletes_an_agent_compose_file_whose_agent_image_is_gone`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_keeps_an_agent_compose_file_when_the_dockerfile_still_has_an_agent_stage`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_ports_an_optional_env_file_into_the_container_table`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_accepts_the_mcp_service_with_the_agent_image_variable`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_ports_the_config_mount_and_accepts_the_shared_image_variable`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_accepts_a_config_mount_with_a_default_host_path`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_an_image_default_recorded_in_fewer_than_three_repositories_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_a_mount_outside_etc_stays_blocking_with_the_reason`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_a_read_write_volume_stays_blocking_with_the_reason`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_reads_a_compose_environment_mapping_as_the_list_the_render_writes`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_an_environment_mapping_with_a_changed_value_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_the_debug_host_rewrite_follows_the_host_the_runtime_image_binds`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_a_difference_outside_the_clusters_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_keeps_the_extras_the_committed_image_installed`, `tests/hooks/test_connector_central_pl_clusters.py::test_install_extras_default_is_unchanged_without_the_key`, `tests/hooks/test_connector_central_pl_clusters.py::test_o_an_edited_older_compose_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_rewrites_carry_captured_text_delete_blocks_and_insert_once`. | requirement | PIPE-GATES | VERIFIED | 4f7150db2361 85d002cae68d 8e8272f805dd bd6eef95bcc3 f74978beb345 tests/hooks/test_connector_central_fixes7.py:261 tests/hooks/test_connector_central_fixes7.py:273 tests/hooks/test_connector_central_pipelines.py:186 tests/hooks/test_connector_central_pipelines.py:204 tests/hooks/test_connector_central_pipelines.py:226 |
| PIPE-GATES-R016.93 Pipelines-owned boilerplate rule `pl.p` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.p`.** `connector-ontology-map migrate --central`: ontology artifacts are generated, not committed. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_p_removes_generated_artifacts_when_identical`, `::test_p_subset_of_shapes_writes_shape_classes_and_reviews`, `::test_p_other_test_reading_artifacts_is_blocking_and_files_stay`, `::test_p_deletes_certification_tests`, `tests/hooks/test_connector_central_pl_clusters.py::test_p_names_an_ontology_file_that_is_not_the_ontology_source`, `tests/hooks/test_connector_central_pl_clusters.py::test_p_two_ontology_files_do_not_guess`, `tests/hooks/test_connector_central_pl_clusters.py::test_the_ttl_key_changes_nothing_when_it_is_absent`. | requirement | PIPE-GATES | VERIFIED | 54057df19bfb tests/hooks/test_connector_central_pipelines.py:552 tests/hooks/test_connector_central_pipelines.py:562 tests/hooks/test_connector_central_pipelines.py:571 tests/hooks/test_connector_central_pipelines.py:586 tests/hooks/test_connector_central_pipelines.py:598 |
| PIPE-GATES-R016.94 Pipelines-owned boilerplate rule `pl.q` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.q`.** `connector-ontology-map migrate --central`: `.pre-commit-config.yaml` is the shared reference. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_fixes7.py::test_q_config_wide_exclude_and_file_path_are_ported`, `::test_q_exclude_that_is_not_a_path_list_is_blocking`, `::test_q_ruff_ignore_args_become_lint_ignore_and_nothing_more`, `::test_q_existing_lint_ignore_is_extended_only_by_missing_codes`, `::test_tidy_fixes_safe_findings_and_reports_the_rest_with_rule_ids`, `tests/hooks/test_connector_central_pipelines.py::test_q_replaces_config_and_lists_unknown_hooks`, `tests/hooks/test_connector_central_pipelines.py::test_q_unparseable_config_is_noted_and_replaced`, `tests/hooks/test_connector_central_pipelines.py::test_q_ports_the_ruff_exclude_to_extend_exclude`. | requirement | PIPE-GATES | VERIFIED | 74ad5d0baab0 dce5c83d89db tests/hooks/test_connector_central_fixes7.py:103 tests/hooks/test_connector_central_fixes7.py:111 tests/hooks/test_connector_central_fixes7.py:118 tests/hooks/test_connector_central_fixes7.py:134 tests/hooks/test_connector_central_fixes7.py:287 |
| PIPE-GATES-R016.95 Pipelines-owned boilerplate rule `pl.r` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.r`.** `connector-ontology-map migrate --central`: `security_sanitizer.py` and `.codespellignore` are provided. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_fixes7.py::test_r_old_words_and_excludes_go_to_the_repo_table_not_the_defaults`, `::test_r_words_already_central_leave_no_table`, `::test_codespell_hook_honours_the_repo_words_and_excludes`, `::test_standard_names_the_failed_members_and_runs_all`, `tests/hooks/test_connector_central_pipelines.py::test_r_deletes_sanitizer_and_moves_codespell_words`, `tests/hooks/test_connector_central_pipelines.py::test_r_conflicting_codespell_table_is_blocking_and_file_stays`. | requirement | PIPE-GATES | VERIFIED | 27777c97c34a 3185d3c28743 4dc52a397e5f tests/hooks/test_connector_central_fixes7.py:162 tests/hooks/test_connector_central_fixes7.py:175 tests/hooks/test_connector_central_fixes7.py:196 tests/hooks/test_connector_central_fixes7.py:222 tests/hooks/test_connector_central_pipelines.py:651 |
| PIPE-GATES-R016.96 Pipelines-owned boilerplate rule `pl.s` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.s`.** `connector-ontology-map migrate --central`: workflow flags: skip-hooks, bump2version, render and rebuild callers. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_s_drops_dupehound_skip_and_bump2version_step`, `::test_s_other_bump2version_shape_goes_to_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_pipelines.py:785 tests/hooks/test_connector_central_pipelines.py:786 tests/hooks/test_connector_central_pipelines.py:800 |
| PIPE-GATES-R016.97 Pipelines-owned boilerplate rule `pl.t` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.t`.** `connector-ontology-map migrate --central`: `.security/*` is provided. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_t_removes_security_dir_and_ports_licenses`, `::test_t_keeps_contract_when_validator_is_tracked`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_pipelines.py:693 tests/hooks/test_connector_central_pipelines.py:694 tests/hooks/test_connector_central_pipelines.py:705 |
| PIPE-GATES-R016.98 Pipelines-owned boilerplate rule `pl.u` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.u`.** `connector-ontology-map migrate --central`: `scripts/bootstrap.sh` is deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_u_deletes_bootstrap_and_rewrites_setup_line`, `::test_u_other_mention_goes_to_review`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_pipelines.py:718 tests/hooks/test_connector_central_pipelines.py:719 tests/hooks/test_connector_central_pipelines.py:730 |
| PIPE-GATES-R016.99 Pipelines-owned boilerplate rule `pl.v` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.v`.** `connector-ontology-map migrate --central`: `verify_api_integration.py` becomes `connector-api-parity`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_v_ports_baseline_and_deletes_script_and_test`, `::test_v_stale_baseline_is_lowered_and_reviewed`, `::test_v_missing_entry_means_no_table_and_unreadable_baselines_are_blocking`, `::test_v_dynamic_baselines_table_is_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_v_extracts_the_exact_100_percent_threshold`, `tests/hooks/test_connector_central_pl_clusters.py::test_v_ports_the_implied_baseline_and_deletes_the_script`, `tests/hooks/test_connector_central_pl_clusters.py::test_v_an_openapi_source_check_stays_blocking`, `tests/hooks/test_connector_central_pl_clusters.py::test_v_a_script_with_another_threshold_is_not_extracted`. | requirement | PIPE-GATES | VERIFIED | d0a48752cbf3 tests/hooks/test_connector_central_pipelines.py:746 tests/hooks/test_connector_central_pipelines.py:747 tests/hooks/test_connector_central_pipelines.py:759 tests/hooks/test_connector_central_pipelines.py:767 tests/hooks/test_connector_central_pipelines.py:776 |
| PIPE-GATES-R016.100 Connector identity rule `id.name` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Connector identity rule `id.name`.** `connector-ontology-map migrate --central`: hard-coded connector names in `kg_*.py` and `mappings/*.yaml` derive from or match the Scion SDK identity. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_fixes7b.py::test_name_constant_that_a_binding_takes_as_connector_derives_from_the_identity`, `::test_two_constants_of_the_same_name_are_reviewed_not_guessed`, `tests/hooks/test_connector_central_identity.py::test_name_mismatch_derives_from_the_sdk_identity_and_mapping_yaml_follows`. | requirement | PIPE-GATES | VERIFIED | 1af3f83b7fb7 545ef1911dce efa9b98ace15 tests/hooks/test_connector_central_fixes7b.py:103 tests/hooks/test_connector_central_fixes7b.py:86 tests/hooks/test_connector_central_identity.py:24 tests/hooks/test_connector_central_identity.py:296 tests/hooks/test_connector_central_identity.py:313 |
| PIPE-GATES-R016.101 Pipelines-owned boilerplate rule `pl.w` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.w`.** `connector-ontology-map migrate --central`: own pipelines workflow refs are `@main`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_own_workflow_refs_are_main`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_identity.py:58 |
| PIPE-GATES-R016.102 Pipelines-owned boilerplate rule `pl.x` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.x`.** `connector-ontology-map migrate --central`: unreferenced non-scaffold root files are deleted. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_pipelines.py::test_x_row_and_order`, `::test_x_deletes_unreferenced_files`, `::test_x_referenced_file_stays_with_a_review_item_naming_the_referrers`, `::test_x_match_is_a_whole_name`, `::test_x_dockerignore_stays_while_a_dockerfile_exists`, `::test_x_dockerignore_goes_after_pl_o_removes_the_dockerfile`, `::test_x_mcp_config_is_referenced_by_package_data_and_manifest_globs`, `::test_x_second_run_changes_nothing`. | requirement | PIPE-GATES | VERIFIED | dea7f89e4bfd tests/hooks/test_connector_central_pipelines.py:842 tests/hooks/test_connector_central_pipelines.py:850 tests/hooks/test_connector_central_pipelines.py:867 tests/hooks/test_connector_central_pipelines.py:880 tests/hooks/test_connector_central_pipelines.py:891 |
| PIPE-GATES-R016.103 Pipelines-owned boilerplate rule `pl.y` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.y`.** `connector-ontology-map migrate --central`: `.github/workflows/org-site.yml` notifies the org site (only when pipelines main provides it). A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_org_site_workflow_is_written_only_when_pipelines_provides_the_shared_one`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_identity.py:74 |
| PIPE-GATES-R016.104 Pipelines-owned boilerplate rule `pl.z` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.z`.** `connector-ontology-map migrate --central`: every local spec is indexed in `specs/README.md`. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_unindexed_local_spec_is_added_to_the_readme_index`. | requirement | PIPE-GATES | VERIFIED | b0453687acf9 tests/hooks/test_connector_central_identity.py:91 |
| PIPE-GATES-R016.105 Pipelines-owned boilerplate rule `pl.aa` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.aa`.** `connector-ontology-map migrate --central`: the shared MkDocs theme files match the canonical copy. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_missing_theme_files_are_synced_from_the_canonical_copy_and_a_second_run_is_a_no_op`, `::test_no_mkdocs_site_means_no_theme_files`. | requirement | PIPE-GATES | VERIFIED | 03512169cad3 8e8272f805dd tests/hooks/test_connector_central_identity.py:109 tests/hooks/test_connector_central_identity.py:125 |
| PIPE-GATES-R016.106 Pipelines-owned boilerplate rule `pl.ab` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.ab`.** `connector-ontology-map migrate --central`: the `[[project.authors]]` block is the neutral organisation author. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_authors_block_becomes_the_neutral_organisation_author_and_passes_the_privacy_classifier`, `::test_authors_block_with_other_fields_is_reviewed_untouched`. | requirement | PIPE-GATES | VERIFIED | 313d63c9dbce 8e8272f805dd eee545e082ed tests/hooks/test_connector_central_identity.py:132 tests/hooks/test_connector_central_identity.py:154 tests/hooks/test_connector_central_identity.py:255 |
| PIPE-GATES-R016.107 Pipelines-owned boilerplate rule `pl.ac` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.ac`.** `connector-ontology-map migrate --central`: example credential URIs in docs code and internal hostname literals in `tests/**/*.py`, `README.md`, `docs/**/*.md` and the skill markdown and shell files are the placeholder form the privacy gate accepts (`USER:PASSWORD`, the reserved `.example` name). A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_example_credential_uris_in_docs_code_become_the_gate_placeholder_form`, `::test_internal_hostnames_in_tests_become_the_reserved_example_form`, `::test_internal_hostnames_in_docs_and_skills_become_the_reserved_example_form`. | requirement | PIPE-GATES | VERIFIED | 1aa60109f447 74ad5d0baab0 bc1c1dffa20b fb079953f3db tests/hooks/test_connector_central_identity.py:164 tests/hooks/test_connector_central_identity.py:198 tests/hooks/test_connector_central_identity.py:275 |
| PIPE-GATES-R016.108 Pipelines-owned boilerplate rule `pl.ad` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.ad`.** `connector-ontology-map migrate --central`: the fleet's SHA-pinned `actions/checkout` and `actions/setup-python` replace mutable tags. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_mutable_checkout_and_setup_python_tags_become_the_fleet_pins`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_identity.py:219 |
| PIPE-GATES-R016.109 Pipelines-owned boilerplate rule `pl.ae` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.ae`.** `connector-ontology-map migrate --central`: the publication-workflow test expects the shared hook revision `main`, not the old SHA pin. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_identity.py::test_publication_workflow_test_expects_the_shared_main_revision`. | requirement | PIPE-GATES | VERIFIED | c2b8fce00aac tests/hooks/test_connector_central_identity.py:239 |
| PIPE-GATES-R016.110 Pipelines-owned boilerplate rule `pl.af` Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Pipelines-owned boilerplate rule `pl.af`.** `connector-ontology-map migrate --central`: codespell findings are fixed or classified. A shape the rule does not match exactly is left untouched and listed in the review report with the reason. | `tests/hooks/test_connector_central_spelling.py::test_doc_typo_is_fixed_but_not_inside_code`, `::test_comment_and_docstring_typos_are_fixed_and_code_is_untouched`, `::test_identifier_goes_to_ignore_words_sorted_lowercase_and_idempotent`, `::test_ignore_words_table_is_created_when_missing`, `::test_string_literal_stays_a_review_item`, `::test_multiple_suggestions_in_a_comment_stay_a_review_item`, `::test_other_file_types_and_generated_files_are_not_rewritten`, `::test_second_run_changes_nothing`. | requirement | PIPE-GATES | VERIFIED | 295d80aff385 74ad5d0baab0 9d2259faab12 fb3e2489a321 tests/hooks/test_connector_central_spelling.py:100 tests/hooks/test_connector_central_spelling.py:108 tests/hooks/test_connector_central_spelling.py:117 tests/hooks/test_connector_central_spelling.py:126 tests/hooks/test_connector_central_spelling.py:137 |
| PIPE-GATES-R016.111 Central driver and verify Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**Central driver and verify.** `scripts/connector_migrate_batch.py --central` runs worktree, `migrate --central`, commit, verify, push, PR, `gates` and squash-merge per repo; verify runs the Scion SDK conformance plugin (`-k connector_conformance`), `connector-standard`, `pipelines-connector render --check`, `graph-check`, the repo's fast tests and `scripts/connector_verify.py` (stdio: tools, prompts, `connector://resources`, `ontology://`). `--sdk-path` installs the Scion SDK from a path for the dry run. The patch version is bumped once, only when a rule changed something, so a second run changes nothing. | `tests/hooks/test_connector_central_driver.py::test_central_pass_is_idempotent_and_bumps_once` and `::test_central_driver_flags`. | requirement | PIPE-GATES | VERIFIED | 0e879efdfea4 27bde72e9d5c 39e835a22c93 8408c527fc35 d2ee1f62b996 tests/hooks/test_connector_central_driver.py:102 tests/hooks/test_connector_central_driver.py:117 tests/hooks/test_connector_central_driver.py:128 tests/hooks/test_connector_central_driver.py:153 tests/hooks/test_connector_central_driver.py:83 |
| PIPE-GATES-R016.112 A method call is not an internal hostname Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**A method call is not an internal hostname.** `tracked-privacy` reads `name.lan`, `name.internal`, `name.corp` and `name.arpa` as a hostname only when the name is not the callee of a call; `ipmi.lan("print")` is a method, `ipmi.lan` and `http://a.lan` stay hostnames. | `tests/hooks/test_privacy_hostnames.py::test_a_called_method_is_not_a_hostname`. | requirement | PIPE-GATES | VERIFIED | 54cb9fede351 tests/hooks/test_privacy_hostnames.py:10 |
| PIPE-GATES-R016.113 An endpoint route literal is not a home path Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**An endpoint route literal is not a home path.** `tracked-privacy` does not read `/Users/<segment>` as a macOS home path when it is the value assigned to an `endpoint` name (`endpoint = "/Users/Me"`) or the container home setting (`home = "/home/app"` in the pyproject container table); the same text elsewhere stays a home path. | `tests/hooks/test_privacy_hostnames.py::test_an_endpoint_route_literal_is_not_a_home_path`, `::test_the_container_home_setting_is_not_a_home_path`. | requirement | PIPE-GATES | VERIFIED | 7888b25e7587 d2ee1f62b996 tests/hooks/test_privacy_hostnames.py:19 tests/hooks/test_privacy_hostnames.py:29 |
| PIPE-GATES-R016.114 A variable reference is not a URI credential Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**A variable reference is not a URI credential.** `tracked-privacy` does not read `scheme://user:${TOKEN}@host` (or `$TOKEN`, `${{ secrets.X }}`) as a credential-bearing URI: the secret is resolved at run time. A literal secret still fires. | `tests/hooks/test_privacy_hostnames.py::test_a_variable_reference_as_the_uri_secret_is_not_a_credential`. | requirement | PIPE-GATES | VERIFIED | d2ee1f62b996 tests/hooks/test_privacy_hostnames.py:37 |
| PIPE-GATES-R016.115 The skill gates are a `connector-standard` member Definition — PIPE-GATES / PIPE-GATES — Gate landing policyCanonical requirement and verification source**The skill gates are a `connector-standard` member.** `connector-standard` runs atomicity (atomic skills, dual-mode workflows), cross-agent frontmatter portability and cross-platform path portability over the connector's package `skills` directory, with the universal-skills gate logic ported under `pipelines_hooks/connector/skill_checks`; a connector without skills passes, and `[tool.pipelines.skills] path_exclude` leaves generated reference directories out of the path check. A connector adds no hook and no wrapper script. | `tests/hooks/test_connector_skills.py::test_a_connector_without_skills_passes`, `::test_a_conforming_skill_passes_all_three_checks`, `::test_a_non_portable_frontmatter_fails_and_is_named`, `::test_a_long_path_fails_unless_its_directory_is_excluded`, `::test_connector_standard_runs_the_skills_member`. | requirement | PIPE-GATES | VERIFIED | cb2d1a651c7f tests/hooks/test_connector_skills.py:34 tests/hooks/test_connector_skills.py:40 tests/hooks/test_connector_skills.py:49 tests/hooks/test_connector_skills.py:60 tests/hooks/test_connector_skills.py:78 |
| PIPE-RELEASE PIPE-RELEASE — Dependency-ordered digest release orchestration | spec | None | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001 Pipelines publishes images in dependency order with digest pins Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Pipelines publishes images in dependency order with digest pins.** pipelines builds each repository's container image with an immutable digest pin, pushes repositories to GitHub in dependency order, and awaits hosted CI on each pushed revision before publishing the next stage, stopping before any downstream publication on failure. | Verified by an integration test with three ordered candidates confirming each stage's hosted CI must pass before the next stage publishes, per FR-3. | requirement | PIPE-RELEASE | SPECIFIED | 59dd4e7b91c6 |
| PIPE-RELEASE-R002 Release tags point to the exact qualified commit Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release tags point to the exact qualified commit.** pipelines verifies that a published GitHub release tag points to the exact source commit recorded in the qualified candidate manifest, rejecting any mismatch between the tag, the commit, and the published package artifact. Before any build, `python_pipeline.yml` and `maturin_pipeline.yml` run `verify-release-version`, which fails when the pushed tag `vX.Y.Z` differs from the version the build will stamp (`[project].version`, or the maturin manifest's `[package].version` when dynamic), when `.bumpversion.cfg` or `.config/bumpversion.cfg` `current_version` differs, or when that version is already on PyPI (a failed lookup also blocks). | Verified by a negative test that a tag or artifact whose commit does not match the candidate manifest's recorded commit is rejected, per FR-1, and by `tests/test_release_version_guard.py` (`test_stale_version_under_new_tag_is_refused`, `test_version_already_on_pypi_is_refused`, `test_bumpversion_disagreement_is_refused`, `test_maturin_dynamic_version_reads_the_manifest`, `test_every_shared_release_path_runs_the_guard_before_building`). | requirement | PIPE-RELEASE | VERIFIED | 0f9f73b150d7 455654369f2f 8b68968bb542 8f6b2234e190 d6a43376acc9 tests/test_release_version_guard.py:108 tests/test_release_version_guard.py:115 tests/test_release_version_guard.py:128 tests/test_release_version_guard.py:136 tests/test_release_version_guard.py:57 |
| PIPE-RELEASE-R003 Release build job sources environment values safely Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release build job sources environment values safely.** The release workflow's local build job writes and sources environment variables, including compiler flags such as CFLAGS, in a properly quoted form so a multi-token value is never misinterpreted as a shell command, and the build verifies byte-identical, reproducible wheels as part of its checks. | Verified by a build run whose steps complete via the real product build path rather than aborting early from an environment-sourcing error, and whose reproducibility check confirms byte-identical wheels across independent builds. | requirement | PIPE-RELEASE | LANDED | 3778a909bcad 59dd4e7b91c6 622a53f14803 |
| PIPE-RELEASE-R004 Release gate fails when a compiled kernel wheel is missing Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release gate fails when a compiled kernel wheel is missing.** Every published wheel set must hold one wheel with compiled numeric kernel binaries for each supported platform and Python version. The packaging gate must block publication when any combination is absent. | Run `test_missing_kernel_combination_blocks_release` in `tests/test_wheel_kernel_completeness.py`; expects exit 1 naming the missing combination. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:212 tests/test_wheel_kernel_completeness.py:229 tests/test_wheel_kernel_completeness.py:242 tests/test_wheel_kernel_completeness.py:324 tests/test_wheel_kernel_completeness.py:333 |
| PIPE-RELEASE-R004.1 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add `KernelCell(target, python_tag, wheel)` and `KernelMatrix(required, found)` in new `.github/actions/wheel-readiness/kernels.py`. Existing `TARGETS` in `.github/actions/wheel-readiness/targets.py:7` lists four platforms. The canonical target validator and Maturin publisher require CPython 3.14 (`cp314`); this existing publisher axis is the named default, while callers may pass another reviewed axis explicitly. | Run `test_kernel_matrix_model_is_closed` in `tests/test_wheel_kernel_completeness.py` expects one cell per target and tag. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:212 |
| PIPE-RELEASE-R004.2 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** Add `required_cells(targets, python_tags)` and `missing_cells(matrix)`. Each wheel counts only when its archive lists at least one compiled extension file (`.so`, `.pyd` or `.dylib`) matching its platform tag. The supported Python range is a named default, replaceable per publisher. | Run `test_wheel_without_binary_is_missing` in `tests/test_wheel_kernel_completeness.py` expects the pure-Python wheel to count as missing. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:229 |
| PIPE-RELEASE-R004.3 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Implementation is new `kernels.py`; no production caller today. Call `missing_cells` from `aggregate` at `.github/actions/wheel-readiness/bundle.py:98`, which `main` calls at `.github/actions/wheel-readiness/readiness.py:343` for the release publication step. | Run `test_aggregate_calls_kernel_gate` in `tests/test_wheel_kernel_completeness.py` expects `aggregate` to raise on a missing cell. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:324 |
| PIPE-RELEASE-R004.4 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** `aggregate` must raise `KernelCellMissing` listing every absent `target/python_tag` pair. It must write no readiness receipt and must not publish. A repository that declares no compiled kernel must abstain with `no-kernel-declared`. | Run `test_missing_cell_refusal_lists_all_pairs` in `tests/test_wheel_kernel_completeness.py` expects every absent pair named. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:242 tests/test_wheel_kernel_completeness.py:333 |
| PIPE-RELEASE-R004.5 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** The aggregate receipt must carry a `kernel_cells` field with each required cell, its wheel file and its binary file names. A refused run must carry the missing pairs in the refusal message. | Run `test_receipt_records_kernel_cells` in `tests/test_wheel_kernel_completeness.py` expects `kernel_cells` equal to the required set. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:345 |
| PIPE-RELEASE-R004.6 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The entry point is the `aggregate` run of `readiness.py` in the release bundle step, reached through `main` at `.github/actions/wheel-readiness/readiness.py:325`. A wheel directory missing one platform build must exit non-zero and write no receipt. | Run `test_release_bundle_blocks_missing_kernel_wheel` in `tests/test_wheel_kernel_completeness.py` expects non-zero exit and no receipt file. | requirement | PIPE-RELEASE | VERIFIED | 46c29c66d460 928faad60ad2 935d6b72d3b8 9e3899b6ad99 tests/test_wheel_kernel_completeness.py:359 |
| PIPE-RELEASE-R005 Dependency gate blocks circular dependency loops Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Dependency gate blocks circular dependency loops.** The dependency gate must detect loops among root, optional and development dependency groups. It must report each loop with its members and block landing until the loop is broken. | Run `test_dependency_loop_fails_gate` in `tests/hooks/test_dependency_cycles.py`; expects exit 1 naming the loop. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R005.1 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add `DependencyEdge(source_group, target_group, via)` and `DependencyLoop(members)` in new `pipelines_hooks/supply_chain/dependency_cycles.py`. Groups are `root`, each optional extra and each development group. Existing `declared_dependencies` at `pipelines_hooks/supply_chain/dependencies.py:32` flattens groups and loses edges. | Run `test_group_graph_model` in `tests/hooks/test_dependency_cycles.py` expects one node per group. | requirement | PIPE-RELEASE | VERIFIED | 6bf8524c1644 tests/hooks/test_dependency_cycles.py:43 |
| PIPE-RELEASE-R005.2 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** Add `group_edges(document)` and `find_loops(edges)`. An edge comes from an `include-group` entry or from the project's own name with an extra. `find_loops` returns strongly connected components of size above one, plus self-loops, as `import_cycles.py:41` does. | Run `test_include_group_cycle_found` in `tests/hooks/test_dependency_cycles.py` expects a two-group loop reported. | requirement | PIPE-RELEASE | VERIFIED | 6bf8524c1644 tests/hooks/test_dependency_cycles.py:59 tests/hooks/test_dependency_cycles.py:71 |
| PIPE-RELEASE-R005.3 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Implementation is new `dependency_cycles.py`; no production caller today. Call `loop_findings` from `dependency_findings` at `pipelines_hooks/supply_chain/dependencies.py:79` next to `_pyproject_findings`. `gate.py:71` calls `dependency_findings`; `supply-chain` is registered at `pipelines_hooks/cli.py:28`. | Run `test_dependency_findings_include_loops` in `tests/hooks/test_dependency_cycles.py` expects a loop finding. | requirement | PIPE-RELEASE | VERIFIED | 6bf8524c1644 86d2275e8f65 916078bcf41f a52f3f5f244f tests/hooks/test_dependency_cycles.py:147 |
| PIPE-RELEASE-R005.4 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** The gate must emit a finding with rule `SC-DEP-LOOP` per loop and exit 1. The finding must stay until the loop is broken. A manifest that fails to parse must give a typed parse finding, not an empty pass. | Run `test_unparseable_manifest_is_not_a_pass` in `tests/hooks/test_dependency_cycles.py` expects a parse finding. | requirement | PIPE-RELEASE | VERIFIED | 6bf8524c1644 86d2275e8f65 916078bcf41f a52f3f5f244f tests/hooks/test_dependency_cycles.py:174 tests/hooks/test_dependency_cycles.py:85 |
| PIPE-RELEASE-R005.5 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** Each `SC-DEP-LOOP` finding message must list loop members in sorted order and the manifest path. The gate summary must count loops found. | Run `test_loop_finding_lists_sorted_members` in `tests/hooks/test_dependency_cycles.py` expects sorted members. | requirement | PIPE-RELEASE | VERIFIED | 6bf8524c1644 tests/hooks/test_dependency_cycles.py:190 |
| PIPE-RELEASE-R005.6 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The entry point is `pipelines-hook supply-chain` through `main` in `pipelines_hooks/cli.py:79` on a fixture repository whose `pyproject.toml` has two groups including each other. The hook must exit 1 and print `SC-DEP-LOOP`. | Run `test_supply_chain_hook_blocks_dependency_loop` in `tests/hooks/test_dependency_cycles.py` expects exit 1 and the rule name. | requirement | PIPE-RELEASE | VERIFIED | 6bf8524c1644 86d2275e8f65 916078bcf41f a52f3f5f244f tests/hooks/test_dependency_cycles.py:109 tests/hooks/test_dependency_cycles.py:213 |
| PIPE-RELEASE-R006 One bump configuration keeps project versions consistent Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**One bump configuration keeps project versions consistent.** Rollup of the children below. The gate checks metadata, source and documentation against one canonical project version. | The rollup is the minimum state of its children. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R006.1 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add `ProjectVersionInventory`, `VersionLocation` and `VersionCheck` in new `pipelines_hooks/release/project_version.py`. One canonical bump configuration owns current version and each location: repository-relative path, role (`metadata`, `source`, `documentation`), extraction selector, search/replacement templates and expected match count. Checks bind actual and expected values, line locations, configuration digest and Git snapshot. Every role requires at least one explicit location. | Run `test_project_version_inventory` in `tests/hooks/test_project_version_sync.py`. Accept a complete three-role inventory; reject unknown roles, duplicate locations and missing role coverage. | requirement | PIPE-RELEASE | VERIFIED | 01378f786cba 336628614998 fa4ad80cd25b tests/hooks/test_project_version_sync.py:65 |
| PIPE-RELEASE-R006.2 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** The `exact-project-version` default compares every selected value with the canonical current version in the same Git snapshot. Parse metadata, literal source assignments and marked documentation text without imports or execution. Require selectors and bump templates to identify exactly the declared occurrences and preserve all other text. Validate template/extractor round trips; no implicit version normalization or whole-file version search is allowed. Historical release notes and dependency versions are outside the inventory unless explicitly declared. | Run `test_project_version_values` in `tests/hooks/test_project_version_sync.py`. Equal values pass; independently changing metadata, source, documentation or canonical current version fails at the exact location. | requirement | PIPE-RELEASE | VERIFIED | 01378f786cba 336628614998 fa4ad80cd25b tests/hooks/test_project_version_sync.py:89 |
| PIPE-RELEASE-R006.3 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Create `project-version-sync` in `GATES` at `pipelines_hooks/cli.py:13`, called by `run_gate` at `pipelines_hooks/cli.py:59`. Add its shared hook beside `.pre-commit-hooks.yaml:67`, catalogue and self-run configuration consumed by `.github/workflows/ci.yml:86`. Reuse snapshot selection at `pipelines_hooks/core/comparison.py:53` and blob reads at `pipelines_hooks/core/gitenv.py:81`. Inspect the full declared inventory in the index or selected committed tree, including the configuration; never mix worktree bytes. No production caller reaches this gate today. | Run `test_project_version_hook_wiring` in `tests/hooks/test_project_version_sync.py`. The installed CLI and published hook select the same snapshot and fail on an inconsistent unchanged declared surface. | requirement | PIPE-RELEASE | VERIFIED | 01378f786cba 336628614998 fa4ad80cd25b tests/hooks/test_project_version_sync.py:176 |
| PIPE-RELEASE-R006.4 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** Return located `version-mismatch` findings and exit 1 for unequal extracted values. Raise `CannotRun` with a closed reason (`config-missing`, `config-invalid`, `config-ambiguous`, `inventory-incomplete`, `location-unreadable`, `selector-ambiguous`, `unsupported-extraction` or `snapshot-unavailable`) and exit 2 when any declared surface is unchecked. Reject match counts that differ from the declared positive count, duplicate authorities, traversal, symlink entries and dynamic source expressions. Never skip an unreadable surface or repair files during checking. | Run `test_project_version_refusals` in `tests/hooks/test_project_version_sync.py`. Missing, malformed or competing configs and ambiguous extraction exit 2; mismatches exit 1 and cannot produce a passing receipt. | requirement | PIPE-RELEASE | VERIFIED | 01378f786cba 336628614998 fa4ad80cd25b tests/hooks/test_project_version_sync.py:127 |
| PIPE-RELEASE-R006.5 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** Emit sorted role/path/line observations with expected and actual version, selector identity, checked count, configuration and blob digests, snapshot identity and typed refusals. A success record requires every location in every role to be checked. Record index-tree identity locally and commit/tree identity in CI. Print repository-relative locations only; do not publish unrelated source text or local machine paths. | Run `test_project_version_evidence` in `tests/hooks/test_project_version_sync.py`. Evidence identifies the exact checked Git bytes and all three roles; unchecked cases have no successful verdict. | requirement | PIPE-RELEASE | VERIFIED | 01378f786cba 336628614998 fa4ad80cd25b tests/hooks/test_project_version_sync.py:158 |
| PIPE-RELEASE-R006.6 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** Use entry point `pipelines-hook project-version-sync --root <fixture>` in `tests/hooks/test_project_version_sync.py` on a real temporary Git repository. Equal metadata, literal source and marked docs pass. Change and stage each surface independently: the published CLI and hook exit 1 at that line. Malformed, missing and ambiguous configs exit 2. An unstaged repair cannot hide an indexed mismatch; an unstaged mismatch cannot change a clean committed-tree result. Run the configured bump tool in the disposable fixture and prove it updates all three surfaces before the gate passes. | Run `test_project_version_sync_cli` in `tests/hooks/test_project_version_sync.py`. Assert real dispatcher/hook exit codes, exact locations, snapshot isolation, all-surface bumping and unchanged caller files during gate checks. | requirement | PIPE-RELEASE | VERIFIED | 01378f786cba 336628614998 975ea62b6b54 fa4ad80cd25b tests/hooks/test_project_version_sync.py:189 |
| PIPE-RELEASE-R005.7 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add RoleExtraManifest in proposed pipelines_hooks/release/role_closure.py. Bind the package owner export by repository, source revision and digest. Its complete supported-role set must equal the manifest role set. Each role names root distribution, extras, entry modules and platform-qualified transitive closure. Mandatory root dependencies include `medulla[full]` under AU-INTEGRATION-R006; pipelines must not invent the supported roles. | Run `test_role_extra_closure_model` in `tests/hooks/test_role_extra_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R005.8 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** Build each declared role artifact and install only its frozen dependency closure in an isolated environment. Resolve environment markers for each declared target. Required imports must include mandatory root and selected-extra dependencies. Forbidden probes cover only imports outside that resolved closure. A package shared with an unselected extra remains allowed when mandatory or transitively required. Each role must supply a packaged positive case and an actually excluded negative case. | Run `test_role_extra_closure_behavior` in `tests/hooks/test_role_extra_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R005.9 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Register role-closure at pipelines_hooks/cli.py:13 through run_gate at line 59. Proposed role_closure.main must consume the package producer artifact before release readiness aggregation at .github/actions/wheel-readiness/bundle.py:98. Reuse dependency groups from R005 and static boundaries from PIPE-PAGES-R021.7. Static import analysis alone cannot prove installed closure. | Run `test_role_extra_closure_wiring` in `tests/hooks/test_role_extra_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R005.10 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** Missing owner role exports, unresolved dependency markers or versions, incomplete target coverage and stale locks must exit 2. Missing required imports or a successful excluded import must exit 1. If no excluded import exists, report that limitation; never fabricate a negative case or claim that obligation proved. The checker must not install dependencies to repair the candidate. | Run `test_role_extra_closure_refusal` in `tests/hooks/test_role_extra_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R005.11 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** Emit complete role-to-extra mappings, artifact and lock digests, installed distributions and measured import outcomes. Record mandatory base dependencies separately from selected extras. Report every unsupported role explicitly. A smaller artifact must not imply complete supported-role coverage. | Run `test_role_extra_closure_evidence` in `tests/hooks/test_role_extra_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R005.12 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The role-closure CLI must consume actual built artifacts and the owner role export. Verify set equality for all supported roles and targets. Test two roles with different extras, mandatory dependencies and a shared transitive dependency. The shared dependency must remain importable. Remove one mandatory dependency or omit one exported role; both must block readiness. Each actual excluded import must fail. | Run `test_role_extra_closure_cli` in `tests/hooks/test_role_extra_closure.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.1 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add ReleasePhasePolicy in proposed pipelines_hooks/release/phases.py. Declare unique project membership, dependency predecessors, bump argv, delay_seconds and timeout_seconds. Delays must be finite and nonnegative. A version-1 event contains run ID, sequence, phase, project and completion sets. A subscriber buffer holds at most 256 events. The owner inventory determines phase membership and dependency order. | Run `test_release_phase_progress_model` in `tests/hooks/test_release_phase_progress.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.2 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** Start the inter-phase monotonic timer after every predecessor project completes its bump, publication and required hosted CI. The next phase must wait the full configured delay after that point. Emit before and after each project transition. Failure or cancellation stops downstream work and preserves completed effects. Paused or restarted runs must start a fresh full delay after revalidating predecessor receipts. | Run `test_release_phase_progress_behavior` in `tests/hooks/test_release_phase_progress.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.3 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Create release-phases at pipelines_hooks/cli.py:13 through run_gate at line 59. Proposed phases.main must consume repository-manager readiness and ordered candidate exports before invoking release producers. Repository-manager retains fleet-order authority. The CLI emits JSON lines to its consuming UI. Overflow disconnects that subscriber with an explicit sequence-gap record; resumption requires a fresh authoritative progress snapshot. | Run `test_release_phase_progress_wiring` in `tests/hooks/test_release_phase_progress.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.4 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** Duplicate phase membership, dependency-order violations, invalid delays or missing pinned candidate data must refuse before mutation. A failed bump, CI failure, timeout or cancellation must stop downstream publication. Resumption must bind the prior run and completed artifact digests; it must not silently rerun completed mutations. | Run `test_release_phase_progress_refusal` in `tests/hooks/test_release_phase_progress.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.5 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** Record policy digest, finite delay, monotonic start/end values and elapsed wait. Completed means all required project stages passed. Active means currently executing; remaining means not started. Record failed and cancelled sets separately; all five sets must be disjoint and cover the run inventory. A cancelled run must show unstarted projects explicitly. Sequence gaps must not imply continuous observation. | Run `test_release_phase_progress_evidence` in `tests/hooks/test_release_phase_progress.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.6 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The release-phases CLI must execute real bump commands for three disposable projects in two phases. Use a one-second delay and verify elapsed time from final predecessor qualification, independently of CI duration. Observe live set transitions. Failure and cancellation must prevent downstream execution. A slow subscriber must receive a gap and fresh snapshot after the 256-event buffer overflows. | Run `test_release_phase_progress_cli` in `tests/hooks/test_release_phase_progress.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R006.7 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Extend ProjectVersionInventory with a versioned static discovery policy. Version 1 discovers project.version metadata, literal module-level __version__ assignments in first-party package roots and marked project-version documentation spans. Other names such as VERSION require an explicit project-version ownership selector. Dependency constants and historical release text remain excluded unless explicitly declared. Every discovered location must map to one canonical bump selector. | Run `test_version_inventory_completeness_model` in `tests/hooks/test_version_inventory_completeness.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | a5cc6e652e41 tests/hooks/test_version_inventory_completeness.py:72 |
| PIPE-RELEASE-R006.8 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** Compare discovered locations with configured selectors before checking values. An undeclared __version__ assignment within supported package roots must fail even when its value matches. Discovery must not evaluate code or search arbitrary version strings. A dependency constant named VERSION must remain excluded without project-version ownership metadata. Ambiguous assignments and computed project versions must remain unsupported, not guessed. | Run `test_version_inventory_completeness_behavior` in `tests/hooks/test_version_inventory_completeness.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 008269c3085b a5cc6e652e41 tests/hooks/test_version_inventory_completeness.py:104 |
| PIPE-RELEASE-R006.9 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Extend proposed project_version.main through pipelines_hooks/cli.py:13 and run_gate at line 59. Reuse R006 snapshot selection. Add a code-enhancer consumer binding: owner repository, revision, real entry-point path and function, invocation argv and inventory digest. That entry must invoke project-version-sync before admitting a version proposal. Its concrete owner call site remains unresolved; a generic CLI pass cannot prove consumer integration. | Run `test_version_inventory_completeness_wiring` in `tests/hooks/test_version_inventory_completeness.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R006.10 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** Unmapped discovered references or duplicate mappings must fail with exact locations. Unsupported grammar, missing roots, dynamic assignments or ambiguous canonical authority must exit 2. The consumer must not rewrite undeclared references or broaden discovery to dependency and historical version text. | Run `test_version_inventory_completeness_refusal` in `tests/hooks/test_version_inventory_completeness.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R006.11 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** Emit discovered and configured sets, their difference, per-location role and selector, policy digest and source snapshot. State the exact supported discovery grammar and excluded categories. A pass proves completeness within that grammar only, not every possible textual version mention. | Run `test_version_inventory_completeness_evidence` in `tests/hooks/test_version_inventory_completeness.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R006.12 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The project-version-sync CLI must inspect a disposable package with a new unmapped module-level __version__ assignment. It must fail, then pass after mapping. An unrelated dependency VERSION constant and historical text must remain unchanged. After resolving its owner binding, the real code-enhancer entry must refuse the same proposal. A missing consumer binding or dynamic expression leaves integration unproved. | Run `test_version_inventory_completeness_cli` in `tests/hooks/test_version_inventory_completeness.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.7 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add MajorUpgradeCandidate to proposed release phase policy. It must enumerate every supported consumer package, prior and target dependency pins, source revisions and compatibility profile. Each receipt must bind package artifact, target major version, Scion SDK certification revision and observed result. One owner inventory must define fleet membership. | Run `test_major_upgrade_pre_pin_model` in `tests/hooks/test_major_upgrade_pre_pin.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.8 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** Before any pin write, gather passing Scion SDK certification receipts for every owner-declared consumer package at exact target artifacts. Bind admission to unchanged prior pins and source revisions. Failed or incomplete preflight must leave every pin unchanged. After admission, apply owner-ordered updates with per-repository expected-head checks. This contract does not claim an atomic transaction across repositories. | Run `test_major_upgrade_pre_pin_behavior` in `tests/hooks/test_major_upgrade_pre_pin.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.9 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Extend the proposed release-phases entry at pipelines_hooks/cli.py:13 through run_gate at line 59. Place the Scion SDK compatibility adapter before version-bump argv execution and pin writes. Repository-manager retains fleet rollout admission; Scion SDK retains compatibility semantics. Pipelines must consume those producer receipts without duplicating certification rules. | Run `test_major_upgrade_pre_pin_wiring` in `tests/hooks/test_major_upgrade_pre_pin.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.10 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** A failed preflight result must refuse admission with zero pin writes. Missing, stale, skipped or mismatched receipts must exit 2. A changed expected head invalidates admission. After writes begin, failure stops remaining updates and reports already-applied changes explicitly. Resumption requires revalidation; it must neither claim global rollback nor repeat an already-applied update silently. | Run `test_major_upgrade_pre_pin_refusal` in `tests/hooks/test_major_upgrade_pre_pin.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.11 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** Record complete owner package inventory, old/new pins, artifacts, certification profiles and all compatibility receipts. Bind admission to expected source heads. Preflight refusals require byte-identical pin evidence. Post-admission reports must distinguish applied, failed and unstarted updates, including exact resulting heads. Import success alone cannot replace package compatibility. | Run `test_major_upgrade_pre_pin_evidence` in `tests/hooks/test_major_upgrade_pre_pin.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.12 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The actual rollout entry must certify two packaged consumers before any writes. One incompatible or missing result must preserve every pin. After passing admission, change a second repository head while the first update completes. The second update must refuse; the receipt must show the first applied and the second unstarted. Revalidation must precede resumption. | Run `test_major_upgrade_pre_pin_cli` in `tests/hooks/test_major_upgrade_pre_pin.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R001.13 Versions and container files are derived Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Versions and container files are derived.** The connector release reads the version from `pyproject.toml` alone and holds no `.bumpversion.cfg` file list. `pipelines-connector render` writes `Dockerfile`, `debug.Dockerfile` and `<target>.compose.yml` from `pipelines_hooks/connector/templates` and `[project]` plus the optional `[tool.pipelines.container]` table (`host`, `compose_host`, `port`, `uid`, `home`, `entrypoints`, `sdist_deps`, `builder_apt`, `runtime_apt`, `runtime_copies`, `stage_copies`, `extra_stages`, `extra_runtime_stages`, `debug_apt`, `debug_extras`, `install_extras`, `compose_env`, `env_file_mode`, `env_file_optional`, `image_var`, `restart`, `tmpfs_size`, `publish_port`, `container_name`, `hostname`, `health_timeout`, `health_command_timeout`, `config_mounts`, `state_volumes`, `limits`); `compose_host` is one canonical host-binding field and accepts a validated IPv4/IPv6 literal or a typed `{env, default}` binding whose default is a validated IP; `publish_port` accepts a validated port literal or the same typed binding. The renderer uses Compose long-form ports (`host_ip`, `published`, `target`) so IPv4, IPv6 and typed bindings cannot corrupt short syntax. An unknown or ambiguous key (including the retired `publish_host` alias), malformed environment name/default, invalid selector/value, host-with-port or missing entrypoint refuses, and equal inputs give equal bytes. `container_pipeline.yml` takes `render_connector` and renders before the build; when the canonical `docker/Dockerfile` is absent it also renders only for a recognized connector identity (`agent_connector_sdk.connector` or a tracked `connector_sources.py`), while custom Dockerfile paths remain caller-owned. `--check` and `connector-files` fail a committed rendering. | `tests/hooks/test_connector_central.py::test_render_is_deterministic_and_driven_by_the_table`, `::test_render_preserves_explicit_runtime_contract`, `::test_render_uses_a_validated_compose_host`, `::test_render_resolves_typed_bindings_through_compose`, `::test_render_refuses_invalid_runtime_contract`, `::test_render_refuses_an_invalid_compose_host`, `::test_render_refuses_malformed_typed_bindings`, `::test_render_refuses_the_retired_publish_host_alias`, `::test_render_refuses_an_unknown_table_key_and_a_missing_entrypoint`, `::test_render_writes_files_and_check_fails_on_a_committed_rendering`, `tests/test_container_pipeline_contract.py::test_connector_render_is_selected_only_for_missing_canonical_dockerfile` and `::test_connector_sources_identity_enables_canonical_render`, and `::test_pipelines_connector_command_dispatches_and_refuses_unknown`. | requirement | PIPE-RELEASE | VERIFIED | 0f2baf0bc01f 520609e0ae33 5b1843a5a360 5ff231c270b1 8a5d41d64229 tests/hooks/test_connector_central.py:143 tests/hooks/test_connector_central.py:185 tests/hooks/test_connector_central.py:201 tests/hooks/test_connector_central.py:234 tests/hooks/test_connector_central.py:254 |
| PIPE-RELEASE-R001.14 A new Scion SDK release rebuilds connector images Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**A new Scion SDK release rebuilds connector images.** The rendered image refreshes the detected Scion SDK distribution, accepting the legacy `agent-connector-sdk` alias and the new `scion-sdk` distribution; the migration path emits the new distribution while old consumers remain accepted. The image uses `ARG SDK_VERSION`; `container_pipeline.yml` takes `sdk_version` and optional `sdk_distribution`, passes the version as the build argument and adds `<version>-sdk<sdk_version>` for the legacy distribution or `<version>-sdk-scion-sdk-<sdk_version>` for Scion (with the target suffix). `connector_sdk_rebuild_pipeline.yml` accepts the validated distribution from the dispatch input or payload, resolves the Scion SDK version (input, payload, then PyPI), checks the matching distribution-specific registry tag, and otherwise rebuilds through the container pipeline. | `tests/hooks/test_connector_central.py::test_container_workflow_renders_and_tags_by_sdk_version` and `::test_sdk_rebuild_workflow_skips_a_built_tag_and_rebuilds_through_the_container_pipeline`. | requirement | PIPE-RELEASE | VERIFIED | 5ff231c270b1 tests/hooks/test_connector_central.py:335 tests/hooks/test_connector_central.py:353 |
| PIPE-RELEASE-R007 Shared gates workflow, tag-only publish guard and fast-tests hook Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Shared gates workflow, tag-only publish guard and fast-tests hook.** Rollup of the children below. Implements the pipelines prerequisite of the CI standard; nothing changes for a caller that adds no input. | The rollup is the minimum state of its children. | requirement | PIPE-RELEASE | VERIFIED | 3cfd039fe3e2 3d0455152b96 4f1e1f0aff4a 5655978dd7c2 6e39e9664fd1 tests/hooks/test_fast_tests.py:10 tests/hooks/test_fast_tests.py:27 tests/hooks/test_fast_tests.py:35 tests/hooks/test_fast_tests.py:46 tests/hooks/test_pr_test_scope.py:189 |
| PIPE-RELEASE-R007.1 Model Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Model.** Add `.github/workflows/gates_pipeline.yml`, a `workflow_call` workflow with exactly the inputs `config`, `test-scope`, `src-root`, `runner`, `rust`, `all-files`, `extra-manual-hooks`, `skip-hooks` and `timeout-minutes`. Every input is optional with a default (`.config/pre-commit.yaml`, `tests`, derived, hosted runner, no Rust, diff scope, none, none, 15), no secrets are declared and no publish step exists, so adopting it needs no `with:` block. | Run `test_gates_workflow_inputs_all_default` in `tests/test_gates_pipeline_contract.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 3d0455152b96 4f1e1f0aff4a 5655978dd7c2 6e39e9664fd1 75a70f90aed9 tests/test_gates_pipeline_contract.py:44 tests/test_gates_pipeline_contract.py:52 |
| PIPE-RELEASE-R007.2 Behavior Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Behavior.** The `gates` job fetches full history, resolves the pull request base (merge-base fallback), runs the caller's pre-commit file at the commit stage and the pre-push stage with `--from-ref/--to-ref`, or `--all-files` when `all-files` is true, then runs the `pr-test-scope` subset (`NONE` skips, `FULL` runs the tests directory). The job honours `timeout-minutes`. The header carries the copyable caller concurrency block (cancel for pull request and main groups) and `paths-ignore` list. | Run `test_gates_workflow_scopes_to_the_diff_and_caps_time` in `tests/test_gates_pipeline_contract.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 3d0455152b96 4f1e1f0aff4a tests/test_gates_pipeline_contract.py:65 |
| PIPE-RELEASE-R007.3 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** `python_pipeline.yml` gains input `require-tag` (default `false`) and a first step guarded by it, so existing callers are unchanged. `templates/workflows/gates-skip.yml` is the inverse-`paths:` companion that reports the required `gates` check for docs/spec-only changes. Shared hook `fast-tests` is registered in `pipelines_hooks/cli.py` and published at the pre-push stage in `.pre-commit-hooks.yaml`. | Run `test_require_tag_defaults_off_and_guards_the_publish_step` in `tests/test_gates_pipeline_contract.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 3d0455152b96 4f1e1f0aff4a tests/test_gates_pipeline_contract.py:78 |
| PIPE-RELEASE-R007.4 Refusal Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Refusal.** With `require-tag` true, a ref that is not `refs/tags/v*` fails the job before the build and publish steps and names the ref. `fast-tests` exceeding its cap (default 120 s) fails the hook with exit 1 instead of hanging the push; a non-positive timeout is `CannotRun` (exit 2). | Run `test_require_tag_refuses_a_branch_ref_and_names_it` in `tests/test_gates_pipeline_contract.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 4f1e1f0aff4a tests/hooks/test_fast_tests.py:46 tests/test_gates_pipeline_contract.py:93 |
| PIPE-RELEASE-R007.5 Evidence Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Evidence.** `fast-tests` states why it ran nothing: `no affected tests` for `NONE`, and that main CI owns the suite for `FULL`. The refusal message of the tag guard names the offending ref. The gates workflow logs the `pr-test-scope` result before running tests. | Run `test_fast_tests_reports_no_affected_tests` in `tests/hooks/test_fast_tests.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 4f1e1f0aff4a tests/hooks/test_fast_tests.py:27 tests/hooks/test_fast_tests.py:35 tests/test_gates_pipeline_contract.py:104 |
| PIPE-RELEASE-R007.6 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** Run `pipelines-hook fast-tests --base-ref <base> --src-root pkg` on a real temporary Git repository with one affected and one unrelated failing test: the affected test passes (exit 0), the unrelated test never runs, and breaking the affected module exits 1. A sleeping affected test with `--timeout 2` exits 1. | Run `test_fast_tests_runs_only_the_affected_subset` in `tests/hooks/test_fast_tests.py`. Assert the stated contract through its declared boundary. | requirement | PIPE-RELEASE | VERIFIED | 3d0455152b96 4f1e1f0aff4a tests/hooks/test_fast_tests.py:10 |
| PIPE-RELEASE-R007.7 Release bumps keep the Rust scope narrow Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release bumps keep the Rust scope narrow.** `pr-test-scope --lang rust` compares each changed `Cargo.toml` and `Cargo.lock` with the merge base. A change that only moves workspace-member versions maps to no crate. Any other lock change still prints `FULL`. A release bump then keeps the pull-request crate sweep inside its 10-minute budget. | Run the three version-bump tests in `tests/hooks/test_pr_test_scope.py`. A member-version bump prints `NONE`, a registry bump prints `FULL`, and a new dependency names its crate. | requirement | PIPE-RELEASE | VERIFIED | 3cfd039fe3e2 tests/hooks/test_pr_test_scope.py:189 tests/hooks/test_pr_test_scope.py:197 tests/hooks/test_pr_test_scope.py:207 |
| PIPE-RELEASE-R008 Python release publishes the wheel and the source distribution together Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Python release publishes the wheel and the source distribution together.** `publish-python-package` builds the sdist into `dist-sdist/` and keeps `dist/` wheel-only for the wheel guard. The readiness `source` phase must prove the sdist by an isolated wheel rebuild. The publish step must upload both files and refuse an sdist whose version is not the release version. `maturin_pipeline.yml` must build its sdist from the same project as its wheels and publish it with them. `reference/python-release-readiness.md` must state the consumer rule: install wheels only, except for `allow-source-build` packages. A version with a compatible wheel is available. A missing sdist on that version is the advisory `sdist_missing`, not a failure. `partial_publish` applies only while the release run is in progress. | `tests/test_python_sdist_output.py` checks the step order, the proof, the upload set, a real offline sdist build, the maturin sdist job and the documented readiness rule. | requirement | PIPE-RELEASE | VERIFIED | 05f3ffe79a66 5433baf91995 8d87cddcb719 c5cad0580cf9 tests/test_python_sdist_output.py:106 tests/test_python_sdist_output.py:27 tests/test_python_sdist_output.py:47 tests/test_python_sdist_output.py:55 tests/test_python_sdist_output.py:83 |
| PIPE-RELEASE-R009 Release records publish to the engine (rollup) Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release records publish to the engine (rollup).** After a successful publish, the release workflow must record the release through the arbora `release.record` operation of `ARBORA-OPS-R853`. The record names repository, version, tag, head commit and artifact digests. Children `.1` and `.2` deliver it. | See each child. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R009.1 Wiring Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Wiring.** Add a final step `record-release` to `.github/workflows/main_pipeline.yml` after the publish job. It posts the record over plain HTTP. A failure of this step marks the run but never withdraws the release. | `tests/test_release_record_step.py::test_workflow_has_record_step_after_publish` parses the workflow. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R009.2 Hot-path proof Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Hot-path proof.** The test runs the step script against a fixture endpoint with two artifact digests. It observes one release record with both digests. | `tests/test_release_record_step.py::test_step_posts_release_with_digests` reads the posted record. | requirement | PIPE-RELEASE | SPECIFIED | No recorded commit/test evidence |
| PIPE-RELEASE-R010 Named per-repository source-build allowance Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Named per-repository source-build allowance.** A consumer repository may name sdist-only dependencies in `[tool.pipelines] allow-source-build`. The default is empty. Wheel readiness adds `--no-binary` only for the listed names. The resolver admits a public sdist only for those names. A wildcard, an invalid name or the published package itself must refuse. The receipt records the list, and the verify step checks it again. | `tests/test_wheel_readiness.py`: the allowance defaults to empty, reads named packages, refuses wildcards and bad names, and refuses the published package. | requirement | PIPE-RELEASE | VERIFIED | d0cb9114aec1 tests/hooks/test_connector_central.py:106 tests/hooks/test_connector_central.py:120 tests/hooks/test_connector_central.py:132 tests/test_wheel_readiness.py:510 tests/test_wheel_readiness.py:517 |
| PIPE-RELEASE-R011 Connector pull request workflow Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Connector pull request workflow.** `connector_pr_pipeline.yml` wraps `gates_pipeline.yml` for a connector. It runs the caller's `.pre-commit-config.yaml` at the commit stage, then the affected unit tests, within 10 minutes. It skips `docker-compose-check`, which needs deployment values. A `setup-command` syncs the lock with all extras and groups, installs `bump2version` and `bun` and puts them on `PATH` (the project packages go on `PYTHONPATH` too, because pre-commit runs under uvx), because the connector hooks are `language: system`. It never publishes. `gates_pipeline.yml` gains the optional input `stages` (default `pre-commit pre-push`). | `tests/test_connector_release_pipeline.py::test_connector_pr_workflow_is_fast_commit_stage_and_never_publishes` and `::test_gates_stage_loop_reads_the_stages_input`. | requirement | PIPE-RELEASE | VERIFIED | 202653782839 242bc1dcb02b 3d0455152b96 8f223cc5bbbd 9e908499d247 tests/test_connector_release_pipeline.py:19 tests/test_connector_release_pipeline.py:20 tests/test_connector_release_pipeline.py:41 tests/test_connector_release_pipeline.py:42 |
| PIPE-RELEASE-R012 A connector release publishes PyPI and Docker, and verifies both Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**A connector release publishes PyPI and Docker, and verifies both.** Each release publishes the PyPI version and the `<version>-mcp` Docker image. The last step of `container_pipeline.yml` fails the run when either is missing after the publish. | `tests/test_connector_release_pipeline.py::test_verification_passes_when_both_artifacts_exist` and `::test_verification_fails_naming_the_missing_artifact`. | requirement | PIPE-RELEASE | VERIFIED | 07ffdeee05fb 08735fb01481 0f2baf0bc01f 154f96235334 23b1e1111638 tests/hooks/test_distribution_aliases.py:22 tests/test_connector_release_pipeline.py:82 tests/test_connector_release_pipeline.py:83 tests/test_connector_release_pipeline.py:88 tests/test_connector_release_pipeline.py:89 |
| PIPE-RELEASE-R012.1 Published-wheel image preflight Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Published-wheel image preflight.** The shared release-version action offers an explicit `published-wheel` mode for a named distribution and Python package module. The central container workflow invokes it for each main-branch connector target before the builder, registry login or image build, derives a sole identity from the selected immutable build context when the caller leaves the names empty, selects that target's package extra from the reviewed renderer metadata (including a bare exact pin when MCP is supplied by a base dependency), and skips non-connectors. It verifies the selected immutable source Docker pin (using the provider renderer for an absent canonical connector Dockerfile), project version, public pure-Python wheel SHA256, and exact package file inventory and bytes against committed source plus the deterministic ontology artifacts generated into the release wheel. Missing or extra files, altered bytes, absent package, stale pin, ambiguous wheel, unavailable renderer/generator checkout, unavailable public evidence or an untracked selected custom Dockerfile refuse. It does not claim native ABI qualification. An explicit `release_repair` workflow-call input is false by default; when a caller opts in, only a `workflow_dispatch` at the current immutable `main` HEAD using either the canonical renderer or an explicit `legacy_profile` wheel-only path may proceed. The legacy path requires `render_connector=false`, a tracked canonical Dockerfile with the wheel-only marker and no source copy, and compares the public wheel against the immutable original package source while taking the Dockerfile from the current reviewed main checkout; package name/version metadata must match across both trees. The source SHA must be an ancestor of current main, its checkout and epoch must match, and the guarded container build and public-wheel proof use these explicit immutable source boundaries; the already published version may be republished as a container with the same public-wheel/source-version guard and post-publish verification before registry login/build without republishing PyPI. The default unpublished release guard is unchanged. | `tests/test_public_wheel_guard.py` exercises matching payload, generated ontology payload binding, tracked legacy payload preservation with a separate current Docker source, generated Dockerfile rendering for both connector identities, target-extra selection for connectors with and without MCP extras across generated and tracked Dockerfiles, identity refusal/skip, nonconnector/custom/provider-checkout refusals, wheel-only legacy Dockerfile refusals, inventory and byte tampering, digest refusal before ZIP parsing, committed-source isolation, stale-pin refusal before network and explicit action wiring; `tests/test_container_pipeline_contract.py` exercises main-release ordering, target-extra wiring, connector/nonconnector identity wiring, immutable source checkout/epoch/ancestry and canonical/legacy release-repair opt-in/refusals. | requirement | PIPE-RELEASE | VERIFIED | 07ffdeee05fb 08735fb01481 0f2baf0bc01f 154f96235334 23b1e1111638 tests/test_container_pipeline_contract.py:104 tests/test_container_pipeline_contract.py:173 tests/test_container_pipeline_contract.py:358 tests/test_container_pipeline_contract.py:414 tests/test_container_pipeline_contract.py:434 |
| PIPE-RELEASE-R013 Release-standard check Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release-standard check.** Hook `release-standard` warns when a connector repository (it declares the `agent_connector_sdk.connector` entry point or tracks a `connector_sources.py`; an Scion SDK dependency or a manifest file no longer marks one) lacks a tracked `docker/Dockerfile` or an enabled workflow job that calls `container_pipeline.yml` with either a tracked selected custom Dockerfile or the provider's canonical renderer path. `--strict` blocks. A repository that is not a connector passes. | `tests/hooks/test_release_standard.py` binds the warn, strict, generated-render, custom-path, disabled-job and exempt cases and the entry-point and `connector_sources.py` detection. | requirement | PIPE-RELEASE | VERIFIED | 0f2baf0bc01f 242bc1dcb02b cf912c89cd2f tests/hooks/test_release_standard.py:19 tests/hooks/test_release_standard.py:28 tests/hooks/test_release_standard.py:36 tests/hooks/test_release_standard.py:42 tests/hooks/test_release_standard.py:59 |
| PIPE-RELEASE-R014 Release readiness proves runtime profiles concurrently and without bytecode compilation Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release readiness proves runtime profiles concurrently and without bytecode compilation.** Wheel readiness resolves and installs each runtime profile (base, mcp, agent, all, plus declared ones) in its own disposable home and venv, at most four at a time, and keeps the declared profile order in the receipt. Any failing profile fails the proof. The install passes `--no-compile` because the venv is never imported. The index, public-host, wheel-only and no-cache constraints are unchanged. | `tests/test_wheel_readiness.py::test_profiles_are_proven_concurrently_in_declared_order` and `::test_profile_install_skips_bytecode_compilation`. | requirement | PIPE-RELEASE | VERIFIED | 29f674f887fa tests/test_wheel_readiness.py:581 tests/test_wheel_readiness.py:611 |
| PIPE-RELEASE-R015 Release image builds reuse one persistent BuildKit builder per runner pod Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release image builds reuse one persistent BuildKit builder per runner pod.** `container_pipeline.yml` does not create and remove a builder in every job. A named builder is created if absent, booted with a bounded wait, replaced when it does not boot, and passed to every build attempt. The local cache is pruned to a bound after the build. The registry `cache-from` and `cache-to` per target and the post-release verification are unchanged. | `tests/test_container_pipeline_contract.py::test_release_builds_use_one_persistent_builder`. | requirement | PIPE-RELEASE | VERIFIED | 29f674f887fa tests/test_container_pipeline_contract.py:1170 |
| PIPE-RELEASE-R016 Release builds keep uv downloads and managed interpreters in the runner tool cache Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**Release builds keep uv downloads and managed interpreters in the runner tool cache.** `publish-python-package` points `UV_CACHE_DIR` and `UV_PYTHON_INSTALL_DIR` at the runner tool cache before any uv call. uv keys its cache by package, version and hash, so a lock change misses. No check is skipped. | `tests/test_python_pipeline_contract.py::test_publish_action_persists_uv_cache_in_tool_cache`. | requirement | PIPE-RELEASE | VERIFIED | 29f674f887fa tests/test_python_pipeline_contract.py:133 |
| PIPE-RELEASE-R017 A pull request builds the image when a container input changes Definition — PIPE-RELEASE / PIPE-RELEASE — Dependency-ordered digest release orchestrationCanonical requirement and verification source**A pull request builds the image when a container input changes.** `container_build_check.yml` takes `dockerfile` (default `docker/Dockerfile`), `context` (default `.`) and an optional `target`, and runs `docker buildx build` with no push and no login on the self-hosted runner; it exits cleanly when the Dockerfile is absent. `connector_pr_pipeline.yml` runs the job `container-inputs`, which diffs `origin/<base>...HEAD` and sets `build` only when a changed path is under `docker/`, is a `Dockerfile*`, `.dockerignore`, `pyproject.toml`, `uv.lock`, `package.json`, `pnpm-lock.yaml` or is under `patches/`; it sets `build=false` when `docker/Dockerfile` is absent. The job `container-build` calls the check only when `build` is `true`. | `tests/test_connector_release_pipeline.py::test_connector_pr_builds_the_image_only_when_a_container_input_changes`. | requirement | PIPE-RELEASE | VERIFIED | 149439ae20cc 2cdfc98f4b32 tests/test_connector_release_pipeline.py:111 tests/test_connector_release_pipeline.py:112 |
| PIPE-VALIDATION PIPE-VALIDATION — Shared validation | spec | None | VERIFIED | No recorded commit/test evidence |
| PIPE-VALIDATION-R001 Bounded shared repository validation Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Bounded shared repository validation.** The validation package runs declared offline checks with structured required and advisory outcomes. | The child requirements below cover the command. | requirement | PIPE-VALIDATION | VERIFIED | 0a8cf7ab17e8 0f9f73b150d7 21f7b1955972 5ff231c270b1 af9b1ddcb25f tests/hooks/test_connector_central.py:440 tests/hooks/test_connector_central.py:459 tests/hooks/test_connector_central.py:467 tests/hooks/test_connector_central.py:478 tests/hooks/test_connector_security_scaffold.py:111 |
| PIPE-VALIDATION-R001.1 Strict policy Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Strict policy.** `validation/policy.py` rejects unknown keys, duplicate IDs or gates, unsupported gates, missing acceptance mappings, and invalid deadlines before dispatch. | `test_policy_refuses_ambiguous_checks` and `test_policy_accepts_repository_group`. | requirement | PIPE-VALIDATION | VERIFIED | b76625874902 tests/hooks/test_validation.py:41 tests/hooks/test_validation.py:48 |
| PIPE-VALIDATION-R001.2 Passive events do no work Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Passive events do no work.** `validation/cli.py` returns an explicit inactive result for post-merge, post-checkout, and post-rewrite without loading policy or dispatching checks. | `test_passive_git_event_does_not_dispatch` uses disposable Git repositories and sentinel tools. | requirement | PIPE-VALIDATION | VERIFIED | b76625874902 tests/hooks/test_validation.py:120 |
| PIPE-VALIDATION-R001.3 Required checks fail closed Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Required checks fail closed.** `validation/runner.py` reports missing prerequisites separately; required failures, unavailable results, and timeouts block. Advisory outcomes remain visible. | `test_required_and_advisory_outcomes` and `test_missing_git_is_unavailable`. | requirement | PIPE-VALIDATION | VERIFIED | b76625874902 tests/hooks/test_validation.py:70 tests/hooks/test_validation.py:87 |
| PIPE-VALIDATION-R001.4 Bounded execution Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Bounded execution.** `validation/runner.py` enforces check and run deadlines, terminates its process group, and records measured duration. SIGTERM and SIGINT clean up worker descendants while preserving the runner signal exit; prior signal policies are restored. | `test_deadline_terminates_child_process`, `test_run_budget_marks_remaining_checks`, and `test_runner_signal_cleans_worker_group_and_keeps_signal_exit`. | requirement | PIPE-VALIDATION | VERIFIED | 0f9f73b150d7 af9b1ddcb25f b76625874902 tests/hooks/test_validation.py:181 tests/hooks/test_validation.py:202 tests/hooks/test_validation_lifecycle.py:112 tests/hooks/test_validation_lifecycle.py:148 |
| PIPE-VALIDATION-R001.5 Actionable evidence Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Actionable evidence.** `validation/cli.py` prints grouped concise results and writes a versioned report with check logs, remedies, acceptance IDs, and elapsed time. Published and self-run pre-commit registrations expose advisory output even when the aggregate exit is zero. | `test_summary_matches_evidence` verifies clean and failed runs; `test_advisory_report_is_visible_through_pre_commit` covers advisory fail, unavailable, and timeout through actual pre-commit. | requirement | PIPE-VALIDATION | VERIFIED | af9b1ddcb25f b76625874902 tests/hooks/test_validation.py:100 tests/hooks/test_validation_lifecycle.py:50 |
| PIPE-VALIDATION-R001.6 Retain Meristem ignore acceptance Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Retain Meristem ignore acceptance.** The shared gitignore checker retains all 16 Meristem patterns and rejects tracked build, dist, and target families without confusing ordinary source filenames. | `test_au_ignore_acceptance_is_retained` runs real disposable Git fixtures. | requirement | PIPE-VALIDATION | VERIFIED | b76625874902 tests/hooks/test_validation_acceptance.py:27 tests/hooks/test_validation_acceptance.py:49 |
| PIPE-VALIDATION-R001.7 Standard repo files are provided, not copied Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Standard repo files are provided, not copied.** The `connector-standard` hook runs `connector-files`, `connector-codespell`, `connector-security` and `connector-api-parity`. A tracked `scripts/security_sanitizer.py` (the shared `security-sanitizer` inside `secrets` replaces it), `.codespellignore`, `.bumpversion.cfg`, `docker/{Dockerfile,debug.Dockerfile,mcp.compose.yml,agent.compose.yml}`, `.security/{repository_fuzz.py,authenticated_negative.py}`, `.security/security-contract.json`, `scripts/bootstrap.sh`, `scripts/verify_api_integration.py`, `tests/test_verify_api_integration.py`, or the generated ontology files is a finding. | `tests/hooks/test_connector_central.py::test_committed_copies_of_central_files_fail_and_a_clean_repo_passes` and `::test_connector_standard_is_a_group_and_a_published_hook`. | requirement | PIPE-VALIDATION | VERIFIED | 5ff231c270b1 tests/hooks/test_connector_central.py:440 tests/hooks/test_connector_central.py:459 |
| PIPE-VALIDATION-R001.8 Ignore-file defaults are shared Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Ignore-file defaults are shared.** `connector-codespell` runs codespell over tracked files outside tests and scripts with the shared default word list; extra words come from `[tool.pipelines.codespell] ignore_words` in `pyproject.toml`. Without codespell it fails closed in CI. | `tests/hooks/test_connector_central.py::test_codespell_defaults_are_shared_and_extended_from_pyproject`. | requirement | PIPE-VALIDATION | VERIFIED | 5ff231c270b1 tests/hooks/test_connector_central.py:467 |
| PIPE-VALIDATION-R001.9 One reference connector configuration Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**One reference connector configuration.** `templates/connector/pre-commit-config.yaml` is the whole connector pre-commit file: upstream hygiene and ruff hooks plus `connector-standard`, `secrets`, `spec` and `tests-fast` from this repository at `rev: main`, under 60 lines, naming only published hook ids and no copied sanitizer or bumpversion hook. | `tests/hooks/test_connector_central.py::test_reference_connector_config_names_only_published_hooks`. | requirement | PIPE-VALIDATION | VERIFIED | 5ff231c270b1 d9ae8754cd03 tests/hooks/test_connector_central.py:478 |
| PIPE-VALIDATION-R001.10 The security scaffold is provided Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**The security scaffold is provided.** `pipelines-connector security {fuzz,authenticated-negative} OUT` writes the bounded fuzz and workflow control-plane evidence (privileged trigger, broad permissions, secret in shell, mutable action or container reference; a third-party action must be pinned to a commit SHA, while the organization's own shared workflows `Knuckles-Team/pipelines/.github/workflows/<file>.yml@main` are referenced at `main`, never pinned, and are the only branch reference allowed) that `.security/repository_fuzz.py` and `.security/authenticated_negative.py` copies wrote. `pipelines-connector security contract [--out PATH]` prints the effective contract: the packaged default hooks and license policy plus `[tool.pipelines.security] license_allowed / license_denied`; an unknown key or an allow/deny overlap is refused. The `connector-security` member of `connector-standard` runs both checks against the contract thresholds. A tracked `.security/security-contract.json` is a finding unless `scripts/security_contract.py` is tracked, because that validator still reads the file. | `tests/hooks/test_connector_security_scaffold.py::test_fuzz_and_negative_checks_write_the_evidence_the_contract_expects`, `::test_a_risky_workflow_is_a_finding_and_fails_the_check`, `::test_the_organizations_own_shared_workflows_are_allowed_at_main`, `::test_every_other_branch_or_tag_reference_stays_a_mutable_action`, `::test_contract_is_the_shared_default_plus_pyproject_license_additions`, `::test_contract_refuses_unknown_keys_and_an_allow_deny_overlap` and `::test_committed_security_files_are_findings_unless_a_legacy_validator_reads_the_contract`. | requirement | PIPE-VALIDATION | VERIFIED | 0a8cf7ab17e8 tests/hooks/test_connector_security_scaffold.py:111 tests/hooks/test_connector_security_scaffold.py:133 tests/hooks/test_connector_security_scaffold.py:143 tests/hooks/test_connector_security_scaffold.py:40 tests/hooks/test_connector_security_scaffold.py:56 |
| PIPE-VALIDATION-R001.11 `scripts/bootstrap.sh` is not provided Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**`scripts/bootstrap.sh` is not provided.** A tracked `scripts/bootstrap.sh` is a finding naming its replacement: `uv sync --locked` installs the pinned Python from `.python-version` and the locked environment, and `uvx pre-commit install --hook-type pre-commit --hook-type pre-push` installs the hooks. No pipelines script replaces it. | `tests/hooks/test_connector_security_scaffold.py::test_committed_bootstrap_script_is_a_finding_that_names_what_replaces_it`. | requirement | PIPE-VALIDATION | VERIFIED | 21f7b1955972 tests/hooks/test_connector_security_scaffold.py:162 tests/hooks/test_connector_security_scaffold.py:171 |
| PIPE-VALIDATION-R001.12 API-to-MCP parity is a shared check Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**API-to-MCP parity is a shared check.** The `connector-api-parity` member of `connector-standard` (also `pipelines-connector api-parity`) measures the share of public `api_client*.py` methods that an MCP tool in `mcp_server.py` or its sibling `mcp/*.py` calls through `client`, `api` or `self`, including a `resolve_action(.., <NAME>_ACTIONS)` catalog dispatched with `getattr`. A tool is a `.tool`-decorated function or one named with a `[tool.pipelines.api_integration] tool_prefixes` prefix. Coverage below `baseline` (default 0.0) fails; coverage below 100 always lists the unmapped methods. A repository without a client or a server passes; an unknown key or an invalid value is refused. | `tests/hooks/test_connector_security_scaffold.py::test_parity_counts_decorated_tools_and_catalog_dispatch_and_prefixed_tools_only_when_configured`, `::test_parity_fails_below_the_pyproject_baseline_and_lists_unmapped_methods`, `::test_parity_passes_without_a_client_or_server_and_refuses_bad_configuration` and `::test_a_committed_parity_script_is_a_finding_and_standard_runs_every_member`. | requirement | PIPE-VALIDATION | VERIFIED | 21f7b1955972 tests/hooks/test_connector_security_scaffold.py:210 tests/hooks/test_connector_security_scaffold.py:221 tests/hooks/test_connector_security_scaffold.py:233 tests/hooks/test_connector_security_scaffold.py:247 tests/hooks/test_connector_security_scaffold.py:260 |
| PIPE-VALIDATION-R002 Privacy identity provenance Definition — PIPE-VALIDATION / PIPE-VALIDATION — Shared validationCanonical requirement and verification source**Privacy identity provenance.** Match Git-display-name-only candidates in identity fields or explicit attribution. Account, host, home-path, email, explicit override and prohibited-catalog identities remain strict everywhere. Independent strict provenance wins when sources overlap. No product-name allowlist applies. A bare personal name outside attribution can pass when Git display name is its sole source. | `tests/hooks/test_privacy_provenance.py` exercises the real CLI, contextual attribution, independent sources, same-line leaks and catalog precedence. Existing catalog refusal tests remain required. | requirement | PIPE-VALIDATION | VERIFIED | d718d2c96c8c tests/hooks/test_privacy_provenance.py:25 tests/hooks/test_privacy_provenance.py:33 tests/hooks/test_privacy_provenance.py:53 tests/hooks/test_privacy_provenance.py:75 tests/hooks/test_privacy_provenance.py:82 |