Skip to content
Development
Skill

/aminet-browser

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.

From plugin
gsd-skill-creator
71102 skills61 agents26 commands1 MCP

Claude Code

$ npx -y skills add Tibsfox/gsd-skill-creator --skill aminet-browser --agent claude-code

SKILL.md

aminet-browser.SKILL.md
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:**

import { searchPackages } from './search.js';

const results = searchPackages(indexEntries, 'deluxe paint');
// Sorted by relevance score, name matches weighted 3x

**Browse by category:**

import { buildCategoryTree, listPackages } from './category-browser.js';

const tree = buildCategoryTree(indexEntries);
const gfxPackages = listPackages(indexEntries, 'gfx/edit');

**Get package detail:**

import { buildPackageDetail } from './package-detail.js';

const detail = buildPackageDetail(indexEntry, readmeData, mirrorState);
// Unified view with all metadata sources

**Manage collections:**

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.

Read more
@tibsfox
Ships withgsd-skill-creator

An adaptive learning and coprocessor architecture for Claude Code, built as an extension to GSD (open-gsd)

71102 skills61 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
71
Star history of Tibsfox/gsd-skill-creator on GitHub, a chart by star-history.com

Other skills on gsd-skill-creator.

aminet-index

aminet-index

Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when…

aminet-mirror

aminet-mirror

Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about aminet-browser.

Which coding agents can use aminet-browser?
aminet-browser installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.