2.3 KiB
Marketplace Large
A large marketplace fixture with 6+ plugins, deep CLAUDE.md content, multiple hook event types, multiple MCP servers, and extensive shared configuration. Intended to produce a strictly larger total-estimated-tokens count than the small or medium fixtures.
Plugins
- plugin-alpha — linting and static analysis
- plugin-beta — code formatting
- plugin-gamma — test runner and coverage
- plugin-delta — release automation and tagging
- plugin-epsilon — configuration auditing
- plugin-zeta — security scanning
- plugin-eta — documentation generation
- plugin-theta — dependency management
Commands
npm run build— Build all workspace packagesnpm test— Run the entire test suitenpm run lint— Run all lintersnpm run format— Auto-format all source filesnpm run release— Cut a new releasenpm run audit— Security audit of dependenciesnpm run docs:build— Build documentation sitenpm run docs:serve— Serve documentation locallynpm run typecheck— Type-check without emittingnpm run clean— Remove build artifacts
Architecture
The marketplace hosts multiple plugins, each self-contained. Inter-plugin communication happens via well-defined contracts; no plugin imports from another directly. Shared primitives live in a workspace package consumed by every plugin.
Conventions
- Conventional Commits with plugin scope:
feat(plugin-name): description - Semantic versioning per plugin, coordinated via a release-please-style flow
- Tests live alongside implementation files as
*.test.mjs - Zero runtime npm dependencies in hooks and scanners where possible
Tooling
- Node.js ≥ 18 (ES Modules, node:test)
- TypeScript strict mode
- ESLint + Prettier
- Shared git hooks via
hooks/hooks.json
Release Process
Each plugin version-bumps independently. The marketplace root README and
per-plugin README are updated in the same commit as the version bump. A
tag of the form {plugin}-v{semver} is pushed to Forgejo alongside the
main branch commit.
Shared Patterns
Shared conventions and helper patterns are defined in the imported files below. Each import is a logical slice: one for naming conventions, one for error-handling patterns, one for test patterns.
@.claude/shared-naming.md @.claude/shared-errors.md @.claude/shared-tests.md