name: Tool Request Pipeline on: issues: types: [labeled] workflow_dispatch: inputs: issue_number: description: 'Issue number to process' required: true type: number jobs: trigger-claude: # Only run when 'tool-request' label is added or manual dispatch if: github.event.label.name == 'tool-request' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest permissions: issues: write steps: - name: Add working label uses: actions/github-script@v7 with: script: | const issueNumber = context.issue?.number || ${{ inputs.issue_number || 0 }}; await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: issueNumber, labels: ['claude-working'] }); - name: Comment to trigger Claude uses: actions/github-script@v7 with: script: | const issueNumber = context.issue?.number || ${{ inputs.issue_number || 0 }}; const { data: issue } = await github.rest.issues.get({ owner: context.repo.owner, repo: context.repo.repo, issue_number: issueNumber }); const lines = [ '@claude Please implement this tool request.', '', '## Instructions', '1. Read the pipeline specification at `.claude/pipelines/tool-request.md`', '2. Follow all steps: analyze, design, implement, validate, test, publish', '3. Update labels as you progress (remove `claude-working`, add `published` or `validation-failed`)', '4. Post full changelog when complete', '5. This issue will auto-close 24h after successful publish', '', '## Issue Context', `- Issue #${issueNumber}`, `- Author: @${issue.user.login}`, `- Created: ${issue.created_at}`, '', 'Begin implementation.' ]; await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: issueNumber, body: lines.join('\n') }); # Auto-close published issues after 24 hours auto-close: runs-on: ubuntu-latest if: github.event.label.name == 'published' permissions: issues: write steps: - name: Schedule auto-close uses: actions/github-script@v7 with: script: | await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, body: 'This issue will auto-close in 24 hours. Reply if you have feedback or issues with the published tool.' }); # Separate workflow handles the actual auto-close via scheduled job # See: .github/workflows/auto-close-published.yml