Skip to content

docs: record org-wide CI workflow duplication audit (no new consolidation found) - #1731

Merged
seonghobae merged 1 commit into
mainfrom
docs/ci-workflow-duplication-audit-20260902
Sep 2, 2026
Merged

docs: record org-wide CI workflow duplication audit (no new consolidation found)#1731
seonghobae merged 1 commit into
mainfrom
docs/ci-workflow-duplication-audit-20260902

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Backlog item from a peer session: re-sweep the org for CI workflow duplication the earlier
hourly-review-repair/R-CMD-check/dependency-review consolidations might have missed, since the
survey that found those candidates may itself have been capped.

Enumerated all 63 non-archived/non-fork ContextualWisdomLab repos (255 workflow files across them),
grouped by filename, and read the full content of every instance of every filename appearing in
2+ repos (19 groups) rather than trusting name matches — the exact caution this session already
learned from dependency-review.yml's own consolidation, where similar-looking files hid real
severity-threshold and allowlist differences.

Result

  • 18 of 19 filename groups: genuinely different policies, not safe to consolidate — different
    languages/toolchains, security postures, thresholds, trust models, job topology. Each verdict in the
    doctoring doc is backed by quoted, concrete evidence, not a name-only judgment.
  • 1 real duplicate found: hourly-pr-maintenance.yml in DiagramWeave/ThreadWeave — byte-identical
    except a deliberate cron stagger. Not acted on: both are already thin (~20-30 line) callers of a
    shared reusable workflow: consolidating further would wrap a wrapper for two small files.
  • 1 discrepancy surfaced: dependency-review.yml's central reusable target exists, but none of
    its four intended callers (mightyETL, naruon, newsdom-api, scopeweave) has actually migrated to
    uses: it — each still runs its original, still-diverging standalone policy.

Full per-group evidence is in docs/doctoring/ci-workflow-duplication-audit-20260902.md.

Test plan

  • Docs-only change, no workflow/script/test files touched
  • gh api orgs/ContextualWisdomLab/repos --paginate + per-repo workflow listing re-verified against the doctoring doc's table

🤖 Generated with Claude Code


Devin Review

…tion found)

Re-swept all 63 non-archived/non-fork ContextualWisdomLab repos (255
workflow files) for CI logic duplication beyond the hourly-review-repair,
R-CMD-check, and dependency-review consolidations already done, in case
the prior survey that found those candidates was itself capped.

19 filename groups (appearing in 2+ repos) checked field-by-field. 18 are
genuinely different policies sharing only a filename convention -- backed
by named, quoted evidence per group (language/toolchain, security posture,
thresholds, trust model, job topology). One real duplicate found:
hourly-pr-maintenance.yml in DiagramWeave/ThreadWeave, byte-identical
except a deliberate cron stagger and comment wording -- not acted on since
both are already ~20-30 line thin callers of a shared reusable workflow;
wrapping a wrapper for two files this small would be an unrequested
abstraction.

Also surfaced a discrepancy worth tracking: dependency-review.yml's
central reusable target exists, but none of its four intended callers
(mightyETL, naruon, newsdom-api, scopeweave) has actually migrated to
uses: it yet -- each still runs its original, still-diverging standalone
policy.

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 50 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: c8cc9131-2519-4180-8c48-9ffad3405444

📥 Commits

Reviewing files that changed from the base of the PR and between 63bf498 and fbe630d.

📒 Files selected for processing (1)
  • docs/doctoring/ci-workflow-duplication-audit-20260902.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 +88 to +100
### Discrepancy found: `dependency-review.yml`'s central reusable target exists but no caller has migrated to it yet

`.github/workflows/dependency-review.yml` is already a `workflow_call` reusable target with inputs
(`fail_on_severity`, `allow_ghsas`, `continue_on_error`) and a dynamic dependency-graph-availability
probe, and its own header comment documents that it was built specifically to reconcile policy
differences found in mightyETL/newsdom-api/scopeweave's original standalone files. However, as of this
audit, **none of the four caller repos checked (mightyETL, naruon, newsdom-api, scopeweave) has
actually switched its own `dependency-review.yml` to `uses:` the central target** — each still carries
a full standalone implementation, and those standalone implementations still genuinely diverge on
severity threshold (`high` vs `moderate` vs unset), dependency-graph-unavailability handling (a static
`private == false` job split vs a dynamic curl probe vs no gating at all), presence of
`step-security/harden-runner` (naruon only), PR trigger branch scoping (naruon only restricts to
`develop`/`master`/`release/**`), and a vulnerability allowlist entry (newsdom-api only).

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.

🔍 Dependency-review history conflicts

The audit replaces argos with naruon and reports zero migrations. The accepted ADR records exact-SHA callers for all four intended repositories.

Devin Review

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

Comment on lines +49 to +58
**Why NOT_SAFE, not just "different repo names":** every NOT_SAFE verdict above is backed by named,
quoted differences in *policy*, not cosmetics — different languages/toolchains (Rust vs Node vs Python
vs Java/Maven vs Java/Gradle), different security postures (SARIF upload present/absent,
`step-security/harden-runner` present/absent, `security-events: write` present/absent), different
trust models (OIDC trusted publishing vs secret-based PyPI auth), different thresholds (Bandit's
target directory and exclusions, Scorecard's `publish_results` toggle, a SARIF-finding suppression
step present in one file and absent in its closest sibling), and different job topology (job counts
from 1 to 7 within a single filename group). The full per-group evidence (concrete quoted lines,
action-pin SHAs, and reasoning) is preserved in this audit's workflow run journal — see Audit trail
below — and is too long to duplicate here without losing readability.

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.

🔍 Audit evidence remains private

The 19 verdicts defer their concrete evidence to wf_9d141ecd-c03. Repository rules require durable knowledge in the repository or Project.

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
@seonghobae
seonghobae merged commit 9330d41 into main Sep 2, 2026
6 of 23 checks passed
@seonghobae
seonghobae deleted the docs/ci-workflow-duplication-audit-20260902 branch September 2, 2026 12:43
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.

1 participant