* fix: fill implementation gaps across core modules - Replace ConfidenceChecker placeholder methods with real implementations that search the codebase for duplicates, verify architecture docs exist, check research references, and validate root cause specificity - Fix intelligent_execute() error capture: collect actual errors from failed tasks instead of hardcoded None, format tracebacks as strings, and fix variable shadowing bug where loop var overwrote task parameter - Implement ReflexionPattern mindbase integration via HTTP API with graceful fallback when service is unavailable - Fix .gitignore: remove duplicate entries, add explicit !-rules for .claude/settings.json and .claude/skills/, remove Tests/ ignore - Remove unnecessary sys.path hack in cli/main.py - Fix FailureEntry.from_dict to not mutate input dict - Add comprehensive execution module tests: 62 new tests covering ParallelExecutor, ReflectionEngine, SelfCorrectionEngine, and the intelligent_execute orchestrator (136 total, all passing) https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * chore: include test-generated reflexion artifacts https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * fix: address 5 open GitHub issues (#536, #537, #531, #517, #534) Security fixes: - #536: Remove shell=True and user-controlled $SHELL from _run_command() to prevent arbitrary code execution. Use direct list-based subprocess.run without passing full os.environ to child processes. - #537: Add SHA-256 integrity verification for downloaded docker-compose and mcp-config files. Downloads are deleted on hash mismatch. Gateway config supports pinned hashes via docker_compose_sha256/mcp_config_sha256. Bug fixes: - #531: Add agent file installation to `superclaude install` and `update` commands. 20 agent markdown files are now copied to ~/.claude/agents/ alongside command installation. - #517: Fix MCP env var flag from --env to -e for API key passthrough, matching the Claude CLI's expected format. Usability: - #534: Replace Japanese trigger phrases and report labels in pm-agent.md and pm.md (both src/ and plugins/) with English equivalents for international accessibility. https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * docs: align documentation with Claude Code and fix version/count gaps - Update CLAUDE.md project structure to include agents/ (20 agents), modes/ (7 modes), commands/ (30 commands), skills/, hooks/, mcp/, and core/ directories. Add Claude Code integration points section. - Fix version references: 4.1.5 -> 4.2.0 in installation.md, quick-start.md, and package.json (was 4.1.7) - Fix feature counts across all docs: - Commands: 21 -> 30 - Agents: 14/16 -> 20 - Modes: 6 -> 7 - MCP Servers: 6 -> 8 - Update README.md agent count from 16 to 20 - Add docs/user-guide/claude-code-integration.md explaining how SuperClaude maps to Claude Code's native features (commands, agents, hooks, skills, settings, MCP servers, pytest plugin) https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * chore: update test-generated reflexion log https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * docs: comprehensive Claude Code gap analysis and integration guide - Rewrite docs/user-guide/claude-code-integration.md with full feature mapping: all 28 hook events, skills system with YAML frontmatter, 5 settings scopes, permission rules, plan mode, extended thinking, agent teams, voice, desktop features, and session management. Includes detailed gap table showing where SuperClaude under-uses Claude Code capabilities (skills migration, hooks integration, plan mode, settings profiles). - Add Claude Code native features section to CLAUDE.md with extension points we use vs should use more (hooks, skills, plan mode, settings) - Add Claude Code integration gap analysis to KNOWLEDGE.md with prioritized action items for skills migration, hooks leverage, plan mode integration, and settings profiles https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * chore: update test-generated reflexion log https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * chore: bump version to 4.3.0 Bump version across all 15 files: - VERSION, pyproject.toml, package.json - src/superclaude/__init__.py, src/superclaude/__version__.py - CLAUDE.md, PLANNING.md, TASK.md, CHANGELOG.md - README.md, README-zh.md, README-ja.md, README-kr.md - docs/getting-started/installation.md, quick-start.md - docs/Development/pm-agent-integration.md Also fixes __version__.py which was out of sync at 0.4.0. Adds comprehensive CHANGELOG entry for v4.3.0. https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 * i18n: replace all Japanese/Chinese text with English in source files Replace CJK text with English across all non-translation files: - src/superclaude/commands/pm.md: 38 Japanese strings in PDCA cycle, error handling patterns, anti-patterns, document templates - src/superclaude/agents/pm-agent.md: 20 Japanese strings in PDCA phases, self-evaluation, documentation sections - plugins/superclaude/: synced from src/ copies - .github/workflows/readme-quality-check.yml: all Chinese comments, table headers, report strings, and PR comment text - .github/workflows/pull-sync-framework.yml: Japanese comment - .github/PULL_REQUEST_TEMPLATE.md: complete rewrite from Japanese Translation files (README-ja.md, docs/user-guide-jp/, etc.) are intentionally kept in their respective languages. https://claude.ai/code/session_01AnGJMAA6Qp2j9WKKHHZfB9 --------- Co-authored-by: Claude <noreply@anthropic.com>
141 lines
5.3 KiB
YAML
141 lines
5.3 KiB
YAML
name: Pull Sync from Framework
|
|
|
|
on:
|
|
schedule:
|
|
- cron: '0 */6 * * *'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
sync-and-isolate:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
|
|
steps:
|
|
- name: Checkout Plugin Repository (Target)
|
|
uses: actions/checkout@v4
|
|
with:
|
|
path: plugin-repo
|
|
|
|
- name: Check for Framework updates
|
|
id: check-updates
|
|
run: |
|
|
FRAMEWORK_HEAD=$(git ls-remote https://github.com/SuperClaude-Org/SuperClaude_Framework HEAD | cut -f1)
|
|
echo "Current framework HEAD: $FRAMEWORK_HEAD"
|
|
echo "framework-head=$FRAMEWORK_HEAD" >> $GITHUB_OUTPUT
|
|
|
|
LAST_SYNCED=""
|
|
if [ -f "plugin-repo/docs/.framework-sync-commit" ]; then
|
|
LAST_SYNCED=$(cat plugin-repo/docs/.framework-sync-commit)
|
|
echo "Last synced commit: $LAST_SYNCED"
|
|
else
|
|
echo "No previous sync state - will run sync"
|
|
fi
|
|
|
|
if [ "$FRAMEWORK_HEAD" = "$LAST_SYNCED" ] && [ "${{ github.event_name }}" != "workflow_dispatch" ]; then
|
|
echo "✅ Framework is up to date - skipping sync"
|
|
echo "has-updates=false" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "🔄 Framework has updates - proceeding with sync"
|
|
echo "has-updates=true" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Checkout Framework Repository (Source)
|
|
if: steps.check-updates.outputs.has-updates == 'true'
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: SuperClaude-Org/SuperClaude_Framework
|
|
path: framework-src
|
|
|
|
- name: Set up Python
|
|
if: steps.check-updates.outputs.has-updates == 'true'
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.10'
|
|
|
|
- name: Run Transformation & Sync Logic
|
|
if: steps.check-updates.outputs.has-updates == 'true'
|
|
run: |
|
|
cd plugin-repo
|
|
python3 scripts/sync_from_framework.py
|
|
|
|
- name: Verify protected files are unchanged
|
|
if: steps.check-updates.outputs.has-updates == 'true'
|
|
working-directory: plugin-repo
|
|
run: |
|
|
# Note: plugin.json removed from list as it is updated by the MCP merge script
|
|
PROTECTED=(
|
|
"README.md" "README-ja.md" "README-zh.md"
|
|
"BACKUP_GUIDE.md" "MIGRATION_GUIDE.md" "SECURITY.md"
|
|
"CLAUDE.md" "LICENSE" ".gitignore"
|
|
".claude-plugin/marketplace.json"
|
|
"core/" "modes/"
|
|
)
|
|
VIOLATIONS=()
|
|
for path in "${PROTECTED[@]}"; do
|
|
if git diff --name-only HEAD -- "$path" | grep -q .; then
|
|
VIOLATIONS+=("$path")
|
|
fi
|
|
done
|
|
if [ ${#VIOLATIONS[@]} -gt 0 ]; then
|
|
echo "🚨 PROTECTION VIOLATION: sync modified Plugin-owned files:"
|
|
for v in "${VIOLATIONS[@]}"; do echo " • $v"; done
|
|
echo ""
|
|
echo "Fix: check SYNC_MAPPINGS in scripts/sync_from_framework.py"
|
|
exit 1
|
|
fi
|
|
echo "🔒 Protection check passed — no Plugin-owned files were modified"
|
|
|
|
- name: Save framework sync state
|
|
if: steps.check-updates.outputs.has-updates == 'true'
|
|
run: |
|
|
echo "${{ steps.check-updates.outputs.framework-head }}" > plugin-repo/docs/.framework-sync-commit
|
|
echo "✅ Saved framework commit: ${{ steps.check-updates.outputs.framework-head }}"
|
|
|
|
- name: Commit Changes to Sync Branch
|
|
if: steps.check-updates.outputs.has-updates == 'true'
|
|
id: commit-changes
|
|
working-directory: plugin-repo
|
|
run: |
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
|
|
SYNC_BRANCH="framework-sync/$(date +'%Y-%m-%d-%H%M')"
|
|
git checkout -b "$SYNC_BRANCH"
|
|
|
|
git add commands/ agents/ .claude-plugin/plugin.json plugin.json
|
|
|
|
if [ -f "docs/.framework-sync-commit" ]; then
|
|
git add -f docs/.framework-sync-commit
|
|
fi
|
|
|
|
if ! git diff --cached --quiet; then
|
|
git commit -m "chore: automated sync from framework [${{ steps.check-updates.outputs.framework-head }}]"
|
|
git push origin "$SYNC_BRANCH"
|
|
echo "has-changes=true" >> $GITHUB_OUTPUT
|
|
echo "sync-branch=$SYNC_BRANCH" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "No changes detected."
|
|
echo "has-changes=false" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: Create Pull Request for Review
|
|
if: steps.commit-changes.outputs.has-changes == 'true'
|
|
working-directory: plugin-repo
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: |
|
|
gh pr create \
|
|
--title "chore: framework sync ${{ steps.check-updates.outputs.framework-head }}" \
|
|
--body "## Automated Framework Sync
|
|
|
|
Synced from upstream framework commit: \`${{ steps.check-updates.outputs.framework-head }}\`
|
|
|
|
**Review required before merge.** This PR was created automatically by the framework sync workflow. Please review the changes to ensure no unexpected modifications were introduced.
|
|
|
|
---
|
|
*Auto-generated by pull-sync-framework workflow*" \
|
|
--base main \
|
|
--head "${{ steps.commit-changes.outputs.sync-branch }}"
|