Skip to content

docs: maintain durable product-technical gap baseline - #100

Draft
seonghobae wants to merge 204 commits into
developfrom
docs/product-technical-gap-baseline
Draft

docs: maintain durable product-technical gap baseline#100
seonghobae wants to merge 204 commits into
developfrom
docs/product-technical-gap-baseline

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Scope

Canonical single-writer lane for docs/product-technical-gap-baseline.md. The baseline records durable product/domain/control-plane truth and causal dependency order; it is not merge authorization and does not freeze volatile PR heads, run IDs, queue snapshots, or review state into the document.

Current durable baseline

The baseline at c0a40a4d598635cc1056a29451a4707d00c613c5 remains code-current at the durable-contract level after workflow owner #161 integrated as protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. It already records #63 shared HRIS-kernel ownership, #64-before-#65 owner order, protected-owner adoption before consumer evidence, Assignment dependency order, ruleset controls, and the release gate.

#211#214 refine the shared trust boundary. #215#228 refine durable People/hire scalar/container and command/result boundaries. #229 requires ordinary generic People results and confirmed-hire results to remain bound to authoritative pre-port target identities. #246 records the necessary idempotent-replay qualification for generic Employment/Position/Assignment: their published semantic digest deliberately excludes generated record IDs, so an identical same-key retry may return the first committed identity instead of the retry's fresh generated identity only when the persistence result carries exact replay evidence and the application independently recomputes the same semantic command digest. Unexplained foreign results remain fail-closed; confirmed-hire remains exact-identity-bound because its materialization identities are part of that route's command contract. #230 detaches direct PostgreSQL commands; #231 completes application-input ownership before purpose-bound authorization; #232 requires exact built-in Assignment allocation text. #233 closes a public-contract inconsistency by making the parser and published OpenAPI reject zero while retaining the authoritative Assignment allocation domain (0, 1.0000]; deterministic manifest evidence is resealed. These are refinements of the existing durable application/API trust-boundary and idempotency invariants, not new HR aggregates, so leaf SHAs and run IDs remain PR/Issue metadata rather than baseline-body data.

A distinct durable buyer/scientific gap remains #234: protected architecture assigns validity-study registry/scientific evidence ownership to workforce_validation, while protected implementation still lacks the complete owner API and durable owner-table adoption. Draft #235 establishes the independent owner application read boundary from protected develop; #236 makes retained persisted study evidence structurally immutable; #237 applies the same structural-immutability requirement to authenticated principal evidence before purpose-bound authorization. #238 corrects the PostgreSQL role-isolation model: a NOLOGIN schema owner cannot rely on ALTER ROLE ... SET search_path for later SET ROLE runtime isolation, because PostgreSQL applies role defaults at login. #239 adds the complementary constructor-bypass invariant for identity evidence: exact tuple-backed principal type alone is insufficient because low-level tuple.__new__ can bypass ValidationPrincipal.__new__; the owner read boundary must reconstruct/revalidate stored tenant/actor/scope evidence before Keyverse request construction/evaluation. #240 adds the repository-capability invariant exposed by the earlier review graph: runtime Protocol shape alone is not proof of a callable repository dependency, and dependency checking itself must not execute a caller-controlled descriptor before authorization. #241 extends retained-evidence hardening to the data projection by making ValidityStudyView structurally immutable. #242 narrows the ordinary public constructor surface, but does not treat constructor exclusivity or the Python runtime type as proof that authorization occurred; low-level tuple fabrication remains possible and consequential consumers must re-authorize and re-resolve authoritative state. #243 adds the nested-identity invariant: an immutable outer value object is still unsafe if it retains a mutable UUID object alias. Canonical identity authority must be reduced to interpreter-immutable scalar evidence, public UUIDs reconstructed fresh, and executable repository calls must receive detached UUID objects while post-port target verification remains bound to an immutable pre-port snapshot. #244 adds the ingress-scalar invariant: exact UUID outer type is still insufficient if its internal int slot was forged; the boundary must read the payload once, prove exact built-in int before any sentinel/range/equality behavior, and only then store the validated scalar. #245 completes the ordinary issuance-surface cleanup by removing an unconditional module-level projection issuer. #249 closes the remaining checked-versus-used capability gap: inertly validating a repository member before authorization is insufficient if the authorized path later performs a fresh dynamic attribute lookup. The exact ordinary repository function accepted before authorization must be the same function directly invoked afterward; caller-controlled __getattribute__ or descriptor machinery cannot be allowed to substitute a new executable capability after the access decision. #253 completes the concrete-dependency side of that rule: an inherited Protocol/interface declaration is still a runtime function and can satisfy a function-type gate even though no repository implementation exists, so the canonical interface placeholder itself must be rejected before authorization rather than treated as a concrete executable dependency.

