Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ jobs:
if ! git diff --quiet; then
echo "Release changes detected, creating PR..."

# Get the new version from the updated files
VERSION=$(node -p "require('./plugins/ralph-loop/.claude-plugin/plugin.json').version")
# Get the new version from marketplace.json (all plugins have the same version)
VERSION=$(node -p "require('./.claude-plugin/marketplace.json').plugins[0].version")

# Commit the changes
git add .
Expand Down
24 changes: 22 additions & 2 deletions .releaserc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
import { readFileSync, writeFileSync } from 'fs';
import { readFileSync, writeFileSync, readdirSync, existsSync } from 'fs';
import { resolve } from 'path';

/**
* Dynamically discover all plugins from the plugins directory.
* A plugin is identified by the presence of .claude-plugin/plugin.json.
*/
function discoverPlugins() {
const pluginsDir = resolve(process.cwd(), 'plugins');
const plugins = [];

for (const entry of readdirSync(pluginsDir, { withFileTypes: true })) {
if (entry.isDirectory()) {
const pluginJsonPath = resolve(pluginsDir, entry.name, '.claude-plugin/plugin.json');
if (existsSync(pluginJsonPath)) {
plugins.push(entry.name);
}
}
}

return plugins;
}

/**
* Custom plugin to update version in plugin.json files
* These files don't have a "version" field in standard JSON array format,
Expand All @@ -9,7 +29,7 @@ import { resolve } from 'path';
function updatePluginJsons() {
return {
async prepare(_pluginContext, { nextRelease: { version } }) {
const plugins = ['auto-updater', 'git-guard', 'jira', 'me', 'ralph-loop'];
const plugins = discoverPlugins();

for (const plugin of plugins) {
const pluginJsonPath = resolve(
Expand Down
27 changes: 13 additions & 14 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ git commit -m "type(scope): description"
- `fix`: 버그 수정 (patch 버전 증가)
- `docs`, `style`, `refactor`, `test`, `build`, `ci`, `chore`: 버전 증가 없음

**스코프 (scope):** 플러그인 이름 (`ralph-loop`, `git-guard`, `me`, `example-plugin`)
**스코프 (scope):** 플러그인 이름 (`example-plugin`)

**예시:**
```
feat(ralph-loop): add new iteration feature
fix(git-guard): prevent commit bypass
docs(me): update TDD instructions
feat(example-plugin): add new feature
fix(example-plugin): fix bug in component
docs(example-plugin): update documentation
```

#### 자동 릴리스 흐름
Expand Down Expand Up @@ -139,16 +139,13 @@ claude-plugins/
├── .claude-plugin/
│ └── marketplace.json # Marketplace 설정
├── plugins/
│ ├── ralph-loop/ # Ralph Wiggum 반복 개발
│ │ ├── commands/ # Slash commands
│ │ ├── hooks/ # SessionStart, Stop hooks
│ │ ├── scripts/ # Setup & cancel scripts
│ │ └── .claude-plugin/plugin.json
│ ├── git-guard/ # Git 워크플로우 보호
│ │ ├── commands/ # Slash commands
│ │ ├── hooks/ # Git hooks (pre-commit, pre-push)
│ │ └── .claude-plugin/plugin.json
│ └── me/ # 개인용 개발 워크플로우 자동화
│ └── example-plugin/ # 예시 플러그인 구조
│ ├── commands/ # Slash commands
│ ├── agents/ # 자율 전문가 에이전트
│ ├── skills/ # 컨텍스트 인식 가이드
│ ├── hooks/ # Git hooks, SessionStart/Stop hooks
│ ├── scripts/ # 유틸리티 스크립트
│ └── .claude-plugin/plugin.json
├── .github/workflows/ # CI/CD workflows
├── tests/ # BATS 테스트
├── schemas/ # JSON 스키마
Expand Down Expand Up @@ -176,6 +173,8 @@ claude-plugins/

6. 테스트 실행: `bats tests/`

> **참고:** `.releaserc.js`는 플러그인을 자동으로 발견하므로 수정할 필요가 없습니다.

### 새 컴포넌트 추가

자세한 내용은 `docs/DEVELOPMENT.md` 참조:
Expand Down
41 changes: 11 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,14 @@ Claude Code plugin collection by baleen, featuring useful tools for AI-assisted

## Available Plugins

### Ralph Loop
Implementation of the Ralph Wiggum technique for iterative, self-referential AI development loops in Claude Code.
Plugins are automatically discovered from the `plugins/` directory. For detailed information about each plugin, see the respective plugin's README.md file.

- **Description**: Continuous self-referential AI loops for interactive iterative development
- **Commands**: `/ralph-loop`, `/cancel-ralph`, `/help`
- **Use Case**: Well-defined tasks requiring iteration and refinement

### Git Guard
Git workflow protection hooks that prevent commit and PR bypasses.

- **Description**: Prevents `--no-verify` commit bypass and enforces pre-commit checks
- **Commands**: `/install-git-guard`, `/uninstall-git-guard`
- **Use Case**: Teams requiring strict git workflow compliance

### My Workflow
Personal Claude Code configuration for development workflow automation.

- **Description**: TDD, systematic debugging, git workflow, code review, and development automation
- **Use Case**: Personal development environment setup
- **Ralph Loop**: Implementation of the Ralph Wiggum technique for iterative, self-referential AI development loops
- **Git Guard**: Git workflow protection hooks that prevent commit and PR bypasses
- **My Workflow**: Personal development workflow automation (TDD, debugging, git, code review)
- **Jira**: Jira integration for issue tracking and project management
- **Auto Updater**: Automatic plugin updates from marketplace
- **Strategic Compact**: Strategic content compaction and organization tools

## Quick Start

Expand Down Expand Up @@ -66,21 +55,13 @@ claude
claude-plugins/
├── .claude-plugin/
│ └── marketplace.json # Marketplace configuration (baleen-plugins)
├── plugins/
│ ├── ralph-loop/ # Ralph Wiggum iterative development
│ │ ├── commands/ # Slash commands
│ │ ├── hooks/ # SessionStart, Stop hooks
│ │ ├── scripts/ # Setup and cancel scripts
│ │ └── tests/ # BATS tests
│ ├── git-guard/ # Git workflow protection
│ │ ├── commands/ # Slash commands
│ │ ├── hooks/ # Git hooks (pre-commit, pre-push)
│ │ └── tests/ # BATS tests
│ └── me/ # Personal workflow automation
├── plugins/ # Plugins (auto-discovered)
│ └── example-plugin/ # Example plugin structure
│ ├── commands/ # Slash commands
│ ├── agents/ # Autonomous agents
│ ├── skills/ # Context-aware skills
│ ├── hooks/ # Session hooks
│ ├── hooks/ # Git hooks, SessionStart/Stop hooks
│ ├── scripts/ # Utility scripts
│ └── tests/ # BATS tests
├── .github/workflows/ # CI/CD workflows
├── docs/ # Development and testing documentation
Expand Down
27 changes: 11 additions & 16 deletions plugins/auto-updater/commands/update-all-plugins.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,29 @@
---
name: update-all-plugins
description: Manually check and update all plugins from marketplace
description: Manually install or update all plugins from marketplace
invocableByUser: true
---

You are about to run a manual plugin update check.
You are about to run a manual plugin update for all marketplace plugins.

Execute the update checker script and report the results to the user.
Execute the update-all-plugins script and report the results to the user.

**Steps:**

1. Run the update checker script:
1. Run the update script:
```bash
"${CLAUDE_PLUGIN_ROOT}/scripts/update-checker.sh"
"${CLAUDE_PLUGIN_ROOT}/scripts/update-all-plugins.sh"
```

2. The script will:
- Download the latest marketplace.json from GitHub
- Compare installed plugin versions with marketplace versions
- Apply updates based on the configured policy (patch/minor/major)
- Update the timestamp file
- Get list of all plugins from marketplace (baleen-plugins)
- Install or update each plugin using `claude plugin install <plugin>@<marketplace>`
- Report success/failure for each plugin

3. Report to the user:
- Which plugins were updated (if any)
- Which plugins have updates available but were blocked by policy
- How many plugins were successfully installed/updated
- Which plugins failed (if any)
- Any errors that occurred

4. Show the current update policy:
```bash
cat ~/.claude/auto-updater/config.json
```

Note: This command ignores the 6-hour interval check and runs immediately.
Note: This command ignores any previous update interval checks and runs immediately.
Loading
Loading