Thank you for your interest in contributing to Wizard-AI! This document explains how to add new skills, CLI wrappers, and improvements to the ecosystem.
wizard-ai/
├── .agents/ # IDE configs (.claude, .cursor) and autonomous workflows
├── bin/ # CLI wrapper scripts installed to ~/.local/bin/
├── docs/ # Reference guides, architecture specs, and wikis
├── packages/ # Standalone projects, frameworks, and tools
├── skills/ # SKILL.md definitions for AI agents
├── setup.sh # Automated installation script
└── README.md # Main documentation
To maintain a clean and sustainable ecosystem, all new installations, skills, and tools must adhere to strict boundaries:
.agents/: MUST contain all IDE-specific configurations (.claude,.cursor,.pi, etc.) and autonomous agent workflows. Do NOT place agent configs at the root.docs/: Central knowledge base (wiki/,repo-docs/,graphify-out/). See Architecture Specs for full details.packages/: Standalone projects, npm modules, frameworks, and external tools (e.g., an MCP server, a React app). Do NOT initialize genericpackage.jsonprojects at the root..cache/: Temporary files, raw data dumps, and cloned repositories (.local-clones/).skills/: Strictly reserved forSKILL.mddefinitions and their immediately related scripts/assets.- Root Directory: Must remain pristine. Only global configs (
setup.sh,AGENTS.md,README.md).
# Example: bin/ai-newtool
#!/usr/bin/env bash
# ai-newtool — Short description
# Source: https://github.com/author/repo
set -euo pipefail
# Check prerequisites
if ! command -v newtool &>/dev/null; then
echo "❌ newtool not found."
echo " Install: uv tool install newtool"
exit 1
fi
exec newtool "$@"The skill MUST have YAML frontmatter:
---
name: skill-name
description: "Concise description explaining WHEN to use this skill"
---
# /skill-name
Detailed description...
## Usage
...
## Examples
...Important rules for skills:
- ❌ DO NOT hardcode absolute paths — use
$WIZARD_AI_DIR,$HOME,~ - ❌ DO NOT include API keys or secrets of any kind
- ✅ Document both the base command and the
ai-*wrapper - ✅ Include practical examples
Add the installation in the appropriate block:
# For Python tools:
uv tool install packagename
# For GitHub repositories:
if [ ! -d "$HOME/.wizard-ai/repo-name" ]; then
git clone --quiet https://github.com/author/repo "$HOME/.wizard-ai/repo-name"
fiAdd a line in the appropriate section of the help menu.
ai-sync-skills- Bash scripts: use
set -euo pipefailat the top - Error messages: write to
stderr(>&2) - Icons: ✅ success, ❌ error,
⚠️ warning, 🔄 in progress - Comments: describe the "why", not the "what"
Open a GitHub Issue including:
- Output of the failing command
- Output of
ai-help(to see what's installed) - Operating system and architecture (
uname -a)
This project uses a dual-mode workflow depending on your role.
If you have push access to the repository:
- Run
ai-branch scanto detect your role. - Create a branch:
ai-branch feature "my feature" - Make your changes and commit.
- Run
ai-branch pr --auto-merge. This runs quality checks, creates a PR, and auto-merges it intostagingonce CI passes. - Run
ai-release promote --autoto promotestagingtomain. - Run
ai-release minorto publish the official release.
If you are contributing from a fork:
- Fork the repository and clone your fork locally.
- Run
ai-branch scan. It will detect that you areEXTERNALand your target dev branch isstaging. - Create a branch:
ai-branch feature "my feature" - Make your changes, test with
bash -n setup.shandgrep -r "/home/" skills/ bin/. - Run
ai-branch pr --target staging. - Wait for review. The maintainer will review your code, run the CI checks, and if everything is correct, they will merge your PR into
stagingand handle the release.
By contributing, you agree that your code will be released under the AGPLv3 License. You retain the original copyright to the code you wrote in any case.