add skills
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Skills
|
||||
|
||||
This directory contains Claude Code skills for working with the ajet-industries monorepo.
|
||||
|
||||
## Available Skills
|
||||
|
||||
### commitly
|
||||
Explains how to use the commitly tool for committing and pushing changes across multiple git repositories in the monorepo.
|
||||
|
||||
**Invoke with:** Reference the `skills/commitly.md` file when needing to commit/push across multiple repos.
|
||||
|
||||
## What are Skills?
|
||||
|
||||
Skills are reusable documentation and instructions that help Claude Code understand how to work with specific tools and workflows in this repository.
|
||||
|
||||
## Creating New Skills
|
||||
|
||||
To create a new skill:
|
||||
|
||||
1. Create a new `.md` file in this directory
|
||||
2. Include clear sections:
|
||||
- What the tool/workflow is
|
||||
- Usage examples
|
||||
- How it works
|
||||
- When to use it
|
||||
- Architecture context (if relevant)
|
||||
3. Update this README with the new skill
|
||||
|
||||
## Skill Guidelines
|
||||
|
||||
- Keep skills focused on a single tool or workflow
|
||||
- Include practical examples
|
||||
- Explain the "why" not just the "how"
|
||||
- Reference relevant architecture documentation
|
||||
- Include error handling and troubleshooting info
|
||||
@@ -0,0 +1,68 @@
|
||||
# Commitly Skill
|
||||
|
||||
Use this skill when you need to commit and/or push changes across multiple git repositories in the monorepo.
|
||||
|
||||
## What is Commitly?
|
||||
|
||||
Commitly is a Babashka script located at `commitly/commitly` that commits and pushes changes across all modified git subrepositories in the ajet-industries monorepo.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
./commitly/commitly [-p] <commit-message>
|
||||
```
|
||||
|
||||
### Options
|
||||
|
||||
- `-p` - Push changes after committing. If no commit message is provided with `-p`, it will skip committing and just push all subrepos.
|
||||
|
||||
### Examples
|
||||
|
||||
**Commit all modified repos with a message:**
|
||||
```bash
|
||||
./commitly/commitly "fix: update configuration"
|
||||
```
|
||||
|
||||
**Commit and push all modified repos:**
|
||||
```bash
|
||||
./commitly/commitly -p "feat: add new feature"
|
||||
```
|
||||
|
||||
**Just push all repos (no commit):**
|
||||
```bash
|
||||
./commitly/commitly -p
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **Discovery**: Scans the current directory for subdirectories containing `.git` folders
|
||||
2. **Detection**: Checks each repository for uncommitted changes using `git status --porcelain`
|
||||
3. **Commit**: Runs `git add -A` and `git commit -m "<message>"` for each modified repo
|
||||
4. **Push**: If `-p` flag is present, runs `git push` for each successfully committed repo (or all repos if no message provided)
|
||||
|
||||
## When to Use
|
||||
|
||||
Use commitly when you've made changes across multiple services (service-manager, www, gateway, etc.) and want to commit them all with the same message, rather than cd-ing into each directory individually.
|
||||
|
||||
## Architecture Context
|
||||
|
||||
The monorepo contains multiple independent git repositories:
|
||||
- `service-manager/` - Orchestration service
|
||||
- `www/` - Dashboard website
|
||||
- `gateway/` - Nginx reverse proxy
|
||||
- `commitly/` - This tool itself
|
||||
- `just-vibes/` - Other projects
|
||||
|
||||
Each has its own `.git` directory and is deployed independently via Gitea Actions when pushed to main.
|
||||
|
||||
## Error Handling
|
||||
|
||||
- If any repository fails to commit, commitly exits with code 1 and reports which repos failed
|
||||
- If any repository fails to push (when `-p` is used), commitly exits with code 1 and reports which repos failed
|
||||
- Repos are processed independently - one failure doesn't stop others from being processed
|
||||
|
||||
## Requirements
|
||||
|
||||
- Babashka must be installed (`bb` command available)
|
||||
- The script must be executable: `chmod +x commitly/commitly`
|
||||
- Each subrepo must have a git remote configured for pushing
|
||||
Reference in New Issue
Block a user