105 lines
3.9 KiB
YAML
105 lines
3.9 KiB
YAML
name: Claude Docs Apply
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [labeled]
|
|
|
|
jobs:
|
|
apply-docs:
|
|
if: github.event.label.name == 'update-docs'
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
pull-requests: write
|
|
issues: write
|
|
id-token: write
|
|
|
|
steps:
|
|
- name: Checkout PR branch
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: ${{ github.event.pull_request.head.repo.full_name }}
|
|
ref: ${{ github.event.pull_request.head.ref }}
|
|
# Use PAT for fork PRs (requires CLAUDE_CODE_PAT secret), GITHUB_TOKEN for same-repo PRs
|
|
token: ${{ secrets.CLAUDE_CODE_PAT || secrets.GITHUB_TOKEN }}
|
|
fetch-depth: 0
|
|
|
|
- name: Configure git
|
|
run: |
|
|
git config --global user.name "Claude Code Bot"
|
|
git config --global user.email "noreply@anthropic.com"
|
|
|
|
- name: Apply documentation updates
|
|
uses: anthropics/claude-code-action@v1
|
|
with:
|
|
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
github_token: ${{ secrets.CLAUDE_CODE_PAT || secrets.GITHUB_TOKEN }}
|
|
|
|
prompt: |
|
|
REPO: ${{ github.repository }}
|
|
PR NUMBER: ${{ github.event.pull_request.number }}
|
|
PR TITLE: ${{ github.event.pull_request.title }}
|
|
|
|
You are a documentation assistant for the Ragas project. Update the documentation based on the code changes in this PR.
|
|
|
|
## Quick Action Plan
|
|
|
|
1. Run `gh pr diff` to review changes
|
|
2. Identify what docs need updating (see structure below)
|
|
3. Make focused updates efficiently
|
|
4. Commit with clear message
|
|
|
|
## Documentation Structure (Diátaxis Framework)
|
|
|
|
**Where to update:**
|
|
- `docs/howtos/` - How-to guides (step-by-step instructions)
|
|
- `docs/concepts/` - Concept docs (explanations and rationale)
|
|
- `docs/getstarted/` - Tutorials (learning experiences)
|
|
- Source code docstrings - API documentation (feeds auto-generated reference)
|
|
|
|
**DO NOT edit:**
|
|
- `docs/references/**` - AUTO-GENERATED by mkdocstrings
|
|
|
|
## Writing Guidelines
|
|
|
|
- Use second-person ("you") and active voice
|
|
- Code blocks must be copy-pasteable with imports
|
|
- Use `??? "Click to expand"` for verbose outputs
|
|
- Add blank line after text ending with colon before lists
|
|
- Update `mkdocs.yml` nav if adding new pages
|
|
- Keep modes separate: no theory in how-tos, no instructions in concepts
|
|
|
|
## Documentation Modes Reference
|
|
|
|
1. **Tutorials** (`docs/getstarted/`) - "Can you teach me to...?"
|
|
- Narrative learning experience with complete working examples
|
|
|
|
2. **How-to Guides** (`docs/howtos/`) - "How do I...?"
|
|
- Concise step-by-step from user's perspective
|
|
|
|
3. **Reference** (`docs/references/`) - "What is...?"
|
|
- AUTO-GENERATED - edit source docstrings instead
|
|
|
|
4. **Explanation** (`docs/concepts/`) - "Why...?"
|
|
- Discursive articles on design decisions and theory
|
|
|
|
## Completion
|
|
|
|
After making changes, commit to this PR branch with a concise, descriptive message.
|
|
|
|
claude_args: |
|
|
--max-turns 30
|
|
--allowedTools "Read,Write,Edit,Glob,Grep,Bash(git:*),Bash(gh pr diff:*),Bash(gh pr view:*)"
|
|
|
|
- name: Remove labels after completion
|
|
if: always()
|
|
run: |
|
|
# Remove both labels
|
|
gh pr edit ${{ github.event.pull_request.number }} --remove-label "update-docs" || true
|
|
gh pr edit ${{ github.event.pull_request.number }} --remove-label "needs-doc-update" || true
|
|
|
|
# Comment that docs were updated
|
|
gh pr comment ${{ github.event.pull_request.number }} --body "✅ Documentation update completed."
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|