

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1# Claude Code Repos Index - Repository Instructions23## Purpose45This repository serves as a curated index of agent workspace blueprints and Claude Code-related resources shared on GitHub. It provides organized, categorized listings with descriptions to help users discover relevant tools, templates, and configurations for agentic AI workflows.67Many of the repositories in this index are **agent workspaces** — pre-configured repository environments designed for structured, domain-specific agentic AI workflows. This pattern, which I originally called "Claude Spaces," uses repository structure, context files, and Claude Code's built-in features to create effective AI work environments that go far beyond traditional codebases.89## Repository Structure1011- **`README.md`**: Main index displaying all repositories (auto-generated from category files)12- **`categories/`**: Individual category files that are concatenated to build README.md13- **`scratchpad.md`**: Staging area for new repositories to be added to the index14- **`scripts/build_readme.py`**: Script to regenerate README.md from category files15- **`scripts/build_site.py`**: Unified build pipeline (README + repos.json + tagged_repos.json + site state tracking)16- **`scripts/update_repo_tracking.py`**: Script to update repo counts and repos.json17- **`data/repos.json`**: Programmatic representation of the index (category-based)18- **`data/tag_rules.json`**: Auto-tagging rules mapping categories and keywords to tags19- **`data/site_state.json`**: Tracks what has been deployed to the site (repo manifest, change history)20- **`docs/`**: Astro build output (deployed via GitHub Pages)21- **`images/`**: Category banner images2223## Astro Site Architecture2425The deployed site is built with **Astro** (static site generator). Source files live in `src/`:2627- **`src/layouts/BaseLayout.astro`**: Shared HTML shell (head, fonts, CSS import)28- **`src/components/Nav.astro`**: Shared top navigation (single source of truth)29- **`src/components/Footer.astro`**: Shared footer30- **`src/styles/global.css`**: All site styles31- **`src/data/categoryIcons.ts`**: Shared category icon SVGs32- **`src/pages/`**: All page templates (Astro generates `docs/` from these)33 - `index.astro` — Main index with search/filter/pagination34 - `about/index.astro` — About page35 - `plugins/index.astro` — Plugins Marketplace page36 - `ideas/claude-spaces/` — Claude Spaces landing + subpages37 - `ideas/non-code/` — Non-Code Uses landing + subpages38 - `repos/[...slug].astro` — Dynamic route generating all repo detail pages from `tagged_repos.json`39- **`public/`**: Static assets copied to build output (images, JSON data files)40- **`astro.config.mjs`**: Astro config (outputs to `docs/`)4142**To add/edit nav links, footer, or layout**: Edit the component in `src/components/` — changes apply to all 135+ pages automatically.4344**To add a new static page**: Create a `.astro` file in `src/pages/` using `BaseLayout`.4546## Modular Category System4748The index is built from individual category files stored in the `categories/` directory. This modular approach allows for:49- Easier maintenance of individual sections50- Clear ownership of category content51- Simpler diffs when reviewing changes52- Parallel editing of different categories5354### Category Files5556Files are named with numeric prefixes to control concatenation order:5758```59categories/60 00-header.md # Banner, intro, understanding section61 01-systems-administration.md62 02-productivity.md # Productivity & Planning63 02a-legal.md # Legal64 02b-health.md # Health & Wellbeing65 02c-communications.md # Communications & Writing66 02d-financial.md # Financial Planning67 02e-career.md # Career68 02f-business.md # Business69 02g-privacy.md # Privacy & Anonymity70 03-research.md71 04-argument-perspective.md72 05-context-personalization.md73 06-multi-agent-tooling.md74 07-mcp.md75 08-plugins.md # GENERATED — see below, do not hand-edit76 09-slash-commands.md77 10-misc.md78```7980### `08-plugins.md` is generated, not authored8182`scripts/sync_marketplace.py` fetches `.claude-plugin/marketplace.json` from83`danielrosehill/Claude-Code-Plugins` and regenerates `categories/08-plugins.md`84wholesale. Hand-written entries there are silently destroyed on the next sync or85build.8687To get a plugin into the index, register it in the **marketplace repo** — it then88flows here automatically. A plugin repo that is not in the marketplace has no89route into the Plugins category; file it under its topical category instead, or90add it to the marketplace first.9192### Building the Site9394After editing category files, run the full build pipeline:9596```bash97npm run build98```99100This runs two steps:1011. **`npm run build:data`** (`python3 scripts/build_site.py`): Builds README.md, repos.json, tagged_repos.json, copies data to `public/`1022. **`npm run build:site`** (`astro build`): Generates all HTML pages from Astro templates into `docs/`103104For development with hot reload: `npm run dev`105106To run just the data pipeline (no site rebuild): `python3 scripts/build_site.py`107108## Workflow for Adding New Repositories109110### 1. New Repository Collection111112When Daniel adds repository URLs to `scratchpad.md`, follow this workflow:1131141. **Read the scratchpad** to identify new repositories1152. **Check for duplicates**: Verify each repository isn't already in the index1163. **Fetch repository information**: Use WebFetch to retrieve the README.md for each repository1174. **Extract key information**:118 - Repository name119 - Primary purpose/functionality120 - Key features (if notable)121 - Category classification122123### 2. Categorization124125**Important**: Each repository should belong to **one primary category only**. While some repositories may touch multiple domains, choose the most appropriate single category to avoid duplication and maintenance complexity.126127When adding new repositories, consider whether they fit an existing category or whether a new category/subcategory should be created. The goal is to group repositories that explore Claude Code or the agent workspace model for similar purposes.128129### 3. Editing the Correct Category File130131**Always edit the specific category file**, not README.md directly:1321331. Identify the correct category file in `categories/`1342. Add the repository entry in alphabetical order within that file1353. Run `npm run build` to rebuild README, site data, and Astro site136137### 4. Entry Format138139Each repository entry should follow this format:140141```markdown142### Repository Name143[](https://github.com/danielrosehill/Repository-Name)144145Brief description of the repository's purpose and key features (1-2 sentences).146147---148```149150### 5. Alphabetical Ordering151152Within each category file, maintain **strict alphabetical order by repository name**. When adding new entries:1531541. Find the alphabetical position within the category file1552. Insert the entry in the correct location1563. Verify ordering after insertion157158### 6. Description Guidelines159160Descriptions should be:161- **Concise**: 1-2 sentences maximum162- **Informative**: Clearly state what the repository does163- **Actionable**: Help users understand if this resource is relevant to their needs164- **Professional**: Use clear, technical language without marketing fluff165166### 7. Duplicate Handling167168When processing scratchpad.md:169- If a repository is already in any category file, skip it silently170- Do not remove it from scratchpad.md (Daniel manages scratchpad clearing)171- Note duplicates in your response to Daniel for awareness172173## Quality Standards174175### Repository Descriptions176177- Begin with the primary function/purpose178- Include key differentiating features179- Avoid redundant phrases like "A tool for..." or "This repository contains..."180- Be specific about what the tool does181182### Category Assignment183184- Assign repositories to the **single most appropriate category**185- If a repository spans multiple categories, choose the primary focus186- Suggest new categories/subcategories if multiple repositories don't fit existing ones187188### Consistency189190- Use consistent terminology across similar repositories191- Match the tone and style of existing descriptions192- Maintain parallel structure in descriptions within the same category193194## WebFetch Usage195196When gathering information about new repositories:197198```199WebFetch URL: https://github.com/danielrosehill/[repo-name]200Prompt: "Summarize the purpose and key features of this repository in 1-2 concise sentences suitable for an index listing."201```202203## Git Operations204205After updating category files:2062071. Run `npm run build` to regenerate README.md and rebuild the Astro site2082. Review changes to ensure accuracy2093. Commit with descriptive message: "Add [repository names] to index"2104. Push changes to GitHub (pre-push hooks will update tracking data)211212## Common Tasks213214### Adding a Single Repository2152161. Read scratchpad.md2172. WebFetch the repository README2183. Identify the correct category file2194. Insert entry in alphabetical order within that file2205. Run `npm run build`2216. Commit and push222223### Batch Adding Multiple Repositories2242251. Read scratchpad.md2262. WebFetch all repository READMEs in parallel2273. Categorize all repositories2284. Edit appropriate category files, maintaining alphabetical order2295. Run `npm run build`2306. Commit with list of added repositories231232### Reorganizing Categories233234If Daniel requests category restructuring:2351. Document the new category structure2362. Create new category files or rename existing ones (maintain numeric prefixes)2373. Move repositories between category files as needed2384. Maintain alphabetical ordering within each category2395. Run `npm run build`2406. Update this CLAUDE.md if the structure changes significantly2417. Commit with descriptive reorganization message242243### Creating a New Category2442451. Create a new file in `categories/` with appropriate numeric prefix2462. Add category header with title and optional image reference2473. Add repository entries in alphabetical order2484. Run `npm run build`249250## JSON Data Files251252- `data/repos.json` - Category-based index (generated by `build_site.py`)253- `docs/tagged_repos.json` - Tag-based index for the site (generated by `build_site.py`)254- `data/site_state.json` - Deployment state tracking with change history255- `data/tag_rules.json` - Configurable rules for auto-tagging repos256257To regenerate all data and rebuild the site: `npm run build`258259## Badge System260261Repositories can have multiple badges to indicate their type and purpose:262263| Badge | Color | Purpose |264|-------|-------|---------|265| `Agent Workspace` | Purple | Pre-configured agent workspaces for domain-specific workflows |266| `Agent Config` | Orange | Multi-agent configurations and orchestration |267| `Slash Commands` | Cyan | Slash command collections |268| `Non-Code` | Teal | Non-development use cases |269| `Light Touch` | Light gray | Minimal configuration/simple utilities |270| `Template` | Green | Forkable templates |271| `LAN Manager` | Blue | Network/LAN management |272| `Diary` | Pink | Diary/planning workspaces |273| `Health` | Red | Health-related workspaces |274| `Job Search` | Gold | Career/job search tools |275| `Rig` | Gray | Hardware planning |276| `Therapy` | Lavender | Therapy tracking |277| `Budget` | Gold | Budget/financial workspaces |278| `Legal` | Navy | Legal research and case management |279| `Forensics` | Dark red | Digital forensics and evidence handling |280281Badge format example:282```markdown283284```285286## Repository Discovery287288In addition to the scratchpad workflow, run the discovery script to find public289repos that are not yet in the index:290291```bash292python3 scripts/discover_new_repos.py # names matching /claude/293python3 scripts/discover_new_repos.py --all # every public repo294```295296Results are written to `data/unindexed_repos.json`.297298Two traps this script has already fallen into, both fixed — do not reintroduce299either:300301- **`gh repo list --limit` must exceed the account's total public repo count**302 (>1050 as of Aug 2026). `gh` truncates silently, so a limit of 500 returned a303 plausible-looking list while hiding every older candidate.304- **The default pattern only matches `claude` in the repo *name*.** Genuinely305 Claude Code-related repos named otherwise — `Document-As-You-Go`,306 `Aliexpress-Shopper`, `Android-Media-Importer`, `Israel-Phonebook-Manager` —307 are invisible to it. Periodically re-run with `--all`, or grep descriptions for308 `claude|agentic|slash command|subagent|agent workspace`, and triage by hand.309310Compare results against the category files before adding anything; the script311does not know which repos were deliberately excluded.312313## The deployed site314315Live at **https://claude.danielrosehill.com**, deployed by **Vercel** on push to316`main` (`vercel.json` sets `outputDirectory: docs`). `docs/` is the committed317Astro build output — so **run `npm run build` and commit the result**; this repo318is not one where the build can be left to CI.319320`npm run build` is three steps: `build:data` (the Python pipeline that regenerates321`README.md`, the split markdown pages and `data/*.json`), `build:site` (Astro), and322`check:links`, which fails the build on a broken internal link.323324**Repo detail pages come from Astro, not Python.** `src/pages/repos/[...slug].astro`325owns `/repos/<slug>/`. `build_site.py` used to render those pages too — 237 of them,326from a duplicate HTML template — and `astro build` then overwrote every one. The327Python copies still carried the pre-rename slug and none of the SEO metadata, and328editing that template had no visible effect whatsoever. Removed 2026-08-10. If you329need to change how a repo page looks, the `.astro` file is the only place.330331### SEO and machine-readable surfaces332333`astro.config.mjs` sets `site:` — this is load-bearing. Without it canonical URLs,334Open Graph URLs and `@astrojs/sitemap` all silently produce nothing.335336`BaseLayout.astro` takes `description`, `image`, `isHome` and `schema` props and337emits the canonical link, Open Graph and Twitter tags, and JSON-LD. **Pass a338`description` on every new page** — the fallback is the site-wide one, which is339fine for a stray page but poor if it ends up on many.340341| Surface | Source | Notes |342| --- | --- | --- |343| `/sitemap-index.xml` | `@astrojs/sitemap` | every page, generated |344| `/robots.txt` | `public/robots.txt` | static; points at the sitemap |345| `/llms.txt` | `src/pages/llms.txt.ts` | generated from `tagged_repos.json`, cannot drift |346| `/browse/` | `src/pages/browse/index.astro` | static listing of every repo |347| `/og-image.png` | `public/` | 1200×630 |348349**Why `/browse/` exists:** the home page renders its repo list client-side from350`tagged_repos.json`, so a crawler that does not run JS sees only "Loading351repositories…" and finds no repo links at all. `/browse/` is the static352counterpart that puts all 236 in the initial HTML. Keep it working; do not fold it353into the client-rendered index.354355### Dates: both are persisted, deliberately356357`created_date` (real GitHub creation date, `data/repo_created_dates.json`, filled358by `scripts/fetch_created_dates.py`) drives the site's default "Newest" sort.359`added_date` (`data/repo_added_dates.json`) is when the repo entered this index.360361Both files exist because both values used to be recomputed as *today* on every362build whenever a lookup missed — `site_state.json` history is capped at 50 entries,363so older repos fell off and got restamped. On 2026-08-10 that had left 125 of 236364repos claiming they were created that day, which made the default sort meaningless.365Never reintroduce a `datetime.now()` fallback that is not written back to disk.366367After adding repos, run `python3 scripts/fetch_created_dates.py` before building,368or the new entries sort to the top with a fabricated date.369370## This repo's own name371372Canonical slug: **`danielrosehill/Claude-Code-Projects-Index`**. It has been373renamed twice, and both former slugs still resolve via GitHub's rename redirect:374375| Former slug | Status |376| --- | --- |377| `Claude-Code-Repos-Index` | redirects |378| `Claude-Agent-Blueprints` | redirects |379380The redirects make staleness invisible — a clone whose `origin` points at an old381slug fetches and pushes perfectly well, and `gh api repos/<old-slug>` returns382`200`. Resolve `.full_name` before trusting any slug. Consequences already hit:383the local checkout sat 130 commits behind on a stale remote URL, and `10-misc.md`384carried an entry for "Claude Agent Blueprints" — this repo listing *itself* under385a dead name, with a description that had drifted. All three former names are in386`SKIP_REPOS` in `scripts/discover_new_repos.py`.387388The local working copy's directory name may also lag the repo name; it is not389authoritative.390391## Notes392393- All repositories indexed here are public GitHub repositories394- This index focuses specifically on Claude Code-related projects395- Daniel maintains a separate master index for all GitHub projects (linked in README.md)396- The index serves both as documentation and as a discovery tool for the community397- **Always edit category files, never README.md directly** (it is auto-generated)398
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| bagisto/bagistoCLAUDE.md · 28k | CLAUDE.md | setupbuildteststyle+5 | 100/100 | 7 days ago | |
| Adit-Jain-srm/NightmareNetCLAUDE.md · 46 | CLAUDE.md | buildtestlint-formatstyle+6 | 100/100 | 14 days ago | |
| tyrchen/geektime-bootcamp-aiw7/genslides/backend/CLAUDE.md · 230 | CLAUDE.md | testlint-formatstylearch+6 | 100/100 | 9 days ago | |
| dotCMS/corecore-web/CLAUDE.md · 949 | CLAUDE.md | teststylearchtesting-strategy+3 | 100/100 | 14 days ago | |
| nimbalyst/nimbalystpackages/android/CLAUDE.md · 1.5k | CLAUDE.md | setupbuildstylearch+2 | 100/100 | 14 days ago | |
| microsoft/playwrightCLAUDE.md · 95k | CLAUDE.md | buildtestlint-formatstyle+7 | 100/100 | 7 days ago | |
| tphakala/birdnet-goCLAUDE.md · 1.6k | CLAUDE.md | buildtestlint-formatstyle+8 | 100/100 | today | |
| livewire/livewireCLAUDE.md · 24k | CLAUDE.md | setupbuildteststyle+4 | 100/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/danielrosehill-claude-code-projects-index-claude)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.