#254 adds the Foundation provenance invariant exposed by a real hosted RED: executing a root PostgreSQL acceptance contract from the canonical Foundation workflow is not enough. Every such executable contract must also be registered in both canonical required-file inventories—Node REQUIRED_FILES and Python REQUIRED—and appear in the deterministic manifest.json exact path/hash/bytes/lines seal. A missing inventory entry or stale seal is a real acceptance failure; the repair is to register and reseal the exact artifact, not exempt discovery, remove execution, weaken the manifest path-set equality check, or lower coverage/security gates. #255 adds the complementary exact retained-policy-scalar coverage invariant: an immutable frozenset is not sufficient if one contained field is a caller-defined executable str subtype. The Workforce Validation boundary must reject non-exact policy-field strings before authorization comparison/hashing/persistence, and 100% coverage must execute that fail-closed branch rather than delete or weaken it. Volatile commit/run identifiers remain in #235/#254/#255 metadata rather than the baseline body.

#235 keeps workforce_validation_role as deny-default migration/schema-owner authority only, proves actual SET ROLE behavior in PostgreSQL acceptance, revalidates principal storage before authorization, binds the exact validated owner repository function across authorization, rejects the inherited Protocol declaration as a non-concrete capability, stores UUID authority without retained mutable aliases, validates UUID internal payloads before executable comparison, exposes no ordinary unconditional view issuer, and explicitly treats the returned ValidityStudyView as data rather than reusable authority. A distinct least-privilege runtime role plus schema-qualified relations/function-level search-path controls remain part of the durable adapter increment. The service test lane and owner-schema PostgreSQL contract are admitted to canonical Foundation without weakening hash/coverage controls, and #254 requires the executable contract to be represented in both provenance inventories plus the exact manifest seal. Current #235 exact head is dd95dd7256f37aab2c4f26aa1fb43e8c867f4e4d: Foundation and SAST are terminal GREEN, including owned coverage and isolated PostgreSQL acceptance. Security remains terminal non-passing only at the central Dependency Review availability probe tracked by .github#810; CodeQL remains terminal non-passing only after current-head dispatch succeeds and the central verdict handoff fails, tracked by .github#1927/#1929. These foreign control-plane failures are not leaf source defects and do not authorize no-op churn, synthetic verdicts, gate weakening, or mutable-source adoption. A qualifying independent approval is still absent.

Dependency-first Draft #248 / Issue #247 contains the next forward-only owner-table adoption, least-privilege runtime role and schema-qualified PostgreSQL read adapter. #250 adds the durable dependency-ownership invariant that a validated connection factory must be structurally bound against retained-reference replacement. #251 adds the migration-integrity invariant exposed by the owner-schema move: preserving a table OID, FKs, RLS and triggers is insufficient when an existing trigger/function body embeds a schema-qualified reference to the old relation. A forward owner migration must repair that dependent executable SQL in place while preserving function signature/trigger attachment and governance semantics; it must not paper over the defect with a compatibility copy/view or rewrite protected global migration history. #252 completes the adapter-side checked-versus-used rule: storing an executable connection capability immutably is insufficient if the read path later resolves a subclass-overridable property; execution must consume the exact structurally stored capability rather than perform a fresh dynamic lookup. #248 remains exact d54d44d795444df572efbb301a667d74ac574d58 on stale mutable-parent snapshot 656a0c41c06bc517b2cf7c554e35a6fb4f8c4f4b; it must not absorb mutable #235 source merely to restore mechanical mergeability. #235 integrates normally first; then #248 non-force adopts protected owner truth—including #249/#253/#254/#255—and reacquires exact-head coverage, PostgreSQL, security and review evidence before integration.

