This document projects the checked umbrella readiness source. It explains why broad capability rows remain reserved or when they are ready for promotion. It does not create public Objective-C 3.0 behavior claims.
Authoritative inputs:
docs/support/umbrella_readiness.jsondocs/support/capability_matrix.jsondocs/support/evidence_map.jsonschemas/objc3c-umbrella-readiness-v1.schema.json
Consumer rule: Umbrella readiness may explain why a reserved umbrella row is blocked or ready for promotion; it cannot create support claims unless the capability matrix row itself is implemented with evidence.
- Current state:
reserved - Target state:
implemented - Readiness state:
blocked - Intended public meaning: Objective-C 3.0 object metadata, class/category/protocol realization, property and ivar reflection, registration replay, debugger-grade reflection, source identity, and runtime query behavior are complete as an integrated runtime surface rather than a set of narrow owner rows.
- Full object-model runtime support from class graph source alone.
- Debugger-grade reflection from private snapshots or generated manifests alone.
- Objective-C 2 runtime compatibility.
- Swift or C++ runtime mirroring.
- Issue comments, PR bodies, or tmp reports as support evidence.
runtime.object-model.interface-method-tablemust beimplemented: Interface method table behavior is a prerequisite for public object-model realization.runtime.object-model.class-realizationmust beimplemented: Class and metaclass graph behavior must remain implemented and evidence-backed.runtime.object-model.category-protocol-registrationmust beimplemented: Category attachment and protocol registration must remain implemented and evidence-backed.runtime.object-model.property-ivar-reflectionmust beimplemented: Property and ivar reflection must remain implemented and evidence-backed.runtime.object-model.registration-replaymust beimplemented: Runtime registration reset and replay must remain implemented and evidence-backed.runtime.object-model.bounded-query-snapshotsmust beimplemented: Bounded runtime query snapshots must remain implemented and evidence-backed.runtime.public-api.reflectionmust beimplemented: Public C reflection API behavior is required before the umbrella can be public.
satisfiedClass and metaclass graph runtime source remains the object-model realization owner. (path:native/objc3c/src/runtime/classes/class_graph.cpp)satisfiedImage registration and replay source remains the runtime registration owner. (path:native/objc3c/src/runtime/images/registration.cpp)satisfiedPublic runtime reflection API source remains checked in and evidence-linked. (path:native/objc3c/src/runtime/public/objc3_runtime_reflection.h)satisfiedCombined object-model readiness contract ties class, metaclass, category, protocol, property, ivar, selector, reflection, and replay evidence to checked source anchors. (path:tests/tooling/fixtures/object_model_closure/full_realization_combined_readiness_contract.json)satisfiedRuntime public reflection exposes bounded debug-anchor identity records for class, category, protocol, property, ivar, and method rows. (path:tests/tooling/fixtures/object_model_closure/debug_anchor_identity_replay_contract.json)satisfiedChecked object-model debugger proof links source-map records, native line-table rows, debug-map runtime anchors, runtime reflection debug anchors, and value-inspection records. (path:tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)satisfiedThe object-model debugger proof command now compiles the integrated object-model fixture through the canonical frontend path and validates the emitted manifest, source graph, object artifact, runtime inventory, artifact inspector, fail-closed debug-map boundary, bounded compiler-owned object-model source identity rows, and production source-map/native-line-table publication. (path:scripts/check_objc3c_object_model_debugger_proof.py)blockedFull source-map publication beyond bounded identity rows, emitted native debug info, and debugger stepping integration must still be owned by the production artifact path. (blocker_id:object-model-debugger-source-identity)
satisfiedRuntime object-model conformance remains replayable through the npm bridge. (command:npm run objc3c -- validate-object-model-conformance)satisfiedPublic runtime reflection API remains replayable through the npm bridge. (command:npm run objc3c -- validate-public-runtime-reflection-api)satisfiedObject-model debugger source-map, line-table, debug-anchor, value-inspection linkage, production frontend artifact/runtime inventory proof, bounded compiler-owned object-model source identity rows, and source-map/native-line-table publication remain replayable through the npm bridge. (command:npm run objc3c -- validate-object-model-debugger-proof)blockedDebugger-grade statement stepping over emitted native debug line tables must be completed on the production compiler artifact path. (blocker_id:object-model-debugger-source-identity)
satisfiedClass realization behavior fixture remains checked in. (path:tests/native/runtime/object_model/class_realization_contract.objc3)satisfiedProperty and ivar reflection behavior fixture remains checked in. (path:tests/native/runtime/object_model/property_ivar_reflection_contract.objc3)satisfiedCombined class/metaclass/category/protocol/property/ivar/selector/reflection/replay fixture remains checked in. (path:tests/native/runtime/object_model/full_realization_combined_reflection_replay_contract.objc3)satisfiedDebugger-grade object inspection is covered by an integrated source-map, line-table, debug-anchor, and reflection replay fixture. (path:tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)
satisfiedInvalid category attachment remains rejected by checked negative evidence. (path:tests/tooling/fixtures/native/execution/negative/category_attachment_collision.objc3)satisfiedPrivate testing snapshots remain internal and cannot satisfy public reflection or debugger-grade support. (path:tests/tooling/fixtures/object_model_closure/full_realization_combined_readiness_contract.json)satisfiedMalformed object-model metadata remains fail-closed and cannot become reflectable support. (path:tests/tooling/runtime/protocol_category_invalid_metadata_probe.cpp)satisfiedStale or blocked reset/replay generation evidence remains lifecycle rejection/provenance rather than umbrella support. (path:tests/tooling/runtime/deterministic_reset_replay_probe.cpp)satisfiedForeign runtime compatibility and Objective-C 2 compatibility remain explicit non-goals until implemented by their own rows. (path:docs/support/hard_cutover_capability_truth.md)
satisfiedPublic reflection API probe remains checked in. (path:tests/tooling/runtime/public_runtime_reflection_api_probe.cpp)satisfiedRegistration reset/replay generation probe remains checked in for lifecycle boundary evidence. (path:tests/tooling/runtime/multi_image_registration_reset_replay_probe.cpp)satisfiedRuntime-owned debug-anchor replay probe ties reflection rows to source/debug identity and missing/stale anchor boundaries. (path:tests/native/runtime/object_model/debug_anchor_identity_replay_probe.cpp)satisfiedDebugger value inspection proves runtime metadata through a checked source-map/debug-anchor replay fixture plus a canonical frontend artifact-inspector, bounded object-model source-identity, and source-map/native-line-table publication probe over the integrated object-model source. (path:tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)
satisfiedPublic reflection ABI is represented by the current public reflection API row. (capability_id:runtime.public-api.reflection)satisfiedDebugger-grade reflection ABI additions are governed through debug-anchor ABI v2, minimum reader ABI v2, caller snapshot-size negotiation, and append-only source/debug artifact fields. (path:tests/tooling/fixtures/object_model_closure/debugger_value_inspection_replay_contract.json)
satisfiedHard-cutover capability truth continues to state the reserved umbrella boundary. (path:docs/support/hard_cutover_capability_truth.md)satisfiedObject-model closure runbook remains checked in. (path:docs/runbooks/objc3c_object_model_closure.md)satisfiedCombined readiness test remains checked in to enforce lifetime, source-anchor, and negative-boundary evidence. (path:tests/tooling/test_runtime_object_model_full_realization_readiness.py)satisfiedObject-model debugger proof checker remains covered by fail-closed tests. (path:tests/tooling/test_runtime_object_model_full_realization_readiness.py)
- Source truth allowed:
false - Rule: Generated outputs may summarize checked source, fixtures, and matrix/evidence rows, but cannot satisfy object-model full-realization readiness by themselves.
- Unsupported sources:
- tmp/
- generated markdown projections
- issue comments
- PR bodies
- unlinked replay reports
object-model-debugger-source-identity: Bounded runtime debug-anchor identity, replayable object-model value inspection, a canonical frontend artifact/runtime inventory probe, compiler-owned source identity rows, and production source-map/native-line-table publication now exist, but full debugger-grade object-model stepping is not yet complete on the production artifact path.- Full source-map publication beyond bounded object-model identity rows and emitted native debug info for the integrated object-model program.
- Production debugger statement-stepping integration over emitted native debug info.
- The umbrella matrix row changes to implemented in docs/support/capability_matrix.json.
- All required prerequisite rows remain implemented with evidence-map rows.
- All readiness requirements are satisfied.
- No promotion blockers remain.
- Debugger-grade reflection and source identity are covered by public npm-bridge commands without relying on private snapshots or generated reports.
- Current state:
reserved - Target state:
implemented - Readiness state:
blocked - Intended public meaning: Objective-C 3.0 blocks, ownership, ARC cleanup, errors, async/actors, cancellation, property behaviors, metaprogramming host boundaries, and interop runtime replay are complete as a combined runtime-backed language surface rather than isolated narrow rows.
- Advanced runtime closure from any single blocks, async, error, property, or macro row.
- Cross-feature ownership correctness from generated reports alone.
- Foreign runtime compatibility from interop package replay alone.
- Broad runtime closure without integrated positive and negative fixtures.
- Issue comments, PR bodies, or tmp reports as support evidence.
language.blocks.escape-capture-legalitymust beimplemented: Block capture legality must remain implemented and evidence-backed.runtime.blocks.copy-dispose-invokemust beimplemented: Block runtime copy, dispose, and invoke helpers must remain implemented and evidence-backed.runtime.blocks.byref-forwardingmust beimplemented: Byref forwarding behavior must remain implemented and evidence-backed.language.arc-cleanup.integrationmust beimplemented: ARC cleanup integration must remain implemented and evidence-backed.runtime.errors.live-bridge-cleanupmust beimplemented: Live error bridge cleanup must remain implemented and evidence-backed.runtime.concurrency.async-actorsmust beimplemented: Async and actor runtime behavior must remain implemented and evidence-backed.runtime.concurrency.actor-mailbox-isolationmust beimplemented: Actor mailbox isolation must remain implemented and evidence-backed.language.metaprogramming.property-behavior-semanticsmust beimplemented: Property behavior semantic materialization must remain implemented and evidence-backed.runtime.metaprogramming.host-cache-boundarymust beimplemented: Macro host cache boundary behavior must remain implemented and evidence-backed.runtime.modules.imported-runtime-packaging-replaymust beimplemented: Imported runtime packaging replay must remain implemented and evidence-backed.
satisfiedBlock runtime copy/dispose/invoke source remains checked in. (path:native/objc3c/src/runtime/blocks/block_invocation.cpp)satisfiedTask and actor runtime sources remain checked in. (path:native/objc3c/src/runtime/concurrency/task_runtime_operations.cpp)satisfiedError bridge runtime source remains checked in. (path:native/objc3c/src/runtime/errors/error_bridge_operations.cpp)satisfiedCombined runtime closure is traceable through checked compiler-owned source graph, runtime-state, ABI, and debug-map contract records. (path:tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)satisfiedThe #8199 validator checks canonical source/debug-map, native line-table, runtime-state, ABI, and compiler-owned source graph records for the combined runtime fixture. (path:tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_source_debug_map.json)
satisfiedBlock ARC runtime acceptance remains replayable through the npm bridge. (command:npm run objc3c -- test-runtime-acceptance-block-arc)satisfiedConcurrency runtime conformance remains replayable through the npm bridge. (command:npm run objc3c -- validate-concurrency-conformance)satisfiedCross-lane runtime closure fixture and negative-matrix checks are replayable through the npm bridge. (command:npm run objc3c -- validate-advanced-runtime-closure)
satisfiedEscaping owned-object block copy/dispose fixture remains checked in. (path:tests/tooling/fixtures/native/execution/positive/escaping_owned_object_block_copy_dispose.objc3)satisfiedLive continuation runtime integration fixture remains checked in. (path:tests/tooling/fixtures/native/live_continuation_runtime_integration_positive.objc3)satisfiedA combined blocks, ownership, errors, async, actor, cancellation, property behavior, macro provenance, and package replay program exists. (path:tests/native/runtime/advanced_closure/combined_positive.objc3)
satisfiedWeak object capture mutation remains rejected by checked negative evidence. (path:tests/tooling/fixtures/native/weak_object_capture_mutation_negative.objc3)satisfiedMissing runtime replay proof remains rejected by checked negative evidence. (path:tests/tooling/fixtures/native/missing_replay_proof_rejected.objc3)satisfiedThe #8199 negative matrix covers 17 cross-feature rejected or reserved cases, including ownership, blocks, async, actor mailbox payloads, cancellation, error, property/macro conflicts, package replay, and broad scheduler overclaim boundaries. (path:tests/native/runtime/advanced_closure/negative_matrix.contract.json)satisfiedThe #8199 native artifact contract checks the combined fixture against the real direct-native compiler path and requires object, LLVM IR, manifest, runtime registration, runtime metadata, and error replay artifacts while preserving the unclaimed native link/run boundary. (path:tests/tooling/fixtures/advanced_runtime_closure/native_artifact_contract.json)
satisfiedCombined runtime-state records tie blocks, ownership, async cancellation, actor mailbox, error bridge, property behavior, macro host cache, package replay, and source/debug records to checked owners without promoting the native executable umbrella. (path:tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)blockedNative executable link/run for the full advanced-runtime umbrella fixture remains unclaimed. (blocker_id:advanced-runtime-native-link-run)
satisfiedBlock runtime ABI must remain represented by implemented block runtime rows. (capability_id:runtime.blocks.copy-dispose-invoke)satisfiedCombined block, async, error, actor, property, macro, and package replay ABI interactions are represented by the checked #8199 identity contract. (path:tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)
satisfiedHard-cutover capability truth continues to state the reserved umbrella boundary. (path:docs/support/hard_cutover_capability_truth.md)satisfiedErrors and result semantics remain documented as narrower rows. (path:spec/PART_6_ERRORS_RESULTS_THROWS.md)satisfiedConcurrency semantics remain documented as narrower rows. (path:spec/PART_7_CONCURRENCY_ASYNC_AWAIT_ACTORS.md)satisfiedThe #8199 checker enforces combined runtime-state/source-graph/debug-map/ABI interaction coverage without promoting the umbrella row. (path:tests/tooling/fixtures/advanced_runtime_closure/combined_runtime_identity_contract.json)
- Source truth allowed:
false - Rule: Generated outputs may summarize checked source, fixtures, and matrix/evidence rows, but cannot satisfy advanced-runtime closure readiness by themselves.
- Unsupported sources:
- tmp/
- generated markdown projections
- issue comments
- PR bodies
- unlinked replay reports
advanced-runtime-native-link-run: Checked positive, runtime-state, source-graph, source/debug-map, ABI, native object/IR/manifest artifact, and 17-case negative-matrix proof exists, but native executable link/run for the full advanced-runtime umbrella fixture is not yet a public support claim.- Canonical native executable link/run acceptance for the integrated advanced-runtime umbrella fixture.
- Public npm-bridge evidence that the integrated native executable path matches the checked #8199 contracts without promoting unsupported combinations.
- The umbrella matrix row changes to implemented in docs/support/capability_matrix.json.
- All required prerequisite rows remain implemented with evidence-map rows.
- All readiness requirements are satisfied.
- No promotion blockers remain.
- Combined runtime positive and negative programs prove cross-feature semantics through public npm-bridge commands.
- Native executable link/run evidence exists for the integrated advanced-runtime umbrella fixture without relying on generated reports as source truth.