Spaces:
Sleeping
Sleeping
| title: SIN-GitHub-Issues | |
| emoji: "🤖" | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # SIN-GitHub-Issues | |
| `SIN-GitHub-Issues` is a SIN A2A agent package for the Silicon Workforce. | |
| ## Identity | |
| - Slug: `sin-github-issues` | |
| - Team: `Team - Coding` | |
| - Team Manager: `SIN-Coding-CEO` | |
| - Purpose: GitHub issue execution agent for confirmed bugs, repo issue lifecycle, branch-based fixes, and verification handoff. Extended with enterprise profile management capabilities. | |
| - Usage: Use after enterprise-deep-debug confirms a bug to search/create/update GitHub issues, open a repo branch, execute the fix workflow, commit, push, and report verification status back to the orchestrating CLI agent. For profile and achievement operations use the new profile/achievement actions. | |
| - Primary Model: `openai/gpt-5.4` | |
| ## Deployment | |
| - Local path: `/Users/jeremy/dev/OpenSIN-backend/a2a/team-coding/A2A-SIN-GitHub-Issues` | |
| - GitHub repo: `https://github.com/Delqhi/sin-github-issues` | |
| - Workforce index: `https://a2a.delqhi.com` | |
| - Landing page: `https://delqhi-sin-github-issues.hf.space` | |
| - Public A2A / CIMD: `https://a2a.delqhi.com/agents/sin-github-issues` | |
| - Hugging Face Space: `https://huggingface.co/spaces/delqhi/sin-github-issues` | |
| - Hugging Face repo id: `delqhi/sin-github-issues` | |
| - Cloudflare tunnel: `sin-github-issues` | |
| - Runtime target: `Target: Hugging Face Space free CPU VM` | |
| ## Runtime Shape | |
| - A2A JSON-RPC runtime | |
| - MCP stdio runtime | |
| - CLI wrapper for local and automated use | |
| - publish-ready Docker/Hugging Face Space layout | |
| - keep-alive ping + HF dataset session backup hooks | |
| - best-effort `sin-supabase` audit persistence for workflow events | |
| - canonical env names: `SUPABASE_URL` + `SUPABASE_SERVICE_ROLE_KEY` (legacy `SIN_SUPABASE_*` still accepted) | |
| ## GitHub App Fleet Routing | |
| - Each specialized SIN coder can own its own dedicated GitHub App identity, for example `SIN-Hermes[bot]`, `SIN-Zeus[bot]`, or `SIN-BugBounty[bot]`. | |
| - Central webhook endpoint: `POST /api/webhooks/github-apps` | |
| - The current implementation prefers one central endpoint with `installation.app_id` routing. | |
| - Routing key: `installation.app_id` | |
| - Reply auth key: `installation.id` | |
| - Routing config sources: | |
| - repo SSOT: `config/github-app-routing.json` | |
| - start-small example: `config/github-app-routing.local.example.json` | |
| - GitHub-Issues local example: `config/github-app-routing.example.json` | |
| - env matrix: `.env.example` and `.env.example` in this agent root | |
| - Secret material is never committed. Use env-backed private key + webhook secret fields referenced from the routing config. | |
| ### Operator Setup | |
| 1. Generate a local routing file from the example template: | |
| ```bash | |
| npm run ops:github-app-routing:init | |
| npm run ops:github-app-routing:env-template -- --agents sin-hermes,sin-zeus,sin-bugbounty | |
| npm run ops:github-app-routing:vm-rollout -- --agents sin-hermes,sin-zeus,sin-bugbounty --base-url https://your-vm-host | |
| ``` | |
| 2. Export `SIN_GITHUB_APP_ROUTING_PATH=./config/github-app-routing.local.json`. | |
| 3. Fill the referenced env vars for each GitHub App in your runtime environment: | |
| - `SIN_HERMES_GITHUB_APP_ID`, `SIN_HERMES_GITHUB_APP_CLIENT_ID`, `SIN_HERMES_GITHUB_APP_PRIVATE_KEY_PEM`, `SIN_HERMES_GITHUB_APP_WEBHOOK_SECRET` | |
| - `SIN_ZEUS_GITHUB_APP_ID`, `SIN_ZEUS_GITHUB_APP_CLIENT_ID`, `SIN_ZEUS_GITHUB_APP_PRIVATE_KEY_PEM`, `SIN_ZEUS_GITHUB_APP_WEBHOOK_SECRET` | |
| - `SIN_GITHUB_ISSUES_GITHUB_APP_ID`, `SIN_GITHUB_ISSUES_GITHUB_APP_CLIENT_ID`, `SIN_GITHUB_ISSUES_GITHUB_APP_PRIVATE_KEY_PEM`, `SIN_GITHUB_ISSUES_GITHUB_APP_WEBHOOK_SECRET` | |
| 4. Point the selected GitHub Apps to the shared webhook path `POST /api/webhooks/github-apps`. | |
| 5. Validate the webhook router before going live: | |
| ```bash | |
| npm run ops:github-app-routing:check -- --apps sin-hermes,sin-zeus,sin-github-issues | |
| npm run ops:github-app-routing:smoke -- --app sin-hermes --base-url http://127.0.0.1:8000 | |
| npm run ops:github-app-routing:smoke -- --app sin-zeus --base-url http://127.0.0.1:8000 | |
| npm run ops:github-app-routing:smoke -- --app sin-github-issues --base-url http://127.0.0.1:8000 | |
| pytest tests/unit/test_room13_webhook_routes.py -q | |
| ``` | |
| The smoke command generates a signed synthetic GitHub webhook for the selected app and expects the Room-13 endpoint to resolve the configured `app_slug`, `preferred_agent_slug`, and `installation_id`. | |
| ## A2A Surface | |
| - Card: `GET /.well-known/agent-card.json` | |
| - Alias: `GET /.well-known/agent.json` | |
| - Health: `GET /health` | |
| - RPC: `POST /a2a/v1` | |
| ## MCP Surface | |
| - Transport: `stdio` | |
| - Config: `./mcp-config.json` | |
| - OpenCode client: `./clients/opencode-mcp.json` | |
| - Codex client: `./clients/codex-config.toml` | |
| ## Local Commands | |
| ```bash | |
| sin-github-issues serve-a2a | |
| sin-github-issues serve-mcp | |
| sin-github-issues print-card | |
| sin-github-issues run-action '{"action":"agent.help"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.health"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.auth.status"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.profile.get"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.profile.update","name":"Delqhi","company":"AIOMETRICS","blog":"https://www.delqhi.com"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.profile.pinned_repos.list"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.repo.metadata.update","repo":"owner/name","description":"...","topics":["ai","automation"]}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.achievement.quickdraw.trigger"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.issue.ensure","repo":"owner/name","title":"Bug title","body":"..."}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.issue.evidence.policy"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.repo.branch.start","repoPath":"/abs/repo","branchName":"fix/example"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.runners.list","repo":"OpenSIN-AI/OpenSIN-backend"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.workflow.runs.list","repo":"OpenSIN-AI/OpenSIN-backend","branch":"sin-github-issues-bootstrap"}' | |
| sin-github-issues run-action '{"action":"sin.github.issues.workflow.local_suite.run","repoPath":"/abs/repo","suite":"docs-and-architecture","confirm":true}' | |
| ``` | |
| ## Current Action Surface | |
| ### Issue & Repo Lifecycle | |
| - `issue.ensure` / `issue.comment` / `issue.close` | |
| - `issue.evidence.policy` | |
| - `repo.status` / `repo.branch.start` / `repo.commit` / `repo.push` | |
| - `workflow.finalize_fix` comment/closure handoff | |
| ### Issue Evidence Standard | |
| - Use OpenCode `/share` links as the source of truth for issue evidence whenever a debugging or fix session exists. | |
| - Put the share URL directly into the issue body or comment. | |
| - Open that shared session in the browser and capture screenshots from the browser-rendered share page instead of from a local editor window. | |
| - Always pair the share link and screenshot with exact `path:line` references. | |
| - Keep the screenshot artifact in the issue timeline even if the backing session is later archived. | |
| ### Workflow & Runner Control | |
| - `runners.list` | |
| - `workflow.runs.list` | |
| - `workflow.run.rerun` | |
| - `workflow.run.cancel` | |
| - `workflow.local_suite.run` for predefined local CI suites when GitHub-hosted Actions are unavailable or budget-blocked | |
| ### Profile & Achievement Management | |
| - `auth.check` / `auth.login` guidance | |
| - `profile.get` / `profile.update` (name, company, blog, location, bio, twitter, hireable) | |
| - `profile.pinned_repos.list` / `profile.pinned_repos.set` | |
| - `repo.description.update` / `repo.metadata.update` | |
| - `achievement.quickdraw.trigger` / `achievement.quickdraw.status` | |
| ### Auth & Onboarding | |
| - `auth.status` / `onboarding.status` / `onboarding.save` | |
| ## Publication Notes | |
| - This package is Docker/Hugging Face Space ready via the repository `Dockerfile`. | |
| - The standalone GitHub repo should contain the same contents as this directory root. | |
| - Remote publication is only complete after landing, agent card, and A2A endpoint reachability are verified with the live audit. | |