From 16b8bb48a7e470b84db8ce28861f58b6b3c99658 Mon Sep 17 00:00:00 2001 From: Mike Bailey Date: Sat, 27 Dec 2025 14:29:48 +1100 Subject: [PATCH 1/4] feat: alphabetize top-level commands in mt --help output MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reordered help text to display commands alphabetically: cd, deps, doctor, edit, git, module, package, reload, update. Subcommand order under git/module/package preserved as logically ordered. Completes feat-003. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- shell/mt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shell/mt b/shell/mt index 864b742..2c9a8cf 100644 --- a/shell/mt +++ b/shell/mt @@ -154,6 +154,8 @@ mt() { echo echo "Core Commands:" echo " cd [TARGET] Change to MT_ROOT, module, package, or executable" + echo " deps [--install] Check metool dependencies (--install to auto-install on macOS)" + echo " doctor [OPTIONS] Run system health diagnostics" echo " edit TARGET Edit function, executable or file" echo " git Git repository management" echo " add [REPO] [ALIAS] Add repository to .repos.txt manifest" @@ -177,10 +179,8 @@ mt() { echo " uninstall PKG [OPTS] Uninstall package (remove symlinks)" echo " new NAME [PATH] Create new package from template" echo " service CMD PKG Manage package services" - echo " update Update metool from git" echo " reload Reload metool" - echo " deps [--install] Check metool dependencies (--install to auto-install on macOS)" - echo " doctor [OPTIONS] Run system health diagnostics" + echo " update Update metool from git" echo " -h, --help Show this help message and exit" echo ;; From e9421c9fbee5c841f18ebcae391ac46dba16bb1b Mon Sep 17 00:00:00 2001 From: Mike Bailey Date: Sat, 27 Dec 2025 14:30:52 +1100 Subject: [PATCH 2/4] docs: update metool descriptions to reflect evolved purpose MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated README.md and SKILL.md to accurately reflect that metool has evolved from a "shell environment" tool into a general-purpose modular code organization system. Changes: - README.md: Changed title from "Propagation tray for Ideas" to "Modular Code Organization" - README.md: Updated opening description to remove shell environment and propagation/transplanting metaphor - README.md: Updated Real-World Value section to reflect full scope - SKILL.md: Changed description from "shell environments" to "modular code organization" - SKILL.md: Updated Overview to remove propagation metaphor and show full scope These changes reflect the reality of 230+ packages covering AI systems, media tools, cloud infrastructure, and more—not just shell scripts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- README.md | 56 +++++++++++++++++++++++++++++++++---------------------- SKILL.md | 4 ++-- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 37f4752..16ddef5 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ alias: metool --- -# MeTool (mt) – A Propagation tray for Ideas +# MeTool (mt) – Modular Code Organization ![A place for my code](docs/images/20250721011600.png) -MeTool (`mt`) is a lightweight, modular system designed to capture, organize, -and evolve my shell environment. Like a gardener's propagation tray for -seedlings, it provides the perfect environment where scripts, functions, and -tools can take root and grow before being transplanted into standalone -projects. +MeTool (`mt`) is a modular system for organizing all your code, scripts, and configuration. Each piece of functionality lives in its own package with a clear structure, making it easy to find, edit, share, and evolve your tools over time. + +Whether you're capturing a quick shell hack, building a complete application, or managing system services, metool keeps everything organized and accessible—for both humans and AI assistants. + +Packages can include a `SKILL.md` file that gives AI assistants like Claude Code the knowledge to help you work with that package's tools and workflows. ## Key Features @@ -21,34 +21,46 @@ projects. ## Core Commands -- `cd` - Change to mt root or specified target -- `components` - List all package components (bin, shell, config, etc.) +- `cd` - Change to MT_ROOT, module, package, or executable - `deps` - Check metool dependencies (--install to auto-install on macOS) -- `disable` - Disable systemd service(s) while preserving service files +- `doctor` - Run system health diagnostics - `edit` - Edit function, executable or file -- `enable` - Enable systemd service(s) from a package - `git` - Git repository management commands: - - `clone` - Clone a git repository to a canonical location (or show status if already cloned) + - `add` - Add repository to .repos.txt manifest + - `clone` - Clone a git repository to a canonical location + - `pull` - Pull repositories from repos.txt manifest file + - `push` - Push local commits for repositories in manifest - `repos` - List git repositories - - `sync` - Sync repositories from repos.txt manifest file - - `trusted` - Check if repository is trusted or list patterns -- `install` - Symlink package directories: bin, config, shell -- `modules` - List all metool modules (collections of packages) -- `packages` - List all metool packages with their parent modules + - `trusted` - Check if repository is trusted +- `module` - Module management commands: + - `list` - List modules in working set + - `add` - Add module to working set + - `remove` - Remove module from working set + - `edit` - Edit module + - `update` - Update module(s) from git remote +- `package` - Package management commands: + - `list` - List packages in working set + - `add` - Add package to working set + - `remove` - Remove package from working set + - `edit` - Edit package + - `install` - Install package components + - `uninstall` - Uninstall package (remove symlinks) + - `new` - Create new package from template + - `service` - Manage package services - `reload` - Reload metool - `update` - Update metool from git Use `-h` or `--help` for command usage. + ## Real-World Value -- **Capture Ideas Fast**: Turn quick shell hacks into organized, reusable tools -- **Share Selectively**: Keep private scripts private, share what's useful -- **Evolve Naturally**: Start simple, refactor safely, extract when ready -- **Stay Organized**: Never lose track of where that useful function lives +- **Capture Ideas Fast**: Turn quick hacks into organized, reusable packages +- **Share Selectively**: Keep private packages private, share what's useful +- **Stay Organized**: Never lose track of where useful code lives +- **Works at Any Scale**: From shell functions to complete applications with systemd/launchd services -MeTool brings structure to shell creativity while keeping everything accessible -and hackable. +MeTool brings structure to code while keeping everything accessible and hackable. ## Prerequisites diff --git a/SKILL.md b/SKILL.md index b706bc9..71307dd 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,13 +1,13 @@ --- name: metool -description: Package management system for organizing, installing, and managing shell scripts, dotfiles, and development tools. This skill should be used when creating, modifying, reviewing, or installing metool packages, working with metool commands and package structure, or creating Claude Code skills for metool packages. +description: Package management for modular code organization. This skill should be used when creating, installing, or modifying metool packages, working with package structure conventions, or adding Claude Code skills to packages. --- # Metool Package Management ## Overview -Metool (mt) is a modular system for managing shell environments through packages. It provides a "propagation tray for ideas" - a place where scripts, functions, and tools can be organized, tested, and evolved before becoming standalone projects. +Metool (mt) organizes code through packages - self-contained units with scripts, functions, configuration, and documentation. Packages are organized in modules and installed via GNU Stow symlinks. From shell utilities to complete applications, all code follows the same structure. ## When to Use This Skill From ef144d511ea3009e8fbc1aad1e0570a68b380e6e Mon Sep 17 00:00:00 2001 From: Mike Bailey Date: Sat, 27 Dec 2025 14:34:35 +1100 Subject: [PATCH 3/4] feat: Add doctor command to bash completion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated shell/completions/mt.bash to include doctor in the mt_commands list. Commands are now alphabetized in the completion list: cd, deps, doctor, edit, git, module, package, reload, update. Closes feat-004 of MT-47 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- shell/completions/mt.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/completions/mt.bash b/shell/completions/mt.bash index 42d1bfe..98af0ae 100644 --- a/shell/completions/mt.bash +++ b/shell/completions/mt.bash @@ -51,7 +51,7 @@ _mt_completions() { local prev="${COMP_WORDS[COMP_CWORD - 1]}" # Get all mt commands from libexec - local mt_commands="cd edit git module package reload update deps" + local mt_commands="cd deps doctor edit git module package reload update" if [[ -d "${MT_ROOT}/libexec" ]]; then local libexec_cmds=$(find "${MT_ROOT}/libexec" -type f -name "mt-*" -exec basename {} \; | sed 's/^mt-//') mt_commands+=" ${libexec_cmds}" From 3eed528f1a896eb487efa80a5ad2fd00fb7c951d Mon Sep 17 00:00:00 2001 From: Cora 7 Date: Sat, 27 Dec 2025 14:38:45 +1100 Subject: [PATCH 4/4] docs: restore "Propagation Tray" tagline and use first-person voice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Keep original tagline "A Propagation Tray for Ideas" - Change "your code" to "my code" for authentic personal voice - Minor grammar tweaks for flow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 16ddef5..f267db1 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ alias: metool --- -# MeTool (mt) – Modular Code Organization +# MeTool (mt) – A Propagation Tray for Ideas ![A place for my code](docs/images/20250721011600.png) -MeTool (`mt`) is a modular system for organizing all your code, scripts, and configuration. Each piece of functionality lives in its own package with a clear structure, making it easy to find, edit, share, and evolve your tools over time. +MeTool (`mt`) is a modular system for organizing all my code, scripts, and configuration. Each piece of functionality lives in its own package with a clear structure, making it easy to find, edit, share, and evolve my tools over time. -Whether you're capturing a quick shell hack, building a complete application, or managing system services, metool keeps everything organized and accessible—for both humans and AI assistants. +Whether capturing a quick shell hack, building a complete application, or managing system services, metool keeps everything organized and accessible—for both humans and AI assistants. -Packages can include a `SKILL.md` file that gives AI assistants like Claude Code the knowledge to help you work with that package's tools and workflows. +Packages can include a `SKILL.md` file that gives AI assistants like Claude Code the knowledge to help work with that package's tools and workflows. ## Key Features