Skip to content

Restructure CI reviews: 4 composite actions with requirements gate - #11

Merged
sylvansys merged 8 commits into
mainfrom
claude-upbeat-bandicoot-ul46xpp5
Jan 3, 2026
Merged

Restructure CI reviews: 4 composite actions with requirements gate#11
sylvansys merged 8 commits into
mainfrom
claude-upbeat-bandicoot-ul46xpp5

Conversation

@sylvansys

Copy link
Copy Markdown
Contributor

Summary

  • Consolidate 6 fragmented reviews into 4 clean composite actions
  • Requirements Review now acts as gate (must pass before others start)
  • Add new Code Quality Review for DRY, YAGNI, modularity analysis
  • Combine rules/memory/agents/skills into Context Review with 4 parallel sub-calls
  • Fix duplicate check naming ("X Review / X Review")

Changes

New Composite Actions

  • .github/actions/requirements-review/ - Gate review checking issue requirements
  • .github/actions/ui-review/ - Playwright screenshot analysis
  • .github/actions/code-quality-review/ - Code quality principles (DRY, YAGNI, modularity, complexity, coupling, cohesion)
  • .github/actions/context-review/ - 4 parallel Claude calls for rules, project memory, agents, skills

Modified Files

  • .github/workflows/ci-pipeline.yml - Refactored to use composite actions with proper dependency chain
  • .github/actions/consolidate-comment/action.yml - Updated for 4-review structure
  • .github/ci-config.yml - New configuration structure

Deleted Files

  • .github/workflows/reviews.yml - Replaced by composite actions
  • .github/workflows/playwright-ui-review.yml - Absorbed into ui-review

Dependency Chain

Requirements Review (GATE)
    ├── UI Review (parallel)
    ├── Code Quality Review (parallel)  
    └── Context Review (parallel)
           ├── Rules
           ├── Project Memory
           ├── Agents
           └── Skills

Test plan

  • Verify CI pipeline triggers correctly on PR
  • Confirm Requirements Review runs first and gates others
  • Check that UI/Code Quality/Context reviews run in parallel after Requirements passes
  • Validate consolidated comment shows 4 reviews with correct structure
  • Ensure no duplicate check names appear

Closes #10

🤖 Generated with Claude Code

…ss.\n\nSession-ID: 667d5a5c-c36b-4543-bfec-65936b7a6417\nSession-Timestamp: 2026-01-03T18:33:59.266Z\nBranch: claude-upbeat-bandicoot-ul46xpp5\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jan 3, 2026

Copy link
Copy Markdown

Code Review Results

Commit: 22a0233 | Status: 0/0 Passed


Requirements Review -- Skipped

No linked issue found or no requirements to verify.

UI Review -- Skipped

No UI files changed or no screenshots available.

Code Quality Review -- Skipped

No code files changed.

Context Review -- Skipped

No context files to review.


Automated by Claude Code CI

sylvansys and others added 7 commits January 3, 2026 12:27
- Delete old workflows (basic-ci.yml, ci.yml, e2e-tests.yml, deployment-ci.yml)
- Delete old fragmented composite actions
- Create 3 clean composite actions:
  - static-analysis: Lint (ESLint) + Types (TypeScript)
  - tests: Unit (Vitest) + E2E (Playwright, only if has_app)
  - reviews: Requirements (gate), Code Quality, Context, UI
- Rewrite ci-pipeline.yml with only 3 jobs
- Context Review now only checks CLAUDE.md files that are parents of changed files
- Reviews post single consolidated comment

Dependency chain:
Static Analysis → Tests → Reviews

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Checks now appear as:
- CI / Static Analysis / Lint (ESLint)
- CI / Static Analysis / Types (TypeScript)
- CI / Tests / Unit (Vitest)
- CI / Tests / E2E (Playwright) [disabled for non-app repos]
- CI / Reviews / Requirements
- CI / Reviews / Code Quality
- CI / Reviews / Context
- CI / Reviews / UI [disabled for non-app repos]
- CI / Reviews / Summary

Dependencies:
- Unit tests require Static Analysis to pass
- E2E requires Unit to pass
- Reviews require Unit to pass
- Code Quality & Context require Requirements to pass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add app detection step to lint job (checks for next.config, vite.config, playwright.config, apps/, src/app/)
- E2E tests now only run when app is detected
- Requirements review now depends on both unit and e2e tests
- UI review now only runs when app is detected

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove push trigger to avoid duplicate checks
- Auto-detect package manager (bun/npm/pnpm/yarn) from lockfile
- Each review job incrementally builds a single PR comment
- Remove separate summary job
- Add minimal bun setup with typescript, eslint, vitest

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Bun now generates bun.lock (text) instead of bun.lockb (binary).
Check for both formats.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix ESLint error: vitest.config.ts was not in project

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add --passWithNoTests flag to vitest

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jan 3, 2026

Copy link
Copy Markdown

Reviews

Review Status Summary
Requirements

Claude Code CI

@sylvansys
sylvansys merged commit eed68d7 into main Jan 3, 2026
8 checks passed
@sylvansys
sylvansys deleted the claude-upbeat-bandicoot-ul46xpp5 branch January 3, 2026 23:33
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.

CI Pipeline - Final Refinements

1 participant