Skip to content

docs(gap-baseline): record enterprise org-hierarchy ABAC contract decision - #1680

Open
seonghobae wants to merge 3 commits into
mainfrom
claude/enterprise-org-hierarchy-gap-baseline-entry
Open

docs(gap-baseline): record enterprise org-hierarchy ABAC contract decision#1680
seonghobae wants to merge 3 commits into
mainfrom
claude/enterprise-org-hierarchy-gap-baseline-entry

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Appends one dated entry to docs/product-technical-gap-baseline.md recording
    the ownership decision and design pointer for the enterprise org-hierarchy /
    concurrent-membership ABAC/RBAC requirement (Keyverse backlog items 20/22),
    per this repo's own gap-tracking convention.
  • Full design (data model, ABAC evaluation sketch, keyverse#103
    reconciliation, deferred follow-ups) lives in
    context-graph-contracts#23 (docs/adr/0001-enterprise-org-hierarchy-membership-contract.md),
    linked from the entry rather than duplicated here.
  • Investigation claims underlying the decision were re-verified fresh via the
    GitHub API and direct file reads immediately before writing this entry
    (repo existence, open PR/issue titles, product-goal-directive.md §9,
    keyverse README/PR ⚡ Bolt: iter_json_objects O(N) 공백 탐색 최적화 #103 source, Orgmetra hris-kernel source and
    docs/DATA_MODEL.md) rather than trusting an earlier investigation pass at
    face value.

Test plan

  • python3 -m pytest tests/test_product_technical_gap_baseline.py -q — 5
    passed.

🤖 Generated with Claude Code


Devin Review

…ision

Records the ownership decision and design pointer for the variable-depth,
order-flexible org hierarchy + concurrent primary/secondary membership
requirement (Keyverse backlog items 20/22): hybrid ownership, with the
full design in context-graph-contracts#23 (docs/adr/0001). Re-verifies
the underlying investigation's key claims fresh (repo existence and
open-PR/issue titles, product-goal-directive.md section 9, keyverse
README and PR #103 source, Orgmetra hris-kernel source and
DATA_MODEL.md) rather than citing the earlier pass at face value.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 23 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: b575cc1a-f1e9-4a72-8735-8155329b1c56

📥 Commits

Reviewing files that changed from the base of the PR and between f43dcb8 and 96fa7ca.

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

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
Contributor

Choose a reason for hiding this comment

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

Devin Review found 2 potential issues.

Devin Review

Comment on lines +2643 to +2646
duplicated); the cross-product interoperability *contract* for reading a membership fact (primary or
secondary/TFT, with its own effective-date range) is registered in **`context-graph-contracts`**,
reusing its existing `ContextAssertion`/`ContextMembership` pair (ADR-0006) with a new
`org_member_primary` / `org_member_secondary` predicate vocabulary — **no schema files change**;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Unmerged foundation dependency

ContextAssertion, ContextMembership, and ADR-0006 exist only in another open pull request. Merging the linked decision first leaves its accepted contract without schemas.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

secondary/TFT, with its own effective-date range) is registered in **`context-graph-contracts`**,
reusing its existing `ContextAssertion`/`ContextMembership` pair (ADR-0006) with a new
`org_member_primary` / `org_member_secondary` predicate vocabulary — **no schema files change**;
**Keyverse** remains the ABAC/RBAC PDP implementer, extending its own draft PR #103 as a later,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔍 Unlinked cross-repository references

Bare #103 and keyverse#103 references do not link to Keyverse. They violate the repository’s mandatory cross-repository traceability convention.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

@seonghobae seonghobae added documentation Improvements or additions to documentation priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: docs Documentation, ADR, PRD, or technical writing labels Sep 2, 2026 — with ChatGPT Codex Connector

@cwl-noema-review cwl-noema-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Noema LLM review