The durable follow-on after #248 integration is idempotent registration → explicit predictor/sample/decision-policy/analysis-protocol model → versioned scientific adapters/API/performance evidence. This independent lane does not change the People/Assignment owner order and must not copy mutable #63/#64/#65 source.

#63 exact Foundation CI is terminal success after its predecessor real RED (218 tests passed, 99.43% coverage) and three-branch test repair; SAST and Security are also terminal success. CodeQL remains failed in the central exact-head handoff state and qualifying approval is still absent, so normal integration remains blocked without an Orgmetra no-op retrigger or gate bypass. #64 owns #229#233 plus #246's replay-result reconciliation; its current exact head is 4be7f1681959e43d32c8e85a8f2660da36ff6d9c. Foundation, Security and SAST are terminal GREEN on that head; People API is 239/239 with 1472 statements / 482 branches at 100.00% statement/branch coverage and isolated PostgreSQL acceptance. CodeQL remains terminal FAILURE only at the same shared current-head verdict handoff after both compatibility jobs successfully request dispatch; no qualifying independent approval exists. #65 owns validate_authorization_decision(...) and purpose-bound durable-consumer validation. They overlap on People files, so #65 must non-force adopt protected #64 after normal #64 integration and preserve both invariant sets.

A further owner relationship is explicit: #141 contains a valid employing-legal-Organization HRIS feature but is Draft/non-mergeable on an old base and overlaps #64/#65 on People, authorization, and OpenAPI files. It must follow #65, non-force adopting protected owner truth while preserving its legal-employer feature. Assignment #163/#165 remain downstream consumers and must not adopt mutable sibling source.

Canonical People/Assignment durable order is #63#64#65#141#163#165, each through normal protected integration and non-force protected adoption where required. The independent workforce_validation order is #235#248 → later scientific/API increments, with mutable-parent source never treated as protected dependency evidence.

Writer branch repair finding

PR #100 remains Draft and non-mergeable because its long-lived branch is based on predecessor protected develop@ef1b143368cb6249c9520ca8cae10ebe844a5aa1. This is a repair finding, not a close condition. Its valid baseline delta is preserved; no force-push/destructive rebase is allowed. Safe non-force adoption of current protected truth must preserve valid doctoring while resolving real conflicts and reacquiring exact-head checks/review.

No self-approval, routine administrator bypass, gate weakening, predecessor-evidence substitution, mutable-owner source copy, or release claim is authorized by this PR.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6266320a-d62c-4576-9ff6-4ac7ecbbcc6a

📥 Commits

Reviewing files that changed from the base of the PR and between c3289c8 and 4a07d0d.

📒 Files selected for processing (1)
  • docs/product-technical-gap-baseline.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

제품·기술 격차 기준 문서를 2026-08-26 기준으로 갱신했다. 조직 ruleset, control anchor, 활성 capability, 구매자 격차, 실행 검증 조건과 운영 진단을 최신 상태로 변경했다.

Changes

제품·기술 격차 기준

Layer / File(s) Summary
저장소 보호 및 실행 기준
docs/product-technical-gap-baseline.md
조직 ruleset 18156473과 PR #119 control anchor를 기록했다. Issue #89의 상업 통제 격차를 3건으로 확장했다. 실행 루프가 유효 ruleset과 현재 PR 그래프를 재조회하도록 갱신했다.
기능 상태 및 주요 격차
docs/product-technical-gap-baseline.md
PR #116–#119의 활성 capability를 추가했다. 목적 바운드 HR 반출, 권위적 성과목표, 접근성, 권위적 릴리스 운영을 최고 가치 구매자 격차로 정의했다.
운영 진단 및 참고문헌
docs/product-technical-gap-baseline.md
리뷰 트리아지와 제공자 복구 진행을 2026-08-25/26 기준 네 가지 항목으로 재작성했다. References (APA 7th) 제목과 목록은 유지했다.

Estimated code review effort: 2 (간단) | ~10분

Merge Risk: 🟡 Moderate · up to 4a07d

The baseline still contains an inaccurate section heading, a conflicting open-PR count, and unclear workflow rerun instructions. These can mislead readers about repository status and recovery steps, so the PR needs follow-up before merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 제품·기술 격차 기준 문서를 갱신하는 PR의 주요 변경 사항을 정확하고 간결하게 설명합니다.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/product-technical-gap-baseline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 23, 2026 15:03
@seonghobae
seonghobae marked this pull request as ready for review August 23, 2026 15:35
@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Please review the current unchanged head against protected develop. Local exact-head verification: all owned package suites pass at 100% statement/branch coverage.

@seonghobae
seonghobae marked this pull request as draft August 24, 2026 20:04
@seonghobae
seonghobae marked this pull request as ready for review August 24, 2026 20:07
coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae marked this pull request as draft August 25, 2026 08:07
@seonghobae
seonghobae marked this pull request as ready for review August 25, 2026 10:26
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@seonghobae
seonghobae marked this pull request as draft August 25, 2026 20:55

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

Please review exact baseline-writer head 5e03ac25bdf3bb6f4ee9e6ee68722429e2cb56b8 against protected develop@ef1b143368cb6249c9520ca8cae10ebe844a5aa1. Focus on shipped-vs-Active-PR truth, #161/#64/#65/#168/#163/#165 causal ownership/order, AUTH-01 wording, contradictions with live issue/PR metadata, and accidental claims of hosted/release evidence. This commit changes only docs/product-technical-gap-baseline.md; predecessor reviews/checks do not transfer.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

head='5e03ac25bdf3bb6f4ee9e6ee68722429e2cb56b8'
base='ef1b143368cb6249c9520ca8cae10ebe844a5aa1'
repo='ContextualWisdomLab/Orgmetra'

printf '%s\n' '=== exact commit and changed paths ==='
git show --no-ext-diff --format=fuller --name-status "$head"
printf '%s\n' '=== exact diff ==='
git diff --no-ext-diff --unified=80 "$base" "$head" -- docs/product-technical-gap-baseline.md
printf '%s\n' '=== document outline and relevant line-numbered excerpts ==='
rg -n -C 3 '#(161|64|65|168|163|165|89)|AUTH-01|[Hh]osted|[Rr]elease|[Ss]hipped|Active PR|[Aa]ctive|[Ee]vidence|[Cc]heck' \
  docs/product-technical-gap-baseline.md || true

printf '%s\n' '=== live pull request metadata ==='
for n in 100 161 64 65 168 163 165; do
  printf '\n--- PR #%s ---\n' "$n"
  gh pr view "$n" --repo "$repo" \
    --json number,title,state,isDraft,mergedAt,closedAt,createdAt,updatedAt,url,baseRefName,baseRefOid,headRefName,headRefOid,mergeStateStatus,reviewDecision,statusCheckRollup \
    --jq '{number,title,state,isDraft,mergedAt,closedAt,createdAt,updatedAt,url,baseRefName,baseRefOid,headRefName,headRefOid,mergeStateStatus,reviewDecision,statusChecks:[.statusCheckRollup[]? | {name,conclusion,status,workflowName}]}' \
    || true
done

printf '%s\n' '=== referenced issues and PR bodies for causal claims ==='
for n in 64 65 89 161 163 165 168; do
  printf '\n--- issue-or-PR #%s ---\n' "$n"
  gh api "repos/$repo/issues/$n" \
    --jq '{number,title,state,state_reason,pull_request,created_at,updated_at,closed_at,html_url,body}' \
    || true
done

printf '%s\n' '=== protected develop state ==='
gh api "repos/$repo/branches/develop" --jq '{name,commit:.commit.sha,protected,protection}' || true

Length of output: 137177


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/Orgmetra'
head='5e03ac25bdf3bb6f4ee9e6ee68722429e2cb56b8'

printf '%s\n' '=== published releases ==='
gh api "repos/$repo/releases" --paginate --jq '[.[] | {id,tag_name,target_commitish,draft,prerelease,published_at,html_url}]'

