feat: comprehensive plugin boilerplate with dotfiles, ralph-loop, and BATS replacement - #3
Conversation
* chore: initial placeholder * chore: remove temporary file * fix: enable submodules in CI for BATS helpers * fix: install BATS helpers in CI, remove submodules * chore: update author info to jito Update marketplace.json, example-plugin plugin.json, and README.md with jito's author information. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Jiho <jito.hello@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
* chore: initial placeholder * chore: remove temporary file * fix: enable submodules in CI for BATS helpers * fix: install BATS helpers in CI, remove submodules * chore: update author info to jito Update marketplace.json, example-plugin plugin.json, and README.md with jito's author information. Co-Authored-By: Claude <noreply@anthropic.com> * feat: add ralph-loop plugin Add the ralph-loop plugin from the official claude-plugins repository. This plugin implements the Ralph Wiggum technique for iterative, self-referential AI development loops. Features: - /ralph-loop command to start iterative development loops - /cancel-ralph command to cancel active loops - Stop hook that blocks session exit and feeds prompts back - Support for completion promises and max iterations - Comprehensive documentation and examples Files: - 8 plugin files copied from anthropics/claude-plugins-official - Executable permissions set on shell scripts - marketplace.json updated with plugin entry Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Jiho <jito.hello@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
Add new test infrastructure and improve CI workflow: - Add tests/run-tests.sh: Comprehensive test suite with 8 test cases - Required directories existence - plugin.json validation (JSON, required fields, naming) - marketplace.json validation (JSON, required fields) - SKILL.md frontmatter validation - Command/Agent file frontmatter validation - Colored output and test summary - Add scripts/validate-structure.sh: Plugin structure validation - Validates all required directories exist - Validates required files exist and have valid JSON - Update CI workflow: - Remove BATS installation (using custom test runner instead) - Add new test step to run tests/run-tests.sh - Keep validation script step - Update documentation: - README.md: Add test instructions, update project structure - docs/TESTING.md: Add "Running Tests" section with example All tests pass with clear pass/fail reporting. Co-Authored-By: Claude <noreply@anthropic.com>
Migrate all Claude Code configuration from dotfiles repository into a single plugin. This includes 12 commands, 7 skills, 1 agent, and 1 hook. Components: - Commands: clean-worktree, create-command, create-hook, create-skill, debug, fix-ci, git-exclude, handoff, make-local-issues, pickup, research, sdd - Skills: ci-troubleshooting, commit-push-pr, nix-direnv-setup, setup-precommit-and-ci, using-git-worktrees, web-browser, writing-claude-commands - Agents: code-reviewer - Hooks: git-command-validator (prevents --no-verify usage) Co-Authored-By: Claude <noreply@anthropic.com>
BATS (Bash Automated Testing System) has been completely removed and replaced with a native bash test suite. All validation functionality is preserved. Changes: - Replace BATS tests with bash-based test suite in tests/run-tests.sh - Tests cover: directory structure, JSON validity, required fields, and frontmatter validation - All 8 tests passing successfully Co-Authored-By: Claude <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis PR comprehensively reorganizes the plugin infrastructure by migrating from BATS-based testing to shell script validation, establishing a new plugin marketplace structure, adding two significant new plugins (dotfiles-plugin and ralph-loop), and introducing extensive skill and tool implementations for development workflows and web browser automation. Changes
Sequence Diagram(s)sequenceDiagram
actor User
participant CLI as Ralph Loop Script
participant StateFile as .claude/.br/ralph-loop.local.md
participant Hook as Stop Hook
participant Claude as Claude AI
User->>CLI: /ralph-loop "task" --max-iterations 5
CLI->>StateFile: Create with iteration=0, prompt
CLI->>Claude: Send initial prompt
loop Until completion or max iterations
Claude->>Hook: Send response + completion-promise
Hook->>StateFile: Read iteration, max, promise
alt Max iterations reached
Hook->>StateFile: Delete state file
Hook->>Claude: Block & report completion
else Completion promise valid
Hook->>StateFile: Delete state file
Hook->>Claude: Block & report success
else Continue loop
Hook->>StateFile: Increment iteration
Hook->>Claude: Block & return prompt for next iteration
Claude->>Claude: Process same prompt again
end
end
alt User cancels
User->>Hook: /cancel-ralph
Hook->>StateFile: Remove state, report iteration
end
sequenceDiagram
participant User
participant Validator as validate-plugin.sh
participant Structure as validate-structure.sh
participant JSON as validate-json.sh
participant Frontmatter as validate-frontmatter.py
participant TestRunner as run-tests.sh
User->>Validator: Run validation
Validator->>Structure: Check directories & required files
Structure-->>Validator: Report structure status
Validator->>JSON: Validate marketplace.json schema
JSON-->>Validator: Report JSON validity & fields
Validator->>Frontmatter: Check SKILL.md & command/agent frontmatter
Frontmatter-->>Validator: Report frontmatter status
Validator-->>User: Combined result
alt CI/CD context
User->>TestRunner: Run full test suite
TestRunner->>Structure: Directory/file validation
TestRunner->>JSON: Schema & field checks
TestRunner->>Frontmatter: Frontmatter checks
TestRunner-->>User: Pass/fail with summary
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~75 minutes This PR introduces substantial breadth across infrastructure, configuration, documentation, and functional tooling. Key complexity drivers include: 60+ files spanning multiple distinct domains (test migration, plugin manifests, skill implementations, browser automation tools); heterogeneous patterns requiring separate reasoning for validation logic, hook mechanisms, and tool implementations; logic density in shell scripts (stop-hook.sh iteration/promise handling, conflict detection, branch protection setup) and Python validators; and comprehensive web browser tool suite requiring careful understanding of Playwright CDP integration patterns and error handling paths. Possibly related PRs
Poem
✨ Finishing touches
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro 📒 Files selected for processing (77)
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. Comment |
# [1.1.0](v1.0.0...v1.1.0) (2026-01-10) ### Bug Fixes * **ci:** correct BATS installation method in release workflow ([7212ad5](7212ad5)) * **ci:** disable commitlint max line length rules ([bfa16ec](bfa16ec)) * **ci:** install bats-support and bats-assert correctly ([f79e24b](f79e24b)) * **ci:** remove example-plugin and fix marketplace.json schema ([f35efff](f35efff)) * correct bats helper paths and test assertions ([2df9de7](2df9de7)) * enable submodules in CI for BATS helpers ([9f0d4ba](9f0d4ba)) * improve jq error handling in stop-hook.sh ([e643725](e643725)) * install BATS helpers in CI, remove submodules ([5045da7](5045da7)) * ralph-loop CLAUDE_ENV_FILE fallback ([db1128a](db1128a)) * remove stray EOF at end of setup-ralph-loop.sh ([fb2161a](fb2161a)) * remove unsupported fields from plugin.json ([1e7a03c](1e7a03c)) * rename marketplace to baleen-plugins ([928d3f6](928d3f6)) * sanitize session_id and improve error handling in SessionStart hook ([325649f](325649f)) ### Features * add cancel-ralph.sh script for session-based loop cancellation ([7a97fb3](7a97fb3)) * add git-guard plugin for commit and pre-commit protection ([a3d9b25](a3d9b25)) * add SessionStart hook to hooks.json for multi-session support ([0da6ad5](0da6ad5)) * add SessionStart hook to store session_id in CLAUDE_ENV_FILE ([7fa7197](7fa7197)) * **ci:** add semantic-release for automatic versioning ([499424e](499424e)) * comprehensive plugin boilerplate with dotfiles, ralph-loop, and BATS replacement ([#3](#3)) ([32b3dac](32b3dac)), closes [#1](#1) * **git-guard:** block dangerous git commands (update-ref, filter-branch, hooksPath) ([1c094d3](1c094d3)) * **me:** add /brainstorm command and remove writing-claude-commands skill ([02ecbbf](02ecbbf)) * **ralph-loop:** show active loop status in SessionStart hook ([30ddcc3](30ddcc3)) * update setup script to use session-based state files in ~/.claude/ralph-loop/ ([e84793f](e84793f)) * update stop-hook to use session-based state files in ~/.claude/ralph-loop/ ([cf993dd](cf993dd))
|
🎉 This PR is included in version 1.1.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
Key Features
dotfiles-plugin:
ralph-loop plugin:
Testing & Validation:
Test plan
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
Summary by CodeRabbit
New Features
Refactor
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.