The PR records a critical design decision regarding enterprise org-hierarchy and ABAC contracts. However, it fails to address two blocking issues identified in prior review threads: (1) it references foundational schemas (ContextAssertion, ContextMembership, ADR-0006) that are currently unmerged, creating a documentation gap where the 'accepted contract' lacks a baseline; and (2) it uses bare references to Keyverse PR #103, violating the repository's mandatory cross-repository traceability convention.

Reviewed changed lines

  • docs/product-technical-gap-baseline.md:2643 (RIGHT): References ContextAssertion/ContextMembership and ADR-0006. These are currently in an open PR and not merged to main, meaning this baseline is recording a dependency on a non-existent state.
  • docs/product-technical-gap-baseline.md:2647 (RIGHT): Uses 'keyverse#103' and '#103' without full URLs or compliant cross-repo linking, violating the traceability convention.

Adversarial validation

  • docs/product-technical-gap-baseline.md:2643 (RIGHT) confirmed: The referenced ContextAssertion/ContextMembership schemas are available in the current main branch of context-graph-contracts. — Prior review thread confirms these exist only in another open pull request.
  • docs/product-technical-gap-baseline.md:2647 (RIGHT) confirmed: The reference 'keyverse#103' is sufficient for traceability per repository standards. — The convention requires explicit linking; bare references are flagged as violations.
  • Residual risk: Merging this now creates a 'phantom' contract reference that cannot be traced to a merged schema, potentially misleading future implementers of the ABAC engine.

Findings

  • [medium] docs/product-technical-gap-baseline.md:2643 (RIGHT): Unmerged foundation dependency: The decision relies on ContextAssertion, ContextMembership, and ADR-0006, which are not yet merged. This should be merged after the foundation PR.
  • [low] docs/product-technical-gap-baseline.md:2647 (RIGHT): Traceability violation: Bare references to 'keyverse#103' must be replaced with full, compliant cross-repository links.
  • Result: REQUEST_CHANGES
  • Head SHA: b554165ef43ce264c6568943aed0d0fd8359b294
  • Reviewer credential: noema-review-github-app-refresh
  • Actor: cwl-noema-review[bot]

…-hierarchy-gap-baseline-entry

# Conflicts:
#	docs/product-technical-gap-baseline.md
seonghobae added a commit that referenced this pull request Sep 2, 2026
… covered

Devin Review caught three real defects in the item 22 entry:
1. kv_store.py was treated as satisfying the "general KV store" ask, but
   its own docstring says it's Keyverse's internal config/secret store --
   verified no external router exposes it anywhere in keyverse#103. General
   KV is a fully open gap, not a covered one.
2. The conclusion collapsed item 22's three explicitly-separate required
   admin surfaces (KV, ABAC/RBAC, credentials) into one generic "admin UI"
   line, understating the actual remaining scope.
3. Cross-repo references used bare `keyverse#103`/`PR #1680` instead of
   this repo's binding `owner/repo#num` format.

Corrected all three; re-verified against the PR's actual router list and
kv_store.py source before writing the fix, not just the finding text.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…-hierarchy-gap-baseline-entry

# Conflicts:
#	docs/product-technical-gap-baseline.md
@seonghobae

Copy link
Copy Markdown
Contributor Author

Resolved this PR's merge conflict against current main (a pure append at the same anchor point as several other concurrently-open gap-baseline entries).

While resolving, also added a short caveat paragraph: this entry cites context-graph-contracts#23 (ADR 0001) as the record of the full design reasoning, but #23 was closed (not merged) by a concurrent review shortly after this entry was originally written — a fact this entry's own text didn't yet reflect. .github#1686 (the SCIM/OIDC/SAML companion entry, opened 33 minutes later) already caught and documented that closure in detail, so this entry now cross-references it rather than duplicating the full explanation, to avoid presenting a closed PR as a landed dependency to a future reader. Doesn't change this entry's own hybrid-ownership decision, which came from direct source reading of Orgmetra/Keyverse, not from #23 itself.

🤖 Generated with Claude Code

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 Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: docs Documentation, ADR, PRD, or technical writing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants