Skip to content

docs: add cross-repo dependency graph from the repo audit - #1689

Open
seonghobae wants to merge 4 commits into
mainfrom
claude/repo-dependency-graph
Open

docs: add cross-repo dependency graph from the repo audit#1689
seonghobae wants to merge 4 commits into
mainfrom
claude/repo-dependency-graph

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

New file: docs/repo-dependency-graph.md. Does not touch profile/README.md — kept deliberately separate from #1679/#1687.

Built from the per-repo Topics/Description audit run earlier in this session (a workflow that read each of the 73 active repos' own README, manifest, and file tree directly via gh api) plus the existing "Inter-component architecture" brief in CWL-MASTER-CONTEXT.md.

The graph distinguishes two confidence tiers, drawn as different arrow styles:

  • Solid — the dependent repo's own README/manifest directly names the target repo (e.g. keyverse's README lists its OIDC relying parties; Orgmetra's repo tree has literal keyverse-adapter/naruon-adapter packages; LineageWeave's pyproject.toml pins ThreadWeave/RankWeave).
  • Dashed — documented in CWL-MASTER-CONTEXT.md's architecture brief, but this session's audit did not find independent confirmation in the dependent repo's own current README (e.g. several "naruon plugin" and "contextual-orchestrator calibrates/routes" claims). This isn't a claim they're wrong — early-stage repos often haven't caught up to the architecture doc yet — but it's useful to know which relationships rest on the architecture brief alone versus on the repo's own documentation.

Also includes an evidence table for every edge, and a grouped list of the ~46 repos with no known cross-repo dependency (standalone products, forks, private employer-scoped assets, bare scaffolds).

Test plan

  • Verified the Mermaid code block has balanced quotes/brackets (144 quote chars, even)
  • Grepped tests/ for anything enumerating docs/ or asserting file lists — none found that would be affected by adding a new file
  • Cross-checked every edge against this session's audit transcript (README/manifest citations in the evidence tables)
  • Visual render check of the Mermaid diagram on GitHub after push

🤖 Generated with Claude Code


Devin Review

Summary by CodeRabbit

  • 문서
    • 조직 내 73개 활성 저장소의 상호 의존 관계를 정리한 의존성 그래프 문서를 추가했습니다.
    • 확인된 관계와 기존 자료에만 기록된 관계를 구분해 제공하며, 저장소별 의존성 및 알려진 외부 의존성이 없는 저장소를 표로 정리했습니다.
    • 그래프 해석을 위한 범례와 감사 범위 및 근거에 대한 주의사항을 포함했습니다.

New file, not touching profile/README.md. Built from the per-repo
Topics/Description audit run earlier in this session (each repo's own
README/manifest/file tree, read directly via gh api) plus the existing
architecture brief in CWL-MASTER-CONTEXT.md.

Distinguishes dependencies confirmed by a dependent repo's own current
README/manifest (solid arrows) from relationships CWL-MASTER-CONTEXT.md
documents but this session's audit couldn't independently corroborate
in the dependent repo's own docs (dashed arrows) — several
"naruon plugin" and "contextual-orchestrator calibrates/routes" claims
fall in the latter category, which is worth knowing before relying on
them.

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

coderabbitai Bot commented Sep 2, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 57 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: 9348d8e1-601b-420a-8f04-000e6a35d58f

📥 Commits

Reviewing files that changed from the base of the PR and between b6ee26b and 1d6f962.

📒 Files selected for processing (2)
  • docs/repo-dependency-graph.html
  • docs/repo-dependency-graph.md
📝 Walkthrough

Walkthrough

새 문서는 73개 활성 저장소의 교차 저장소 의존성 그래프를 정의합니다. 자체 README·매니페스트에서 확인한 관계와 아키텍처 문서에만 기록된 관계를 구분하고, 관계 표와 감사 한계를 추가합니다.

Changes

저장소 의존성 그래프

Layer / File(s) Summary
감사 기준과 그래프 정의
docs/repo-dependency-graph.md
감사 근거, 화살표 방향, 확인 상태, 비공개 저장소 표기를 정의합니다. 저장소를 영역별로 그룹화한 Mermaid 그래프를 추가합니다.
의존성 관계 목록
docs/repo-dependency-graph.md
확인된 20개 관계와 아키텍처 문서에 기록되었지만 재검증되지 않은 19개 관계를 표로 기록합니다.
예외 및 감사 한계
docs/repo-dependency-graph.md
bandscope의 제외 사유를 기록합니다. 교차 저장소 의존성이 없는 저장소와 감사 방법의 한계를 설명합니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🟡 Moderate · up to b6ee2

This documentation-only PR adds a dependency graph, but the current document labels several relationships inconsistently and cites the wrong side of some dependencies, which could mislead architectural or maintenance decisions; it also lists one repository twice, making the count ambiguous. Merge should wait for these bounded documentation corrections or explicit owner acceptance.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 새로 추가한 교차 저장소 의존성 그래프 문서와 저장소 감사 결과를 정확히 요약합니다.
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.
Full details: Docstring Coverage

Explanation

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 files. (1 skipped: 1 unsupported.)

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/repo-dependency-graph

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[bot]

This comment was marked as resolved.

@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
coderabbitai[bot]

This comment was marked as resolved.

Companion to docs/repo-dependency-graph.md: a self-contained page
(loads mermaid.js from cdnjs) rendering the same dependency diagram
plus a snapshot of the three PRs this session's audit produced
(#1679 closed, #1687 narrowed to the vooster-v2-mvp fix, #1689 this
one, untouched). Point-in-time snapshot, timestamped, not live data.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

… own README, fix pin descriptions

Addresses review comments on PR #1689 (Devin + CodeRabbit):

- Five "OIDC relying party" edges (naruon, pg-erd-cloud,
  semantic-data-portal, clearfolio, newsdom-api -> keyverse) were solid
  arrows sourced only from keyverse's own README claiming them as
  relying parties -- none of those five repos' own READMEs mention
  keyverse at all. Downgraded to dashed and moved to the
  "documented, not independently re-verified" table, consistent with
  the legend's own definition of what "solid" requires. Kept
  saju-caldav and contextual-orchestrator solid -- both independently
  confirmed in their own README.
- Three edges (four-pillars/pg-llm-batch/RankWeave) were drawn dashed
  despite being listed as confirmed in the table -- fixed to solid,
  matching the legend.
- LineageWeave's dependency on ThreadWeave and RankWeave was described
  identically as "real git-pinned" for both; re-checked
  pyproject.toml directly -- ThreadWeave is a PyPI version-range pin
  (threadweave>=0.1.0), only RankWeave is actually git-commit-pinned.
  Corrected both the diagram labels and the table.
- Re-read LineageWeave's README section "How it fits with the rest of
  the ecosystem" and found three real, previously-missing edges: TEPP
  (consumed via its own wire contract, tepp_client.py), an optional
  LLM-adjudication call to contextual-orchestrator, and an optional
  git-pinned fast-mlsirm backend dependency for IRT calibration. Added
  all three with their own evidence.
- nonnest2 was listed in both "Psychometrics & research" and "Forks"
  under the no-known-dependency section; kept it only under Forks
  (its more defining categorical fact) and noted why.
- Standalone HTML page was missing </head> and <body> tags entirely
  (browsers silently recover; validators/tooling would not) -- added
  both, and regenerated the embedded diagram/PR-status panel to match
  the corrected .md content and current PR state.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
devin-ai-integration[bot]

This comment was marked as resolved.

Comment thread docs/repo-dependency-graph.html Fixed

@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 adds two documentation files describing cross-repo dependencies. The markdown file is well-structured and addresses prior review feedback. However, the HTML file has a confirmed security issue: the mermaid script is loaded from a CDN without a Subresource Integrity (SRI) attribute, allowing a compromised CDN to execute arbitrary JavaScript in the page's origin. This is a blocking security concern. Additionally, the HTML introduction states 'three PRs' while the panel lists four, an inconsistency that should be corrected.

