Repository navigation
[Context Fabric governance] Protect and adopt main as the integration/default branch #1137
Description
Activity
seonghobae commented
on Aug 19, 2026 ContributorAuthorMore actionsFresh Context Fabric owner-boundary extension: the same stable-branch protection defect also exists on
ContextualWisdomLab/enterprise-architecture-core/main.- Current
enterprise-architecture-core/main:ca6889497728e1a3f09d68790a9096576e13a3ff, GitHub reportsprotected=falseand legacy protection disabled. - Protected default/integration branch
developremains1c0fa8b15ceb9e72186274aeb255d6777eb84ef4withprotected=true. - The repository's current
supply-chainworkflow onmainexplicitly containsattest-protected-mainand emits SLSA/SBOM attestations only forpushonrefs/heads/main. PR 🧪 [testing improvement] iter_json_objects 함수에 대한 단위 테스트 추가 #21 is separately repairing post-integration workflow coverage for bothdevelopandmain; it does not make an unprotectedmaina valid release authority.
First causal boundary is therefore central branch/ruleset governance, not repository source. Extend this issue's accepted remedy to EA Core stable
mainas well: preservedevelopas the protected default integration branch, but protectmainunder the intended stable/release controls before treatingattest-protected-mainoutput as release evidence. Do not bypass review/check policy or change the default branch merely to make documentation true. GREEN proof for EA Core is the same shape as Context Graph: GitHub reports the exact stablemainref protected by the intended live ruleset, then one unchanged promotedmainSHA produces the required repository/package/SBOM/provenance evidence before any release/tag claim.- Current
seonghobae commented
on Aug 19, 2026 ContributorAuthorMore actionsFresh Context Fabric revalidation finds the same stable-branch control gap in the second program-owned Git Flow repository, so the central remedy should cover both stable
mainrefs rather than only the contract provider.ContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13: GitHub still reportsprotected=false, legacy protection disabled.ContextualWisdomLab/enterprise-architecture-core/main@ca6889497728e1a3f09d68790a9096576e13a3ff: GitHub also reportsprotected=false, legacy protection disabled.enterprise-architecture-core#21@ddeacbf37847b21f874e13e463f2abc5ca9d5c0ais the current dependency-root PR targetingmainbefore Sync OpenCode review failure handling #14 can synchronize stablemainback into protecteddevelop. Its repository-owned exact-head CI/runtime-readiness/supply-chain runs are already terminal GREEN, but there is still no qualifying formal approval and theindependent-reviewersteam request still returns HTTP 422 because the team is not a repository collaborator.
First causal boundary: the repositories intentionally implement Git Flow with protected
develop, but stablemainis outside the live protection/ruleset scope. The workflow patch in #21 only makes protected-developintegration execute repository checks; it cannot make an unprotectedmainmutation valid governance evidence.Smallest central remedy: extend the accepted stable-branch ruleset to both
context-graph-contracts/mainandenterprise-architecture-core/mainwhile preservingdevelopas each default integration branch, then revalidate exact branch protection plus the counted independent-review path tracked in #772. Context Fabric will not use the current unprotectedmainrefs as a bypass.seonghobae commented
on Aug 19, 2026 ContributorAuthorMore actionsFresh direct branch revalidation (2026-08-19 UTC / 2026-08-20 KST):
ContextualWisdomLab/context-graph-contractsstill has protected default/integrationdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13(protected=true) while stable releasemain@99cb5468ba3c15c5e79688f53dee74724fae2d13remainsprotected=false. The release boundary is therefore still fail-closed: no immutablecwl-context-contractsrelease should be promoted frommainuntil the central ruleset makes that exact stable branch protected without changingdevelopas the Git Flow default. Revalidate this branch flag after the owner-side ruleset change before Context Fabric promotion/release work resumes.seonghobae commented
on Aug 20, 2026 ContributorAuthorMore actionsFresh Context Fabric release-governance revalidation — 2026-08-21 KST.
The stable-branch protection gap is still live and unchanged at the exact repository refs:
ContextualWisdomLab/context-graph-contracts/develop@99cb5468ba3c15c5e79688f53dee74724fae2d13reportsprotected=true.ContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13reportsprotected=falsewith legacy protection disabled.
The dependency-root source candidate remains
context-graph-contracts#4@99d230991b9d48fbf87489e0b375b7bbf09d8559, whose exact-head CI/supply-chain/security/SAST evidence is terminal GREEN but whose counted independent review remains separately blocked by #772. Even after that review boundary is repaired and the contract stack integrates through protecteddevelop, an immutable release must not be promoted from the currently unprotectedmainbranch.Smallest central-owner remedy remains to attach the accepted stable-release controls to
mainwhile preservingdevelopas the Git Flow default/integration branch. Revalidation criterion from Context Fabric: after the ruleset change, re-fetchmainand require GitHub to report it protected under the intended policy; only then, after dependency-first integration, promote one exact integrated source commit tomain, require fresh exact-SHA CI/package/SBOM/provenance and independent-review evidence, and create the tag/release from that unchanged protected commit. Do not solve by changing the default branch, direct unreviewed push, bypass, or weakening release gates.seonghobae commented
on Aug 20, 2026 ContributorAuthorMore actionsFresh direct revalidation on 2026-08-21 KST shows the stable-branch protection state has changed since the last owner-path evidence: both exact stable refs now report
protected=truewhile their commit SHAs remain unchanged.ContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13:protected=true; legacy branch-protection payload still reportsprotection.enabled=false, so the observed protection is consistent with a ruleset rather than the legacy branch-protection API.ContextualWisdomLab/enterprise-architecture-core/main@ca6889497728e1a3f09d68790a9096576e13a3ff:protected=true; legacy branch-protection payload likewise reportsprotection.enabled=false.context-graph-contracts/develop@99cb5468ba3c15c5e79688f53dee74724fae2d13remainsprotected=trueand remains the repository default/integration branch.
This clears the previously observed
protected=falsebranch-flag portion of #1137 for both program-owned Git Flow repositories, but Context Fabric will not yet treat the issue as fully accepted because this connector did not expose the applicable ruleset body. Central governance should verify that the attached rule(s) are the intended stable-release controls (deletion/non-fast-forward protection, required review/check/thread handling, and no routine bypass), not merely any rule that causes GitHub to set the protected flag.Context Fabric revalidation criterion after that policy-content confirmation is unchanged: dependency-first integration, one unchanged promoted protected
mainSHA, then fresh exact-SHA CI/package/SBOM/provenance/independent-review evidence before tag/release. The separate counted independent-reviewer eligibility blocker remains #772.seonghobae commented
on Aug 20, 2026 ContributorAuthorMore actionsFresh Context Fabric revalidation on 2026-08-21 changes the first acceptance fact:
context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13now reportsprotected=true. The same branch payload still reports legacy branch protectionenabled=falsewith no legacy required-status contexts, so the protection is consistent with a ruleset but this task's repository-scoped GitHub interface cannot retrieve the live ruleset definition itself.Do not treat the boolean protected flag alone as release authorization. The central governance owner should now verify the effective ruleset targeting stable
mainand record the exact rules/ruleset identity showing at minimum: deletion and non-fast-forward protection; required review/check/thread policy appropriate to release promotion; no routine bypass path; and continued separation of protecteddevelopintegration from protectedmainrelease promotion. If that effective-policy evidence is confirmed, the originalprotected=falsedefect is resolved and #1137 can move to the post-integration acceptance phase rather than branch-protection provisioning.Context Fabric-side revalidation criterion remains unchanged: after the contract stack integrates dependency-first, one exact promoted
mainSHA must itself produce terminal CI/package/SBOM/provenance/attestation-verification evidence, and release/tagging remains forbidden until independent approval and all release gates refer to that same unchanged SHA.seonghobae commented
on Aug 20, 2026 ContributorAuthorMore actionsFresh Context Fabric owner-boundary revalidation on 2026-08-21 KST shows a substantive state change from the earlier evidence in this issue: both stable release refs now report
protected=truewhile retaining the same commit identities.ContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13:protected=true; the branch response still exposes legacyprotection.enabled=false/ no legacy required-status contexts, so protection is evidently coming from a ruleset or other non-legacy policy path.ContextualWisdomLab/enterprise-architecture-core/main@ca6889497728e1a3f09d68790a9096576e13a3ff:protected=true; likewise legacyprotection.enabled=false.
This clears the old binary
protected=falsedefect, but it is not yet sufficient release authorization because the Context Fabric writer cannot inspect the effective ruleset payload through the available repository interface. Central governance should now verify and record that the rules actually attached to bothmainrefs implement the intended stable-release controls: deletion/non-fast-forward protection, required exact-head checks/reviews and unresolved-thread handling as applicable, and no routine bypass. Keepdevelopas the default/integration branch.GREEN revalidation criterion from Context Fabric is therefore narrowed: central owner evidence must identify the effective ruleset(s) and prove the required stable-release controls apply to these two exact refs; then, only after dependency-first integration and counted independent review, promote one unchanged integrated SHA to protected
mainand require fresh CI/package/SBOM/provenance/attestation verification before tag/release. No direct unreviewed promotion, bypass, or inference from the branch flag alone.seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh Context Fabric release-governance revalidation on 2026-08-21 now shows a material owner-side state change that supersedes the latest
protected=falseevidence in this issue.ContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13now reportsprotected=true; protected default/integrationdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13remainsprotected=true.ContextualWisdomLab/enterprise-architecture-core/main@ca6889497728e1a3f09d68790a9096576e13a3ffnow reportsprotected=true; protected default/integrationdevelop@1c0fa8b15ceb9e72186274aeb255d6777eb84ef4remainsprotected=true.- For both
mainbranch responses the legacyprotection.enabledpayload remains false, so the protected flag appears to be supplied by a ruleset rather than legacy branch protection. Context Fabric cannot infer release-grade policy from the flag alone.
This closes the earlier branch-flag RED condition but not yet the full release-governance acceptance criterion. Central owner should now verify the attached live ruleset semantics for both stable
mainrefs: deletion and non-fast-forward protection, required current-head checks/reviews appropriate to promotion, review-thread handling/stale-review behavior, and no routine bypass. If those controls are confirmed, record that evidence here; Context Fabric will then treat stable-branch policy as satisfied while still requiring dependency-first integration, counted independent approval from #772, exact protected-main CI/package/SBOM/provenance evidence, and unchanged-SHA release/tag verification. No release or bypass was attempted.seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh Context Fabric branch revalidation on 2026-08-21 KST supersedes the most recent
context-graph-contracts/mainprotection observation in this issue:ContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13now reportsprotected=true, while default/integrationdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13also remainsprotected=true. Legacy branch-protection payloads still reportenabled=false, so the protection flag appears ruleset-derived rather than evidence that the intended release-grade rule set has been fully verified.This closes the earlier branch-flag RED for Context Graph but not release authorization. The remaining owner-side acceptance is to inspect the effective rule(s) applying to stable
mainand prove deletion/non-fast-forward protection, unresolved-thread handling, exact-current-head checks/reviews appropriate to release promotion, and no routine bypass. Context Fabric will continue to refuse tag/release promotion based onprotected=truealone. After dependency-first integration, release evidence must still be regenerated on one unchanged protectedmainSHA.No repository source, default branch, review requirement, or bypass was changed from the Context Fabric writer.
seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh Context Fabric branch revalidation now contradicts the earlier
protected=trueevidence and shows the contract stable branch has regressed to unprotected. Two consecutive direct GitHub branch reads in this run reportContextualWisdomLab/context-graph-contracts/main@99cb5468ba3c15c5e79688f53dee74724fae2d13asprotected:false, with legacyprotection.enabled:falseand no legacy required-status contexts.develop@99cb5468ba3c15c5e79688f53dee74724fae2d13remainsprotected:true.Treat the earlier
protected=trueobservations as transient/superseded, not release authorization. First failing release-governance boundary is again the stablemainref itself: before any immutable contract promotion/tag, restore the intended stable-release ruleset tocontext-graph-contracts/mainwhile preservingdevelopas default/integration, then re-fetch the branch twice and record the effective ruleset semantics (deletion/non-fast-forward protection, exact-head required checks/reviews/thread handling, stale-review behavior, no routine bypass). Context Fabric will not use direct/unreviewedmainmutation or infer policy from predecessor branch-state evidence.This is independent of #772 counted-review provisioning; both must be satisfied on the then-current exact refs before release.
seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh live regression evidence on 2026-08-21 supersedes the earlier transient
protected:trueobservation for the Context Graph stable branch:context-graph-contractsstill reports default branchdevelop.develop@99cb5468ba3c15c5e79688f53dee74724fae2d13:protected=true.main@99cb5468ba3c15c5e79688f53dee74724fae2d13:protected=false; legacy protection payload remainsenabled=falsewith no required status contexts.
This means stable-release governance is currently fail-closed again: do not tag, publish, attest, or promote an immutable
cwl-context-contractsrelease frommainuntil the central ruleset owner restores and verifies effective release-grade protection on that branch while preservingdevelopas the Git Flow default/integration branch.Smallest required remedy/acceptance remains: attach the intended effective ruleset to
main; prove deletion and non-fast-forward protection, required exact-head checks/reviews, unresolved-thread handling, stale/latest-push review semantics where configured, and no routine bypass; then refetchmainand verifyprotected=trueplus the effective rule behavior before any release operation. Context Fabric will not treat a prior/transient protection flag as current evidence.seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh Context Fabric revalidation on 2026-08-21:
ContextualWisdomLab/context-graph-contractsstill usesdevelopas the default integration branch. Direct branch reads now report bothdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13and stablemain@99cb5468ba3c15c5e79688f53dee74724fae2d13asprotected:true; the legacy branch-protection payload remainsenabled:falsewith no legacy required-status contexts, so the protection is consistent with a ruleset rather than legacy branch protection. This supersedes the issue body's oldermain protected=falsesnapshot.The remaining falsifiable owner-side acceptance is narrower: inspect the effective ruleset actually covering
mainand prove it supplies the intended release controls (deletion and non-fast-forward protection, unresolved-thread handling, exact-current-head required checks/reviews appropriate to release promotion, and no routine bypass) whiledevelopremains default. Context Fabric will not infer release authorization from the branch boolean alone, and will not tag/release until one exact promoted protected-main SHA satisfies all repository/package/SBOM/provenance/review/rollback gates together.seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh release-governance revalidation on 2026-08-21 still fails closed at the stable branch:
ContextualWisdomLab/context-graph-contractsdefault/integration branch isdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13and GitHub reportsprotected=true.- Stable release branch
main@99cb5468ba3c15c5e79688f53dee74724fae2d13still reportsprotected=false; legacy protection is alsoenabled=false. - The active release-attestation stack intentionally restricts protected-main attestation to
refs/heads/main, so a release/tag/promotion from this branch cannot yet satisfy the repository's own protected-source release invariant.
Minimal central remedy is unchanged: preserve
developas the default integration branch and attach the intended release-grade ruleset tomain, then verify deletion/non-fast-forward protection, unresolved-thread handling, exact-current-head checks/reviews, stale/latest-push behavior, and no routine bypass. Context Fabric will revalidate the exact promotedmainSHA and its package/SBOM/provenance evidence after dependency-first integration; it will not treat the current unprotected branch as release-authorized.seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh Context Fabric release-governance revalidation — 2026-08-22 KST
Direct branch reads now prove the stable-release branch is unprotected in both owned Context Fabric repositories while each Git Flow integration branch remains protected:
ContextualWisdomLab/context-graph-contracts:develop@99cb5468ba3c15c5e79688f53dee74724fae2d13reportsprotected=true;main@99cb5468ba3c15c5e79688f53dee74724fae2d13reportsprotected=false, legacy protectionenabled=false.ContextualWisdomLab/enterprise-architecture-core:develop@1c0fa8b15ceb9e72186274aeb255d6777eb84ef4reportsprotected=true;main@ca6889497728e1a3f09d68790a9096576e13a3ffreportsprotected=false, legacy protectionenabled=false.
This extends the existing owner-boundary acceptance rather than changing product policy: preserve
developas default/integration, but apply and verify the intended release-grade stable-mainruleset on both repositories before any immutable release/promotion is treated as authorized evidence. Revalidate deletion/non-fast-forward protection, unresolved-thread handling, exact-current-head checks/reviews, and no routine bypass. Aprotectedboolean alone is not sufficient if the effective ruleset cannot be shown.No branch/ruleset mutation, bypass, tag, release, or self-approval was attempted from the Context Fabric writer. After central remediation, Context Fabric will refetch both exact branch tips/effective policy and require fresh protected-main CI/package/SBOM/provenance/review evidence before release.
seonghobae commented
on Aug 21, 2026 ContributorAuthorMore actionsFresh release-governance revalidation — 2026-08-22 KST.
The release-grade stable-branch boundary remains unsatisfied on both Context Fabric repositories while their Git Flow defaults remain protected:
ContextualWisdomLab/context-graph-contracts/develop@99cb5468ba3c15c5e79688f53dee74724fae2d13:protected=true; stablemain@99cb5468ba3c15c5e79688f53dee74724fae2d13:protected=false, legacy protectionenabled=false.ContextualWisdomLab/enterprise-architecture-core/develop@1c0fa8b15ceb9e72186274aeb255d6777eb84ef4:protected=true; stablemain@ca6889497728e1a3f09d68790a9096576e13a3ff:protected=false, legacy protectionenabled=false.
This is a central ruleset/policy boundary, not a reason to weaken repository release evidence. Smallest owner remedy: preserve
developas each protected default/integration branch and attach the intended release-grade ruleset to both stablemainrefs. GREEN proof must demonstrate effective deletion/non-fast-forward protection, unresolved-thread handling, exact-current-head required checks/reviews appropriate to release promotion, and no routine bypass. After any Context Fabric stack integration, release/tag/provenance evidence must be regenerated on one exact protectedmainSHA; PR/develop/predecessor evidence is non-transferable.99 remaining items
seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsContext Fabric owner-plane dependency refresh, 2026-09-07 KST: the CodeQL prerequisite now has a concrete canonical source owner,
.github#1902@4b025af481f3a4fb0bdb4d400a7e055066a496a2on protected.github/main@c9052e607e5f3cc76e73207e7786b21500721b79. Its first missing-verdict and stale-base defects are repaired, but hosted canaries exposed a still-open two-language exact-job wake race: both native scan shards can publish terminal receipts, the first wakes the required run, and the second can receive HTTP 403 because that run is already executing. #1902 remains Draft/fail-closed while it repairs deterministic settlement; treating the 403 as success or using an unbound run-wide rerun is explicitly rejected.I bound #1902's post-integration canary to the unchanged consumers currently blocking this migration:
.github#1644@5f5d7a9e849984c052c72a08eba34f68cb694024andcontext-graph-contracts#4@5117383ac15cdfe3813340455cd99b92937ef47c, both of which haveactions+pythonCodeQL compatibility jobs that reached the missing authenticated-terminal-verdict boundary on attempt 2. After #1902 is integrated, both unchanged heads must obtain per-language authenticated terminal receipts and semantically terminal exact required jobs before #1644 may be represented as CodeQL-GREEN.Fresh product settings remain RED in parallel: CGC still
default_branch=develop,develop@99cb5468ba3c15c5e79688f53dee74724fae2d13protected and byte-identicalmain@99cb5468...unprotected; EA stilldefault_branch=develop, protecteddevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ece, with productmain@ca6889497728e1a3f09d68790a9096576e13a3ffnot yet the default integration authority. Effective inherited ruleset18156473is still active on~DEFAULT_BRANCH, still has barerequired_approving_review_count=1, no named/CODEOWNER/last-push reviewer, required thread/workflows/deletion/non-fast-forward gates, and routineOrganizationAdmin/alwaysbypass.Owner order is therefore now explicit: finish #1902 exact-bound multi-language settlement -> reacquire #1644 CodeQL and all exact-head gates -> ordinary protected integration of #1644 -> separately credentialed live #772 ruleset reconciliation -> protect CGC/EA
mainfirst -> switch defaults -> reread~DEFAULT_BRANCH-> only then reconstruct product stacks non-force. No leaf retarget/restack is authorized before that control plane converges.seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh Context Fabric owner-plane supersession, 2026-09-07 KST. Revalidated before any product ref/base mutation.
- Protected central
.github/mainhas advanced to78a4937c684a54ca8e415822c913742f41c6efc4(fix(codeql): accept queued pre-cutover scan-dispatch payloads #2009). Both owner-source PRs are now stale against that protected tip: fix(codeql): recover reruns after missing dispatch verdict #1902 remains Draft at4b025af481f3a4fb0bdb4d400a7e055066a496a2with recorded basec9052e607e5f3cc76e73207e7786b21500721b79; fix(governance): automate ruleset owner-plane reconciliation #1644 remains Draft at5f5d7a9e849984c052c72a08eba34f68cb694024with the same recorded base. Their predecessor hosted evidence therefore cannot be treated as current after required non-force protected-main adoption. - Product control-plane state remains pre-migration: both Context Fabric repositories still report
default_branch=develop; CGCdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13is protected while byte-identicalmain@99cb5468...is unprotected. Effective inherited ruleset18156473still follows~DEFAULT_BRANCHwith the bare solo-impossible approval count tracked by [Governance] Make protected-PR review policy solo-maintainer compatible without weakening deterministic gates #772. Do not retarget product stacks yet. - CGC Context Assertion 🧪 [testing improvement] iter_json_objects 함수에 대한 단위 테스트 추가 #21 is still Draft exact
26ab77428a723e825bfd54a7b6fc26e7a65c787cwith no exact-head workflow materialization. EA ⚡ Bolt: JSON 파싱 성능 최적화 #40 has advanced by three ordinary fast-forward commits toac4b7d0c015f0ef261047b63b762e88124fede60: it now test-first requires the CGCcontext-assertion-message-admission:v1conformance profile and packaged resource in both the dependency manifest and immutable-release verifier, closing a consumer-side false-release gap. EA exact-head Actions are still empty, so no hosted GREEN is claimed.
Causal owner order remains: non-force adopt current protected
.github/main@78a4937...into the canonical #1902 settlement repair and reacquire exact-head terminal gates -> non-force adopt current protected main into #1644 and reacquire its exact-head gates -> ordinary protected integration when live policy permits -> separately credentialed #772 ruleset reconciliation -> protect CGC/EAmainfirst and prove effective protection -> switch defaults tomain-> reread~DEFAULT_BRANCH-> hand fresh protected refs back for dependency-root-first non-force product reconstruction with no predecessor evidence transfer. This remains an actionable central owner-plane sequence, not a product-source or user-decision blocker.- Protected central
seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh Context Fabric causal evidence for the accepted default-branch migration (2026-09-07 KST): the current
developdefault is not merely pointing~DEFAULT_BRANCHat the wrong governance target; it also prevents the repository PR workflows from materializing because the workflow definitions are absent from that default line.- CGC remains
default_branch=develop,develop@99cb5468ba3c15c5e79688f53dee74724fae2d13protected, byte-identicalmain@99cb5468...unprotected..github/workflows/ci.ymlis 404 ondevelop, while the stacked base and current#21@aae092056eef8f28c287b23437c05d88ecede98dcontainon: pull_request; the exact head has zero workflow runs. - EA remains
default_branch=develop;.github/workflows/ci.ymlis also 404 ondevelop. Current#40@9a26898d07bb4746d3896f2199b9e6972a3d6ed8has zero exact-head workflow runs despite candidate workflow definitions and explicit exact-source checkout.
This strengthens #1137's existing execution order rather than changing it: protect
mainfirst to the intended deterministic integration/release policy; prove protection; switch default tomain; re-read inherited~DEFAULT_BRANCH; then reconstruct dependency roots/descendants non-force and reacquire exact-head workflows. Copying candidate workflows backward into obsoletedevelopsolely to make these Draft descendants run would prolong the superseded topology and is not the causal remedy.- CGC remains
seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh Context Fabric owner handoff (2026-09-08 KST): both repositories still report
default_branch=develop. CGC remains protecteddevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13with byte-identical unprotectedmain@99cb5468ba3c15c5e79688f53dee74724fae2d13; EA remains protected/defaultdevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ecewhile productmain@ca6889497728e1a3f09d68790a9096576e13a3ffhas not become protected/default authority. Organization ruleset18156473still follows~DEFAULT_BRANCHwith bare approving-review count 1 and routine OrganizationAdmin/always bypass. Product roots remain Draft and non-passing under this topology: CGC #4 exact5117383ac15cdfe3813340455cd99b92937ef47c; EA integration root #21 exact7231e58cd10d55c936ca08fb4f806af2a23bf247; fresh repository Actions for EA #21 are empty. Please execute the already accepted owner sequence only: protectmainfirst to the intended deterministic integration/release standard, preserve transitiondevelopprotection as needed, switch default tomain, reread effective~DEFAULT_BRANCHrules, and coordinate #772's removal/replacement of only the structurally impossible bare solo approval count/routine bypass without weakening required checks/security/coverage/package/SBOM/provenance/thread/deletion/non-fast-forward controls. Product writers will rebuild stacks from fresh protectedmainand reacquire exact-head evidence after this owner-plane change; no predecessor evidence transfers.seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh Context Fabric owner handoff after an EA-owned causal repair; revalidate before central mutation.
context-graph-contractsstill reportsdefault_branch=develop;develop@99cb5468ba3c15c5e79688f53dee74724fae2d13remains protected and byte-identicalmain@99cb5468ba3c15c5e79688f53dee74724fae2d13remains outside the intended protected/default-main state. Current CGC Context Assertion 🧪 [testing improvement] iter_json_objects 함수에 대한 단위 테스트 추가 #21 is Draft at exact29af389e764758b7d5b33b04bb0b8ca1f64d5317; fresh exact-head PR Actions lookup is empty.enterprise-architecture-corestill reportsdefault_branch=develop; protecteddevelop@dd71e40a86385fb7861b0f1be19891a3f3e29eceand integration candidatemain@ca6889497728e1a3f09d68790a9096576e13a3ffare unchanged from the current topology. EA ⚡ Bolt: JSON 파싱 성능 최적화 #40 advanced linearly/non-force to exact1ff2a40bb7bea79b81339d12c74a96d5def6875fafter repairing an internal Context Assertion receipt-contract RED: the production connector validator already requiredmessage_profile_id/message_profile_version, while all ten checked-incontext_assertion_cloudeventconnector receipts omitted them. The commit adds only those two semantics to those ten receipts; hosted exact-head evidence is not transferred or claimed.- Repository-scoped live reads still resolve organization ruleset
18156473on~DEFAULT_BRANCHwithrequired_approving_review_count=1,required_reviewers=[],require_code_owner_review=false,require_last_push_approval=false, required thread resolution/workflows/deletion/non-fast-forward controls, andOrganizationAdmin/alwaysbypass. [Governance] Make protected-PR review policy solo-maintainer compatible without weakening deterministic gates #772 therefore remains RED.
The central owner sequence remains the accepted causal path: converge the live central governance implementation on protected
.github/mainwithout force -> obtain its exact-head deterministic gates -> repair the impossible bare approval count/routine bypass centrally -> protect each Context Fabricmainfirst -> switch default tomain-> reread effective~DEFAULT_BRANCHrules -> hand fresh refs back for dependency-root-first non-force stack reconstruction and new evidence acquisition. Do not copy workflows back todevelop, retarget product PRs onto unprotectedmain, or transfer predecessor checks/reviews.seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh Context Fabric owner revalidation (2026-09-08 KST) confirms the migration is still at the pre-protect-main step; no product ref/base mutation is safe yet.
Live repository truth:
context-graph-contracts:default_branch=develop;develop@99cb5468ba3c15c5e79688f53dee74724fae2d13reportsprotected=true; byte-identicalmain@99cb5468ba3c15c5e79688f53dee74724fae2d13reportsprotected=false.enterprise-architecture-core:default_branch=develop;develop@dd71e40a86385fb7861b0f1be19891a3f3e29ecereportsprotected=true; productmain@ca6889497728e1a3f09d68790a9096576e13a3ffremains outside default-branch authority.- Effective inherited ruleset
18156473remains active on~DEFAULT_BRANCHwithrequired_approving_review_count=1,required_reviewers=[], CODEOWNER/last-push approval disabled, required thread resolution + central workflows + deletion/non-fast-forward, andOrganizationAdmin/alwaysbypass. It therefore still followsdevelopin both product repositories.
Current exact product evidence is still fail-closed: CGC root
#4@5117383ac15cdfe3813340455cd99b92937ef47chas SAST success but CodeQL and Security Scan failures; CGC Context Assertion#21@49318782cfe3dffdc78fbcd2bb8e3ee0860d9329has zero exact-head PR workflow runs. EA dependency root#21@7231e58cd10d55c936ca08fb4f806af2a23bf247likewise has zero exact-head PR workflow runs. EA#31@9da48e30f9fc60c0999928df84343834be402492remains stale and its historical three repository workflows were cancelled pre-step; no checkout evidence transfers.EA Context Fabric
#40has advanced linearly/non-force to exact06ded6a1d6febab9cd85d0716ddcfadd9f8d30a6. It test-first closes a consumer false-release gap by requiring the installed CGCContextAssertionAdmission.schema_version == 1in addition to the exact event-profile/message-profile/admission identities, and hardens the focused doubles so message-profile regressions isolate their intended field plus a compatible positive receipt path. Fresh provider source confirms CGC exposes immutableschema_version = 1. Exact-head EA #40 Actions remain absent, so no hosted GREEN is claimed and this source progress does not alter migration order.The central source prerequisite itself needs ordinary non-force reconciliation before owner-plane apply: protected
.github/mainis now78a4937c684a54ca8e415822c913742f41c6efc4, while canonical CodeQL settlement#1902@4b025af481f3a4fb0bdb4d400a7e055066a496a2and ruleset reconciler#1644@5f5d7a9e849984c052c72a08eba34f68cb694024still record basec9052e607e5f3cc76e73207e7786b21500721b79. #1902 remains Draft with the exact two-language settlement race unresolved; #1644 remains Draft and explicitly requires protected-source integration before its separately credentialed Administration-write apply path may run.Owner order remains: central owner non-force adopts current protected
.github/maininto the canonical settlement/reconciler lanes and reacquires exact-head gates -> integrate the reconciler through ordinary protected governance -> execute the separately credentialed ruleset convergence from protected truth -> protect CGC/EAmainfirst and prove effective protection -> switch defaults tomain-> reread~DEFAULT_BRANCH-> hand fresh protected refs back for dependency-root-first non-force reconstruction. Do not copy workflows backward into obsoletedevelop, retarget product stacks to unprotectedmain, or transfer predecessor evidence.seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh branch-topology proof for the EA migration:
enterprise-architecture-corestill defaults to protecteddevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ece, while unprotectedmain@ca6889497728e1a3f09d68790a9096576e13a3ffcontains the actual merged product foundation/history.main...developisdiverged(developahead 2, behind 1; merge-base1c0fa8b15ceb9e72186274aeb255d6777eb84ef4). Critically, comparing that merge-base todevelopreports two commits but zero changed files:266b1285...introduced an accidental empty path anddd71e40...reverted it. Therefore there is no substantive develop-only product delta to preserve or merge into main. This strengthens the accepted causal sequence: protect currentmainfirst, switch default tomain, re-read~DEFAULT_BRANCH, then rebuild open PR bases/stacks from fresh heads. Do not merge the net-zero develop history into main merely to manufacture ancestry, and do not transfer predecessor gate evidence.seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh Context Fabric owner handoff after an EA-owned DDD repair. Product control-plane state is still pre-migration: both repositories still default to
develop; CGCmain@99cb5468ba3c15c5e79688f53dee74724fae2d13remains unprotected and EA protected inventory still contains onlydevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ece, while productmain@ca6889497728e1a3f09d68790a9096576e13a3ffis outside default-branch authority. Effective organization ruleset18156473still follows~DEFAULT_BRANCHwith the bare solo-impossible approval count and routine admin bypass tracked by #772.The product writer did not work around that control plane. It instead repaired an independent EA ownership defect on Draft
enterprise-architecture-core#40, now exact08879d2ddbe56b5f7f8039b7fd82b3aecc30586e: the existing hostile connector-contract RED mutates Quarantine Sandbox Runtimeea_core_ownstotrue, but the production quarantine validator previously failed to reject that false ownership claim. The exact current commit adds only the four-line fail-closedea_core_owns is Falseinvariant. Fresh exact-head EA Actions are still absent, so no hosted GREEN transfers or is claimed.Fresh provider anchors remain CGC root
#4@421d50e17102a68de616d71559d8b90cb3aa372fand Context Assertion#21@49318782cfe3dffdc78fbcd2bb8e3ee0860d9329. Central source remains stale against protected.github/main@78a4937c684a54ca8e415822c913742f41c6efc4:#1902@4b025af481f3a4fb0bdb4d400a7e055066a496a2and#1644@5f5d7a9e849984c052c72a08eba34f68cb694024still record basec9052e607e5f3cc76e73207e7786b21500721b79. The causal owner order is unchanged: non-force reconcile those central owner lanes to protected truth and reacquire gates -> integrate the reconciler -> execute privileged #772 convergence -> protect both productmainrefs first -> switch defaults -> reread~DEFAULT_BRANCH-> return fresh refs for dependency-root-first non-force product reconstruction. No product retarget, bypass, or predecessor evidence transfer is authorized before that convergence.seonghobae commented
on Sep 7, 2026 ContributorAuthorMore actionsFresh protect-main migration evidence, 2026-09-08 KST, re-read from both Context Fabric repositories and the effective inherited ruleset:
context-graph-contracts:default_branch=develop; protecteddevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13; unprotected byte-identicalmain@99cb5468ba3c15c5e79688f53dee74724fae2d13.enterprise-architecture-core:default_branch=develop; protecteddevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ece; unprotectedmain@ca6889497728e1a3f09d68790a9096576e13a3ff.- Effective inherited organization ruleset
18156473is still active on~DEFAULT_BRANCHwithrequired_approving_review_count=1,required_reviewers=[], code-owner/last-push approval disabled, thread resolution and required central workflows retained, deletion/non-fast-forward protection retained, and routineOrganizationAdmin/alwaysbypass still present. - Current owner-plane implementation remains
.github#1644@5f5d7a9e849984c052c72a08eba34f68cb694024, Draft against protected.github/main@c9052e607e5f3cc76e73207e7786b21500721b79; its source models approval count 0 and removal of routine bypass while preserving deterministic controls, but its current exact-head central gates are not clean and privileged live apply remains disabled.
The required sequence therefore remains unchanged and actionable: land the owner-plane repair through its own deterministic gates, protect each product
mainbefore changing default, then switch default tomain, re-read effective~DEFAULT_BRANCH, and only afterward non-force rebuild the CGC/EA stacks from fresh protected integration truth. Do not retarget current product PRs to unprotected main or treat their historical evidence as transferable.seonghobae commented
on Sep 8, 2026 ContributorAuthorMore actionsContext Fabric owner-path refresh — fresh direct state on 2026-09-08 KST, superseding stale comments that still describe
developas the intended long-term target.context-graph-contracts: repository default remainsdevelop;develop@99cb5468ba3c15c5e79688f53dee74724fae2d13is protected, while byte-identicalmain@99cb5468ba3c15c5e79688f53dee74724fae2d13is still unprotected.enterprise-architecture-core: repository default remainsdevelop;develop@dd71e40a86385fb7861b0f1be19891a3f3e29eceis protected, whilemain@ca6889497728e1a3f09d68790a9096576e13a3ffis still unprotected.- In both repositories inherited organization ruleset
18156473remains active on~DEFAULT_BRANCH, with barerequired_approving_review_count=1,required_reviewers=[],require_code_owner_review=false,require_last_push_approval=false, required review-thread resolution, deletion/non-fast-forward protection, central required workflows, and anOrganizationAdmin/alwaysbypass actor. This remains the structurally impossible solo-maintainer rule tracked by [Governance] Make protected-PR review policy solo-maintainer compatible without weakening deterministic gates #772; it must not be satisfied by self/model approval or synthetic reviewers. - The live ruleset owner PR remains
.github#1644@e35cdc5d6527dfa8634654719a6c3681f16ed82aon protected.github/main@7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db. Ruleset Governance Reconcile34183081305, SAST34183081262, CodeQL34183081272, Python Security34183081259, and Security Scan34183081206are all terminal success on that unchanged exact head. The PR remains Draft and live repository/ruleset settings have not converged; predecessor evidence does not transfer. - Current product candidates remain fail closed: CGC Context Assertion
#21@b3558f993dd84604aa2bcb9c94be630af15db53dand EA Context Fabric/quarantine#40@77a4b740eb07765385aa56a59392c37a4873c341each still have zero exact-head workflow runs. EA ⚡ Bolt: JSON 파싱 성능 최적화 #40 advanced non-force through a test-first fail-closed connector-direction repair; the new head therefore requires fresh execution and no1daf5912...evidence transfers. This is materialization/control-plane evidence, not a passing lane and not a reason for no-op source churn.
Owner acceptance remains unchanged and is the next causal control-plane action: land the owner-plane repair through its protected deterministic path; protect each product
mainto the intended integration/release standard before changing defaults; apply the #772 solo-maintainer-compatible review rule without weakening deterministic/security/thread/deletion/non-fast-forward gates; switch each repository default tomain; re-read effective~DEFAULT_BRANCH; then rebuild CGC/EA stacks non-force from fresh protected heads and reacquire exact-head evidence. Do not retarget current product PRs to unprotectedmain, transfer historical checks/reviews, or use routine admin bypass.seonghobae commented
on Sep 8, 2026 ContributorAuthorMore actionsFresh owner-path revalidation materially advances the source side of this transition. Central PR #1644 remains Draft/mergeable at exact
e35cdc5d6527dfa8634654719a6c3681f16ed82aover unchanged protectedmain@7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db. Its exact-head Actions inventory is now 10/10completed; fresh outcome inspection finds no failure, cancelled, skipped, neutral, timed_out, action_required, startup_failure, stale, null, queued, or in_progress conclusion/status. Named exact-head lanes include Ruleset Governance Reconcile, CodeQL PR, SAST Semgrep, Python Security, Security Scan, and Required PR Review Merge Scheduler assuccess. Fresh review-thread inventory is fully resolved; reviews remain COMMENT-only, so no human approval is invented or transferred.This removes hosted-check waiting as the source-lane reason to leave the accepted protect-main/default-main/ruleset repair dormant. The remaining owner sequence is still the accepted one: advance #1644 through the ordinary protected source path under its live policy, then expose/use the separately provisioned least-privilege Administration-write environment to protect CGC/EA
mainfirst, switch defaults, reread effective~DEFAULT_BRANCH, and apply #772's solo-maintainer canonicalization without weakening deterministic gates. Current CGC evidence continues to prove the practical impact: both live integration refs omit repository workflows while its active exact PR head contains them, so leaf no-op retriggers are not a causal repair.seonghobae commented
on Sep 8, 2026 ContributorAuthorMore actionsContext Fabric fresh control-plane read (2026-09-08): EA still has protected/default
develop@dd71e40a86385fb7861b0f1be19891a3f3e29eceand unprotected/non-default intendedmain@ca6889497728e1a3f09d68790a9096576e13a3ff. Organization ruleset18156473is still active on~DEFAULT_BRANCHwith barerequired_approving_review_count=1,required_reviewers=[],require_code_owner_review=false,require_last_push_approval=false, thread resolution + required central workflows + deletion/non-fast-forward retained, andOrganizationAdmin/alwaysbypass. CGC likewise remains defaultdevelopwith intendedmainnot made the integration authority. Meanwhile central owner PR.github#1644@e35cdc5d6527dfa8634654719a6c3681f16ed82anow has its current Ruleset Governance Reconcile, CodeQL PR, SAST Semgrep, Python Security and Security Scan runs all terminal SUCCESS. Source validation is therefore no longer the missing evidence; live protect-main/default-switch/effective-ruleset reconciliation is still the causal owner-plane action. New EA exact head#40@b64d64b5a5179d24079dda1467cd418fe6fbb3bdremains a zero-materialization PR lane until that control plane converges. Preserve the accepted sequence: protectmainfirst, retaindeveloponly for transition safety, switch default, re-read~DEFAULT_BRANCH, then rebuild stacks from fresh heads without transferring predecessor evidence.seonghobae commented
on Sep 8, 2026 ContributorAuthorMore actionsFresh Context Fabric owner handoff after an EA-owned contract repair (2026-09-08 KST):
enterprise-architecture-core#40is now exactf6542cbcf4bd933a002e33af8d8dd15b3652c0f5, non-force over unchanged parent#39@cd2a2471a53e34c5442aaf7194fb0a74df23b732. The repair restores the fail-closed caller-scoped quarantine application-service session-lifecycle invariant already required by the hostile connector contract. The new exact head still materializes zero repository PR workflows, so no predecessor evidence is transferred. Live governance itself is unchanged: EA remains default/protecteddevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ecewith unprotectedmain@ca6889497728e1a3f09d68790a9096576e13a3ff; CGC remains default/protecteddevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13with unprotected byte-identicalmain; inherited ruleset18156473still follows~DEFAULT_BRANCHwith bare approval count 1 and routine OrganizationAdmin bypass. Keep the accepted owner sequence: land/apply the central reconciler through its protected path, protect both productmainrefs first, switch defaults, reread effective rules, then return fresh refs for dependency-root-first non-force stack reconstruction and exact-head gate reacquisition.seonghobae commented
on Sep 8, 2026 ContributorAuthorMore actionsContext Fabric owner-plane refresh — source-side governance reconciler is now exact-head GREEN, while live repository settings remain unchanged.
Fresh central owner PR:
.github#1644@e35cdc5d6527dfa8634654719a6c3681f16ed82a, base protected.github/main@7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db, still Draft. Exact-head runs are all terminal success: CodeQL PR34183081272, SAST Semgrep34183081262, Python Security34183081259, Security Scan34183081206, and Ruleset Governance Reconcile34183081305. This supersedes the earlier queued receipt in the PR body; no predecessor evidence is transferred.Fresh product topology is still RED and unchanged: CGC
default_branch=develop, protecteddevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13, unprotected byte-identicalmain@99cb5468ba3c15c5e79688f53dee74724fae2d13; EAdefault_branch=develop, protecteddevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ece, unprotected productmain@ca6889497728e1a3f09d68790a9096576e13a3ff. Effective org ruleset18156473still follows~DEFAULT_BRANCHwith barerequired_approving_review_count=1, no named/code-owner/last-push reviewer, and routineOrganizationAdmin/alwaysbypass.The next owner action is no longer another source-side reconciler repair. Preserve the accepted sequence: ordinary protected integration of #1644 through its own live governance, then expose the separately provisioned least-privilege Administration-write maintenance environment and perform protect-main-first -> verify effective protection -> switch default to main -> re-read
~DEFAULT_BRANCH-> eliminate only the impossible generic approval/routine-bypass defect while preserving deterministic workflows/security/thread/deletion/non-fast-forward controls. Current GitHub App surface used by product writers can read these settings but cannot mutate repository default/protection or organization rulesets, so do not request leaf no-op commits as a substitute.seonghobae commented
on Sep 10, 2026 ContributorAuthorMore actionsWardnet read-only dependency sweep, 2026-09-11 KST: branch-topology RED remains exact and unchanged.
context-graph-contractsstill reports protected/defaultdevelop@99cb5468ba3c15c5e79688f53dee74724fae2d13;enterprise-architecture-corestill reports protected/defaultdevelop@dd71e40a86385fb7861b0f1be19891a3f3e29ece. Fresh GitHub Release inventories for both repositories are empty. Current CGC and EA open stacks continue to describe protectedmainas the intended integration authority, so~DEFAULT_BRANCHstill follows the obsoletedevelopmetadata until this owner-plane repair executes.GREEN acceptance remains the existing issue contract: pre-protect
mainfirst, switch default only after effective protection is proven, re-read~DEFAULT_BRANCHrules, then rebuild/restack product stacks dependency-first and reacquire exact-head gates. No Wardnet source/PR-state mutation, mutable foreign-head dependency, or routine bypass was performed.
Current accepted topology
The Context Fabric program has converged on
mainas the intended protected integration/default branch for bothContextualWisdomLab/context-graph-contractsandContextualWisdomLab/enterprise-architecture-core. Historical guidance that keptdevelopas the long-term default/integration branch is superseded.Fresh 2026-09-01 repository evidence:
context-graph-contracts
default_branch=develop;develop@99cb5468ba3c15c5e79688f53dee74724fae2d13, reported protected;main@99cb5468ba3c15c5e79688f53dee74724fae2d13, unprotected;mainintegration and prohibit merging the stack through the obsoletedevelopintegration model;enterprise-architecture-core
default_branch=develop;develop@1c0fa8b15ceb9e72186274aeb255d6777eb84ef4, reported protected;main@ca6889497728e1a3f09d68790a9096576e13a3ffis the active product line but is not the default/protected integration authority;mainintegration and treat the historicalmain -> developsynchronization lane as superseded;Organization ruleset
18156473targets~DEFAULT_BRANCH. While repository metadata still namesdevelop, the organization rule therefore follows the wrong long-term integration ref. This is a central control-plane defect, not a product-repository decision and not a reason to weaken release contracts.Required safe transition
Execute in this order for each Context Fabric repository, refetching live state between every step:
mainfirst. Apply the intended integration/release-grade controls tomainbefore changing default metadata. Preserve deterministic required workflows/security/coverage/package/SBOM/provenance/thread-resolution/deletion/non-fast-forward controls and prohibit routine bypass.developonly as needed. Do not create a window where either integration candidate is unprotected while stacks are being reconstructed.mainonly after its effective protection is proven.~DEFAULT_BRANCHnow resolves tomainand that no required control silently fell away.main. No predecessor-head review/check/package/provenance evidence transfers across base/default movement.mainSHA. Version, package, SBOM, provenance, reproducibility, conformance/admission and release metadata must identify the same immutable source/artifact set.Interaction with solo-maintainer review governance
.github#772independently owns the scoped removal/replacement of the structurally impossible generic approving-review-count rule for the current solo-maintainer organization. Self-approval remains forbidden and bot/model output is not human approval. This issue must not wait for fictional reviewer provisioning; branch topology and deterministic protection are executable central governance work.RED acceptance
main.develop.18156473follows~DEFAULT_BRANCH, therefore followsdevelop.mainis not yet the coherent protected default integration authority.GREEN acceptance
For both Context Fabric repositories:
mainhas integration/release-grade effective protection before the default switch;default_branch=main;~DEFAULT_BRANCHorganization rules resolve tomainand required deterministic controls remain enforced;developtransition protection is explicit and may later be retired without weakeningmain;main, descendants are restacked dependency-first, and all moved heads reacquire exact-current-head checks/reviews/artifacts;Non-goals
mainbefore protection exists.developmerely because it is currently default.main -> developsynchronization work.