Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching, browsing, or managing package collections.
Scanned 5/27/2026
Install to Claude Code
npx -y skills add Tibsfox/gsd-skill-creator --skill aminet-browser --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Aminet Browser?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tibsfox-aminet-browser)More formats (shields.io, HTML) on the badges page.
---
name: aminet-browser
description: "Aminet search and browse: full-text search, category tree navigation, architecture filtering, package detail, and curated collections. Use when searching, browsing, or managing package collections."
metadata:
extensions:
gsd-skill-creator:
triggers:
intents:
- "aminet.*search"
- "aminet.*browse"
- "aminet.*collection"
- "package.*detail"
files:
- "src/aminet/search.ts"
- "src/aminet/category-browser.ts"
- "src/aminet/package-detail.ts"
- "src/aminet/collection.ts"
- "src/aminet/collection-manager.ts"
contexts:
- "aminet search"
- "package browsing"
- "aminet collections"
threshold: 0.7
token_budget: "1.0%"
version: 1
enabled: true
plan_origin: "242-aminet-integration"
phase_origin: "242"
---
# Aminet Browser
## Purpose
Provides search, browse, and collection management for the Aminet package archive. Supports full-text search with relevance scoring, hierarchical category tree navigation, architecture and OS version filtering, unified package detail views combining INDEX + readme + mirror state, and curated YAML-based collections with CRUD operations.
## Capabilities
- Full-text search with case-insensitive substring matching
- Relevance scoring: name=3x, description=2x, author=1x weighting
- Hierarchical category tree construction from INDEX entries
- Architecture filtering (m68k-amigaos, ppc-amigaos, etc.)
- OS version filtering for compatibility checks
- Unified package detail merging INDEX + readme + mirror state
- Collection manifest with Zod-validated YAML schema
- Import/export collections as YAML files
- 5 starter collections bundled
- Collection manager with DI-first pattern (collectionsDir param)
- Atomic write-then-rename for collection persistence
- Slugified filenames for cross-platform safety
- getCollectionPaths for bulk download integration
## Key Modules
| Module | Purpose |
|--------|---------|
| `src/aminet/search.ts` | Full-text search with relevance scoring (name=3, desc=2, author=1) |
| `src/aminet/category-browser.ts` | Category tree construction, architecture and OS version filtering |
| `src/aminet/package-detail.ts` | Unified package detail merging INDEX + readme + mirror state |
| `src/aminet/collection.ts` | Collection manifest Zod schema, YAML import/export, starter collections |
| `src/aminet/collection-manager.ts` | CRUD operations with atomic persistence, slugified filenames |
## Usage Examples
**Search packages:**
```typescript
import { searchPackages } from './search.js';
const results = searchPackages(indexEntries, 'deluxe paint');
// Sorted by relevance score, name matches weighted 3x
```
**Browse by category:**
```typescript
import { buildCategoryTree, listPackages } from './category-browser.js';
const tree = buildCategoryTree(indexEntries);
const gfxPackages = listPackages(indexEntries, 'gfx/edit');
```
**Get package detail:**
```typescript
import { buildPackageDetail } from './package-detail.js';
const detail = buildPackageDetail(indexEntry, readmeData, mirrorState);
// Unified view with all metadata sources
```
**Manage collections:**
```typescript
import { CollectionManager } from './collection-manager.js';
const mgr = new CollectionManager({ collectionsDir: './collections' });
await mgr.create({ name: 'My Games', packages: ['game/misc/Lemmings.lha'] });
const paths = mgr.getCollectionPaths('my-games');
```
## Dependencies
- Aminet INDEX data (from aminet-index skill)
- Node.js `node:fs` for collection persistence
- Zod for schema validation
- js-yaml for YAML serialization
## Token Budget Rationale
1.0% budget reflects the 5 modules covering search, browse, detail, and collection management. The search scoring algorithm and collection YAML round-trip are well-contained and require moderate context for correct usage.
No comments yet. Be the first to comment!