build: move workflow from Cursor to CC - #115
Conversation
Simplify PHP version handling by removing support for legacy string/numeric format. Both SiteCreateCommand and ServerInfoCommand now only handle the current array format with version and extensions keys.
Add seven detailed markdown guides covering architecture, command design, exception handling, testing patterns, bash styling, playbook conventions, and documentation writing. Includes CLAUDE.md as a quick reference summarizing all project rules and linking to detailed docs.
Merged separate /create-branch and /create-commits commands into unified /commit command that handles both branch creation and commits in one step. Updated /deslop description for clarity.
Consolidated into playbook skill. Removed docs/rules/bash-style.md and docs/rules/playbooks.md, updated CLAUDE.md references.
Replaces docs/rules/commands.md with interactive skill that provides: - Complete command structure template - Interactive + CLI options patterns - Input validation with Laravel Prompts - Confirmation and multi-path prompt patterns - Quality gates and checklist
The command skill provides the same guidance in an interactive, context-aware format. Also updates /commit command description.
Replaces docs/rules/testing.md with comprehensive testing skill that includes: - AAA pattern enforcement with examples - Test naming conventions - Datasets and assertion chaining patterns - Mockery patterns and examples - Architecture tests - 70%+ coverage requirement - Quality gates checklist
Consolidate all project rules into the primary CLAUDE.md file for token efficiency. Removed separate architecture.md and exceptions.md rule files. All documentation now lives in a single ~200-line file optimized for AI agent context windows.
Cursor rules and commands are now superseded by Claude Code configuration in .claude/ directory.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the WalkthroughMigrates development configuration and guidelines from Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
Comment |
734b59d to
e337c9f
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 4
♻️ Duplicate comments (1)
.claude/commands/review-diff.md (1)
7-11: Cross-reference rule files (same as review-branch.md).This command references the same rule documentation files. The verification in the review-branch.md comment applies here as well.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (27)
.claude/agents/quality-gatekeeper.md(1 hunks).claude/commands/commit.md(1 hunks).claude/commands/deslop.md(1 hunks).claude/commands/improve-tests.md(1 hunks).claude/commands/push.md(1 hunks).claude/commands/review-branch.md(1 hunks).claude/commands/review-diff.md(1 hunks).claude/commands/review-pr-comment.md(1 hunks).claude/settings.local.json(1 hunks).claude/skills/ai-docs/SKILL.md(1 hunks).claude/skills/command/SKILL.md(1 hunks).claude/skills/playbook/SKILL.md(1 hunks).claude/skills/testing/SKILL.md(1 hunks).cursor/commands/create-branch.md(0 hunks).cursor/commands/create-commits.md(0 hunks).cursor/commands/improve-tests.md(0 hunks).cursor/commands/review-branch.md(0 hunks).cursor/commands/review-diff.md(0 hunks).cursor/rules/00-main.mdc(0 hunks).cursor/rules/01-architecture.mdc(0 hunks).cursor/rules/02-tests.mdc(0 hunks).cursor/rules/03-commands.mdc(0 hunks).cursor/rules/04-exceptions.mdc(0 hunks).cursor/rules/05-bash.mdc(0 hunks).cursor/rules/06-playbooks.mdc(0 hunks).cursor/rules/rules.mdc(0 hunks)CLAUDE.md(1 hunks)
💤 Files with no reviewable changes (13)
- .cursor/commands/create-commits.md
- .cursor/commands/create-branch.md
- .cursor/commands/review-branch.md
- .cursor/commands/improve-tests.md
- .cursor/rules/02-tests.mdc
- .cursor/commands/review-diff.md
- .cursor/rules/03-commands.mdc
- .cursor/rules/rules.mdc
- .cursor/rules/04-exceptions.mdc
- .cursor/rules/06-playbooks.mdc
- .cursor/rules/00-main.mdc
- .cursor/rules/01-architecture.mdc
- .cursor/rules/05-bash.mdc
🧰 Additional context used
🧠 Learnings (42)
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Every Symfony Console command MUST be fully runnable non-interactively via CLI options. Every prompt MUST have a corresponding CLI option.
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Use laravel/prompts for ALL user interactions (text, password, confirm, select, multiselect, suggest, search, spin)
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : NEVER use Symfony IO methods directly - use BaseCommand methods exclusively. All console output flows through custom methods in BaseCommand for consistent TUI styling.
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Command option naming: use --server for selecting existing servers, --name for defining new resource names, --yes/-y for skip confirmation, --force/-f for skip type-to-confirm
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:58:53.505Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/01-architecture.mdc:0-0
Timestamp: 2025-12-03T21:58:53.505Z
Learning: Applies to **/{*Command,*Service}.php : Only Commands perform console I/O using SymfonyStyle; Services return exceptions/data for Commands to display
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Validate all user input: CLI options, prompts, and auto-resolved values. Fail fast before expensive operations (API calls, SSH connections).
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Always call commandReplay() before returning Command::SUCCESS to teach non-interactive CLI syntax
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Use OPTIONS only, never ARGUMENTS, to enable getOptionOrPrompt() functionality in Symfony Console commands
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/{BaseCommand,ConsoleOutputTrait,ConsoleInputTrait}.php : Organize console I/O code: use ConsoleOutputTrait for output/formatting, ConsoleInputTrait for input methods, BaseCommand for orchestration
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T21:59:13.882Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/03-commands.mdc:0-0
Timestamp: 2025-12-03T21:59:13.882Z
Learning: Applies to **/Command.php : Use validate*Input() methods that return ?string (error message if invalid, null if valid) for prompt/option validation
Applied to files:
.claude/skills/command/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Do not copy third-party documentation verbatim in rule files; summarize key points only
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Use imperative mood in rule files, not conversational prose
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Before committing rule changes, remove outdated file references, check for duplication, verify no contradictions, test code examples, and run token count comparison
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Target rule file corpus to consume less than 20% of available AI token budget
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Target total rule corpus to be under 3000 tokens (approximately 600-800 lines)
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Use clear, scannable headers with no more than 3 heading levels in rule files
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Include single 'All rules MANDATORY' statement per rule file
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Remove 'Benefits', 'Why This Matters', and 'Key Benefits' sections from rule files
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Remove examples for well-known patterns (AAA, SOLID, etc.) from rule files
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:36:37.985Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/rules.mdc:0-0
Timestamp: 2025-12-03T12:36:37.985Z
Learning: Applies to **/*rules*.{md,mdc} : Use bullets over paragraphs in rule documentation
Applied to files:
.claude/skills/ai-docs/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Applies to tests/**/*.php : Use Pest exclusively with `it()` syntax for tests, maintaining 70%+ code coverage
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Applies to tests/**/*.php : Follow the AAA (Arrange-Act-Assert) pattern in test functions, using comments to separate sections; use `describe()` blocks and `beforeEach()` for setup; extract helpers/traits for DRY tests
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: PHPStan static analysis rules do not apply to test files; focus on functionality over compliance and avoid excessive phpdoc to satisfy type checkers
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Run full test suite with coverage in parallel using `composer pest`; run specific tests with `vendor/bin/pest $TEST_FILE`
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Applies to tests/**/*.php : Avoid type-only assertions like `toBeInstanceOf()`, generic assertions like `toBeArray()`, meaningless null checks, redundant assertions, `toBeTrue()` on literals, and `sleep()` in test logic
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Use unit tests with mocked external dependencies (filesystem, HTTP, processes) for services and utilities; use integration tests with real file operations and external processes for CLI commands and full workflows
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Test core business logic only; skip framework testing, use datasets with `->with([])` for multiple scenarios, eliminate overlap between tests, consolidate assertions, mock only external dependencies, avoid performance tests unless performance is a primary concern
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: Applies to tests/**/*.php : Use specific value assertions like `expect($config->getValue('host'))->toBe('example.com')` and mock assertions with specific parameters and return values
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-04T11:41:11.850Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/00-main.mdc:0-0
Timestamp: 2025-12-04T11:41:11.850Z
Learning: Applies to **/*.test.php : Do not run, create, or update tests unless explicitly instructed to do so - tests are handled separately from feature building
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:35:18.938Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/02-tests.mdc:0-0
Timestamp: 2025-12-03T12:35:18.938Z
Learning: CLI commands should be tested with integration tests; business services should be tested with unit tests using mocked dependencies; utilities and helpers should be tested with unit tests
Applied to files:
.claude/skills/testing/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Write parsable YAML output to `DEPLOYER_OUTPUT_FILE` with error checking on write operations
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Playbooks are idempotent, non-interactive bash scripts that execute one or more related tasks and receive context via environment variables
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Group related helper functions with comment headers using format `# ---- <section_name> ----` or `#
# Helper Functions
# ----`
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Use idempotent checks before modifying resources (e.g., `if ! command -v`, `if [[ ! -d`, `if ! systemctl is-enabled`)
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Export `DEBIAN_FRONTEND=noninteractive` at the top of playbook files
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Provisioning playbooks must validate `DEPLOYER_DISTRO` and `DEPLOYER_PERMS` environment variables in addition to `DEPLOYER_OUTPUT_FILE`
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Place action messages INSIDE conditional blocks for idempotent operations; OUTSIDE conditionals only for operations that always run
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Include commented source line `# source "$(dirname "$0")/helpers.sh"` for documentation, never manually inline helper functions
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Use shebang `#!/usr/bin/env bash` at the top of all playbook files
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Validation errors before any work should output to stdout; runtime errors during execution should output to stderr
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Use `main()` function as the entry point with `main "$@"` at the bottom of playbooks
Applied to files:
.claude/skills/playbook/SKILL.md
📚 Learning: 2025-12-03T12:36:20.794Z
Learnt from: CR
Repo: loadinglucian/deployer PR: 0
File: .cursor/rules/06-playbooks.mdc:0-0
Timestamp: 2025-12-03T12:36:20.794Z
Learning: Applies to **/*playbook*.sh : Always set `set -o pipefail` (NOT `set -e`) in playbooks
Applied to files:
.claude/skills/playbook/SKILL.md
🪛 LanguageTool
.claude/agents/quality-gatekeeper.md
[style] ~121-~121: Consider using a different verb for a more formal wording.
Context: ...learly communicated - Do not attempt to fix issues yourself - only report them
(FIX_RESOLVE)
🪛 markdownlint-cli2 (0.18.1)
CLAUDE.md
150-150: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
.claude/skills/playbook/SKILL.md
10-10: Bare URL used
(MD034, no-bare-urls)
🔇 Additional comments (13)
.claude/commands/review-pr-comment.md (1)
1-6: LGTM! Clean metadata structure.The front matter and instruction text follow the established pattern. Content is concise and actionable.
.claude/settings.local.json (1)
1-17: Well-scoped permissions.The allowed operations align with the documented commands (push, review, commit) and the ai-docs skill. The restrictions help maintain security while enabling necessary workflows.
.claude/commands/deslop.md (1)
1-8: Consistent metadata addition.The front matter and argument handling follow the established pattern, enabling flexible base-branch specification with sensible default.
.claude/commands/improve-tests.md (1)
1-13: Clear and actionable command spec.The analysis goals are well-defined, and the command provides a practical way to invoke the testing skill guidance. Consistent structure with other commands.
.claude/skills/command/SKILL.md (1)
1-331: Comprehensive and well-organized skill documentation.The command skill covers all essential patterns with clear examples, naming conventions, and validation strategies. Structure follows the AI-docs guidelines (headers, examples, bullets). The "golden rule" for option naming (SELECTING vs DEFINING) and the multi-path prompt pattern are particularly thoughtful additions that prevent common mistakes.
.claude/skills/ai-docs/SKILL.md (1)
1-126: Self-referential and well-grounded.The ai-docs skill effectively documents best practices for documentation itself. The writing style examples clearly demonstrate the brevity principle, and the token budget section provides measurable targets with practical validation commands. This skill properly models the guidelines it prescribes.
.claude/skills/testing/SKILL.md (1)
1-336: Comprehensive Pest testing skill with excellent practical patterns.The testing skill effectively combines mandatory rules with concrete examples covering AAA pattern, test naming, DI patterns, minimalism targets, Mockery usage, and architecture testing. The forbidden patterns section (type-only checks, meaningless assertions, sleep) and required patterns section (verify actual values, mock interactions) provide clear guardrails against common mistakes. The layer strategy table (Commands → integration, Services → unit) is particularly useful.
Confirm that the Pest architecture test syntax at lines 283–295 (
arch(),classes(),toExtend()) matches the version of Pest in use in this project..claude/skills/playbook/SKILL.md (1)
1-368: Excellent playbook skill with thorough idempotency and error handling patterns.The playbook skill effectively documents non-interactive bash scripting standards with comprehensive idempotency patterns, error handling strategies (validation vs runtime), and distribution-aware branching. The required structure template, helper function documentation, and bash style guide (referencing external reference) provide clear implementation guidance. The action message pattern (→ prefix, explicit paths) and YAML output error checking prevent common runtime issues.
CLAUDE.md (1)
1-189: Comprehensive and well-structured development guidelines.This is a well-organized reference document covering PHP standards, DI patterns, layer separation, exception handling, and test policies. The examples are clear and practical. The organization with section headers and visual structure makes it easy to navigate.
.claude/commands/commit.md (1)
1-36: Clear branch and commit workflow documentation.The workflow guidance is well-structured with appropriate constraints (50-char branch names, 72-char titles) and helpful examples. The Conventional Commits format and explicit guidance against AI attribution lines are good practices.
.claude/commands/push.md (1)
1-35: Clear and actionable push and PR creation workflow.This workflow documentation is well-written with consistent formatting and clear examples. The allowed-tools metadata correctly specifies both git and GitHub CLI access, and the guidance aligns well with the commit.md documentation. The instruction to avoid AI attribution lines is appropriate.
.claude/agents/quality-gatekeeper.md (1)
8-120: Well-designed quality gatekeeper agent with comprehensive guidance.The agent documentation is thorough and well-structured. The critical rule about excluding tests from PHPStan (line 54) is appropriately emphasized. The three-part workflow (identify → filter → execute → capture → report) is logical, and the standardized reporting format will make output consistent and actionable. Error handling guidelines clearly distinguish between technical failures and quality violations.
.claude/commands/review-branch.md (1)
8-12: Update documentation references: the rule files do not exist.Lines 8-12 reference
docs/rules/{architecture,commands,exceptions,testing}.md, but these files are not present in the repository. The actual development rules are documented inCLAUDE.mdat the repository root. Update the references to point to the correct documentation source.⛔ Skipped due to learnings
Learnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Verify all mdc:// references point to existing files in rule filesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Use imperative mood in rule files, not conversational proseLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Do not copy third-party documentation verbatim in rule files; summarize key points onlyLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Include single 'All rules MANDATORY' statement per rule fileLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Remove references to deleted files immediately from rule filesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Use cross-references by filename only in rule files; do not use line number referencesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Do not teach language/framework fundamentals in rule filesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Use clear, scannable headers with no more than 3 heading levels in rule filesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Remove examples for well-known patterns (AAA, SOLID, etc.) from rule filesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Applies to **/*rules*.{md,mdc} : Do not explain obvious concepts in rule filesLearnt from: CR Repo: loadinglucian/deployer PR: 0 File: .cursor/rules/rules.mdc:0-0 Timestamp: 2025-12-03T12:36:37.985Z Learning: Before committing rule changes, remove outdated file references, check for duplication, verify no contradictions, test code examples, and run token count comparison
Adds automated PR comment assessment workflow: - /rereview command fetches PR comments and delegates to peer-rereviewer agents - peer-rereviewer agent evaluates comment validity against project standards - Supports parallel agent spawning for efficient review - Filters out bot comments and auto-generated content - Updates settings.local.json with required gh and git permissions
Summary
Key Changes
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.