{"schemaVersion":"developer.reits.tech/ci-registry/v1","generatedAt":"2026-07-21T08:13:05Z","source":{"repositoryRegistry":"/repository-inventory","taskPacketSchema":"/schemas/task-packet.v1.schema.json","consumerEvidenceSchema":"/schemas/consumer-evidence.v1.schema.json","profileSchema":"/schemas/ci-profile.v1.schema.json","validator":"/ci/v1/reits-ci-gate.mjs"},"summary":{"coreRepositories":18,"nativeWorkflowsAtAudit":8,"workflowGapsAtAudit":10,"protectedBranchesAtAudit":2,"requiredEvidenceChecksAtAudit":0,"currentMinimumWorkflows":18,"currentProtectedBranches":18,"currentRequiredEvidenceChecks":18,"frozenOrReferenceRepositories":4},"runnerAudit":{"linux":{"registered":1,"online":1,"busyAtAudit":0,"scope":"repository","assignedRepositories":["reits/im-core"],"organizationRunners":0,"deliveryImpact":"im-core can execute the gate; the other 17 repositories have no eligible organization or instance runner"},"macos":{"registered":2,"online":0,"scope":"repository-and-instance-unavailable","deliveryImpact":"Both registered Mac identities are offline and no organization-scoped native lane exists; Swift and iOS jobs must not be reported as executed"}},"executionAudit":{"observedAt":"2026-07-21T07:56:54Z","latestMainOrPullRequestGate":{"success":1,"pending":2,"failure":1},"admissionState":"fail-closed-mixed","boundary":"Current live candidates are reported separately from workflow installation: data-sources has two pending contexts and reits-auth has one successful security context plus one failed minimum gate. The only online Linux runner remains repository-scoped to im-core, no organization runner is registered, and both Mac identities are offline."},"policy":{"workflowName":"REITS Minimum CI","jobName":"gate","pullRequestCheckContext":"REITS Minimum CI / gate (pull_request)","defaultBranch":"main","changedTaskPacketRequired":true,"changedConsumerEvidenceRequired":true,"directPush":"disabled for ordinary contributors","forcePush":false,"staleApproval":"dismiss","adminMergeOverride":false},"taskProtocol":{"required":["taskId","idempotencyKey","owner","repositories","scope","changeSet","contracts","acceptance","rollback","evidence"],"mergeRule":"Every changed contract must have PASS evidence from every declared consumer in the same change set."},"repositories":[{"id":"data-sources","owner":"reits","baseRevision":"cb37d2ce9633e7395d614f3b3239c5efea2902f7","currentRevision":"a01a445d0a1052d0ebd3bbec17d0942349684cad","stack":"Go 1.22 + Vue/Vite","runner":"ubuntu-latest","mode":"inline","setup":["go","node"],"commands":["test -z \"$(gofmt -l .)\"","go test ./...","cd web/admin && npm ci --no-fund --no-audit && npm run build"]},{"id":"im-core","owner":"reits","baseRevision":"deea700b3a9e970b1d1738ff381c4bc8b3e0a935","currentRevision":"2c0e09e9e9a7c69947876ae98e2fe4f93c5d0083","stack":"Go","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/ci.yml","commands":["make ci"]},{"id":"im-media-send-kit","owner":"jx-im","baseRevision":"d9e5cf4368a8758425bc19e1b25a3130b1a0063c","currentRevision":"d5f0e3e5d65886c0ad9654f4ef30468a0e7b089f","stack":"Swift Package","runner":"macos-latest","mode":"inline","setup":[],"commands":["swift test"]},{"id":"im-ui","owner":"reits","baseRevision":"17618a85e1181cfdf436c28760901a710f076b9f","currentRevision":"ebee6f3a4e9747c90f1d5c6a8d4b892220ac2a0d","stack":"Node design package","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/ui-foundation.yml","commands":["npm test"]},{"id":"matrix-quant-im-ios","owner":"reits","baseRevision":"92fc8d0b26e4a581c3ab38d5cc8f1be7dbb7ad5e","currentRevision":"506f7e2a81534a1955a983000f75891a8f755c47","stack":"Swift/iOS","runner":"macos-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/ci.yml","commands":["make validate","make test-package","make build-debug"]},{"id":"matrix-x-chat-ios","owner":"reits","baseRevision":"257e604a5073b1ecab0f905d7ec59dfb78960639","currentRevision":"1f19d6d041baff5d673e48df42c3fe2646823663","stack":"Swift/iOS + shell policy","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/xcode-build.yml","commands":["existing 45-workflow policy suite"]},{"id":"matrixantai-backtest","owner":"reits","baseRevision":"f7dac525c9122dbd344135946a194a187dbb79c6","currentRevision":"6257ce04cb4612502a3e1ce8cc1bd1d479a7e5f7","stack":"Node deterministic engine","runner":"ubuntu-latest","mode":"inline","setup":["node"],"commands":["npm test"]},{"id":"matrixantai-sim","owner":"reits","baseRevision":"69b87bf57248110b3abdac0690d53be2d6a015cf","currentRevision":"b238cb6b2c6de5a33006622287386242225abde0","stack":"Browser ESM + bundle scripts","runner":"ubuntu-latest","mode":"inline","setup":["node"],"commands":["node --check app.mjs","bash -n scripts/build-miniapp-bundle.sh scripts/gen-slices.sh scripts/vendor.sh","git diff --check"]},{"id":"miniapp-open-platform","owner":"reits","baseRevision":"3eef50cd93c3d455c8834e23a25f2a6ecac08ebb","currentRevision":"b9022bf0dea5149a52d5a4172c7684470fe06d88","stack":"Go services + React portal","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/media-s3-contract.yml","commands":["portal npm test/build","service go test/vet/build","media policy"]},{"id":"opensdk","owner":"reits","baseRevision":"e50cb8a1ac86bcf86450833f2475fd0ece41899a","currentRevision":"40d9219d607c60482c1ab11c4951296d29b22f22","stack":"Go SDK","runner":"ubuntu-latest","mode":"inline","setup":["go"],"commands":["make build","make vet","make test"]},{"id":"public-booking-platform","owner":"reits","baseRevision":"ced32337ac5f45852494f5f7ecd4adaeed71fd90","currentRevision":"1ccb026d4967aedbb2872a04dd7c08fb5894c290","stack":"Node service + web","runner":"ubuntu-latest","mode":"inline","setup":["node"],"commands":["npm ci --no-fund --no-audit","npm run ci:order"]},{"id":"quant-platform","owner":"reits","baseRevision":"535041b190403769364b0ce2853f0f7f7fbb5877","currentRevision":"4ca835069921e08ef1a9529afbbdef0aea32ad19","stack":"Source contract placeholder","runner":"ubuntu-latest","mode":"inline","setup":[],"commands":["test -s README.md","git diff --check"]},{"id":"reits-auth","owner":"reits","baseRevision":"157b8590e4625ad2fda802410303461a69a74bd3","currentRevision":"2aebd6b20b88b98edbd9b11b29c0db87d5a55b0c","stack":"Go security service","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/ci.yml","commands":["gofmt","go vet ./...","go test -race ./...","go build ./cmd/server"]},{"id":"reits-bbs","owner":"reits","baseRevision":"1d2d5b6fdbe1918245298cb5f0830c094356b02c","currentRevision":"8f1d1f3878eaa7d32d8dc91f6fd761f0dfe475c8","stack":"NodeBB theme + operations docs","runner":"ubuntu-latest","mode":"inline","setup":["node"],"commands":["node --check themes/reits-city/public/client.js","node --check themes/reits-city/lib/theme.js","node -e \"JSON.parse(require('fs').readFileSync('themes/reits-city/package.json')); JSON.parse(require('fs').readFileSync('themes/reits-city/plugin.json'))\"","git diff --check"]},{"id":"reits-info-portal","owner":"reits","baseRevision":"05500792e5795111889a53670fc609e9174190d1","currentRevision":"3c322a59bdf6e70f7b08454e467f11aa5fb3f6ef","stack":"Next.js 16","runner":"ubuntu-latest","mode":"inline","setup":["node"],"commands":["npm ci --no-fund --no-audit","npm run typecheck","npm run build"]},{"id":"reits-knowledge","owner":"reits","baseRevision":"576fefc1717f2030a883a051ffb346056b6ee5d4","currentRevision":"e2157a0935b8b40bbef91f8ededa7ebcd096b999","stack":"Governance + Python validators","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/governance.yml","commands":["python3 scripts/validate_org_governance.py","python3 scripts/test_org_governance.py"]},{"id":"reits-media","owner":"reits","baseRevision":"db8c55a68927c0fddf47ea85102042ed6e2360f1","currentRevision":"4e76349c14e155a55d059bdb2bff0c2d8c886a7e","stack":"Go media service","runner":"ubuntu-latest","mode":"native-workflow","nativeWorkflow":".gitea/workflows/ci.yml","commands":["go test ./...","go vet ./...","go build ./cmd/reits-media"]},{"id":"trading-data-source","owner":"reits","baseRevision":"55b1ad827176b0937963d5694f411e901665fcfd","currentRevision":"70b8242facafe95773cfc6f2ce108bfa5bdcdf04","stack":"Go 1.26 + Vue/Vite","runner":"ubuntu-latest","mode":"inline","setup":["go","node"],"commands":["test -z \"$(gofmt -l .)\"","go test ./...","cd web && npm ci --no-fund --no-audit && npm run build"]}],"excluded":[{"id":"apps-bbs","reason":"frozen prototype; successor reits-bbs owns delivery"},{"id":"apps-ecosystem","reason":"frozen prototype; Developer Portal owns architecture directory"},{"id":"apps-info-portal","reason":"frozen prototype; successor reits-info-portal owns delivery"},{"id":"xtalk-open-source","reason":"read-only shared reference; never impose REITS organization policy"}],"metrics":{"repositories":18,"workflows":18,"protectedBranches":18,"evidenceChecks":18,"workflowGapsClosed":10,"nativeWorkflowsRetained":8,"excluded":4,"linuxRunnersOnline":1,"organizationRunners":0,"macRunnersOnline":0,"executedGates":1,"queuedGates":2},"protocolFlow":[{"id":"01","label":"Task Packet","detail":"scope · owner · idempotency","state":"required"},{"id":"02","label":"Contract Map","detail":"producer → consumers","state":"required"},{"id":"03","label":"Consumer Proof","detail":"PASS + artifact digest","state":"required"},{"id":"04","label":"Evidence Gate","detail":"changed packet in same diff","state":"blocking"},{"id":"05","label":"Stack Minimum","detail":"Go · Node · Swift · policy","state":"parallel"},{"id":"06","label":"Protected Main","detail":"no ordinary direct push","state":"enforced"}],"failureRules":[{"code":"changed-task-packet","meaning":"代码变了，但本次 diff 没有新增或更新任务包。","owner":"task owner"},{"code":"scope-uncovered","meaning":"改动路径不在 changeSet.include，AI 扩大了范围。","owner":"task owner"},{"code":"consumer-proof-missing","meaning":"契约声明了消费者，但同一任务没有 PASS 证据。","owner":"producer + consumer"},{"code":"artifact-digest","meaning":"证据引用的文件与 SHA-256 不一致。","owner":"consumer"},{"code":"native-workflow","meaning":"登记的原生最小 workflow 已删除或漂移。","owner":"repository owner"}],"branchProtectionReceipt":{"schemaVersion":"developer.reits.tech/branch-protection-receipt/v1","observedAt":"2026-07-20T10:30:00Z","source":"authenticated Gitea API","policy":{"workflowName":"REITS Minimum CI","jobName":"gate","pullRequestCheckContext":"REITS Minimum CI / gate (pull_request)","defaultBranch":"main","changedTaskPacketRequired":true,"changedConsumerEvidenceRequired":true,"directPush":"disabled for ordinary contributors","forcePush":false,"staleApproval":"dismiss","adminMergeOverride":false},"results":[{"repository":"data-sources","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"im-core","owner":"reits","before":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":false,"contexts":[],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"im-media-send-kit","owner":"jx-im","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"im-ui","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"matrix-quant-im-ios","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"matrix-x-chat-ios","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"matrixantai-backtest","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"matrixantai-sim","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"miniapp-open-platform","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"opensdk","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"public-booking-platform","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"quant-platform","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"reits-auth","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"reits-bbs","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"reits-info-portal","owner":"reits","before":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":false,"contexts":[],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"reits-knowledge","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"reits-media","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true},{"repository":"trading-data-source","owner":"reits","before":{"exists":false,"evidenceRequired":false},"after":{"exists":true,"directPush":false,"forcePush":false,"statusCheck":true,"contexts":["REITS Minimum CI / gate (pull_request)"],"staleApprovalsDismissed":true,"adminMergeOverrideBlocked":true},"compliant":true}],"summary":{"repositories":18,"compliant":18,"drift":0,"created":16,"updated":2}},"discovery":{"workbench":"/ci-foundation","taskPacketSchema":"/schemas/task-packet.v1.schema.json","consumerEvidenceSchema":"/schemas/consumer-evidence.v1.schema.json","profileSchema":"/schemas/ci-profile.v1.schema.json","validator":"/ci/v1/reits-ci-gate.mjs"}}