TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Personal GitHub portfolio health dashboard — RepoHQ
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Personal GitHub portfolio intelligence dashboard — health scoring, AI analysis, revenue tracking, lifecycle management, automated weekly intelligence, and an AI agent execution pipeline for every repo you own.檢視完整 README ↗Personal GitHub portfolio intelligence dashboard — health scoring, AI analysis, revenue tracking, lifecycle management, automated weekly intelligence, and an AI agent execution pipeline for every repo you own.
Live: https://repohq.vercel.app · System overview: start here · Architecture · Roadmap
RepoHQ is one part of a larger system whose goal is products people use and pay for, with near-zero overhead for the owner and no financial risk: a local AI stack with context on every repo, a research center, an idea pipeline that reviews and demand-tests ideas before building them, and a factory that keeps everything healthy. The system overview has the map, the rules and the scorecard.
RepoHQ syncs all your GitHub repos (public + private) and gives you a unified view of your entire portfolio — then acts on it automatically:
factory/), the only thing that writes code, runs it sandboxed on free models and judges every changeDashboard
Repository Matrix
"repos not updated in 6 months with security issues"Repository Detail
gstack Skill Launcher
queue_gstack_skill MCP tool; enabled for repos on the factory allowlist/canary is listed but unavailable: checking a live app needs a browser and network access the factory sandbox doesn't have| Phase | Skills (fix = one judged draft PR, report = findings, no changes) |
|---|---|
| Understand | /investigate (root cause, report), /review (code review, report) |
| Build Quality | /qa-only (find bugs, report), /qa (find + fix bugs, fix) |
| Ship | /ship (implement, fix), /document-release (update docs + CHANGELOG, fix), /cso (fix security alerts: npm audit fix, never --force, in every lockfile; no model) |
| Monitor | /health (code quality score, report), /canary (unavailable) |
| Reflect | /retro (weekly commit analysis, report) |
Agent Execution Pipeline
agent_requests row in Neon plus a BullMQ job; the factory worker takes it next (requests go ahead of scheduled cycles)/cso: the factory runs npm audit fix (never --force) in the root lockfile and every sub-package's, and opens one PR that merges itself once its checks pass. The PR says how many critical and high alerts are left for a breaking upgraderepositories.factory_enabled, on top of factory/factory.config.json). The factory's GitHub App needs access to the repo too: GitHub → Settings → Applications → repohq-factory → Configureagent_skill_report events) store findings; UI shows inline previewAgent Observability
/agent-performance): both workers on the Mac.
Ideas (/ideas, owner only): the idea pipeline's ideas with their research, PRD, roadmap and gstack review.
Portfolio Feed — what happened, newest first: health changes, deployments, new security alerts (the standing count links to Security), dependency cascade risk, agent events
Portfolio Intelligence
/repos/triage) — keyboard-driven bulk lifecycle decisionsIntegrations
factory/) — the only agent executor; see Agentic Execution belowmcp/server.ts) — 14 tools for Claude Code and any MCP-compatible IDEMCP Tools (18)
| Tool | Description |
|---|---|
get_system_overview | The system map (docs/system-overview.md) plus live counts |
search_context | Search repos, ideas, bookmarks and docs (public and personal only) |
get_system_status | What's failing now across every system, counts per system, latest events |
get_idea_pipeline | Ideas by stage, demand tests against the decision rules; one idea with visitors by source and launch posts |
get_portfolio_summary | Score, grade, top advisor actions, focused repos |
get_repo_context | Full context: health, lifecycle, tech debt, deployments |
get_portfolio_warnings | Failing builds, security alerts, low-health repos |
get_top_opportunities | Repos ranked by opportunity score |
get_active_goals | Goals with progress and deadlines |
get_coding_brief | Session-start doc: health, in-flight PRs, attempt history, last skill report findings |
get_next_action | Top ROI task; skips open PRs + dead ends; includes confidence line |
log_session_complete | Records what was accomplished |
get_active_work | Open agent PRs per repo or portfolio-wide; safe-to-start flag |
log_attempt | Records attempt outcome (success/failed/partial); feeds dead-end detection |
get_accuracy_report | Advisor calibration table by action type + downgraded repos |
queue_gstack_skill | Queue one of the 8 skills for the factory on an allowlisted repo; returns taskId |
get_skill_history | Recent skill run history for a repo (prose-formatted) |
get_skill_findings | Structured JSON findings from most recent skill run + suggestedNextSkill |
BYOK (Bring Your Own Key) — Settings → AI Provider: OpenRouter (free models) or Gemini (free tier) by default. Claude (Anthropic) and GPT-4o (OpenAI) bill per call, so they're off unless LLM_ALLOW_PAID=1.
Public Portfolio
/u/[github-username] — public view (opt-in in Settings)/u/[username]/resume — print-friendly portfolio/u/[username]/report/2026-q2 — quarterly report with AI commentary| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| Language | TypeScript |
| Styling | Tailwind CSS 4, shadcn/ui (Radix) |
| Table | TanStack Table v8 |
| Data fetching | TanStack Query v5 |
| Charts | Recharts |
| Database | PostgreSQL (Neon serverless HTTP) |
| ORM | Drizzle ORM |
| Auth | Auth.js v5 (GitHub OAuth, DrizzleAdapter) |
| AI | OpenRouter free models and Gemini's free tier by default; Claude and OpenAI with LLM_ALLOW_PAID=1 (BYOK) |
| Hosting | Vercel |
| Crons | GitHub Actions (primary) + Vercel weekly fallback |
| Revenue | Stripe REST API (restricted key, no SDK) |
| IDE | MCP Server (stdio, @modelcontextprotocol/sdk) |
| Agent Execution | The factory: BullMQ on Redis (Render Key Value) + a worker on the owner's Mac (Docker sandbox, LiteLLM/Ollama) |
| Service | What you need | Link |
|---|---|---|
| Neon | PostgreSQL database connection string | neon.tech |
| GitHub OAuth App | Client ID + Secret | github.com/settings/developers |
| OpenRouter (or Gemini) | API key for free models | openrouter.ai/keys · aistudio.google.com |
GitHub OAuth App settings:
https://your-app.vercel.apphttps://your-app.vercel.app/api/auth/callback/githubFor local development, create a second OAuth App with http://localhost:3000 URLs.
git clone https://github.com/smithdavedesign/Github-HQ.git repohq
cd repohq
npm install
cp .env.example .env.local
.env.localDATABASE_URL=postgresql://... # Neon connection string
GITHUB_CLIENT_ID= # Local OAuth App
GITHUB_CLIENT_SECRET=
AUTH_SECRET=$(openssl rand -base64 32)
OPENROUTER_API_KEY=sk-or-... # free models (or GEMINI_API_KEY); paid providers need LLM_ALLOW_PAID=1
CRON_SECRET=$(openssl rand -hex 32)
NEXTAUTH_URL=http://localhost:3000
npm run db:push # Push Drizzle schema to Neon
npm run dev
Open localhost:3000, sign in with GitHub, click Sync.
vercel --prod
# Or use the Deploy button at the top of this README
Set all env vars in Vercel → Project → Settings → Environment Variables. Set NEXTAUTH_URL to your production URL.
Add CRON_SECRET to your GitHub repo → Settings → Secrets → Actions. The workflows in .github/workflows/ trigger automatically:
In Settings → Revenue Integration, add a restricted Stripe key with Subscriptions + Products read access.
The factory runs on your own machine (it needs Docker and a local model gateway). Set it up with
factory/README.md, then add to Vercel and .env.local:
REDIS_URL=rediss://... # the agent-hq-redis Key Value from render.yaml
FACTORY_USER_ID=your-user-id # the same id as in ~/.repohq-factory/env
The gstack Skill Launcher and Run Agent buttons activate for repos on the factory allowlist
(factory/factory.config.json). Without FACTORY_USER_ID they show why they are off. Without
REDIS_URL, requests still queue in Neon and the worker picks them up at its next cycle.
security impact → /investigatehealth / opportunity / revenue impact → /shipgstack-allow:ship,investigategstack-allow:all (or omit tag) allows default behavior.REPO_GSTACK_SKILL_ALLOWLIST_JSON={"owner/repo":["ship","investigate"]}
Env override takes precedence over repo tags.
Auto-dispatch now applies tiered safety rules before queueing advisor actions:
report-only: always allowed except archived repos.analyze+fix: allowed for lifecycle stages building, beta, production, growing, maintaining; requires at least medium confidence.high-risk: allowed for beta, production, growing, maintaining; requires high confidence.Confidence is derived from per-impact historical accuracy signal (successRate + minimum data points).
report-only, analyze+fix) auto-run by default once lifecycle + confidence gates pass.gstack-optin:high-riskREPO_GSTACK_HIGH_RISK_OPT_IN_JSON={"owner/repo":true}// Add to ~/.claude/claude.json
{
"mcpServers": {
"repohq": {
"command": "npx",
"args": ["tsx", "/path/to/repohq/mcp/server.ts"],
"env": {
"DATABASE_URL": "your-neon-url",
"MCP_USER_ID": "your-user-id"
}
}
}
}
See mcp/README.md for full setup and tool reference.
The core thesis: RepoHQ has Find, Prioritize, and Measure. The factory adds Execute — the loop closing.
The factory (factory/) is the only thing that writes code (PRD, roadmap Phase 81). It replaced the AI-Took-My-Job (Nexus) executor. When you click "Run Agent" or launch a skill:
agent_requests row (queued) and an agent_task_queued event, and adds a BullMQ job to the factory queue on Redisfactory/worker.ts, under launchd on the owner's Mac) claims the row and runs one cycle for that repo: clone, sandboxed install and checks, the model ladder (free models first), Judge v2 and an adversarial reviewagent_pr_created (fix skills, a draft PR once owner-requested is promoted to pr), verified (judged and held at stage report), agent_skill_report (report skills, with findings), or agent_execution_failed/api/agent-task-status?taskId=...Request states: queued → running → pr | verified | reported | rejected | failed, or cancelled while queued. A request waiting for the Mac (asleep, on battery, Docker down) stays queued, with the reason when the worker deferred it; nothing is re-routed to a paid model.
Auto-dispatch: Enable in Settings → Agent Auto-Dispatch. Every Monday the advisor queues eligible actions for the factory. Controls: effort gate (quick / quick+medium / all), max tasks per week (1–10), skip security tasks, minimum accuracy threshold.
No auto-chaining and no CI-fix loop: the factory runs the repo's checks before it opens a PR. A PR that still fails CI is flagged needs human with a notification; you decide what runs next. Like any open agent PR, it blocks new requests on its repo until it's merged or closed.
Neon is the source of truth and Redis only wakes the worker: a lost job is re-queued from the row. See docs/autonomous-factory.md for the factory design and factory/README.md for the operator guide. What the move off Nexus's Render workers costs (above all: requests wait for the Mac, and run on free models), and what to do about it, is in docs/agent-hq-tradeoffs.md.
gstack is a Claude Code skill framework providing specialised agent workflows (/ship, /investigate, /qa, etc.). RepoHQ keeps its skill names and lifecycle phases; the factory runs each skill as a fix or report task with its own guidance (factory/lib/tasks.ts). G1–G6 (Claude Code CLI with gstack scripts, learnings, checkpoint mode, the brief in CLAUDE.md, the skill router) ran in the Nexus worker and retired with it.
The scripts in tests/integration/ are manual checks that run a skill-style prompt against this codebase with the Claude Code CLI (paid, outside the factory). Run from the project root:
bash tests/integration/gstack-security-check.sh # /investigate — security
bash tests/integration/gstack-health-check.sh # /health — code quality
bash tests/integration/gstack-review-check.sh # /review — code review
bash tests/integration/gstack-qa-only-check.sh # /qa-only — bug hunt
bash tests/integration/gstack-retro-check.sh # /retro — weekly analysis
See the gstack Integration Roadmap for the history.
npm test # Vitest unit tests (1,100+ tests, 68 files)
npm run test:e2e # Playwright e2e on a throwaway Neon branch (needs the Neon CLI logged in)
npm run test:all # both
npm run typecheck # TypeScript strict check
docker compose --profile flow up -d # throwaway Postgres + Redis for the flow tests
npm run test:flow # the Agent HQ flow end to end: app → queue → real worker → Neon
npm run test:flow:e2e # the same in the browser (next dev + the worker)
The flow tests (tests/flow) validate the one-agent-system migration with nothing mocked but the session and the job itself: the factory migration lands on the db:push schema, Run agent writes the request and its BullMQ job, the real worker claims, gates, runs, defers, retries and resolves it, and the status API and the Agents page show the outcome and its trace. They run on a disposable database (never .env.local's) and in CI on every pull request.
Unit tests cover: health scoring, opportunity scoring, archive scoring, valuation, portfolio score, simulation engine, opportunity cost, event computation, NL query filters, LLM adapter, notifications, MCP tools, advisor accuracy, agent lifecycle, provider mapping, auto-dispatch filter logic, cache TTL, security fixes, gstack skill policy, skill report logic, factory queue access, the factory worker and its policies, the Agents page, and more.
Integration scripts (tests/integration/) run gstack-style skill prompts against the RepoHQ codebase via Claude Code CLI and check the JSON report shape they ask for (nexus-agent-output-v1, kept from the Nexus era).
npm run dev # Development server
npm run build # Production build
npm run typecheck # tsc --noEmit
npm run lint # next lint
npm run db:push # Push Drizzle schema to Neon
npm run db:generate # Generate migration files
ai-stack-docs repo)