printf '%s\n' '=== PR `#100` current reviews and review threads ==='
gh pr view 100 --repo "$repo" \
  --json reviews,reviewThreads \
  --jq '{reviews:[.reviews[]? | {author:.author.login,state,submittedAt,commit:.commit.oid}], reviewThreads:[.reviewThreads[]? | {isResolved,path,line,comments:[.comments[]? | {author:.author.login,body,createdAt}]}]}' \
  || true

printf '%s\n' '=== issue `#168` type and closure relation ==='
gh api "repos/$repo/issues/168" \
  --jq '{number,title,state,is_pull_request:(has("pull_request") and (.pull_request != null)),closed_at,body}' 

printf '%s\n' '=== exact lines that prescribe `#168` integration ==='
nl -ba docs/product-technical-gap-baseline.md | sed -n '68,74p;136,143p'

printf '%s\n' '=== PR `#88` metadata referenced as a canary ==='
gh pr view 88 --repo "$repo" \
  --json number,state,isDraft,mergedAt,headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup \
  --jq '{number,state,isDraft,mergedAt,headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusChecks:[.statusCheckRollup[]? | {name,status,conclusion,workflowName}]}' \
  || true

Length of output: 6133


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo='ContextualWisdomLab/Orgmetra'

printf '%s\n' '=== PR `#100` submitted reviews ==='
gh api "repos/$repo/pulls/100/reviews" --paginate \
  --jq '[.[] | {user:.user.login,state,submitted_at,commit_id,body}]'

printf '%s\n' '=== PR `#100` review threads ==='
gh api graphql \
  -F owner='ContextualWisdomLab' \
  -F name='Orgmetra' \
  -F number=100 \
  -f query='
query($owner: String!, $name: String!, $number: Int!) {
  repository(owner: $owner, name: $name) {
    pullRequest(number: $number) {
      reviewThreads(first: 100) {
        nodes {
          isResolved
          path
          line
          comments(first: 10) {
            nodes { author { login } body createdAt }
          }
        }
      }
    }
  }
}' \
  --jq '.data.repository.pullRequest.reviewThreads.nodes'

printf '%s\n' '=== PR `#88` current metadata ==='
gh pr view 88 --repo "$repo" \
  --json number,state,isDraft,mergedAt,headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusCheckRollup \
  --jq '{number,state,isDraft,mergedAt,headRefOid,baseRefName,mergeStateStatus,reviewDecision,statusChecks:[.statusCheckRollup[]? | {name,status,conclusion,workflowName}]}' \
  || true

printf '%s\n' '=== affected causal-order text ==='
sed -n '71p;140,142p' docs/product-technical-gap-baseline.md

Length of output: 146543


@seonghobae Review complete. I found one documentation issue.

P2 — Keep #168 as an issue closure condition, not an integration step.
Line 71 and the ASG-01/ASG-02 acceptance sequences require “#64/#65/#168 protected integration.” GitHub identifies #168 as an open issue, not a pull request. It cannot integrate into develop.

Replace this stage with #64 and #65 protected integration. State that #168 closes only after #65 has the required exact-head evidence and protected integration. Keep the later #163 adoption and #165 restack steps unchanged.

The inspected metadata supports the remaining requested classifications:

  • #161, #64, #65, #163, and #165 are open Draft PRs with non-terminal checks.
  • #165 remains downstream of #163.
  • AUTH-01 correctly keeps #65 as the implementation owner and #168 as the acceptance issue.
  • The releases API reports no published releases.
  • The reviewed text does not promote the inspected Active PR work to Shipped truth.

You are interacting with an AI system.

Copy link
Copy Markdown
Contributor Author

AUTH-01 live-owner update: #65 advanced non-force to 5e1eb4a5146ca1fb29e93a66f7475c469c14a9ed. Fresh verification found the tuple-backed principal compatibility RED was still genuinely failing on predecessor e588c916…: strict __eq__ rejected equal-content raw tuples while inherited tuple.__ne__ also reported them not unequal. The minimal owner fix defines strict principal-only __ne__ in People and Job Analysis. The durable baseline wording does not need to freeze this mutable SHA; AUTH-01 remains active until #65 earns exact-head hosted/review evidence and integrates normally.

Copy link
Copy Markdown
Contributor Author

AUTH-01 owner-path successor: #65 is now b468accb8a1db0f268b0c44f65e8f4bbb16e95e0. RED 92f7eb41… showed that returning the UUID stored inside tuple-backed AuthenticatedPrincipal still exposed mutable tenant authority through low-level UUID mutation. Fixes 64deb92f… / b468accb… store only the validated integer and reconstruct fresh UUID values. The durable baseline need not freeze this mutable SHA; AUTH-01 remains active until current-head hosted/review evidence and ordinary protected integration.

Copy link
Copy Markdown
Contributor Author

Fresh governance-docs doctoring: protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f still carries the direct NVIDIA_NIM_API_KEY OpenCode/model-backed directive in AGENTS.md, while the CWL consumer contract requires released Contextual Orchestrator via orchestrator/free + gateway token. Existing issue #181 and canonical docs writer #51 already own this delta; #51 is now non-mergeable on predecessor base 9e3e484…, so the repair is conflict-aware non-force adoption in that owner lane, not a new writer. This is volatile owner-path metadata and does not justify freezing #51/#181 leaf SHAs or run IDs into docs/product-technical-gap-baseline.md; the durable baseline's released-contract/owner-boundary rule remains unchanged.

Copy link
Copy Markdown
Contributor Author

Durable Workforce Validation metadata update: #249 strengthens #240 by requiring the exact repository function inertly accepted before authorization to be the function directly invoked afterward; no fresh dynamic capability lookup may substitute executable behavior after the access decision. #250 applies the same checked-versus-used ownership rule to #248’s PostgreSQL adapter configuration: PostgresValidityStudyReadPort structurally binds the accepted connection_factory so a retained port reference cannot replace the dependency after validation. The durable order remains #235 → protected integration → #248 non-force protected adoption/acceptance → later registration/scientific/API increments. No volatile head/run data belongs in docs/product-technical-gap-baseline.md.

Copy link
Copy Markdown
Contributor Author

Durable baseline doctoring (current protected truth): model-backed Orgmetra development must not own provider selection or direct provider credentials. Issue #181 is the canonical governance finding: GitHub Actions consume released Contextual Orchestrator contracts through orchestrator/free plus gateway token only; provider/model/group hard-coding and direct paid fallback are prohibited; missing capability fails closed and is repaired in the CO owner; provider-key discovery and timeout/user-cancel/provider-end/admin-timeout semantics remain CO-owned. The existing protected-truth writer #51 is now correctly Draft/non-mergeable on a stale protected base rather than being treated as merge-ready. #51 must non-force adopt current develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f, preserve its valid maturity/ADR/index/manifest-target delta together with protected repository-quality consolidation, then implement #181 test-first and reseal deterministic provenance. Do not edit docs/product-technical-gap-baseline.md from an overlapping branch, recreate deleted leaf quality workflows, force-push, or transfer predecessor checks.

Copy link
Copy Markdown
Contributor Author

Volatile owner-status doctoring, without changing docs/product-technical-gap-baseline.md: People owner #64 is now exact 4be7f1681959e43d32c8e85a8f2660da36ff6d9c, not 998e06f.... Current-head Foundation 33981039419 / Repository quality 101346183995 completed GREEN on that exact SHA: People API 239/239 passed, services/people-api 1472 statements / 482 branches at 100.00% statement+branch coverage, owned suites and isolated PostgreSQL contracts passed, and read-only validation left a clean tree. Security 33981039429, SAST 33981039445, and CodeQL 33981039424 remain non-terminal/queued and no qualifying APPROVED review exists, so #64 stays Draft/unmerged. Durable owner order is unchanged: #63#64#65#141#163#165. This is volatile PR evidence only and must not be copied into the baseline document body as durable truth.

Copy link
Copy Markdown
Contributor Author

