Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
8784253
fix(validation): resolve critical validation system bugs [PACC-20, PA…
memyselfandm Aug 26, 2025
e16f4f8
feat(configuration): implement folder structure specification and com…
memyselfandm Aug 27, 2025
a1de8b5
chore: bump version to 1.0.0
memyselfandm Aug 27, 2025
6997f92
fix: correct validators to match Claude Code documentation
memyselfandm Aug 27, 2025
4b243a5
fix: handle directories in pacc info command
memyselfandm Aug 28, 2025
544b767
fix: enhance YAML validation error handling for square brackets in co…
claude[bot] Aug 28, 2025
138bdf4
fix: handle both files and directories in pacc plugin convert
memyselfandm Aug 28, 2025
c986041
fix: resolve unit test failures in validator and URL downloader tests
claude[bot] Aug 28, 2025
c7ca7f5
fix: align frontmatter validation with Claude Code's lenient YAML par…
memyselfandm Aug 28, 2025
3bc1702
fix: add missing model and color fields to AgentsValidator
memyselfandm Aug 28, 2025
6ed0793
Merge main into dev - resolve version conflicts for 1.0.0 release
memyselfandm Aug 29, 2025
86a1f47
docs: update installation instructions to reflect PyPI availability
memyselfandm Aug 30, 2025
4b72068
feat(fragments): Implement foundation infrastructure for memory fragm…
memyselfandm Aug 30, 2025
a9a6339
Implement PACC-48, PACC-49, PACC-50: Complete Memory Fragments Core F…
memyselfandm Aug 30, 2025
cdef2bc
Add project-level fragment configurations and testing artifacts
memyselfandm Aug 30, 2025
d7810fb
Implement PACC-53: Fragment Collection Management
memyselfandm Aug 31, 2025
5856454
Implement PACC-54, PACC-55, PACC-56: Complete memory fragments integr…
memyselfandm Aug 31, 2025
9cc5374
feat: Fix critical security vulnerabilities PACC-60 & PACC-61
memyselfandm Sep 1, 2025
188eb49
fix: Fix f-string syntax error in plugin search command
memyselfandm Sep 12, 2025
2e13781
feat: Add comprehensive pre-commit hooks and linting infrastructure
memyselfandm Sep 25, 2025
7ba9419
docs: Add comprehensive linting fixes documentation
memyselfandm Sep 26, 2025
b22080d
feat: Apply comprehensive linting fixes across codebase
memyselfandm Sep 26, 2025
91f1308
fix: Revert excessive linting rule ignores
memyselfandm Sep 26, 2025
62be39f
fix: Remove all noqa comments added during linting fixes
memyselfandm Sep 27, 2025
7f704e0
docs: add memory fragments user guide and update README
Jan 19, 2026
e4ca924
chore: bump version to 1.1.0 for memory fragments release
Jan 19, 2026
c85a0a2
Merge main into dev - resolve conflicts for 1.1.0 release
Jan 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/commands/pd.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ Quick alias for `/plugin disable` - disables a Claude Code plugin.

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin disable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --enabled; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin disable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --enabled; fi`
2 changes: 1 addition & 1 deletion .claude/commands/pe.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ Quick alias for `/plugin enable` - enables a Claude Code plugin.

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin enable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --disabled; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin enable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --disabled; fi`
2 changes: 1 addition & 1 deletion .claude/commands/pi.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ Quick alias for `/plugin install` - installs Claude Code plugins from Git reposi

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin install $ARGUMENTS; else echo "Please provide a repository URL to install from (e.g., owner/repo)"; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin install $ARGUMENTS; else echo "Please provide a repository URL to install from (e.g., owner/repo)"; fi`
2 changes: 1 addition & 1 deletion .claude/commands/pl.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ Quick alias for `/plugin list` - lists all installed Claude Code plugins.

## Usage

!`pacc plugin list $ARGUMENTS`
!`pacc plugin list $ARGUMENTS`
4 changes: 2 additions & 2 deletions .claude/commands/plugin/convert.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ This command launches an interactive wizard to convert your existing Claude Code

This will:
1. Scan for existing extensions in your .claude directory
2. Let you select which ones to convert
2. Let you select which ones to convert
3. Help you choose plugin name and metadata
4. Convert extensions to plugin format
5. Optionally push to Git repository for sharing
5. Optionally push to Git repository for sharing
4 changes: 2 additions & 2 deletions .claude/commands/plugin/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ This command launches an interactive wizard to create a new Claude Code plugin f
The wizard will help you:
1. Choose plugin name and basic metadata (author, description, version)
2. Select what types of components to include (commands, agents, hooks)
3. Generate template files and directory structure
3. Generate template files and directory structure
4. Set up Git repository (optional)
5. Create initial commit and push (optional)
5. Create initial commit and push (optional)
2 changes: 1 addition & 1 deletion .claude/commands/plugin/disable.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ This command disables a Claude Code plugin by removing it from the enabledPlugin

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin disable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --enabled; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin disable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --enabled; fi`
2 changes: 1 addition & 1 deletion .claude/commands/plugin/enable.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ This command enables a Claude Code plugin by adding it to the enabledPlugins sec

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin enable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --disabled; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin enable $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list --disabled; fi`
2 changes: 1 addition & 1 deletion .claude/commands/plugin/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ This command shows detailed information about a specific Claude Code plugin incl

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin info $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin info $ARGUMENTS; else echo "Please specify plugin name (format: repo/plugin) or use --repo option"; pacc plugin list; fi`
4 changes: 2 additions & 2 deletions .claude/commands/plugin/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ This command installs Claude Code plugins from a Git repository using PACC.

## Arguments
- **repo_url**: Git repository URL (e.g., owner/repo or full https://github.com/owner/repo.git)
- **--enable**: Automatically enable installed plugins
- **--enable**: Automatically enable installed plugins
- **--all**: Install all plugins found in repository
- **--type TYPE**: Install only plugins of specified type (commands, agents, hooks)
- **--interactive**: Interactively select plugins to install

## Usage

!`if [ -n "$ARGUMENTS" ]; then pacc plugin install $ARGUMENTS; else echo "Please provide a repository URL to install from (e.g., owner/repo)"; fi`
!`if [ -n "$ARGUMENTS" ]; then pacc plugin install $ARGUMENTS; else echo "Please provide a repository URL to install from (e.g., owner/repo)"; fi`
2 changes: 1 addition & 1 deletion .claude/commands/plugin/list.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ This command lists all installed Claude Code plugins and their status.

## Usage

!`pacc plugin list $ARGUMENTS`
!`pacc plugin list $ARGUMENTS`
2 changes: 1 addition & 1 deletion .claude/commands/plugin/remove.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ This command removes a Claude Code plugin from your enabled plugins and optional
The command will:
1. Disable the plugin (remove from enabledPlugins)
2. Optionally delete repository files (if --delete specified)
3. Show confirmation before making changes
3. Show confirmation before making changes
2 changes: 1 addition & 1 deletion .claude/commands/plugin/sync.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ This will:
4. Enable plugins as configured
5. Show summary of changes made

Great for keeping your team's plugin environment in sync!
Great for keeping your team's plugin environment in sync!
2 changes: 1 addition & 1 deletion .claude/commands/plugin/update.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ This command updates Claude Code plugins by pulling the latest changes from thei

## Usage

!`pacc plugin update $ARGUMENTS`
!`pacc plugin update $ARGUMENTS`
2 changes: 1 addition & 1 deletion .claude/commands/pu.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,4 @@ Quick alias for `/plugin update` - updates Claude Code plugins from Git reposito

## Usage

!`pacc plugin update $ARGUMENTS`
!`pacc plugin update $ARGUMENTS`
4 changes: 2 additions & 2 deletions .claude/commands/sprint.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ INSTRUCTIONS:

### Step 2: Plan the Sprint
1. Read the backlog file: identify the next phase/sprint of work, and the features and tasks in the sprint.
2. Plan the team: based on the features, tasks, and parallelization guidance, plan the sub-agents who will execute the sprint.
2. Plan the team: based on the features, tasks, and parallelization guidance, plan the sub-agents who will execute the sprint.
- Assign specializations, features, and tasks, acceptance criteria, and instruction to each subagent using the prompt template.
- Assign each subagent an incremental number (used for their worklog file)
3. Plan the execution: based on dependencies, assign the agents to an execution phase. You do not need to assign agents to every phase.
Expand Down Expand Up @@ -92,4 +92,4 @@ INSTRUCTIONS:
2. Make any final backlog updates: ensure the progress made in the sprint is reflected in the backlog file
3. Update memory: Ensure the changes made in the sprint are reflected in CLAUDE.md
4. Final commits: make any final commits.
5. Present a summary and report of the sprint to the user.
5. Present a summary and report of the sprint to the user.
17 changes: 8 additions & 9 deletions .github/workflows/claude-code-review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ jobs:
# github.event.pull_request.user.login == 'external-contributor' ||
# github.event.pull_request.user.login == 'new-developer' ||
# github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR'

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v4
Expand All @@ -48,31 +48,30 @@ jobs:
- Performance considerations
- Security concerns
- Test coverage

Be constructive and helpful in your feedback.

# Optional: Use sticky comments to make Claude reuse the same comment on subsequent pushes to the same PR
# use_sticky_comment: true

# Optional: Customize review based on file types
# direct_prompt: |
# Review this PR focusing on:
# - For TypeScript files: Type safety and proper interface usage
# - For API endpoints: Security, input validation, and error handling
# - For React components: Performance, accessibility, and best practices
# - For tests: Coverage, edge cases, and test quality

# Optional: Different prompts for different authors
# direct_prompt: |
# ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
# ${{ github.event.pull_request.author_association == 'FIRST_TIME_CONTRIBUTOR' &&
# 'Welcome! Please review this PR from a first-time contributor. Be encouraging and provide detailed explanations for any suggestions.' ||
# 'Please provide a thorough code review focusing on our coding standards and best practices.' }}

# Optional: Add specific tools for running tests or linting
# allowed_tools: "Bash(npm run test),Bash(npm run lint),Bash(npm run typecheck)"

# Optional: Skip review for certain conditions
# if: |
# !contains(github.event.pull_request.title, '[skip-review]') &&
# !contains(github.event.pull_request.title, '[WIP]')

13 changes: 6 additions & 7 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,26 +39,25 @@ jobs:
# This is an optional setting that allows Claude to read CI results on PRs
additional_permissions: |
actions: read

# Optional: Specify model (defaults to Claude Sonnet 4, uncomment for Claude Opus 4.1)
# model: "claude-opus-4-1-20250805"

# Optional: Customize the trigger phrase (default: @claude)
# trigger_phrase: "/claude"

# Optional: Trigger when specific user is assigned to an issue
# assignee_trigger: "claude-bot"

# Optional: Allow Claude to run specific commands
# allowed_tools: "Bash(npm install),Bash(npm run build),Bash(npm run test:*),Bash(npm run lint:*)"

# Optional: Add custom instructions for Claude to customize its behavior for your project
# custom_instructions: |
# Follow our coding standards
# Ensure all new code has tests
# Use TypeScript for new files

# Optional: Custom environment variables for Claude
# claude_env: |
# NODE_ENV: test

40 changes: 20 additions & 20 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,28 @@ jobs:
build:
name: Build distributions
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine

- name: Build distributions
working-directory: apps/pacc-cli
run: python -m build

- name: Check distributions
working-directory: apps/pacc-cli
run: twine check dist/*

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
Expand All @@ -48,21 +48,21 @@ jobs:
needs: build
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch' && github.event.inputs.test_pypi == 'true'

environment:
name: test-pypi
url: https://test.pypi.org/project/pacc-cli/

permissions:
id-token: write # OIDC publishing

steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish to Test PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
Expand All @@ -74,50 +74,50 @@ jobs:
needs: build
runs-on: ubuntu-latest
if: github.event_name == 'release' || (github.event_name == 'workflow_dispatch' && github.event.inputs.test_pypi == 'false')

environment:
name: pypi
url: https://pypi.org/project/pacc-cli/

permissions:
id-token: write # OIDC publishing

steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

verify:
name: Verify installation
needs: [pypi-publish]
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Wait for PyPI
run: sleep 60 # Wait for package to propagate

- name: Install from PyPI
run: |
pip install pacc-cli
pacc --version
pacc --help

- name: Test basic functionality
run: |
echo '{"name": "test-hook", "events": ["PreToolUse"]}' > test-hook.json
pacc validate test-hook.json --type hooks
pacc validate test-hook.json --type hooks
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,6 @@ uv.lock
.ruff_cache/
/test_temp/
ai_docs/

# PACC Fragment Storage
.claude/pacc/fragments/
Loading