Skip to content

[QUEUE_SATURATION_CHICKEN_EGG] fix(ci): revert docs paths-ignore, tests read doc content as contracts - #924

Merged
seonghobae merged 1 commit into
mainfrom
fix/paths-ignore-doc-contract-safety
Sep 3, 2026
Merged

[QUEUE_SATURATION_CHICKEN_EGG] fix(ci): revert docs paths-ignore, tests read doc content as contracts#924
seonghobae merged 1 commit into
mainfrom
fix/paths-ignore-doc-contract-safety

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Org-wide sweep #923 added paths-ignore: ["docs/**", "*.md"] to this repo's .github/workflows/tests.yml trigger, on the assumption that docs-only changes are inert prose. That assumption is false for LineageWeave: this repo's own pytest suite treats several doc files as behavioral contracts.

Confirmed doc-content-reading assertions that the paths-ignore silently skipped:

  • tests/test_documentation_hygiene.py
    • test_adr_numbers_are_unique_and_documents_are_not_placeholders — dynamically glob("*.md")s every file in docs/adr/ (195+ files) and asserts each is non-empty / free of placeholder markers.
    • test_product_gap_baseline_contains_no_private_post_identifiers — reads docs/product-technical-gap-baseline.md content and regex-asserts no private post identifiers leaked in.
    • test_orchestrator_runtime_pin_matches_adr — reads docs/adr/0083-orchestrator-runtime-commit-pin.md content and cross-checks a commit hash against a Dockerfile.
  • tests/test_ingestion_transaction_contracts.py
    • test_release_notes_describe_balanced_outer_emphasis_stripping and test_fetch_persisted_summary_returns_stored_person_catalog_id — read root-level CHANGELOG.md content and assert exact prose is present (matched by the *.md ignore pattern).
  • tests/test_occupational_construct_ontology.py
    • test_construct_assertion_shape_requires_evidence_and_provenance — parses docs/ontology/lineageweave-kg-shapes.ttl as SHACL shapes and validates real data against it; behavior is derived directly from that file's content. This file is under docs/** but the separate ontology-pages.yml workflow's paths trigger does not include this particular test file, so no other workflow covers it.

Because the ADR check globs dynamically over a large and growing directory, and because the exposure turned out not to be confined to *.md (the ontology .ttl hit), a safe static "ignore everything except these known files" allowlist would be fragile and easy to silently invalidate with a future doc addition. Per this org's own "contract tests pin workflows AND prose" convention, the safe default is to revert the paths-ignore addition entirely for this repo — a docs-only PR now runs the full suite again, same as before #923.

Change

Removes the two paths-ignore: ["docs/**", "*.md"] blocks added in #923 from .github/workflows/tests.yml. No other change.

Test plan

  • uv sync --frozen --extra dev --extra backend
  • uv run --frozen python -m pytest -q against a local Postgres 16 container (matching the CI service config) — 1703 passed, 209 skipped, 0 failed
  • Confirmed tests/test_tests_workflow_contract.py (which pins other parts of this same workflow file's content) still passes unchanged
  • pytest --collect-only — 1912 tests collected, no import errors

🤖 Generated with Claude Code


Devin Review

Summary by CodeRabbit

  • 테스트
    • 문서 및 Markdown 파일만 변경된 경우에도 푸시와 풀 리퀘스트에서 전체 테스트가 실행됩니다.

#923's paths-ignore on docs/**/*.md let a docs-only PR skip the full
pytest run. LineageWeave's suite treats several doc files as behavioral
contracts, not inert prose:

- tests/test_documentation_hygiene.py dynamically globs every file under
  docs/adr/*.md and asserts non-placeholder content, and separately
  content-checks docs/product-technical-gap-baseline.md and a specific
  ADR file against a Dockerfile pin.
- tests/test_ingestion_transaction_contracts.py asserts exact prose in
  root-level CHANGELOG.md (matched by the *.md ignore pattern).
- tests/test_occupational_construct_ontology.py parses
  docs/ontology/lineageweave-kg-shapes.ttl as SHACL shapes and validates
  behavior derived from its content; this file lives under docs/** but
  outside the narrower ontology-pages.yml trigger's own test list, so no
  other workflow covers it.

The ADR check's dynamic glob (195+ files, growing) makes a safe static
allowlist unreliable, and the ontology-ttl hit means the exposure isn't
confined to *.md as originally assumed. Reverting the paths-ignore
addition is the safe default here per this org's own "contract tests pin
workflows AND prose" convention; a docs-only PR now runs the full suite
again, same as before #923.

Verified: `uv run --frozen python -m pytest -q` — 1703 passed, 209
skipped, 0 failed, against a local Postgres 16 container matching CI.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@seonghobae
seonghobae merged commit b0e94aa into main Sep 3, 2026
13 of 18 checks passed

@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.

✅ Devin Review: No Issues Found

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

Devin Review

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 9e986ee8-4771-45a2-a43f-042e32cbe91c

📥 Commits

Reviewing files that changed from the base of the PR and between 0f1d447 and c6cf486.

📒 Files selected for processing (1)
  • .github/workflows/tests.yml

📝 Walkthrough

Walkthrough

문서 및 Markdown 파일만 변경된 push와 pull request도 전체 테스트 워크플로를 실행하도록 GitHub Actions 이벤트 필터를 변경했습니다.

Changes

테스트 워크플로 트리거

Layer / File(s) Summary
문서 변경 테스트 트리거
.github/workflows/tests.yml
pushpull_request 이벤트에서 paths-ignore 필터를 제거했습니다. 문서 및 Markdown 변경도 테스트 워크플로를 실행합니다.

Estimated code review effort: 1 (Trivial) | ~2 minutes

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/paths-ignore-doc-contract-safety

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.

seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving #911's fail-closed universal-lock verification and resolver-candidate evidence path.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the contextual-orchestrator ownership boundary without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #89947ebcee after protected main #924 while preserving the dichotomous measurement-policy delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #9022dd6258 after protected main #924 while preserving the dynamic-evaluation lineage/evidence delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #89947ebcee after protected main #924 while preserving bounded operator policy without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving Voice export authority delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #7800bf2440 after protected main #924 while preserving the one-file gap-baseline delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the activity-stream identity/read-model delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the TEPP accepted-receipt product delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the Customer Master hierarchy/read-model delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving deterministic Event Lineage presentation without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving Affiliate Tree hierarchy evidence without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering without restoring the retired direct CalDAV boundary or inventing CalendarWeave authority.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored documentation-contract test triggering while preserving this branch's explicit ubuntu-24.04 hosted-runner declarations and public-surface delta.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the project-history empty-state UI/evidence delta without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving dashboard StatusNotice/retry behavior without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the tests-only fixture coverage slice without force rewrite.
seonghobae added a commit that referenced this pull request Sep 3, 2026
Adopt #924's restored docs-contract test triggering while preserving the tests-only ask-time-axis coverage slice without force rewrite.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant