Capability Registration
@@ -29,12 +29,5 @@Validate capability registry entries against schema, index consistency, and relation integrity.
registry/capabilities/capability.registry.validate.md
diff --git a/.custodian-brief.md b/.custodian-brief.md new file mode 100644 index 0000000..56f1c78 --- /dev/null +++ b/.custodian-brief.md @@ -0,0 +1,22 @@ + +# Custodian Brief — reuse-surface + +**Domain:** infotech +**Last synced:** 2026-09-05 23:35 UTC +**State Hub:** http://127.0.0.1:8000 *(adjust if running on a remote machine)* + +## Active Workstreams + +### Follow the CommerceCanon repository rename in federation sources +Progress: 1/2 done | workplan_id: `0d1beafd-e638-5bb9-b91d-13543ac42a04` + +**Open tasks:** +- ! Repair archived workplan bindings reported during handoff registration `ceba0cd4` + +--- +## MCP Orientation (when available) + +If the state-hub MCP server is reachable, call: +`get_domain_summary("infotech")` +This provides richer cross-domain context. +If the MCP call fails, use this file as your orientation source. diff --git a/.generated-work-records.json b/.generated-work-records.json deleted file mode 100644 index 4946f68..0000000 --- a/.generated-work-records.json +++ /dev/null @@ -1 +0,0 @@ -{"version":1,"repo_slug":"reuse-surface"} diff --git a/.generated-work-records.mk b/.generated-work-records.mk deleted file mode 100644 index 8996bf4..0000000 --- a/.generated-work-records.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Explicit opt-in recipe; no environment files or external make includes. -CUSTODIAN_SOURCE ?= /home/worsch/the-custodian -GENERATED_REPO_SLUG ?= reuse-surface -.PHONY: generated-work-records generated-work-records-check -generated-work-records: - python3 "$(CUSTODIAN_SOURCE)/scripts/generate_staged_work_records.py" --repo . --repo-slug "$(GENERATED_REPO_SLUG)" -generated-work-records-check: - python3 "$(CUSTODIAN_SOURCE)/scripts/generate_staged_work_records.py" --repo . --repo-slug "$(GENERATED_REPO_SLUG)" --check diff --git a/.gitignore b/.gitignore index c701604..65b4862 100644 --- a/.gitignore +++ b/.gitignore @@ -182,6 +182,3 @@ cython_debug/ # PyPI configuration file .pypirc - -# Local State Hub orientation snapshot; authored work records remain tracked. -/.custodian-brief.md diff --git a/SCOPE.md b/SCOPE.md index 6c50b4b..f7b6f73 100644 --- a/SCOPE.md +++ b/SCOPE.md @@ -313,22 +313,4 @@ reuse-surface/ - Graph explorer: docs/graph/index.html - CLI reference: tools/README.md - Agent instructions: AGENTS.md -- Workplans: workplans/ - -## Generated work-record index - -This repository opts into staged-source WORK-RECORDS.md generation through -`.generated-work-records.json` and the isolated `.generated-work-records.mk` -recipe. `make generated-work-records` reuses the State Hub renderer through -the Custodian adapter; `make generated-work-records-check` verifies byte-exact -agreement with staged Markdown. The pre-commit hook uses the isolated recipe, -preserves unstaged index edits by refusing them, and retains the generated-only -commit guard. It does not contact the hub, alter workplan statuses, or grant -deployment authority. This consumes shared tooling; it does not make this -repository the provider of the generator capability. - -## Local orientation brief policy — 2026-10-21 - -`.custodian-brief.md` is a local, ignored State Hub orientation snapshot. Refreshing -it does not require a Git commit. Authored workplans and the generated -WORK-RECORDS index keep their existing source and staged-generation contracts. +- Workplans: workplans/ \ No newline at end of file diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 523619f..4729120 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -8,22 +8,77 @@ | Kind | ID | Status | Lane | Source | | --- | --- | --- | --- | --- | -| workplan | ADHOC-2026-10-13 | finished | — | workplans/ADHOC-2026-10-13.md | -| workplan | REUSE-WP-ADHOC-2026-10-16 | finished | — | workplans/ADHOC-2026-10-16.md | -| workplan | REUSE-WP-0023 | finished | — | workplans/REUSE-WP-0023-access-engine-source-rename.md | -| workplan | REUSE-WP-0024 | finished | — | workplans/REUSE-WP-0024-browser-discovery-and-provider-evidence.md | -| workplan | REUSE-WP-0025 | blocked | — | workplans/REUSE-WP-0025-private-source-reader-boundary.md | -| workplan | REUSE-WP-0026 | finished | — | workplans/REUSE-WP-0026-wave2-resource-right-sizing.md | -| task | ADHOC-2026-10-13-T01 | done | — | workplans/ADHOC-2026-10-13.md | -| task | ADHOC-2026-10-13-T02 | done | — | workplans/ADHOC-2026-10-13.md | -| task | REUSE-WP-ADHOC-2026-10-16-T01 | done | — | workplans/ADHOC-2026-10-16.md | -| task | REUSE-WP-0023-T01 | done | — | workplans/REUSE-WP-0023-access-engine-source-rename.md | -| task | REUSE-WP-0023-T02 | done | — | workplans/REUSE-WP-0023-access-engine-source-rename.md | -| task | REUSE-WP-0024-T01 | done | — | workplans/REUSE-WP-0024-browser-discovery-and-provider-evidence.md | -| task | REUSE-WP-0024-T02 | done | — | workplans/REUSE-WP-0024-browser-discovery-and-provider-evidence.md | -| task | REUSE-WP-0024-T03 | done | — | workplans/REUSE-WP-0024-browser-discovery-and-provider-evidence.md | -| task | REUSE-WP-0025-T01 | done | — | workplans/REUSE-WP-0025-private-source-reader-boundary.md | -| task | REUSE-WP-0025-T02 | done | — | workplans/REUSE-WP-0025-private-source-reader-boundary.md | -| task | REUSE-WP-0025-T03 | wait | — | workplans/REUSE-WP-0025-private-source-reader-boundary.md | -| task | REUSE-WP-0026-T01 | done | — | workplans/REUSE-WP-0026-wave2-resource-right-sizing.md | -| intake | REUSE-IN-0001 | closed | green | intakes/REUSE-IN-0001-headless-browser-runnable-answer.md | +| workplan | REUSE-WP-0001 | finished | — | workplans/REUSE-WP-0001-statehub-bootstrap.md | +| workplan | REUSE-WP-0002 | finished | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| workplan | REUSE-WP-0003 | finished | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| workplan | REUSE-WP-0004 | finished | — | workplans/REUSE-WP-0004-registry-hardening.md | +| workplan | REUSE-WP-0005 | finished | — | workplans/REUSE-WP-0005-registry-federation.md | +| workplan | REUSE-WP-0006 | finished | — | workplans/REUSE-WP-0006-registry-hygiene-and-coverage.md | +| workplan | REUSE-WP-0007 | finished | — | workplans/REUSE-WP-0007-interactive-catalog.md | +| workplan | REUSE-WP-0008 | finished | — | workplans/REUSE-WP-0008-graph-explorer.md | +| workplan | REUSE-WP-0009 | finished | — | workplans/REUSE-WP-0009-cli-hardening.md | +| workplan | REUSE-WP-0010 | finished | — | workplans/REUSE-WP-0010-network-federation.md | +| workplan | REUSE-WP-0016 | finished | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| workplan | REUSE-WP-0020 | finished | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| workplan | REUSE-WP-0021 | active | — | workplans/REUSE-WP-0021-commerce-canon-source-rename.md | +| task | REUSE-WP-0001-T01 | done | — | workplans/REUSE-WP-0001-statehub-bootstrap.md | +| task | REUSE-WP-0001-T02 | done | — | workplans/REUSE-WP-0001-statehub-bootstrap.md | +| task | REUSE-WP-0001-T03 | done | — | workplans/REUSE-WP-0001-statehub-bootstrap.md | +| task | REUSE-WP-0002-T01 | done | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| task | REUSE-WP-0002-T02 | done | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| task | REUSE-WP-0002-T03 | done | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| task | REUSE-WP-0002-T04 | done | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| task | REUSE-WP-0002-T05 | done | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| task | REUSE-WP-0002-T06 | done | — | workplans/REUSE-WP-0002-mvp-registry-foundation.md | +| task | REUSE-WP-0003-T01 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T02 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T03 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T04 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T05 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T06 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T07 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0003-T08 | done | — | workplans/REUSE-WP-0003-intent-scope-gap-closure.md | +| task | REUSE-WP-0004-T01 | done | — | workplans/REUSE-WP-0004-registry-hardening.md | +| task | REUSE-WP-0004-T02 | done | — | workplans/REUSE-WP-0004-registry-hardening.md | +| task | REUSE-WP-0004-T03 | done | — | workplans/REUSE-WP-0004-registry-hardening.md | +| task | REUSE-WP-0004-T04 | done | — | workplans/REUSE-WP-0004-registry-hardening.md | +| task | REUSE-WP-0005-T01 | done | — | workplans/REUSE-WP-0005-registry-federation.md | +| task | REUSE-WP-0005-T02 | done | — | workplans/REUSE-WP-0005-registry-federation.md | +| task | REUSE-WP-0005-T03 | done | — | workplans/REUSE-WP-0005-registry-federation.md | +| task | REUSE-WP-0005-T04 | done | — | workplans/REUSE-WP-0005-registry-federation.md | +| task | REUSE-WP-0005-T05 | done | — | workplans/REUSE-WP-0005-registry-federation.md | +| task | REUSE-WP-0006-T01 | done | — | workplans/REUSE-WP-0006-registry-hygiene-and-coverage.md | +| task | REUSE-WP-0006-T02 | done | — | workplans/REUSE-WP-0006-registry-hygiene-and-coverage.md | +| task | REUSE-WP-0006-T03 | done | — | workplans/REUSE-WP-0006-registry-hygiene-and-coverage.md | +| task | REUSE-WP-0006-T04 | done | — | workplans/REUSE-WP-0006-registry-hygiene-and-coverage.md | +| task | REUSE-WP-0007-T01 | done | — | workplans/REUSE-WP-0007-interactive-catalog.md | +| task | REUSE-WP-0007-T02 | done | — | workplans/REUSE-WP-0007-interactive-catalog.md | +| task | REUSE-WP-0007-T03 | done | — | workplans/REUSE-WP-0007-interactive-catalog.md | +| task | REUSE-WP-0008-T01 | done | — | workplans/REUSE-WP-0008-graph-explorer.md | +| task | REUSE-WP-0008-T02 | done | — | workplans/REUSE-WP-0008-graph-explorer.md | +| task | REUSE-WP-0009-T01 | done | — | workplans/REUSE-WP-0009-cli-hardening.md | +| task | REUSE-WP-0009-T02 | done | — | workplans/REUSE-WP-0009-cli-hardening.md | +| task | REUSE-WP-0009-T03 | done | — | workplans/REUSE-WP-0009-cli-hardening.md | +| task | REUSE-WP-0010-T01 | done | — | workplans/REUSE-WP-0010-network-federation.md | +| task | REUSE-WP-0010-T02 | done | — | workplans/REUSE-WP-0010-network-federation.md | +| task | REUSE-WP-0010-T03 | done | — | workplans/REUSE-WP-0010-network-federation.md | +| task | REUSE-WP-0016-T01 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T02 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T03 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T04 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T05 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T06 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T07 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T08 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0016-T09 | done | — | workplans/REUSE-WP-0016-interactive-registry-maintain.md | +| task | REUSE-WP-0020-T01 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T02 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T03 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T04 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T05 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T06 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T07 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T08 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0020-T09 | done | — | workplans/REUSE-WP-0020-coulombcore-retirement-cutover.md | +| task | REUSE-WP-0021-T01 | done | — | workplans/REUSE-WP-0021-commerce-canon-source-rename.md | +| task | REUSE-WP-0021-T02 | wait | — | workplans/REUSE-WP-0021-commerce-canon-source-rename.md | diff --git a/docs/CapabilityCatalog.md b/docs/CapabilityCatalog.md index fbc72ee..2715743 100644 --- a/docs/CapabilityCatalog.md +++ b/docs/CapabilityCatalog.md @@ -1,8 +1,8 @@ # Capability Catalog **Domain:** helix_forge -**Updated:** 2026-10-13 -**Entries:** 3 +**Updated:** 2026-06-16 +**Entries:** 2 Generated by `reuse-surface catalog`. Do not edit manually. @@ -30,20 +30,3 @@ Generated by `reuse-surface catalog`. Do not edit manually. **Known limitations:** - warnings do not fail CI unless --fail-on-warnings is set - -## infotech - -### Headless Browser Automation - -- **ID:** `capability.infotech.headless-browser` -- **Vector:** D3 / A5 / C2 / R2 -- **Owner:** reuse-surface -- **Path:** `registry/capabilities/capability.infotech.headless-browser.md` -- **Summary:** Headless browser automation, screenshots and keyboard trials through rapp-playwright 0.1.0 (Playwright 1.64.0, Chromium 156.0.8078.4). Published A5 local container; managed Railiance admission is pending. Download the Python 3.10+ standalone client from https://forgejo.coulomb.social/coulomb/rapp-playwright/raw/commit/8831a05aeba5ce588f3b395ade676dde2a151c5d/client/rapp_playwright.py and run `python3 rapp_playwright.py --url http://127.0.0.1:18083 preflight`, then `python3 rapp_playwright.py --url http://127.0.0.1:18083 trial --out trial-01` with a fresh output directory. This endpoint was verified locally on 2026-10-13 and is ephemeral; it installs no browser for the caller. If unreachable, follow the local container setup in the capability card or adapt its A2 source examples; this is an availability gap on the existing capability. Contract: https://forgejo.coulomb.social/coulomb/rapp-playwright/src/commit/8831a05aeba5ce588f3b395ade676dde2a151c5d/docs/consumer-contract.md. - -**Known limitations:** -- This is a dated source inspection; run the target-repo trial before claiming adoption success. -- Firefox is evidenced in frontend-patterns; WebKit is supported upstream but unverified in this inspection. -- Selenium is an optional testdrive-jsui dependency, not verified execution; Puppeteer has no verified example here. -- Local provider availability is verified but ephemeral; managed admission and platform operation remain pending. -- Provider fixture success does not establish consumer target reachability or application acceptance. diff --git a/docs/NetKingdomSecurityDiscovery.md b/docs/NetKingdomSecurityDiscovery.md deleted file mode 100644 index 5fe1446..0000000 --- a/docs/NetKingdomSecurityDiscovery.md +++ /dev/null @@ -1,27 +0,0 @@ -# NetKingdom security capability discovery - -The workstation federation includes 70 reviewed security and supporting capabilities from 60 sibling repositories. Two additional inspected repositories are nonproviders: rapp-secrets-engine is retired and rapp-forgejo is a placeholder without a package declaration. The owner capability entries are the reusable source; the architecture assessment is in the-custodian CUST-WP-0081. - -## Local discovery - -From a reuse-surface checkout beside those repositories: - -```sh -reuse-surface federation compose -reuse-surface plan-check --intent "bound approval consumption before credential delivery" --no-llm -reuse-surface plan-check --intent "deterministic posture feedback evidence expiry" --no-llm -``` - -The source manifest uses relative sibling paths for the reviewed cohort and requires their indexes to exist. Other federation sources are preserved. A missing sibling is a composition error rather than silent loss of a reviewed capability. The composed local index supports planning; it is not a runtime readiness or authorization grant. `reuse-surface query` searches this repository's own index, while `plan-check` uses the composed federation. - -## Hosted discovery - -```sh -reuse-surface plan-check --hub-url https://reuse.coulomb.social --intent "bound approval consumption" --no-llm -``` - -As checked on 2026-10-14, all 60 source registry commits are published, while the hosted hub contains 32 of the 70 reviewed capabilities. Thirty-eight new owner registrations remain pending scoped write access: the normal Warden lane was allowed by the PDP but OpenBao refused the current caller with HTTP 403. Seven of those indexes also require admitted private-source read access; anonymous retrieval returns 404. Do not change repository visibility or reuse another workload's credential to make discovery pass. - -The seven private sources are rapp-openbao, rapp-policy-nexus, rapp-postgres, rapp-telemetry, rapp-tenant-engine, rapp-user-engine and rapp-sbom-nexus. Hosted registration supports an `auth_env` reference to a credential already configured at the hub. Source-owner approval, scoped read provisioning and a successful native fetch must precede their registration. Thirty-one public-source registrations are otherwise ready. - -The exact registration plan, source commits, raw retrieval results and local/hosted verification receipts are retained in the-custodian at `docs/assessments/netkingdom-2026-10-14/`. Existing IDs were preserved where valid; the copied Secrets Engine repository-template entry was removed. Registry C/R values retained from older entries remain owner assessments, not renewed evidence. diff --git a/docs/assessments/cust81-private-reader/candidate-owner-review-r1.json b/docs/assessments/cust81-private-reader/candidate-owner-review-r1.json deleted file mode 100644 index 54d305f..0000000 --- a/docs/assessments/cust81-private-reader/candidate-owner-review-r1.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "id": "REUSE-WP-0025-CONSUMER-CANDIDATE-REVIEW-R1", - "reviewed_at": "2026-10-14T23:08:33.016513+00:00", - "review_scope": "Consumer code, receipt-only verification helper, exact metadata URL configuration and local image preparation integration only; not credential provisioning, production rollout, registry admission or runtime approval.", - "owner_review": { - "reviewer": "reuse-surface-owner (agent reuse-surface, codex)", - "decision": "approved", - "comment": "REUSE-WP-0025-T02. INTENT.md Registry First, Consumer Experience Matters, and Internal and External Evidence Must Stay Separate: the reviewed native patch makes source credentials usable only for operator-approved exact HTTPS URLs, before any caller-selected credential lookup; redirects are refused. The helper verifies native acquisition of the consented seven indexes and seven entries by exact hashes/schema without stale-cache fallback and returns bounded receipts. Exact candidate source/helper/config/test and preparation patch digests are bound below. 227 tests pass in explicit fixture environment and source hashes match the locally smoke-verified image. This approves consumer preparation integration only; baseline proposal unchanged-image reader delivery remains changes_requested. No credential execution, founder approval or production success is inferred." - }, - "workplan_id": "REUSE-WP-0025", - "task_id": "REUSE-WP-0025-T02", - "intent_sha256": "511d1029a7aefc67b68a6363ed3ce8f803f2516c00062ff805263dffe26c771b", - "candidate_artifacts": { - "reuse_surface/federation.py": "dbaa40f25cc0f090143578cd1c7068cb2cb00960fafd17d5239bf8a5bac514dd", - "reuse_surface/private_source_verify.py": "c67a284091cc4dd62dca56658a14b8ea1357e2b3df1518120da4c51e0ee8d85c", - "tests/test_private_source_verify.py": "5f0c0b30b98b4db96d695bdda952b25707916e297d566744fadb6dde7bea18b2", - "docs/assessments/cust81-private-reader/runtime-auth-source-allowlist-r1.json": "e1948c537e206b30fc72b9e4732a3f600d92e131813e6f7ecfd4bfbb18c27286", - "docs/assessments/cust81-private-reader/suite-environment-validation.json": "84f9c410f09e0dd5c0c90987744bc9f6e85292d2e28e4db88859ee0b24e68bd2", - "docs/assessments/cust81-private-reader/reuse-owner-preparation-r1.patch": "da9634481ce80658dfce815d3539ba023234938dc76163dfd93d7677be95ed51" - }, - "local_image": { - "manifest_digest": "sha256:2364b7e7859daccf9340a063654e2b09eed1bc27e0adf7b23cbb4b30135a7db0", - "receipt_path": "/home/worsch/the-custodian/docs/assessments/netkingdom-2026-10-14/hardened-reader-local-image-r1.json", - "receipt_sha256": "ed7c2516925d7f16b573a70b5e48d5656a4875e9eb94bcc8760a8bdcbe07f59c", - "published": false, - "deployed": false, - "credentials_provisioned": false - }, - "existing_auth_source_inventory": { - "receipt_path": "/home/worsch/the-custodian/docs/assessments/netkingdom-2026-10-14/live-authenticated-source-inventory-r1.json", - "receipt_sha256": "ba669d6231c8c611191c7ad28f5914d6c47332032b23b0ea40a13f753e883073", - "checked_at": "2026-10-14T23:01:13.254261+00:00", - "authenticated_source_count": 0, - "must_recheck_before_rollout": true - }, - "preserved_baseline_review": { - "path": "docs/assessments/cust81-private-reader/owner-review-r1.md", - "decision": "changes_requested", - "scope": "Original R1 same-image credential delivery proposal; preserved, not rewritten." - }, - "remaining_execution_gates": [ - "Platform/Forgejo/apps/mason owner reviews of exact current CCR and implementation.", - "Exact founder credential and live rollout decision remains separate.", - "Publish and independently verify registry image digest before rendering actual release values.", - "Recheck metadata-only authenticated source inventory and materialized exact14 reader allowlist before approved rollout.", - "Run receipt helper in actual hub environment with native authenticated fresh acquisition, then exact70 hosted audit." - ], - "does_not_approve": [ - "Credential provision or access grant", - "Live production mutation or rollout", - "Other owner roles", - "Registration/admission status change", - "Entire objective completion" - ] -} diff --git a/docs/assessments/cust81-private-reader/ccr0046-consumer-owner-review-r2.json b/docs/assessments/cust81-private-reader/ccr0046-consumer-owner-review-r2.json deleted file mode 100644 index 6c82bac..0000000 --- a/docs/assessments/cust81-private-reader/ccr0046-consumer-owner-review-r2.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "id": "REUSE-WP-0025-CCR0046-CONSUMER-REVIEW-R2", - "reviewed_at": "2026-10-14T23:19:37.233425+00:00", - "workplan_id": "REUSE-WP-0025", - "task_id": "REUSE-WP-0025-T01", - "ccr_id": "CCR-2026-0046", - "revision": 2, - "review": { - "reviewer": "reuse-surface-owner (agent reuse-surface, codex)", - "decision": "approved", - "comment": "REUSE-WP-0025-T01; INTENT.md Registry First, Consumer Experience Matters and Internal and External Evidence Must Stay Separate. Reviewed exact CCR-2026-0046 revision2, provisioner, exact-token recovery, bootstrap contract and ESO policy SHA256 listed below solely for consumer delivery boundary. The exact seven consented sources/commits/hash rows match original pinned disclosure preparation. Separate reader KV and env protect scoped writer callers; contract prohibits delivery to baseline/current image and requires full reviewed HTTPS/redirect/credential-before-use allowlist enforcement plus exact fourteen metadata URLs. Final actual hub helper must prove native index AND entry hashes without stale cache; 70-ID hosted audit remains independent. Recovery confines revocation to separately approved exact dedicated PAT, preserves shared runtime KV/Secret/public sources, and does not remint after ambiguity. Full native code/helper/config preparation integration review is separately approved and pinned below. This owner judgement approves preparation integration of this consumer boundary, not human credential/rollout go, provisioner execution, status/admission changes, other owners or deployment success." - }, - "artifacts": { - "credential-change-requests/CCR-2026-0046-reuse-surface-forgejo-source-read.yaml": "90522912fb78fed72e625382fb7114a0e9aafe76d59e36bffecab83c5bb7d643", - "scripts/provision-reuse-surface-forgejo-source.py": "abf60a754596baa1610d23b1fd367385b0222ac8aeaebba0f2cfb7ec4c62055b", - "scripts/revoke-reuse-surface-forgejo-source.py": "f78d1b26fbff93c6cc481a896d9fb9b9ce93049b8b3267fa41a64bc57dadb162", - "docs/proposals/2026-10-15-reuse-private-reader/bootstrap-contract.json": "2bb72671e0a5f230497ab8ef2967a20ee68d1f2cf081f07c84f6db3442e18d8b", - "openbao/policies/workload-kv-read-reuse-surface-runtime-eso.hcl": "6320f6c2d262d924ea16291d301d5f9eeb7efdb6ce7ea141c1a41d277d86b01b" - }, - "consumer_preparation_review": { - "path": "docs/assessments/cust81-private-reader/candidate-owner-review-r1.json", - "sha256": "853cb3b721d83ba5aeb0847111cc47f8094b733f870059cca9834b2c1a5a6219", - "decision": "approved" - }, - "preserved_baseline": "Original same-image reader delivery review remains changes_requested; this R2 consumer boundary resolves that design defect without altering earlier evidence.", - "execution_authorized": false, - "required_before_execution": [ - "Human exact credential and separately scoped rollout decisions, with all required independent owner reviews.", - "Published independently verified image digest and reviewed release config for the full security patch.", - "Recheck metadata-only live authenticated-source inventory (last snapshot0) and validate exact14 runtime reader URLs.", - "Post-rollout native authenticated helper receipt plus separate registration and exact70 hosted completion audit." - ], - "not_proven": [ - "Real Forgejo reader scope", - "Live OpenBao/ESO materialization", - "Production image/config rollout", - "Actual authenticated metadata fetch", - "Hosted private capability admission" - ] -} diff --git a/docs/assessments/cust81-private-reader/local-consented-metadata-validation.json b/docs/assessments/cust81-private-reader/local-consented-metadata-validation.json deleted file mode 100644 index cd4af82..0000000 --- a/docs/assessments/cust81-private-reader/local-consented-metadata-validation.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "id": "CUST81-PRIVATE-NATIVE-FETCH-RECEIPT-R1", - "checked_at": "2026-10-14T22:43:42.958330+00:00", - "proposal_sha256": "7819eb51d249f5c7aff4df9fb520afcfb76603b05a4104439499102b6c20af99", - "disclosure_sha256": "46ac4fe49a08054cc215aade2fbaf3b36ee334520997857ed84f530b52da9d35", - "consent_sha256": "4a4602ad926e3af855d6ddba4731430d33e4a7432c507ba0a5193b9f43056b52", - "cache_used": false, - "all_verified": true, - "sources": [ - { - "repo": "rapp-openbao", - "commit": "35672be138036c8433a5ac5de91e068c03c2b124", - "index_sha256": "044efa3d02b90e1872f2516c581159d388a8080a689f76fcd78bb4d048d6ee64", - "verified": true, - "entry_sha256": [ - "9de890da536c34ac2b50576e2c4a9c03792c8a07545d2a0566ace68ac10a293e" - ] - }, - { - "repo": "rapp-policy-nexus", - "commit": "088b78ac03b0cebeec34a69aae3569eb7ec2f9c3", - "index_sha256": "e68bdedf61eee9ca2026f46a2434ce384c26234616e74f7a5d08a06c75b3bb00", - "verified": true, - "entry_sha256": [ - "21415ed5e89dcf8bd2df0c8bc99b07d2c87173809c37fa2582de6d336918a126" - ] - }, - { - "repo": "rapp-postgres", - "commit": "a9f569c96d74aa384ac8d3ac4aa960e4061550b5", - "index_sha256": "d939333eed9d85172e006f526c445fbe2602a721d53f7c0d14bc68286ae08776", - "verified": true, - "entry_sha256": [ - "64503872abb24bb28f291264e860ab094c6abb721fbfe90b47258ad13b77af44" - ] - }, - { - "repo": "rapp-sbom-nexus", - "commit": "adbedd349e8df97be43a1f57db7095af45ff29d1", - "index_sha256": "d2ee0f193d2198bf8f16ce64c90ae7664e59a2bc307ad711426af3fd47deb057", - "verified": true, - "entry_sha256": [ - "1a15e37bd3d19c4c89ef25803667937f549ade1cd27bedfa85132ac48ffe3f48" - ] - }, - { - "repo": "rapp-telemetry", - "commit": "f158307e24b86bab88a1af4830ff6b4f85afdeb5", - "index_sha256": "ee8801f143ed5cf064205710a61c2bb24efc6ea8585d5786d6b679426ec4c1d4", - "verified": true, - "entry_sha256": [ - "a67dbf6905223c04b1c003d5f967841038743c8c1479812f5cf0bb55ad6cee77" - ] - }, - { - "repo": "rapp-tenant-engine", - "commit": "9bdc86572728783a5ed94266f04f7b12d414c557", - "index_sha256": "d8e9c1282350b5d2fd4f4d69712aa7a5fbcd2367bb1a7fad1b6eb16a97e5d732", - "verified": true, - "entry_sha256": [ - "e7cf0485cfdb6f497281638d81f908b5c2fe1053125c6ef28130504909d1d49e" - ] - }, - { - "repo": "rapp-user-engine", - "commit": "f35108f9e1b8702fb6c526fe42b2fec5ca032738", - "index_sha256": "95b4ed2d0b189f6847b1c0899f740d1da46933a8f40491e1a02f2d4e57c819fc", - "verified": true, - "entry_sha256": [ - "84ec4fdce99134c88c110104cac93bdea36cffb5ba34e046b9ad161fb860dce2" - ] - } - ], - "transport": "fake-only local committed metadata; no authenticated network fetch or runtime evidence" -} diff --git a/docs/assessments/cust81-private-reader/owner-review-r1.md b/docs/assessments/cust81-private-reader/owner-review-r1.md deleted file mode 100644 index d83f087..0000000 --- a/docs/assessments/cust81-private-reader/owner-review-r1.md +++ /dev/null @@ -1,102 +0,0 @@ -# Reuse-surface independent consumer preparation review - -Disposition: **changes_requested** for reader provisioning proposal -`CUST81-PRIVATE-READER-PROVISIONING-PREPARATION-R1`, SHA256 -`7819eb51d249f5c7aff4df9fb520afcfb76603b05a4104439499102b6c20af99`. -Reviewer: delegated reuse-surface owner preparation worker, supervised local scope. -This review does not authorize credentials, approve another owner's implementation, -claim deployment success, or grant permanent repo authority. - -INTENT requires inspectable registry membership and evidence-driven consumer -reliability. Acquisition must protect source custody while making the explicitly -consented metadata discoverable. The proposal's seven-repository reader, separate -KV path and exact commit pins fit that purpose, but its unchanged-image rollout -assumption fails consumer credential isolation. - -## Findings and prepared correction - -1. Native `fetch_remote_index_text` originally supplies Authorization to urllib's - default opener. Redirect handling copies headers to the redirect target. A - source redirect can disclose the PAT to another origin or unreviewed path. - Prepared patch rejects **all authenticated redirects**, even same-origin ones. - Anonymous federation keeps its previous behavior. -2. Hub registration accepts caller-selected `auth_env`, `auth_header` and `url`. - Composition passes these to `_auth_headers`, which reads the named runtime env - and sends its value to that URL. A holder of the writer token can therefore - induce credential exfiltration without a redirect. Prepared patch validates - operator-owned `REUSE_SURFACE_AUTH_SOURCE_ALLOWLIST` JSON before looking up the - credential. Exact allowed env name and URL are mandatory; missing/malformed - configuration fails closed. Authenticated HTTP is rejected. -3. `resolve_source_index_path(refresh=True)` may return stale cache after remote - failure. A fresh composition timestamp alone cannot prove private acquisition. - Prepared helper calls native fetch directly, never the resolver/cache path, - and verifies exact consented index **and Markdown entry** SHA256 plus capability - identity, owner and entry schema. Failed receipts contain bounded categories, - never raw exception text, bodies, headers, or secrets. - -## Exact prepared artifacts - -- `reuse_surface/federation.py` SHA256 - `dbaa40f25cc0f090143578cd1c7068cb2cb00960fafd17d5239bf8a5bac514dd` -- `reuse_surface/private_source_verify.py` SHA256 - `c67a284091cc4dd62dca56658a14b8ea1357e2b3df1518120da4c51e0ee8d85c` -- `tests/test_private_source_verify.py` SHA256 - `5f0c0b30b98b4db96d695bdda952b25707916e297d566744fadb6dde7bea18b2` -- `runtime-auth-source-allowlist-r1.json` SHA256 - `e1948c537e206b30fc72b9e4732a3f600d92e131813e6f7ecfd4bfbb18c27286` - is the exact fourteen commit-pinned index/entry URLs for reader env - `REUSE_SURFACE_FORGEJO_SOURCE_READ_TOKEN`. Serialize this object as the runtime - value of `REUSE_SURFACE_AUTH_SOURCE_ALLOWLIST`; do not use host wildcards. - -## Validation and limits - -Focused fake transport tests cover native Bearer header handling, all fourteen -fetches, no cache path, mismatched index/entry hashes, tampered consent packet, -missing authentication, sanitized errors, same/cross-origin redirects without -second requests, HTTP rejection, missing/malformed/unapproved allowlists, and -broadened reader URL scope. Focused tests: **30 passed**. Whole test suite initially -reported **226 passed, 1 failed**: existing `test_federation_compose` resolved a -required sibling index to missing `/tmp/access-engine/registry/indexes/capabilities.yaml`. -The first sibling fixture preparation also stopped at maturity-engine's untracked -registry index, and that partial fixture run reported **226 passed, 1 failed**. -Both outcomes remain in `suite-environment-validation.json`; no consumer test -failure or failed preparation is hidden. - -With the complete task-owned fixture environment, the unchanged source patch -passes the **entire suite: 227 passed, 1 existing dependency warning**. Command: -`/home/worsch/reuse-surface/.venv/bin/python -m pytest -q tests`, cwd -`/tmp/cust81-reuse-suite-fixtures-r1/reuse-surface`. That fixture contains sixty -required local registry indexes and thirty-nine seeded anonymous caches to avoid -live network dependencies. Fifty-nine local indexes are copied from committed -HEAD; maturity-engine's existing untracked index is copied read-only and labeled -as a test fixture, never publication evidence. Member indexes are only read; -composition writes its own copied registry/cache. No foreign checkout is written. -Tests rewrite generated catalog/graph files in their own fixture checkout; earlier -generated changes in the integration checkout were restored to its HEAD. - -`local-consented-metadata-validation.json` proves schema and exact hashes for all -seven repositories' consented committed metadata using a fake transport and a -fixture-only token. It is explicitly **not** a network, credential, rollout or -live federation verification receipt. - -Static `registry/federation/sources.yaml` contains no `auth_env`, but public hub -registration responses intentionally omit it and do not prove live SQLite dynamic -source inventory. This patch changes authenticated-source behavior: every existing -authenticated lane needs a reviewed exact-URL allowlist entry. Before rollout, -platform/apps must safely inventory only auth env names and registered URLs, -preserve approved existing lanes in runtime config, and prove no unrelated runtime -secret name can be routed. No raw env dump or Secret read is required for that -inventory. Until this migration and the reviewed new consumer image are complete, -do not deliver the new PAT to the existing hub image. - -After separate exact credential/rollout approval, invoke the helper from inside -the hub process environment with the pinned proposal/disclosure/consent files: - -```sh -python -m reuse_surface.private_source_verify --proposal /review/private-reader-provisioning-preparation-r1.json --disclosure /review/private-source-disclosure-proposal-r1.json --consent /review/private-source-owner-consent-r1.json -``` - -It accepts no credential argument and returns only bounded metadata receipts. -Exit zero means all seven native index/entry fetches matched pinned consent; it -does not prove registration/federation completion. Final admission still needs -separate live source registrations and exact 70-ID fresh hosted audit. diff --git a/docs/assessments/cust81-private-reader/runtime-auth-source-allowlist-r1.json b/docs/assessments/cust81-private-reader/runtime-auth-source-allowlist-r1.json deleted file mode 100644 index edb5f74..0000000 --- a/docs/assessments/cust81-private-reader/runtime-auth-source-allowlist-r1.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "REUSE_SURFACE_FORGEJO_SOURCE_READ_TOKEN": [ - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-openbao/raw/registry/capabilities/capability.railiance.openbao-package.md?ref=35672be138036c8433a5ac5de91e068c03c2b124", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-openbao/raw/registry/indexes/capabilities.yaml?ref=35672be138036c8433a5ac5de91e068c03c2b124", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-policy-nexus/raw/registry/capabilities/capability.railiance.policy-publication-package.md?ref=088b78ac03b0cebeec34a69aae3569eb7ec2f9c3", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-policy-nexus/raw/registry/indexes/capabilities.yaml?ref=088b78ac03b0cebeec34a69aae3569eb7ec2f9c3", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-postgres/raw/registry/capabilities/capability.railiance.postgres-isolation-recovery.md?ref=a9f569c96d74aa384ac8d3ac4aa960e4061550b5", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-postgres/raw/registry/indexes/capabilities.yaml?ref=a9f569c96d74aa384ac8d3ac4aa960e4061550b5", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-sbom-nexus/raw/registry/capabilities/capability.railiance.sbom-runtime-package.md?ref=adbedd349e8df97be43a1f57db7095af45ff29d1", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-sbom-nexus/raw/registry/indexes/capabilities.yaml?ref=adbedd349e8df97be43a1f57db7095af45ff29d1", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-telemetry/raw/registry/capabilities/capability.railiance.telemetry-package.md?ref=f158307e24b86bab88a1af4830ff6b4f85afdeb5", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-telemetry/raw/registry/indexes/capabilities.yaml?ref=f158307e24b86bab88a1af4830ff6b4f85afdeb5", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-tenant-engine/raw/registry/capabilities/capability.railiance.tenant-engine-package.md?ref=9bdc86572728783a5ed94266f04f7b12d414c557", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-tenant-engine/raw/registry/indexes/capabilities.yaml?ref=9bdc86572728783a5ed94266f04f7b12d414c557", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-user-engine/raw/registry/capabilities/capability.railiance.user-engine-package.md?ref=f35108f9e1b8702fb6c526fe42b2fec5ca032738", - "https://forgejo.coulomb.social/api/v1/repos/coulomb/rapp-user-engine/raw/registry/indexes/capabilities.yaml?ref=f35108f9e1b8702fb6c526fe42b2fec5ca032738" - ] -} diff --git a/docs/assessments/cust81-private-reader/suite-environment-validation.json b/docs/assessments/cust81-private-reader/suite-environment-validation.json deleted file mode 100644 index e062fbe..0000000 --- a/docs/assessments/cust81-private-reader/suite-environment-validation.json +++ /dev/null @@ -1,628 +0,0 @@ -{ - "id": "REUSE-WP-0025-SUITE-ENVIRONMENT-R1", - "fixture_checkout": "/tmp/cust81-reuse-suite-fixtures-r1/reuse-surface", - "fixture_only": true, - "sources": [ - { - "repo": "access-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "7d59022dac9da4d8dcbecab936d3cea9b154c8c51478b378932fd9ebe5ec7e02" - }, - { - "repo": "activity-core", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "536d359366ccf3db3b2b0d390635bc2c5311bd37ac7ff89dae11d809ef15b848" - }, - { - "repo": "agentic-resources", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "42986b7a274ef510166e566a9756d594a6f88706189bc97ac889bab86b20240d" - }, - { - "repo": "approval-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "b6812fd12dc530270fb66bae592c828f56f17f2fc86759cb04d750162fc619a4" - }, - { - "repo": "artifact-store", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "200802ac737195721a52d6d345104f2302fbdc35b4122b431bd2255f4e5552bc" - }, - { - "repo": "audit-core", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "6a1d7dbb442f0fd0e481d54fb0acbee37ef2e693198b6f2108e154d3c3795e0e" - }, - { - "repo": "can-you-assist", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "ce106e5c106453635075dd1b5906762d516e84601af4d5620c9a7faab444be46" - }, - { - "repo": "citation-engine", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "e02914ffe937c8342022d92b5bfa6906aef560edeb6e90f80826cbf8e0620ada" - }, - { - "repo": "citation-evidence", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "628e338df6da2f0966675e8facf91f52cc3ac4a0c81417b33e1284045db1dfad" - }, - { - "repo": "citation-work", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "commerce-canon", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "6e1186aad49634b9725bc2cfa051c42b2ac13e5c4abe4bade7b39c0483f4242d" - }, - { - "repo": "config-atlas", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "d0325d71a5de1e756c080dc9abc3162536b9700cc37942a028ad2f65bad9bfef" - }, - { - "repo": "coordination-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "f7a2c140ac1a7628a2106b1047b59e208879257b23ffed6dceef8ecf6c3bd420" - }, - { - "repo": "core-hub", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "31cb09dd3b04a7891533387479ecb340b543445b64a849d9973ee857efa4cca1" - }, - { - "repo": "domain-tree", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "email-connect", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "5bce1e037a368816811a21dd9123ebf47f1a7d293c424c661d30fa14f2366231" - }, - { - "repo": "emergent-security", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "268d9192dc9b97da462d46fe5b40ea33e678840b23944ab0cd73622c130bdef6" - }, - { - "repo": "evidence-anchor", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "evidence-binder", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "2664dfb5668238051b7cd540470ee2f7a5557415c53462fa4f14474829f3ce46" - }, - { - "repo": "evidence-source", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "7b2a3c7b108fbdc69828b088915418c87dedfee5e202e4546defe68d8df64667" - }, - { - "repo": "feature-control", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "2335b614d120a3e954d55389448b4c8462bfab3582de2e0bbae02dd5474dd132" - }, - { - "repo": "fin-hub", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "c6bb1aa6b770f684721fae9f1576f2c2f0128d1b758f4e33b8a277e0b4ff087a" - }, - { - "repo": "gate-house", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "2b63d94375d29649c41a7eae7cfb3f6e35210fd3438aa5013f3ddc22a662511a" - }, - { - "repo": "glas-harness", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "8f86dbdaf6535c909ff19967f7806d85c1f7a09db1e999033abf9b9007ed805b" - }, - { - "repo": "guide-board", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "abbc20c7ab14bcbdb73679a5143355c7ad3a7441b8f8e7bf5a1af393c7d1c1e1" - }, - { - "repo": "helix-forge", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "hub-core", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "a78d185973e0d0600f6ff05470ff3b840130fca4ed7922edaf08155d246e9008" - }, - { - "repo": "human-resources", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "d72d6b4f1479992e33400ed7c950cdc7112ead9c22abd38275717f0ae9255787" - }, - { - "repo": "ihp-railiance-probe", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "info-tech-canon", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "6015ec78772586e6e351422741430be8c40d7c7116403ee4b92933df342c4c72" - }, - { - "repo": "informed-decision", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "b43ea44c725dcbd59fe957ffc307805e0aabc23b60a4a9049005c70ca4871a62" - }, - { - "repo": "infospace-bench", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "74ba65dad84faffd6ce0e6d771f8650abe76b87a6ee09ee007780bd13c5cd9b2" - }, - { - "repo": "issue-core", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "70eb00870ed87072aeb0f7c38de0a879f1b3910fe6f976b982a191e261e8e7be" - }, - { - "repo": "kaizen-agentic", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "0236d486d6df6d928e7fd9f186a02273c8a59d534abb026603f7128876fbe776" - }, - { - "repo": "key-cape", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "901d15c15cacd844cf19a1a7b74c890ce5e0b00a3372a9e10bd7114f328596c8" - }, - { - "repo": "kings-guard", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "8a143864a6ce9a7b6c5a0f64eb75f67cfa99c2b9b155baac4f81a261d3a5312c" - }, - { - "repo": "kontextual-engine", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "5a5980f37031c15fc9b332f143ddbfbd6c2789ff6c6ec0f4c3e971cbc506830e" - }, - { - "repo": "llm-connect", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "27420d2b21fb45cf6cf6ac41890518f6b5a8c10027594a7e95ec535715a01296" - }, - { - "repo": "markitect-filter", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "95d2743d4201f6b89efedebfcd34fdb03e3f832fa00b6f4f646015c3264dfb60" - }, - { - "repo": "markitect-main", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "ba7e29cc82fd4d1eff61e48b1d870714f2d9c97531e839c469f892602509f137" - }, - { - "repo": "markitect-quarkdown", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "67c718d9bb8221b9b58ab30cbf9eb1cf340e2d2ecc1d77cb4b5bdaf28fa5befc" - }, - { - "repo": "markitect-tool", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "9159a4af2783b17602c23ca4b72b552641d5e1c3170a4dee1aee69c3ba9371d2" - }, - { - "repo": "maturity-engine", - "kind": "required_local_index", - "origin": "worktree_untracked_registry_fixture_not_publication_evidence", - "sha256": "42b4cd1f9c6fe0960acadd10a337a579a6313fa46c2ff5a2a34bbacf2749d049" - }, - { - "repo": "net-kingdom", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "6fadeb0e89729a9226d6eebd44fbb07723512a3ebe6737f5a1113b14829447ed" - }, - { - "repo": "open-cmis-tck", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "e8fe7a7d0d3af104009f996c466353467e737069d0c2d04f880a86ae60d76bda" - }, - { - "repo": "open-reuse", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "f5e8b9cd3ceb7e336a2afc5097065a6c0453cc697c8c4aa2d2c39c1d1fe4fe66" - }, - { - "repo": "ops-bridge", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "aefd795eb16fcfdebc108450826a0f62e000bc61e9d78007bc6221bc2328e40c" - }, - { - "repo": "ops-hub", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "6fea9fee803a5d55ece3daefdfda0efff11eae8d2a0b719fbd0dec64f4f85314" - }, - { - "repo": "ops-mason", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "5eb499bc819c874835b8e6727ccbd5f9889ebb6f25a90018e3e574e5b6082b32" - }, - { - "repo": "ops-warden", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "4d3aba70ead10c826814dc766f9d23e3e0ce52475330acf57905bf62b01c819c" - }, - { - "repo": "phase-memory", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "e84b7603c98ae48879002b16a8302fb0e0e1b6c6e1099565570a8d8f98478d31" - }, - { - "repo": "policy-nexus", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "c1eb3e23621de354a9081cbf29a2f3d772b5f8538aaceca417574cde5a04c021" - }, - { - "repo": "rail-knative", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "e044b8f2f6bc1b8aa7c672ee33dfac69d6813fd672388713a70ab7ea4d4052c0" - }, - { - "repo": "rail-kubernetes", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "699f69facea1ce4e71d90fe0790db19b68d3a546015453651d3afc808d31d09d" - }, - { - "repo": "railiance-apps", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "2a550acf8545e95bd81842bb1b00f4db46c4dbb42b522823f043e948667ddf2c" - }, - { - "repo": "railiance-bootstrap", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "feefcc699e045a1a72f254d71f46460ad2362ed23c9de6e54c952711fcb33788" - }, - { - "repo": "railiance-cluster", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "0e67a2aca183ee7ef9c4c04e618fcb03647120f456a133e84a8f42c2b8d8fcde" - }, - { - "repo": "railiance-enablement", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "4b1f91b0da94e3098916f3e360b20b9926be4dd8683d6fb167a027aaf04ebfac" - }, - { - "repo": "railiance-fabric", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "f473644906fe3f331702b407c3519e6a3cd0d96d362cf30d80e03aac53c3b862" - }, - { - "repo": "railiance-forge", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "4df605d617b7656ffb94a43ab4633c8fc69ec723f68f5f5b8d5f24ad8efb6b98" - }, - { - "repo": "railiance-infra", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "14a76b1f1dd317a1d426502ff5f80780e9551cd1cd600543de6fb9a84cb8ada2" - }, - { - "repo": "railiance-master", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "f36cb2765ec04064314f43866f9a87a94a4f0f728adfaad46739f232b4986c0a" - }, - { - "repo": "railiance-platform", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "0315d526165368e0a513de6b15932778d43c3e6045c589c95060f555fca3202e" - }, - { - "repo": "railiance-telemetry", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "82f3f2d188e2d7ebea71b7262e106c5f48feaf39a2da881bb645ff9352884205" - }, - { - "repo": "rapp-openbao", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "044efa3d02b90e1872f2516c581159d388a8080a689f76fcd78bb4d048d6ee64" - }, - { - "repo": "rapp-playwright", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "79645df817858f96230f2443d66796d1078185c7afef5948f6a38632234d33bb" - }, - { - "repo": "rapp-policy-nexus", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "e68bdedf61eee9ca2026f46a2434ce384c26234616e74f7a5d08a06c75b3bb00" - }, - { - "repo": "rapp-postgres", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "d939333eed9d85172e006f526c445fbe2602a721d53f7c0d14bc68286ae08776" - }, - { - "repo": "rapp-sbom-nexus", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "d2ee0f193d2198bf8f16ce64c90ae7664e59a2bc307ad711426af3fd47deb057" - }, - { - "repo": "rapp-telemetry", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "ee8801f143ed5cf064205710a61c2bb24efc6ea8585d5786d6b679426ec4c1d4" - }, - { - "repo": "rapp-tenant-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "d8e9c1282350b5d2fd4f4d69712aa7a5fbcd2367bb1a7fad1b6eb16a97e5d732" - }, - { - "repo": "rapp-user-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "95b4ed2d0b189f6847b1c0899f740d1da46933a8f40491e1a02f2d4e57c819fc" - }, - { - "repo": "reef-railiance", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "84a89c376021e3cb980c02c41d1a31396b874bebcc3801c2d1a9a33ae4195eb5" - }, - { - "repo": "rein-aharness", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "20990ed0e016b3330a0d44e9b86bfff8966e82bc8800469ec0f320cfa8a63fbc" - }, - { - "repo": "rein-openweights", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "2f4e59b2dbc7ea6078405f5c2f2be0aebd9434bee171a429b9ebe6baa83f3c2b" - }, - { - "repo": "repo-manager", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "ba068a8dd7a282664e94e2acdbbb170a2ba48e260e7ce0ec8eaaa8aee6f9e7c2" - }, - { - "repo": "repo-scoping", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "480d7c57759d6997d7bd531e966c207bb290e978f9fe831d6d246b5592c3dd71" - }, - { - "repo": "repo-seed", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "8cb4e4baacd95a070a96db6d72f4fb3019cffda95606c65896f796ccac0c9c7c" - }, - { - "repo": "resource-control", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "31b16f7d824e376f21de44aff46d5d532d3679d5e72035ce84813572b11bbd44" - }, - { - "repo": "reuse-surface", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "a77c952e9e1a37a3504ccd7001a7a2493d60d46f147f277071829cd05646e31c" - }, - { - "repo": "risk-nexus", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "53f0bf9e0aa06a6db0aa991f0ebdaa1d2bf74cfaf4e30eed8c003a4d2186a746" - }, - { - "repo": "role-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "1188e02e0333664b3554d11c59c12942fef9e29e6491b186dcec67e6ae3e8a5c" - }, - { - "repo": "runbook-tutorials", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "a74fa708c4fea755f5c52504bd227393888cca78c043349cdc182c4d783390e5" - }, - { - "repo": "sand-boxer", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "a182d5672d088e80b79eacff9cb37fc2f3518c3c100537e18d125abc7f169e96" - }, - { - "repo": "sbom-nexus", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "ed6efd581483d0058a3928b365b933cbbd98c035b0a75c866156a69961d74edc" - }, - { - "repo": "secrets-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "d5d903336d05ccd0b75a49f7be7e866ef89c6bdb6444e8c747a5ffa934a6bbe2" - }, - { - "repo": "security-canon", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "9b9f9348e560a72d8032f62b2ba4820d81fe182353ccc886e4f5c57cbdea563f" - }, - { - "repo": "shard-wiki", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "b0bb63c0a080e46c60f24a87959c529da5e725334ed69c4ba985c39107c54ef9" - }, - { - "repo": "state-hub", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "eab454bd985ab6ab83c38fd29e6e58ebdfe1e09bbc5388edddaa07a88133619a" - }, - { - "repo": "tegwick-control", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "tenant-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "4131f1b63e52306f267204cdfb0faa90d6550f8bca51f97cf1062becea95d805" - }, - { - "repo": "the-custodian", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "cfe7f25e91fee824347aa22ccee2a70e7dd58ac06a7106f7e2ec9e54dc163020" - }, - { - "repo": "user-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "7133c52c2013cea70d07d33960f145c370d33a8b4397c1dc927769fcaf200cbd" - }, - { - "repo": "vantage-point", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "cc5cf52ead95adc2920db84299d994e54def089d3f8fd852e10d9857ab0fdd2e" - }, - { - "repo": "vergabe-teilnahme", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "73ffd306894d9839f4800aa028144883d012bf0fe74a310ad09ef9296c627d56" - }, - { - "repo": "whitehat-security", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "e4bf9bac7f62f60cf10a9fbd25aa8200c22f13d61861862ff5fa1cc90b55f37c" - }, - { - "repo": "whynot-control", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "c20b96c226bb9465d7154c127ee19a94396c7b03307e7581ff827eba42651d86" - }, - { - "repo": "whynot-design", - "kind": "anonymous_cache_seed_not_runtime_evidence", - "origin": "committed_HEAD_fixture", - "sha256": "541104bcafb17dcf7d26dabbce7ff93b2025a0bc6cad9bec71ac145f5ec72669" - }, - { - "repo": "zone-engine", - "kind": "required_local_index", - "origin": "committed_HEAD_fixture", - "sha256": "b6b196089a3011f16e8a38f6914589efc72a29ee3aca4bc0c5e3cf30bee97ec4" - } - ], - "foreign_repo_writes": false, - "network_fetch_needed": false, - "preserved_prior_outcomes": [ - { - "environment": "original isolated checkout without siblings", - "passed": 226, - "failed": 1, - "failure": "required access-engine sibling missing" - }, - { - "environment": "partial fixture preparation failed at untracked maturity-engine registry", - "passed": 226, - "failed": 1, - "failure": "required maturity-engine fixture missing; preparation failure not hidden" - } - ], - "final_result": { - "command": "/home/worsch/reuse-surface/.venv/bin/python -m pytest -q tests", - "cwd": "/tmp/cust81-reuse-suite-fixtures-r1/reuse-surface", - "exit_code": 0, - "passed": 227, - "failed": 0, - "warnings": 1, - "duration_seconds": 7.8, - "warning": "Starlette httpx testclient deprecation", - "consumer_source_sha256": "dbaa40f25cc0f090143578cd1c7068cb2cb00960fafd17d5239bf8a5bac514dd" - } -} diff --git a/docs/catalog/index.html b/docs/catalog/index.html index 99328ac..a7fe460 100644 --- a/docs/catalog/index.html +++ b/docs/catalog/index.html @@ -15,7 +15,7 @@
Updated 2026-10-13 · 3 entries
+Updated 2026-06-16 · 2 entries
Validate capability registry entries against schema, index consistency, and relation integrity.
registry/capabilities/capability.registry.validate.md
Headless browser automation, screenshots and keyboard trials through rapp-playwright 0.1.0 (Playwright 1.64.0, Chromium 156.0.8078.4). Published A5 local container; managed Railiance admission is pending. Download the Python 3.10+ standalone client from https://forgejo.coulomb.social/coulomb/rapp-playwright/raw/commit/8831a05aeba5ce588f3b395ade676dde2a151c5d/client/rapp_playwright.py and run `python3 rapp_playwright.py --url http://127.0.0.1:18083 preflight`, then `python3 rapp_playwright.py --url http://127.0.0.1:18083 trial --out trial-01` with a fresh output directory. This endpoint was verified locally on 2026-10-13 and is ephemeral; it installs no browser for the caller. If unreachable, follow the local container setup in the capability card or adapt its A2 source examples; this is an availability gap on the existing capability. Contract: https://forgejo.coulomb.social/coulomb/rapp-playwright/src/commit/8831a05aeba5ce588f3b395ade676dde2a151c5d/docs/consumer-contract.md.
-registry/capabilities/capability.infotech.headless-browser.md
-