Reviewed changed lines

  • docs/repo-dependency-graph.html:245 (RIGHT): The mermaid script is loaded from cdnjs without an integrity attribute. This is a confirmed security finding (Semgrep html.security.audit.missing-integrity.missing-integrity). A compromised CDN response could execute arbitrary JavaScript in the page's origin.
  • docs/repo-dependency-graph.html:92 (RIGHT): The introduction text says 'three PRs' but the panel below lists four PR cards (#1687, #1689, #1692, #1729). This inconsistency makes the scope of the session snapshot unclear.
  • docs/repo-dependency-graph.md:156 (RIGHT): Three solid edges (naruon→ThreadWeave, naruon→CalendarWeave, LineageWeave→CalendarWeave) cite only the dependency's README (ThreadWeave README, CalendarWeave README) rather than the dependent repo's own README/manifest, which the legend requires for solid arrows. This is an open review thread that remains unaddressed.

Adversarial validation

  • docs/repo-dependency-graph.html:245 (RIGHT) confirmed: The mermaid script tag lacks an SRI integrity attribute, allowing a compromised CDN to execute arbitrary JavaScript. — Line 245: <script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.9.1/mermaid.min.js"></script> — no integrity attribute present. Semgrep finding html.security.audit.missing-integrity.missing-integrity confirms this.
  • docs/repo-dependency-graph.html:92 (RIGHT) confirmed: The introduction's 'three PRs' claim matches the number of PR cards in the panel. — Line 92: 'alongside the current state of the three PRs that came out of that work.' Lines 190-220 contain four pr-card divs.
  • docs/repo-dependency-graph.md:156 (RIGHT) confirmed: All solid edges in the confirmed table cite evidence from the dependent repo's own README/manifest, as required by the legend. — Lines 154-156: '| naruon | ThreadWeave | ... | ThreadWeave README ("importable standalone by naruon or any other host") |', '| naruon | CalendarWeave | consumes fail-closed | CalendarWeave README |', '| LineageWeave | CalendarWeave | consumes fail-closed | CalendarWeave README |'. The legend at lines 17-19 requires 'the dependent repo's own README, manifest, or file tree names the target repo directly.'
  • Residual risk: The HTML file executes third-party JavaScript without integrity verification, creating a supply-chain attack vector. The markdown file has evidence-tier inconsistencies that undermine the document's stated methodology.

Findings

  • [high] docs/repo-dependency-graph.html:245 (RIGHT): Missing Subresource Integrity (SRI) attribute on the mermaid CDN script. A compromised CDN response can execute arbitrary JavaScript in the page's origin. Add an integrity attribute with the correct hash for mermaid 10.9.1.
  • [medium] docs/repo-dependency-graph.html:92 (RIGHT): Inconsistent PR count: the introduction says 'three PRs' but the panel lists four (#1687, #1689, #1692, #1729). Update the text to 'four PRs' or clarify which three are in scope.
  • [medium] docs/repo-dependency-graph.md:156 (RIGHT): Three solid edges (naruon→ThreadWeave, naruon→CalendarWeave, LineageWeave→CalendarWeave) cite only the dependency's README, not the dependent repo's own README/manifest as the legend requires. Either reclassify these edges as dashed or provide dependent-side evidence.
  • Result: REQUEST_CHANGES
  • Head SHA: 2dce37bb29e93cb1938bef71d3540f72683b6f5f
  • Reviewer credential: noema-review-github-app-refresh
  • Actor: cwl-noema-review[bot]

…ence edges

Fixes the failing "Semgrep (multi-language SAST)" required check
(html.security.audit.missing-integrity): the mermaid CDN script tag had no
subresource-integrity attribute, so a compromised cdnjs response could execute
arbitrary JS in the page's origin. The sha384 was computed from the exact
pinned file (mermaid 10.9.1) and cross-checked against cdnjs's own published
sha512 for the same bytes; a browser load confirms the script still executes
and the diagram still renders under the constraint.

Also applies the outstanding evidence-tier finding. Three solid edges cited
only the *target's* README, which the doc's own legend forbids for solid
arrows. Re-checked each against the dependent's own sources and demoted them:

- naruon -> ThreadWeave: naruon's README, backend/pyproject.toml and
  requirements.txt carry no threadweave; repo-wide code search returns 0 hits.
- naruon -> CalendarWeave: no mention in naruon's README; code search 0 hits.
- LineageWeave -> CalendarWeave: LineageWeave's own docs/adr/0183 does name
  CalendarWeave, but records the wiring as "a later consume-only slice" that
  currently fail-closes unwired -- planned, not shipped.

The legend and the dashed-section intro now say a dashed arrow may also rest
on the target's own README, which is what the five already-demoted OIDC rows
were resting on too. Corrects the HTML lede's "three PRs" against the four PR
cards the panel actually renders.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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