Skip to content

Research: Marketplace packaging for easier installation #49

Description

@aaronsb

Problem

Installing claude-code-ways currently requires cloning a git repo and symlinking into ~/.claude/. This is fine for contributors who iteratively refine ways, but creates a barrier for users who just want the guidance.

Projects like obra/superpowers distribute via Claude Code's plugin marketplace (/plugin install superpowers), making adoption trivial.

Options to Explore

1. Claude Code Plugin

  • Package as a .claude-plugin/ with plugin.json
  • Distribute via plugin marketplace
  • Question: Can hooks and ways bundle into a plugin, or only skills/commands?

2. npm Package

  • npx @aaronsb/claude-ways init scaffolds hooks/ways/ from a published package
  • Could support selective domain install: npx @aaronsb/claude-ways init --domains softwaredev,meta
  • Update mechanism: npx @aaronsb/claude-ways update pulls latest without overwriting local customizations

3. Git Subtree

  • git subtree add --prefix=.claude/hooks/ways https://github.com/aaronsb/claude-code-ways.git main
  • Preserves ability to contribute back
  • More complex for non-git users

4. Installer Script

  • curl -sSL https://raw.githubusercontent.com/.../install.sh | bash
  • Lowest friction but least controllable
  • Could detect existing installation and offer upgrade

Key Requirements

  • Selective install: Pick domains (softwaredev, itops, meta) rather than all-or-nothing
  • Update without data loss: Local project ways and customizations must survive updates
  • Version pinning: Users should be able to pin a version and update deliberately
  • Binary distribution: The way-match binary needs cross-platform builds (already has Linux/macOS/ARM)

Context

This came out of a comparison with obra/superpowers. Their plugin marketplace distribution is a major adoption advantage. We should explore whether our hook-heavy architecture is compatible with the plugin format, or whether an alternative distribution mechanism is needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestresearchResearch and exploration tasks

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions