sin-github-issues / README.md
OpenCode
Deploy latest SIN-GitHub-Issues runtime
cd455f6
|
Raw
History Blame Contribute Delete
8.06 kB
metadata
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:
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
  1. Export SIN_GITHUB_APP_ROUTING_PATH=./config/github-app-routing.local.json.
  2. 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
  3. Point the selected GitHub Apps to the shared webhook path POST /api/webhooks/github-apps.
  4. Validate the webhook router before going live:
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

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.