Workforce Validation volatile acceptance update only; do not copy run/head identifiers into docs/product-technical-gap-baseline.md. Parent #235 predecessor e87d28a32683c6e6f115b3d13645b7d263451795 actually ran Foundation 33981328157 / Repository quality 101346954404. #254 provenance validation passed, all other owner suites reached the required 100% coverage, and Workforce Validation itself had 25/25 tests pass but failed at 99.04% because the fail-closed _detach_policy(...) branch for non-exact permitted_fields elements was uncovered. Issue #255 preserves the durable lesson: an immutable field set is not sufficient if its members can be caller-defined string subtypes; the Workforce authorization boundary must require exact built-in string evidence before authorization. Test-only successor dd95dd7256f37aab2c4f26aa1fb43e8c867f4e4d adds that focused regression without changing production, SQL, migration, workflow, provenance inventories, manifest, PostgreSQL contracts, or the 100% gate. Durable order remains #235 protected integration → #248 non-force adoption/retarget → fresh child acceptance.

Copy link
Copy Markdown
Contributor Author

Volatile owner-state correction; this comment supersedes the older run/head paragraph in the PR body without changing the baseline file's single-writer content.

  • Workforce Validation owner feat(workforce-validation): establish governed validity-study registry boundary #235 is current exact dd95dd7256f37aab2c4f26aa1fb43e8c867f4e4d, Draft/mergeable on protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. Foundation 33986151272 and SAST 33986151255 are terminal SUCCESS. Security 33986151270 is terminal FAILURE at the fail-closed Dependency Review support probe before the pinned action executes; canonical central availability owner is ContextualWisdomLab/.github#810. CodeQL 33986151302 is terminal FAILURE after both actions/python compatibility jobs successfully request current-head dispatch and fail only while enforcing a missing authenticated terminal verdict. Central source repairs #1932/#1926 are already protected; the remaining settings-level dispatcher-identity owner is .github#1927/#1929. No qualifying approval exists.
  • People owner fix(people): protect governed mutation runtime types #64 is current exact 4be7f1681959e43d32c8e85a8f2660da36ff6d9c, Draft/mergeable. Foundation 33981039419, Security 33981039429, and SAST 33981039445 are terminal SUCCESS; CodeQL 33981039424 is terminal FAILURE in the same central dispatch/verdict boundary. Its People acceptance remains 239/239 tests and 1472 statements / 482 branches at 100% plus isolated PostgreSQL contracts. No qualifying approval exists.

Durable baseline policy is unchanged: external control-plane availability/settings failures remain owner-plane blockers and must not be converted into leaf source churn, synthetic GREEN, or predecessor evidence. docs/product-technical-gap-baseline.md remains owned only by this lane.

Copy link
Copy Markdown
Contributor Author

2026-09-06 canonical-writer authority correction (volatile evidence only; do not copy these run IDs into docs/product-technical-gap-baseline.md):

The baseline file remains single-writer-owned here. This comment corrects volatile PR metadata while preserving the rule that exact leaf SHAs/run IDs stay out of the durable baseline body.

Copy link
Copy Markdown
Contributor Author

