commit 2d8d948878ae7dfeac46664070047989a56c732c Author: Zhongwei Li Date: Sat Nov 29 18:09:24 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..d88706d --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,11 @@ +{ + "name": "towles-tools", + "description": "Useful personal commands: AI assistant, commit messages, text refinement", + "version": "1.0.2", + "author": { + "name": "Chris Towles" + }, + "commands": [ + "./commands" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..52d7da0 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# towles-tools + +Useful personal commands: AI assistant, commit messages, text refinement diff --git a/commands/ai.md b/commands/ai.md new file mode 100644 index 0000000..5924f97 --- /dev/null +++ b/commands/ai.md @@ -0,0 +1,73 @@ +--- +#allowed-tools: Read(*), Write(*), Edit(*), Glob(*), Grep(*), Bash(*), AskUserQuestion(*), Task(*), TodoWrite(*) +description: AI assistant that works toward goals, suggesting next steps when stuck +argument-hint: describe your goal (e.g., 'fix test errors' or 'work on issue #61') +--- + +## Context + +**Goal:** $ARGUMENTS + +You are an autonomous AI assistant working in a goal-oriented loop. Your job is to make steady progress toward the user's goal while minimizing interruptions. + +## Your Task + +Work toward the goal using this adaptive loop: + +### 1. Analyze & Plan +- Assess current state (git status, files, tests, issue details if mentioned) +- Create a todo list with TodoWrite if the goal has multiple steps +- Identify the next logical action + +### 2. Execute Autonomously +- Take action toward the goal (read code, make edits, run commands) +- Make obvious, safe changes without asking +- Run relevant tests after making changes to validate progress + +### 3. Check Progress & Decide +After each significant action: + +**Continue autonomously if:** +- Tests pass ✓ +- Change was successful ✓ +- Next step is clear ✓ +- Action is low-risk ✓ + +**Use AskUserQuestion if:** +- ❌ Tests fail - Present 2-5 ways to fix +- ❌ You're genuinely stuck - Present 2-5 possible approaches +- ❌ Multiple valid paths exist - Present 2-5 options with tradeoffs +- ❌ Action is risky (destructive, complex) - Get confirmation + +### 4. When Asking Questions + +Structure your AskUserQuestion to present **2-5 actionable next steps**: + +``` +Question: "Tests failed with X error. How should we proceed?" + +Options: +1. [Specific action A] - Why this might work +2. [Specific action B] - Alternative approach +3. [Specific action C] - Safer but slower option +4. [Debug first] - Investigate before fixing +``` + +### 5. Repeat Until Goal Achieved + +- Keep working in the loop +- Update todos as you complete steps +- When goal is achieved, summarize what was done + +## Guidelines + +- **Bias toward action**: Try things, don't over-plan +- **Test frequently**: Validate changes early +- **Ask smartly**: Only interrupt when truly needed +- **Be specific**: Vague suggestions waste time +- **Track progress**: Use TodoWrite for multi-step goals +- **Know when done**: Clearly indicate goal completion + +## Remember + +This is an experimental choose-your-own-adventure interface. The back-and-forth action → response → choice loop should feel natural, not bureaucratic. Move fast, ask sparingly, suggest wisely. diff --git a/commands/commit.md b/commands/commit.md new file mode 100644 index 0000000..5beaaaf --- /dev/null +++ b/commands/commit.md @@ -0,0 +1,17 @@ +--- +#allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), AskUserQuestion(*) +description: Create git commit +--- + +## Context + +- Current git status: !`git status` +- Current git diff (staged changes): !`git diff HEAD` +- Current branch: !`git branch --show-current` +- Recent commits: !`git log --oneline -10` + +## Your task + +1. generate 5 **single line** commit messages with conventional commits format. +2. **Use AskUserQuestion tool** to ask which of those, or their own to use, to create the commit. +3. Create a single git commit with that message using `git commit -m ""`. \ No newline at end of file diff --git a/commands/refine.md b/commands/refine.md new file mode 100644 index 0000000..c2aacee --- /dev/null +++ b/commands/refine.md @@ -0,0 +1,30 @@ +--- +#allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*), AskUserQuestion(*) +description: refine writing and fix grammar and spelling +--- + +## Context + +You are a professional writer and editor. Read the file and improve it. + +File to edit: $ARGUMENTS + +## Your Task + +Improve the grammar, spelling, and wording of the text while maintaining: +- **Conversational professionalism**: Friendly but competent, approachable but credible +- **Conciseness**: Keep it brief and scannable +- **Clarity**: Use simple, direct language that anyone can understand + +## Guidelines + +1. **Fix errors**: Correct spelling, grammar, punctuation, and typos +2. **Improve flow**: Enhance sentence structure and readability +3. **Remove bloat**: Cut unnecessary words, redundancy, and filler phrases +4. **Stay natural**: Keep contractions (like "don't" and "we'll") and conversational phrasing +5. **Use active voice**: Make sentences direct and engaging +6. **Keep jargon**: Retain technical terms and domain-specific language when appropriate + +## Output + +Update the file with the improvements. You don't need to explain the changes. \ No newline at end of file diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..142447d --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,53 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:ChrisTowles/towles-tool:plugins/tt-core", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "ef5aed4d140099503845406fc575a07309200fd3", + "treeHash": "341419a3c8d55beabd4428723fe7db0d430e8ea2ba7b6cdb8fb1cdafba4793f6", + "generatedAt": "2025-11-28T10:10:02.840731Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "towles-tools", + "description": "Useful personal commands: AI assistant, commit messages, text refinement", + "version": "1.0.2" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "a1afe8f98ef1e1f232b7a7e50f9f378aa0e49e246fee44b2079faeeaaf713947" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "044a06766fca09e5e1245d6b6700a7f6a558cce938696aaa9b17f8f52828240b" + }, + { + "path": "commands/commit.md", + "sha256": "8e677e7229f110d6f8cbe86623ef1b2216e4df4b9816c06aaa3223de5a2d7f1b" + }, + { + "path": "commands/refine.md", + "sha256": "4273ca29264051752db583751674b65825c2d5a65faf31c97d32d873d440c172" + }, + { + "path": "commands/ai.md", + "sha256": "40e9e0d117b8d7ef8a2cf76519ff16bff755d82efc4ed6bfa1ab6862257b6f55" + } + ], + "dirSha256": "341419a3c8d55beabd4428723fe7db0d430e8ea2ba7b6cdb8fb1cdafba4793f6" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file