| name: dir2md Blueprint | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| workflow_dispatch: | |
| jobs: | |
| build-blueprint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install dir2md | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install . | |
| - name: Generate blueprint | |
| id: gen | |
| run: | | |
| dir2md . --capsule --emit-manifest --stats -o PROJECT_BLUEPRINT.md || true | |
| TOKENS=$(jq .stats.est_tokens_prompt PROJECT_BLUEPRINT.manifest.json) | |
| echo "tokens=$TOKENS" >> $GITHUB_OUTPUT | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dir2md-blueprint | |
| path: | | |
| PROJECT_BLUEPRINT.md | |
| PROJECT_BLUEPRINT.manifest.json | |
| PROJECT_BLUEPRINT.capsule.zip | |
| - name: Comment PR | |
| if: github.event_name == 'pull_request' | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| const tokens = '${{ steps.gen.outputs.tokens }}'; | |
| const body = [ | |
| '## 📦 dir2md Blueprint', | |
| `- Estimated prompt tokens: **${tokens}**`, | |
| '- Artifacts: _see workflow run → Artifacts_', | |
| '', | |
| 'Run locally:', | |
| '```bash', | |
| 'pip install .', | |
| 'dir2md .', | |
| '```' | |
| ].join('\n'); | |
| github.rest.issues.createComment({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: context.issue.number, | |
| body | |
| }); | |