Skip to content

build: move workflow from Cursor to CC - #115

Merged
loadinglucian merged 19 commits into
mainfrom
docs/add-comprehensive-dev-guides
Dec 4, 2025
Merged

build: move workflow from Cursor to CC#115
loadinglucian merged 19 commits into
mainfrom
docs/add-comprehensive-dev-guides

Conversation

@loadinglucian

@loadinglucian loadinglucian commented Dec 4, 2025

Copy link
Copy Markdown
Owner

Summary

  • Added comprehensive development guides and reference documentation for the project
  • Implemented skills-based approach for specialized tasks (testing, commands, playbooks)
  • Integrated with Claude Agent SDK and Claude Code features
  • Consolidated and improved documentation structure

Key Changes

  • Added skill definitions for testing (Pest), commands (Symfony Console), and playbooks (bash)
  • Updated and reorganized CLAUDE.md with merged architecture and exception handling rules
  • Added push command for GitHub branch and PR creation workflow
  • Removed redundant documentation files in favor of skill-based organization

Summary by CodeRabbit

  • Chores
    • Updated internal developer tooling and project documentation structure. Reorganized configuration files and guidelines to streamline development workflows. No user-facing changes.

✏️ Tip: You can customize this high-level summary in your review settings.

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

coderabbitai Bot commented Dec 4, 2025

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

Migrates development configuration and guidelines from .cursor/ (Cursor AI) to .claude/ (Claude AI), consolidating editor-specific rules into Claude skills, commands, agents, and configuration. Deletes Cursor rules files and adds corresponding Claude documentation, including new quality gatekeeper agent, workflow commands, permission settings, and skill guides for testing, playbooks, commands, and AI documentation.

Changes

Cohort / File(s) Summary
Claude agents
\.claude/agents/quality-gatekeeper.md
Introduces QA-style quality gatekeeper agent for running PHP quality checks (Rector, Pint, PHPStan) and playbook validation (composer bash commands), with defined error handling and reporting format.
Claude commands
\.claude/commands/commit.md, \.claude/commands/push.md, \.claude/commands/review-branch.md, \.claude/commands/review-diff.md, \.claude/commands/review-pr-comment.md, \.claude/commands/improve-tests.md, \.claude/commands/deslop.md
Establishes structured workflow commands for branch creation, committing with conventional commits, pushing to origin with draft PRs, reviewing changes against rules, and improving test coverage; adds YAML front matter metadata to existing deslop command.
Claude skills
\.claude/skills/testing/SKILL.md, \.claude/skills/playbook/SKILL.md, \.claude/skills/command/SKILL.md, \.claude/skills/ai-docs/SKILL.md
Documents comprehensive skill guidelines for Pest testing (AAA pattern, coverage targets), idempotent Bash playbooks (helpers, error handling, YAML output), Symfony Console commands (input/output patterns, validation), and AI-optimized documentation (token efficiency, structure standards).
Claude configuration
\.claude/settings.local.json
Defines granular permissions for allowed Bash operations, Git commands, GitHub PR access, and ai-docs skill.
Root documentation
CLAUDE.md
Consolidates project guidelines covering coding philosophy, PSR-12 standards, dependency injection, layer separation, exception handling, validation patterns, and test policy with code examples.
Removed Cursor configuration
\.cursor/commands/create-branch.md, \.cursor/commands/create-commits.md, \.cursor/commands/improve-tests.md, \.cursor/commands/review-branch.md, \.cursor/commands/review-diff.md, \.cursor/rules/0[0-6]-*.mdc, \.cursor/rules/rules.mdc
Removes Cursor editor-specific commands and rules documentation (all replaced by equivalent Claude configuration).

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Extra attention areas:
    • \.claude/settings.local.json — verify that permitted Bash operations and GitHub/git commands are complete and secure
    • \.claude/skills/playbook/SKILL.md — confirm playbook conventions, helper functions, and YAML output format match deployment requirements
    • \.claude/agents/quality-gatekeeper.md — validate command sequences, error categorization, and reporting format align with CI/CD expectations
    • CLAUDE.md — ensure consolidated guidance reflects all removed rules without gaps or conflicts

Possibly related PRs

Poem

🐰 From Cursor I hopped to Claude with cheer,
Rules and skills now crystal clear!
Agents checking quality gates with pride,
Guidelines consolidated, nowhere to hide—
A burrow of workflows, organized and neat! 🌙

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objective of the pull request: adding comprehensive development guides and reference documentation to the project.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Comment @coderabbitai help to get the list of available commands and usage tips.

@loadinglucian
loadinglucian force-pushed the docs/add-comprehensive-dev-guides branch from 734b59d to e337c9f Compare December 4, 2025 21:51
@loadinglucian

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Dec 4, 2025

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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

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

📥 Commits

Reviewing files that changed from the base of the PR and between 6df61ee and b6a2c14.

📒 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 in CLAUDE.md at 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 files
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
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
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
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 references to deleted files immediately from rule files
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 cross-references by filename only in rule files; do not use line number references
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 teach language/framework fundamentals in rule files
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
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
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 explain obvious concepts in rule files
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

Comment thread .claude/agents/quality-gatekeeper.md
Comment thread .claude/skills/playbook/SKILL.md
Comment thread CLAUDE.md Outdated
Comment thread CLAUDE.md
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
@loadinglucian
loadinglucian marked this pull request as ready for review December 4, 2025 23:03
@loadinglucian loadinglucian changed the title docs: add comprehensive development guides and reference documentation build: move workflow from Cursor to CC Dec 4, 2025
@loadinglucian
loadinglucian merged commit fcbd478 into main Dec 4, 2025
4 checks passed
@loadinglucian
loadinglucian deleted the docs/add-comprehensive-dev-guides branch December 4, 2025 23:04
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