name: Claude Documentation Updater on: push: branches: - next paths-ignore: - 'apps/docs/**' - '*.md' - '.github/workflows/**' jobs: update-docs: # Only run if changes were merged (not direct pushes from bots) if: github.event.pusher.name != 'github-actions[bot]' && github.event.pusher.name != 'dependabot[bot]' runs-on: ubuntu-latest permissions: contents: write pull-requests: write issues: write id-token: write steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 2 # Need previous commit for comparison - name: Get changed files id: changed-files run: | echo "Changed files in this push:" git diff --name-only HEAD^ HEAD | tee changed_files.txt # Store changed files for Claude to analyze echo "changed_files<> $GITHUB_OUTPUT git diff --name-only HEAD^ HEAD >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT # Get the commit message and changes summary echo "commit_message<> $GITHUB_OUTPUT git log -1 --pretty=%B >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT # Get diff for documentation context echo "commit_diff<> $GITHUB_OUTPUT git diff HEAD^ HEAD --stat >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - name: Create docs update branch id: create-branch run: | BRANCH_NAME="docs/auto-update-$(date +%Y%m%d-%H%M%S)" git checkout -b $BRANCH_NAME echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT - name: Run Claude Code to Update Documentation uses: anthropics/claude-code-action@beta with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} timeout_minutes: "30" mode: "auto" experimental_allowed_domains: | .anthropic.com .github.com api.github.com .githubusercontent.com registry.npmjs.org prompt: | You are a documentation specialist. Analyze the recent changes pushed to the 'next' branch and update the documentation accordingly. Recent changes: - Commit: ${{ steps.changed-files.outputs.commit_message }} - Changed files: ${{ steps.changed-files.outputs.changed_files }} - Changes summary: ${{ steps.changed-files.outputs.commit_diff }} Your task: 1. Analyze the changes to understand what functionality was added, modified, or removed 2. Check if these changes require documentation updates in apps/docs/ 3. If documentation updates are needed: - Update relevant documentation files in apps/docs/ - Ensure examples are updated if APIs changed - Update any configuration documentation if config options changed - Add new documentation pages if new features were added - Update the changelog or release notes if applicable 4. If no documentation updates are needed, skip creating changes Guidelines: - Focus only on user-facing changes that need documentation - Keep documentation clear, concise, and helpful - Include code examples where appropriate - Maintain consistent documentation style with existing docs - Don't document internal implementation details unless they affect users - Update navigation/menu files if new pages are added Only make changes if the documentation truly needs updating based on the code changes. - name: Check if changes were made id: check-changes run: | if git diff --quiet; then echo "has_changes=false" >> $GITHUB_OUTPUT else echo "has_changes=true" >> $GITHUB_OUTPUT git add -A git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.name "github-actions[bot]" git commit -m "docs: auto-update documentation based on changes in next branch This PR was automatically generated to update documentation based on recent changes. Original commit: ${{ steps.changed-files.outputs.commit_message }} Co-authored-by: Claude " fi - name: Push changes and create PR if: steps.check-changes.outputs.has_changes == 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git push origin ${{ steps.create-branch.outputs.branch_name }} # Create PR using GitHub CLI gh pr create \ --title "docs: update documentation for recent changes" \ --body "## 📚 Documentation Update This PR automatically updates documentation based on recent changes merged to the \`next\` branch. ### Original Changes **Commit:** ${{ github.sha }} **Message:** ${{ steps.changed-files.outputs.commit_message }} ### Changed Files in Original Commit \`\`\` ${{ steps.changed-files.outputs.changed_files }} \`\`\` ### Documentation Updates This PR includes documentation updates to reflect the changes above. Please review to ensure: - [ ] Documentation accurately reflects the changes - [ ] Examples are correct and working - [ ] No important details are missing - [ ] Style is consistent with existing documentation --- *This PR was automatically generated by Claude Code GitHub Action*" \ --base next \ --head ${{ steps.create-branch.outputs.branch_name }} \ --label "documentation" \ --label "automated"