2026-09-06 current-authority correction for the canonical baseline lane (no baseline-file write outside #100): protected develop is eb9757f8649aaad026a9865508d9aad50c1a7a4f. Volatile head/run statements in the retained PR body are historical where superseded. Current People owner #64 is 4be7f1681959e43d32c8e85a8f2660da36ff6d9c: Foundation/Security/SAST GREEN with 239/239 People tests, 1472 statements/482 branches at 100% and isolated PostgreSQL GREEN; CodeQL remains a central handoff failure and qualifying approval is absent. Current workforce owner #235 is dd95dd7256f37aab2c4f26aa1fb43e8c867f4e4d: #255 exact-scalar regression is Foundation/PostgreSQL GREEN and SAST GREEN; Security fails at central Dependency Review support and CodeQL at the central dispatch/verdict boundary, so #248 must still wait for normal protected integration before non-force adoption.

Two durable trust/operability findings from stale feature lanes also belong in #100 when this writer branch is safely reconciled. #98 current 6a9f3e214079e2b46bba9776a862f194b899f0e4 adds exact built-in UTC recorded_at validation before document-evidence chronology/seal processing, with a forged-datetime regression; it remains Draft/non-mergeable on the old protected snapshot. #102 current 5344d77a9bd1058fee9fcecb7c6aaebc39ced995 snapshots the authoritative audit query separately for authorization and reader callbacks so hostile callback mutation cannot widen tenant/date/limit/reference scope; it remains Draft on the old protected snapshot. #79 current 0d546106ac3476a30c09008b620a4cd21ef731a4 carries a real test-first Kubernetes documentation RED: exact hosted execution is 8/10, missing the fresh-target-cluster temporary-validation-namespace procedure and complete canonical-doc references to infrastructure/kubernetes/people-api-reference.json. #79 is Draft/non-mergeable; protected-parent reconciliation precedes the causal docs completion. These are repair findings, not Close conditions, and their historical exact-head evidence does not transfer across reconciliation.

Copy link
Copy Markdown
Contributor Author

Durable baseline handoff from fresh protected-parent adoption evidence: a conflict-free/non-force merge can still resurrect a feature-local workflow that protected #161 intentionally removed. This is not merge safety merely because Git reports a clean tree. PR #80 predecessor b9d09ba21cdcf7a2c5c321b92a2d13c8c8aeed6c and PR #95 predecessor c0975db9f976fda93696591ac04a9787cde4aef5 both reached exact-head Foundation and failed at Prove explicit GitHub-hosted runner image contract because their adopted feature trees reintroduced package-specific workflows with runs-on: ubuntu-latest after protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f had consolidated repository-owned quality execution.

Durable rule for docs/product-technical-gap-baseline.md when this canonical writer non-force adopts current protected truth: protected-side workflow deletion/consolidation is an invariant. After every old-feature adoption, validate exact repository-owned workflow inventory and runner selectors before treating package evidence as current. If a valid package-specific installed-artifact/coverage contract lived in a retired leaf, migrate that contract into canonical Foundation and keep the leaf deleted; do not restore the leaf, weaken tests/test_github_actions_runner_image.py, lower coverage, or treat conflict-free Git mergeability as semantic acceptance.

Concrete repaired successors are #80 c62dd2c536b8b2e10a4912e34637e8dcf0d8fdf8 and #95 9b50b4f3f42e1698c634a73e7f4580e9cfae4c8e; both remain Draft pending fresh exact-head gates. Keep these SHAs/run states in PR metadata, not the durable baseline body.

Copy link
Copy Markdown
Contributor Author

Canonical baseline handoff — new durable dependency gap from the migration lane: Orgmetra #256 now records that MHTML ETL Gateway is correctly bound to immutable release v0.4.0 / 779254927abb1e7cee80fd949907ccd03f9fc7be, while the reviewed mightyETL bounded-batch snapshot ba8911f50ed20a39927a0d51c0cf20f9b7c91820 has no published owner release. The existing canonical owner path is ContextualWisdomLab/mightyETL#165; do not open a second release writer or promote the bare commit to released-contract status. When #100 is reconciled onto current protected truth, baseline wording should record the durable gap as: owner immutable release → Orgmetra released version/revision binding + ADR/traceability/code contract → exact consumer acceptance. Avoid volatile run IDs/heads in the durable baseline.

Copy link
Copy Markdown
Contributor Author

Canonical baseline handoff — 2026-09-06

People API operability has a new durable buyer-visible gap owner: #257. PR #90 has now advanced by an ordinary non-force two-parent successor to exact 563a9c8e5485bc84444bca992902c2d74bad0471 on protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f; its exact adopted tree preserves #161 repository-workflow consolidation and does not resurrect a package-local quality workflow. Fresh successor Foundation/Security/SAST/CodeQL runs were created and remain acceptance evidence only for this new head.

When #100 is semantically reconciled onto current protected truth, carry #257 into docs/product-technical-gap-baseline.md as the canonical next operability/performance gap: wire PeopleHttpTelemetryMiddleware exactly once in application assembly, keep privacy/cardinality constraints, add exporter/collector failure-isolated E2E, and prove an applicable buyer path p95 <= 20 ms with reproducible async load evidence. Do not copy mutable #90 source, transfer predecessor GREEN, or state exporter/dashboard/SLO/p95 completion before #257 exact-head acceptance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation priority: medium status: draft type: docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant