Initial commit
This commit is contained in:
19
.claude-plugin/plugin.json
Normal file
19
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "documentation",
|
||||
"description": "Meta-package: Installs all documentation components (commands + agents + hooks)",
|
||||
"version": "3.0.0",
|
||||
"author": {
|
||||
"name": "Ossie Irondi",
|
||||
"email": "admin@kamdental.com",
|
||||
"url": "https://github.com/AojdevStudio"
|
||||
},
|
||||
"agents": [
|
||||
"./agents"
|
||||
],
|
||||
"commands": [
|
||||
"./commands"
|
||||
],
|
||||
"hooks": [
|
||||
"./hooks"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# documentation
|
||||
|
||||
Meta-package: Installs all documentation components (commands + agents + hooks)
|
||||
86
agents/auto-documenter.md
Normal file
86
agents/auto-documenter.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
name: auto-documenter
|
||||
description: USER-REQUESTED ONLY - Comprehensive documentation updates for CLAUDE.md files and README.md across
|
||||
project components. Resource-intensive process requiring explicit user consent. Never auto-trigger. Always share the
|
||||
agent's summary report with the user.
|
||||
tools: Glob, Grep, LS, Read, Edit, MultiEdit, Write, TodoWrite, mcp__serena*
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
You are a Automatic Documentation Maintainer, an expert technical writer specializing in creating and maintaining comprehensive,
|
||||
accurate project documentation. Your expertise lies in analyzing codebases, understanding project architecture, and
|
||||
translating complex technical systems into clear, actionable documentation.
|
||||
|
||||
Your systematic approach follows this methodology:
|
||||
|
||||
1. **Root CLAUDE.md Analysis**: First, examine the existing root CLAUDE.md file (if present) and update it to reflect
|
||||
the current project state. Ensure it captures the overall architecture, development workflow, key components, and any
|
||||
project-specific instructions that Claude should follow when working with this codebase.
|
||||
|
||||
2. **Project Structure Discovery**: Systematically explore the project directory structure to identify all significant
|
||||
components including:
|
||||
|
||||
- Frontend applications (React, Vue, Angular, etc.)
|
||||
- Backend services (APIs, servers, microservices)
|
||||
- CLI tools and command-line interfaces
|
||||
- Database schemas and migrations
|
||||
- Test suites and testing frameworks
|
||||
- Build systems and deployment configurations
|
||||
- Documentation and configuration directories
|
||||
|
||||
3. **Component-Specific Documentation**: For each significant component directory, create or update a CLAUDE.md file
|
||||
that includes:
|
||||
|
||||
- Component purpose and role in the overall system
|
||||
- Local development setup and commands
|
||||
- Key files and their functions
|
||||
- Testing procedures specific to that component
|
||||
- Common debugging scenarios
|
||||
- Integration points with other components
|
||||
|
||||
4. **Unified README Creation**: Using all CLAUDE.md files as source material, create or update a comprehensive README.md
|
||||
in the root directory that provides:
|
||||
|
||||
- Clear project overview and value proposition
|
||||
- Complete setup and installation instructions
|
||||
- Usage examples and common workflows
|
||||
- Architecture overview with component relationships
|
||||
- Development guidelines and contribution instructions
|
||||
- Troubleshooting guide for common issues
|
||||
|
||||
**Quality Standards**:
|
||||
|
||||
- Ensure all documentation is current and reflects the actual codebase
|
||||
- Use clear, concise language accessible to developers at different skill levels
|
||||
- Include practical examples and code snippets where helpful
|
||||
- Maintain consistency in formatting and structure across all files
|
||||
- Verify that all commands and procedures actually work
|
||||
- Cross-reference related components and their interactions
|
||||
|
||||
**Self-Verification Process**:
|
||||
|
||||
- After creating/updating each CLAUDE.md, verify it accurately represents the component's current state
|
||||
- Ensure the README.md provides a complete picture that matches the sum of all component documentation
|
||||
- Check that all referenced files, commands, and procedures exist and are correct
|
||||
- Validate that the documentation hierarchy is logical and easy to navigate
|
||||
|
||||
When you encounter ambiguities or missing information, apply these strategies:
|
||||
|
||||
- Use reasonable defaults based on common patterns in similar projects
|
||||
- Document assumptions clearly in comments or sections marked "Assumptions:"
|
||||
- Focus on what can be definitively determined from the codebase
|
||||
- **ALWAYS leave TODO markers** for items that require user input: ``
|
||||
- If critical information is missing, create placeholder documentation with clear instructions for what needs to be
|
||||
filled in
|
||||
- **Mark placeholder values prominently** with formats like ``or`YOUR_VALUE_HERE`
|
||||
- **Create missing referenced files** as templates with TODO markers if they don't exist
|
||||
|
||||
**TODO EMPHASIS**: Every placeholder, missing configuration, or user-specific value MUST be clearly marked with TODO
|
||||
comments. Be thorough in identifying what users need to customize.
|
||||
|
||||
Your goal is to create the most complete and accurate documentation possible with the available information, while
|
||||
clearly marking areas that need user attention.
|
||||
|
||||
**IMPORTANT**: Always conclude with a detailed summary report for the user showing exactly what files were
|
||||
updated/created and what changes were made. **Include a dedicated "TODO Items for User" section** listing all
|
||||
specific actions the user needs to take to complete the documentation setup.
|
||||
42
agents/changelog-writer.md
Normal file
42
agents/changelog-writer.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
name: changelog-writer
|
||||
description: Use proactively for generating changelog entries from commit history. Specialist for analyzing git commits and creating structured changelog documentation.
|
||||
tools: Read, Bash, Grep, Write, mcp__serena*
|
||||
model: claude-sonnet-4-5-20250929
|
||||
color: Green
|
||||
---
|
||||
|
||||
# Purpose
|
||||
|
||||
You are a changelog generation specialist focused on analyzing git commit history and creating well-structured changelog entries that follow conventional commit standards.
|
||||
|
||||
## Instructions
|
||||
|
||||
When invoked, you must follow these steps:
|
||||
|
||||
1. **Analyze commit history** - Use git commands to retrieve recent commits and examine their messages, changes, and metadata
|
||||
2. **Parse commit messages** - Extract meaningful information from commit messages, categorizing by type (feat, fix, chore, etc.)
|
||||
3. **Group changes by category** - Organize commits into logical sections (Features, Bug Fixes, Breaking Changes, etc.)
|
||||
4. **Generate changelog entries** - Create clear, user-friendly descriptions that explain the impact of changes
|
||||
5. **Format according to standards** - Follow Keep a Changelog format or conventional changelog standards
|
||||
6. **Validate completeness** - Ensure all significant changes are captured and properly documented
|
||||
|
||||
**Best Practices:**
|
||||
|
||||
- Focus on user-facing changes rather than internal implementation details
|
||||
- Use consistent formatting and terminology throughout the changelog
|
||||
- Include breaking changes prominently with migration guidance when applicable
|
||||
- Group related commits together to avoid redundancy
|
||||
- Write descriptions from the user's perspective, not the developer's
|
||||
- Include relevant issue/PR references when available
|
||||
- Maintain chronological order with most recent changes first
|
||||
|
||||
## Report / Response
|
||||
|
||||
Provide your final response in a clear and organized manner with:
|
||||
|
||||
- Properly formatted changelog entries
|
||||
- Clear categorization of changes (Features, Fixes, Breaking Changes, etc.)
|
||||
- Concise but informative descriptions
|
||||
- Appropriate version numbering suggestions if applicable
|
||||
- Any notable breaking changes or migration notes highlighted
|
||||
45
commands/generate-readme.md
Normal file
45
commands/generate-readme.md
Normal file
@@ -0,0 +1,45 @@
|
||||
---
|
||||
allowed-tools: Task
|
||||
description: Use doc-curator agent to generate README following template standards
|
||||
argument-hint: [target-file] [template-mode]
|
||||
model: claude-3-5-haiku-20241022
|
||||
---
|
||||
|
||||
# Generate README
|
||||
|
||||
Use the doc-curator sub-agent to generate comprehensive `README.md` following `TEMPLATE_MODE` standards from `TARGET_FILE` template, ensuring no business-specific references or credentials are included.
|
||||
|
||||
## Variables
|
||||
|
||||
TARGET_FILE: $1 (default: README.md)
|
||||
TEMPLATE_MODE: $2 (default: ai-docs/readme-template.yaml)
|
||||
OUTPUT_DIRECTORY: current project root
|
||||
TEMPLATE_NAME: structured YAML template format
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Use the doc-curator sub-agent to analyze current project structure
|
||||
2. Load template from `@ai-docs/readme-template.yaml`
|
||||
3. Extract metadata from configuration files (package.json, setup.py)
|
||||
4. Apply security filtering to remove business references and credentials
|
||||
5. Substitute template variables with sanitized project-specific content
|
||||
6. Generate navigation structure and setup instructions
|
||||
7. Write final README.md with comprehensive documentation
|
||||
|
||||
## Report
|
||||
|
||||
README Generation Complete
|
||||
|
||||
File: `TARGET_FILE`
|
||||
Template: `TEMPLATE_MODE` format applied
|
||||
Key Components:
|
||||
- Project metadata and description
|
||||
- Installation and setup instructions
|
||||
- Navigation structure
|
||||
- Security-sanitized content (no credentials/business refs)
|
||||
|
||||
## Relevant Files
|
||||
|
||||
- @ai-docs/readme-template.yaml
|
||||
- @package.json
|
||||
- @CLAUDE.md
|
||||
9
commands/update-changelog.md
Normal file
9
commands/update-changelog.md
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
allowed-tools: Bash, Read, Edit
|
||||
description: Update project CHANGELOG.md automatically from git commits
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
# Update Changelog
|
||||
|
||||
Run `npm run changelog:force` to automatically update CHANGELOG.md from git commits. Review generated entry for $ARGUMENTS version, edit to follow conventions in ai-docs/changelog-conventions.md (proper categorization, clear descriptions, technical context), and commit the updated CHANGELOG.md file.
|
||||
85
commands/update-claude.md
Normal file
85
commands/update-claude.md
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
allowed-tools: Bash(git diff:*), Bash(git log:*), Bash(git status:*), Bash(find:*), Bash(grep:*), Bash(wc:*), Bash(ls:*), mcp__serena__*
|
||||
description: Update CLAUDE.md using Serena-first analysis of recent code changes
|
||||
argument-hint: [--directory target-dir]
|
||||
flags:
|
||||
--directory: Create/update CLAUDE.md for a specific directory instead of project root
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
# Update Claude.md
|
||||
|
||||
Use Serena-first analysis to update CLAUDE.md based on recent code changes and git history.
|
||||
|
||||
## Variables
|
||||
|
||||
TARGET_DIRECTORY: {{if flags.directory}}{{flags.directory}}{{else}}.{{endif}}
|
||||
CLAUDE_FILE: {{if flags.directory}}{{flags.directory}}/CLAUDE.md{{else}}CLAUDE.md{{endif}}
|
||||
ANALYSIS_SCOPE: {{if flags.directory}}directory-specific{{else}}project-wide{{endif}}
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Initial Setup
|
||||
|
||||
- Check Serena onboarding: `mcp__serena__check_onboarding_performed`
|
||||
- If not onboarded, complete onboarding process first
|
||||
- Use `mcp__serena__think_about_task_adherence` to validate update scope
|
||||
|
||||
### 2. Git Analysis
|
||||
|
||||
- Get current status: !`git status --porcelain`
|
||||
- Review recent commits: !`git log --oneline -10`
|
||||
- Analyze changed files: !`git diff HEAD~5 --name-only | head -20`
|
||||
- Check key file modifications: !`git diff --name-status HEAD~10 | grep "^M" | head -10`
|
||||
- Store git insights: `mcp__serena__write_memory --memory_name="git_analysis"`
|
||||
|
||||
### 3. Serena Codebase Analysis
|
||||
|
||||
- Analyze directory structure: `mcp__serena__list_dir --relative_path="TARGET_DIRECTORY" --recursive=true`
|
||||
- For each modified file from git analysis:
|
||||
- Get symbol overview: `mcp__serena__get_symbols_overview --relative_path="<FILE>"`
|
||||
- Find new symbols: `mcp__serena__find_symbol --name_path="<NEW_SYMBOLS>"`
|
||||
- Check symbol impact: `mcp__serena__find_referencing_symbols --name_path="<KEY_SYMBOLS>"`
|
||||
- Store symbol analysis: `mcp__serena__write_memory --memory_name="symbol_changes"`
|
||||
|
||||
### 4. Content Integration
|
||||
|
||||
- Read existing CLAUDE.md file: @CLAUDE_FILE
|
||||
- Use `mcp__serena__think_about_collected_information` to validate analysis
|
||||
- Update CLAUDE.md based on @ai-docs/serena-enhanced-claude-template.md:
|
||||
- Project overview with new architecture patterns
|
||||
- Save updated CLAUDE.md to CLAUDE_FILE location
|
||||
|
||||
### 5. Validation
|
||||
|
||||
- Use `mcp__serena__think_about_whether_you_are_done` to verify completeness
|
||||
- Store update insights: `mcp__serena__write_memory --memory_name="claude_update_ANALYSIS_SCOPE"`
|
||||
|
||||
## Report
|
||||
|
||||
CLAUDE.md Update Complete
|
||||
|
||||
File: `CLAUDE_FILE`
|
||||
Analysis Scope: ANALYSIS_SCOPE
|
||||
Key Updates:
|
||||
|
||||
- Symbol-level changes documented in serena memory
|
||||
- Architecture patterns updated
|
||||
- Development workflow enhanced
|
||||
- Integration points clarified
|
||||
Memory Stored: claude_update_ANALYSIS_SCOPE
|
||||
|
||||
## Template Reference
|
||||
|
||||
Use the comprehensive template from: @ai-docs/serena-enhanced-claude-template.md
|
||||
|
||||
### Template Selection Logic
|
||||
|
||||
{{if flags.directory}}
|
||||
|
||||
- Apply directory-specific template sections from the referenced file
|
||||
- Focus on symbol-based architecture and development workflow patterns
|
||||
{{else}}
|
||||
- Apply full project root template structure from the referenced file
|
||||
- Include all Serena-first development patterns and core command references
|
||||
{{endif}}
|
||||
152
commands/update-docs.md
Normal file
152
commands/update-docs.md
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
allowed-tools: Task, Bash(git diff:*), Bash(git log:*), Bash(git status:*), Bash(find:*), Bash(ls:*)
|
||||
description: Update existing documentation in docs/ directory based on uncommitted or recent code changes
|
||||
argument-hint: [--depth 5|10|20] [--focus api|config|usage|architecture] [--uncommitted]
|
||||
flags:
|
||||
--depth: Number of commits to analyze for changes (default: 10)
|
||||
--focus: Specific documentation area to prioritize (default: all)
|
||||
--uncommitted: Only analyze uncommitted changes (working directory and staged)
|
||||
model: claude-sonnet-4-5-20250929
|
||||
---
|
||||
|
||||
# Update Docs
|
||||
|
||||
Use the doc-curator subagent to surgically update existing documentation in the `docs/` directory based on recent code changes. This command focuses on intelligent, incremental updates to keep documentation synchronized with code changes.
|
||||
|
||||
## Variables
|
||||
|
||||
DOCS_DIR: docs
|
||||
COMMIT_DEPTH: {{if flags.depth}}{{flags.depth}}{{else}}10{{endif}}
|
||||
FOCUS_AREA: {{if flags.focus}}{{flags.focus}}{{else}}all{{endif}}
|
||||
ANALYZE_MODE: {{if flags.uncommitted}}uncommitted{{else}}all{{endif}}
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Quick Documentation Inventory
|
||||
|
||||
- Check docs directory exists: !`ls docs/ 2>/dev/null | head -5`
|
||||
- List existing documentation files: !`find docs/ -type f -name "*.md" -o -name "*.rst" -o -name "*.txt" | sort`
|
||||
|
||||
### 2. Identify What Changed
|
||||
|
||||
#### Check for uncommitted changes first:
|
||||
|
||||
- Working directory changes: !`git status --short | head -20`
|
||||
- Unstaged modifications: !`git diff --stat | head -15`
|
||||
- Staged changes: !`git diff --cached --stat | head -15`
|
||||
- Show uncommitted function changes: !`git diff --function-context | grep -E "^@@|^\+\+\+|function|class|def|interface" | head -30`
|
||||
|
||||
#### If no uncommitted changes, analyze recent commits:
|
||||
|
||||
- Get recent commits: !`git log --oneline -COMMIT_DEPTH --name-status | grep -E "^[AM]" | head -20`
|
||||
- Show committed changes: !`git diff HEAD~COMMIT_DEPTH --stat | head -15`
|
||||
- Identify committed function changes: !`git diff HEAD~COMMIT_DEPTH --function-context | grep -E "^@@|^\+\+\+|function|class|def|interface" | head -30`
|
||||
|
||||
### 3. Launch Doc-Curator for Surgical Updates
|
||||
|
||||
Use the doc-curator subagent with specific instructions based on FOCUS_AREA:
|
||||
|
||||
```
|
||||
Analyze these code changes (both uncommitted and recent commits) and update ONLY the affected sections in existing documentation:
|
||||
|
||||
Uncommitted changes:
|
||||
- [Output from git diff for working directory]
|
||||
- [Output from git diff --cached for staged changes]
|
||||
|
||||
Recent committed changes (if analyzing history):
|
||||
- [Output from git diff HEAD~COMMIT_DEPTH]
|
||||
- [Specific functions/APIs that changed]
|
||||
|
||||
Documentation focus: FOCUS_AREA
|
||||
Target directory: docs/
|
||||
|
||||
Instructions:
|
||||
1. Read existing documentation files in docs/
|
||||
2. Identify which docs reference the changed code
|
||||
3. Make surgical updates ONLY where needed:
|
||||
- Update function signatures if they changed
|
||||
- Update configuration options if modified
|
||||
- Update API endpoints if altered
|
||||
- Update example code if it's now incorrect
|
||||
- Add brief notes for new features
|
||||
- Mark deprecated features
|
||||
4. Preserve all other content exactly as is
|
||||
5. Do NOT rewrite entire sections unless absolutely necessary
|
||||
6. Focus on accuracy over comprehensive rewrites
|
||||
```
|
||||
|
||||
### 4. Types of Surgical Updates
|
||||
|
||||
#### For API Changes (focus: api)
|
||||
|
||||
- Update endpoint paths if renamed
|
||||
- Update request/response formats if changed
|
||||
- Update parameter descriptions if modified
|
||||
- Add new endpoints to existing lists
|
||||
- Mark deprecated endpoints
|
||||
|
||||
#### For Configuration Changes (focus: config)
|
||||
|
||||
- Update environment variable names
|
||||
- Update default values if changed
|
||||
- Add new configuration options
|
||||
- Remove obsolete settings
|
||||
- Update example configurations
|
||||
|
||||
#### For Usage Changes (focus: usage)
|
||||
|
||||
- Update command-line examples
|
||||
- Fix code snippets that no longer work
|
||||
- Update import statements if paths changed
|
||||
- Adjust setup instructions if process changed
|
||||
|
||||
#### For Architecture Changes (focus: architecture)
|
||||
|
||||
- Update component diagrams if structure changed
|
||||
- Revise data flow descriptions
|
||||
- Update dependency lists
|
||||
- Adjust system requirements
|
||||
|
||||
## Report
|
||||
|
||||
Documentation Synchronization Complete
|
||||
|
||||
Directory: `DOCS_DIR`
|
||||
Commits Analyzed: COMMIT_DEPTH
|
||||
Focus Area: FOCUS_AREA
|
||||
|
||||
Surgical Updates Applied:
|
||||
|
||||
- [List of specific sections updated]
|
||||
- [Line-by-line changes made]
|
||||
- [New content added where needed]
|
||||
|
||||
Update Summary:
|
||||
|
||||
- Files Modified: [count and list]
|
||||
- Sections Updated: [specific sections touched]
|
||||
- Code Examples Fixed: [count]
|
||||
- Configuration Updates: [count]
|
||||
- API Changes Reflected: [count]
|
||||
|
||||
## Examples of Surgical Updates
|
||||
|
||||
**Function Signature Change:**
|
||||
|
||||
```diff
|
||||
- `processData(input: string): void`
|
||||
+ `processData(input: string, options?: ProcessOptions): Promise<void>`
|
||||
```
|
||||
|
||||
**Configuration Update:**
|
||||
|
||||
```diff
|
||||
- `API_TIMEOUT`: 5000 (milliseconds)
|
||||
+ `API_TIMEOUT`: 10000 (milliseconds, increased for stability)
|
||||
```
|
||||
|
||||
**Deprecated Feature:**
|
||||
|
||||
```diff
|
||||
+ **Deprecated:** The `oldMethod()` function is deprecated as of v2.0. Use `newMethod()` instead.
|
||||
```
|
||||
16
hooks/hooks.json
Normal file
16
hooks/hooks.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"hooks": {
|
||||
"PostToolUse": [
|
||||
{
|
||||
"matcher": "Bash.*git commit",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "${CLAUDE_PLUGIN_ROOT}/hooks/scripts/auto-changelog-updater.py",
|
||||
"description": "Update changelog automatically"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
109
hooks/scripts/auto-changelog-updater.py
Executable file
109
hooks/scripts/auto-changelog-updater.py
Executable file
@@ -0,0 +1,109 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Auto Changelog Updater Hook
|
||||
|
||||
This hook automatically updates the changelog after git commits are made.
|
||||
It runs the update-changelog.py script in automatic mode to analyze recent
|
||||
commits and update the CHANGELOG.md file accordingly.
|
||||
|
||||
Hook Type: post_tool_use
|
||||
Triggers On: git commit commands
|
||||
"""
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def main():
|
||||
# Read the tool use data from stdin
|
||||
tool_data = json.load(sys.stdin)
|
||||
|
||||
# Check if this is a git commit command
|
||||
tool_name = tool_data.get("tool", "")
|
||||
|
||||
# We're looking for Bash tool with git commit commands
|
||||
if tool_name != "Bash":
|
||||
# Not a bash command, skip
|
||||
return 0
|
||||
|
||||
# Check if the command contains git commit
|
||||
command = tool_data.get("arguments", {}).get("command", "")
|
||||
if not command:
|
||||
return 0
|
||||
|
||||
# Check for various forms of git commit commands
|
||||
git_commit_patterns = [
|
||||
"git commit",
|
||||
"git commit -m",
|
||||
"git commit --message",
|
||||
"git commit -am",
|
||||
"git commit --amend",
|
||||
]
|
||||
|
||||
is_git_commit = any(pattern in command for pattern in git_commit_patterns)
|
||||
|
||||
if not is_git_commit:
|
||||
# Not a git commit command, skip
|
||||
return 0
|
||||
|
||||
# Check if the command was successful
|
||||
result = tool_data.get("result", {})
|
||||
if isinstance(result, dict):
|
||||
exit_code = result.get("exitCode", 0)
|
||||
if exit_code != 0:
|
||||
# Git commit failed, don't update changelog
|
||||
return 0
|
||||
|
||||
# Find the update-changelog.py script
|
||||
script_path = (
|
||||
Path(__file__).parent.parent.parent
|
||||
/ "scripts"
|
||||
/ "changelog"
|
||||
/ "update-changelog.py"
|
||||
)
|
||||
|
||||
if not script_path.exists():
|
||||
print(
|
||||
f"Warning: Changelog update script not found at {script_path}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
return 0
|
||||
|
||||
# Run the changelog update script in auto mode
|
||||
try:
|
||||
print(
|
||||
"\n🔄 Automatically updating changelog after git commit...", file=sys.stderr
|
||||
)
|
||||
|
||||
# Run the script with --auto flag
|
||||
result = subprocess.run(
|
||||
["python", str(script_path), "--auto"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
cwd=Path(__file__).parent.parent.parent, # Run from project root
|
||||
)
|
||||
|
||||
if result.returncode == 0:
|
||||
print("✅ Changelog updated successfully!", file=sys.stderr)
|
||||
if result.stdout:
|
||||
print(result.stdout, file=sys.stderr)
|
||||
else:
|
||||
print(
|
||||
f"⚠️ Changelog update completed with warnings (exit code: {result.returncode})",
|
||||
file=sys.stderr,
|
||||
)
|
||||
if result.stderr:
|
||||
print(f"Error output: {result.stderr}", file=sys.stderr)
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error updating changelog: {e}", file=sys.stderr)
|
||||
# Don't fail the hook even if changelog update fails
|
||||
return 0
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
73
plugin.lock.json
Normal file
73
plugin.lock.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:AojdevStudio/dev-utils-marketplace:documentation",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "6cf6626c360f6401791a3366788442022999cc04",
|
||||
"treeHash": "621792672a526a32c653138eb02dbafa0ce1b48ff90f162fdfddb070873127c8",
|
||||
"generatedAt": "2025-11-28T10:09:51.382409Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "documentation",
|
||||
"description": "Meta-package: Installs all documentation components (commands + agents + hooks)",
|
||||
"version": "3.0.0"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "336a5386b873413a1deb3d3f83dff94177d7ee51cc49e5ca67f44b284ceb2ba7"
|
||||
},
|
||||
{
|
||||
"path": "agents/changelog-writer.md",
|
||||
"sha256": "3ffebcec62abc26333a8b9962991afb285bd88d395199df13893a10108da070c"
|
||||
},
|
||||
{
|
||||
"path": "agents/auto-documenter.md",
|
||||
"sha256": "c135f48409f31b286624ddbcd56b31dee1cb5d8e8147a4724c559b1312744191"
|
||||
},
|
||||
{
|
||||
"path": "hooks/hooks.json",
|
||||
"sha256": "ec98d85088f8ea077ca6a0f3456d83e3d04e50ae1359ffcc3b2bcffa04597d04"
|
||||
},
|
||||
{
|
||||
"path": "hooks/scripts/auto-changelog-updater.py",
|
||||
"sha256": "f9b428734ac33fe3b1edbee745d4557b40317f6ba507860f7f12e13bbd753053"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "a07b00e158ef18c945eec737e89af242b68ee9abed9d268d13df7dc7533dd91a"
|
||||
},
|
||||
{
|
||||
"path": "commands/update-docs.md",
|
||||
"sha256": "ed7ac67cac4b5e12b8e28fd56e3a7ca9df340f869b1651501cc2c5947d896bec"
|
||||
},
|
||||
{
|
||||
"path": "commands/update-claude.md",
|
||||
"sha256": "e60c415a1f5d35c1914d358ce7ca03821a6b33bc1e398d775b890535aad536bc"
|
||||
},
|
||||
{
|
||||
"path": "commands/update-changelog.md",
|
||||
"sha256": "91ec15e7becdd96eccf63870e9e571f098794f50e4a4cb0986c3a1002da8979a"
|
||||
},
|
||||
{
|
||||
"path": "commands/generate-readme.md",
|
||||
"sha256": "2aeb3f1d7298031c7a2adec538595bc962629d98f43dff8ef7b7b7c0b3544e4d"
|
||||
}
|
||||
],
|
||||
"dirSha256": "621792672a526a32c653138eb02dbafa0ce1b48ff90f162fdfddb070873127c8"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user