Contributing¶
Thank you for your interest in contributing to the AI Agent Toolbox. This guide covers how to add skills, adjust the mental model, and submit changes.
Table of Contents¶
- Code of Conduct
- Ways to Contribute
- Building a New Skill
- Modifying the Mental Model
- Modifying Existing Skills
- Pull Request Process
- Commit Conventions
- Review Process
Code of Conduct¶
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold it.
Ways to Contribute¶
| Contribution | Difficulty | Impact |
|---|---|---|
| Fix a typo or broken link | Easy | Low |
| Improve an existing skill's examples | Easy | Medium |
| Report a bug or suggest a feature | Easy | Medium |
| Add a new skill | Medium | High |
| Propose a mental model change | Medium | High |
| Contribute an architecture-thinking profile | Hard | High |
Building a New Skill¶
1. Propose First¶
Open a New Skill Proposal issue before writing anything. Include: - What the skill does - Who would use it - How it relates to existing skills - Approximate token cost (target: under 20K tokens for the full skill)
2. Directory Structure¶
Create your skill in skills/optional/<skill-name>/:
skills/optional/<skill-name>/
├── README.md # Required — guidelines and principles
├── workflows.md # Required — step-by-step procedures
├── examples.md # Recommended — concrete case studies
├── templates.md # Recommended — reusable document formats
└── checklist.md # Optional — quick reference for reviews
3. Naming Conventions¶
- Use
kebab-casefor directory names - Keep names concise but descriptive (e.g.,
api-design, notbest-practices) - Avoid generic names (
misc,stuff,utils)
4. File Requirements¶
README.md (required):
- Start with # Skill Name heading
- Add > **Audience:** AI Agents tag
- Explain the skill's purpose and when to use it
- List principles and guidelines
workflows.md (required): - Step-by-step procedures the agent follows - Clear entry and exit conditions - Error handling / what to do when stuck
5. Register the Skill¶
Add your skill to both:
-
skills/manifest.yaml— machine-readable metadata: -
skills/_index.md— human-readable catalog (add a row to the Optional Skills table)
6. Token Budget¶
Measure your skill's token footprint:
find skills/optional/your-skill -name "*.md" -exec wc -c {} + | tail -1 | awk '{print int(($1+3)/4)}'
Target: under 20K tokens for the full skill package. If larger, consider splitting into a base skill + advanced skill.
Modifying the Mental Model¶
The mental model (core/architecture-thinking.md) is the engine that drives all skills. Changes here affect everything, so they're reviewed carefully.
Three Levels of Change¶
| Level | What | How | Review Bar |
|---|---|---|---|
| Project override | Customize for your project | Create architecture-thinking.local.md in your project root |
No review needed — it's your project |
| Default change | Improve the shared default | PR to core/architecture-thinking.md |
High — must benefit most users |
| New profile | Alternative worldview | Add to core/architecture-thinking/profiles/ |
Medium — must be coherent and complete |
When to Change the Default¶
Propose a change to the default mental model when: - A concept is universally applicable (not industry-specific) - The current guidance is incorrect or misleading - A section is missing that most architects would expect - An improvement has been validated in practice
When to Create a Profile Instead¶
Create a new profile when: - Your thinking model is fundamentally different (not just tweaked) - It serves a specific audience (startups, regulated industries, platform teams) - It would conflict with the default if merged in
Proposing a Mental Model Change¶
- Open an issue explaining what you want to change and why
- Reference evidence or industry standards supporting the change
- Explain the impact on existing skills (which skills behave differently?)
- Submit a PR with the change
Modifying Existing Skills¶
What's Welcome¶
- Fixing errors in examples or templates
- Improving clarity of workflows
- Adding missing edge cases to checklists
- Updating references to current standards
What Needs Discussion First¶
- Changing a skill's workflow structure (open an issue)
- Adding new output formats (may affect adapters)
- Changing skill dependencies
- Renaming invocation triggers
Backwards Compatibility¶
- Don't rename or remove template sections that users may reference
- Don't change invocation phrases without updating
manifest.yamland_index.md - If you must make a breaking change, document it clearly in your PR
Pull Request Process¶
Branch Naming¶
<type>/<short-description>
Examples:
feat/api-design-skill
fix/broken-links-togaf
docs/improve-synthesis-examples
PR Description¶
Use this format:
## Summary
- What this PR does (1-3 bullets)
## Type of Change
- [ ] New skill
- [ ] Skill improvement
- [ ] Mental model change
- [ ] Bug fix
- [ ] Documentation
## Checklist
- [ ] I've read CONTRIBUTING.md
- [ ] New/modified skills have README.md and workflows.md
- [ ] manifest.yaml and _index.md are updated (if adding a skill)
- [ ] Internal links are valid
- [ ] Token budget is within limits (< 20K per skill)
Before Submitting¶
- Verify all internal links work
- Check that
manifest.yamlis valid YAML - Ensure new skills have at least README.md + workflows.md
- Measure token cost if adding significant content
Commit Conventions¶
Follow the Conventional Commits format documented in templates/COMMIT.md:
Common types for this repo:
- feat(skill): New skill or skill feature
- fix(skill): Fix in a skill's content
- docs(core): Core documentation changes
- refactor(core): Restructuring without content change
- feat(mental-model): Mental model changes
Review Process¶
What Maintainers Look For¶
- Accuracy — Is the content correct and well-sourced?
- Consistency — Does it follow existing patterns and conventions?
- Token efficiency — Is it concise without losing clarity?
- Audience clarity — Is the file tagged for agents, humans, or both?
- Integration — Does it play well with existing skills?
Response Timeline¶
- Initial response: Within 1 week
- Review feedback: Within 2 weeks
- Merge decision: After all feedback is addressed
Getting Help¶
- Open an issue for questions about contribution scope
- Tag
@maintainersin your PR if you need guidance - Check existing skills for patterns and conventions to follow