Builds the global, opt-in, read-only Forge Project Registry across all projects. Use when the owner wants a bird's-eye view of status, last run, tickets, and ports.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add ForgeyClap/claude-forge --skill forge-registry --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Forge Registry?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/forgeyclap-forge-registry)More formats (shields.io, HTML) on the badges page.
---
name: forge-registry
description: Builds the global, opt-in, read-only Forge Project Registry across all projects. Use when the owner wants a bird's-eye view of status, last run, tickets, and ports.
---
# forge-registry — global project registry (opt-in, read-only)
An **opt-in** aggregate across every Forge project on this machine. It never runs automatically and never
changes any project — it only reads and writes one global index.
## When to use
- The owner asks "show me all my Forge projects" / "which projects have open tickets / failing tests".
- Before a portfolio-wide sweep, to see status/ports/last-run at a glance.
## How to run
```
node .claude/forge-bin/forge-registry.cjs scan # scan ~/Documents, write the registry
node .claude/forge-bin/forge-registry.cjs scan --json # also print the aggregate to stdout
node .claude/forge-bin/forge-registry.cjs scan --root <dir> --run <run_id>
```
Outputs (global):
- `~/.claude/forge/registry/projects.json` — machine-readable index.
- `~/.claude/forge/registry/index.html` — a self-contained home-view (open it directly in a browser; data
is inlined, no server needed).
Each record: `project_id, name, path, stack, status, last_run_id, last_run_status, last_run_at,
open_tickets, test_status, port`. `test_status` reads a run's `doctor.json` (from Forge Doctor) when present.
## Hard rules (isolation + honesty)
- **Reads** other projects' `.claude/` read-only (that is the opt-in aggregation job); it **NEVER writes**
into any scanned project. The only thing written is the global registry dir.
- Every record is secret-redacted before writing (defense in depth) — never persists a raw key.
- Real `DASHBOARD_STATE.json` / `run.json` data only; a missing/malformed file yields honest defaults
(`unknown`), never a fabricated status.
- Opt-in only: it never runs on `require`, only via the `scan` command.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!