Lazy-load agent registry (frontmatter index, parse on demand), copy agents by path during install, fix Makefile template tab lint issue, add registry performance tests, bump to 1.1.0, document CLI reinstall after pull.
7.0 KiB
Contributing
This is a Contributing file, used to specify how the repository is and should stay organized. The format is based on Keep a Contributing-File V0.0.1. The structure originates from best practices for setting up python repositories as documented for PythonVibes. Use agent-keepa-contributing-file.md to help maintaining this file.
This document outlines how to get started, how we organise work, and how to help maintain the quality & clarity of our contributions.
Thank you for your interest in contributing!
Getting Started
Prerequisites
- Python 3.8+ for the core framework
- Git for version control
- Make for development commands (optional but recommended)
- Understanding of AI agent concepts (helpful but not required)
Initial Setup
- Fork and clone the repository
- Set up virtual environment:
python -m venv .venv && source .venv/bin/activate - Install dependencies:
make setup-completeorpip install -e . - Verify setup:
make test-quickorpytest tests/ - Familiarize yourself with agent system (see CLAUDE.md)
After pulling updates: reinstall the CLI so new commands are available:
pip install -e . # project venv
# or
pipx install -e . --force # global pipx install
Development Workflow
Project Structure
This repository follows PythonVibes best practices:
src/kaizen_agentic/- Core framework source codeagents/- Specialized agent definitions (17+ agents)tests/- Comprehensive test suiteTODO.md- Current development tasks (Keep a Todofile format)CHANGELOG.md- Version history (Keep a Changelog format)
Making Changes
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes following the code standards below
- Write tests for new functionality
- Run the test suite:
make testorpytest - Check code quality:
make lintor runblack .andflake8 . - Update documentation as needed
- Submit a pull request with clear description
Testing Requirements
- All new code must include tests
- Tests should pass locally before submitting PR
- Use pytest framework for all tests
- Aim for good test coverage of new functionality
Code Standards
Python Standards (PythonVibes)
- Follow PEP 8 style guide (100 character line length)
- Use type hints for all public APIs
- Write comprehensive docstrings
- Use src/ layout for source code
- Manage dependencies through pyproject.toml
Quality Tools
- Formatting: Black (
black .) - Linting: Flake8 (
flake8 .) - Type Checking: MyPy (
mypy src/) - Testing: Pytest (
pytest) - Pre-commit:
pip install pre-commit && pre-commit install(see.pre-commit-config.yaml) - CI: Gitea Actions workflow
.gitea/workflows/ci.ymlruns on push/PR tomain
Agent Development Standards
For contributing new agents or improving existing ones:
- Use consistent YAML frontmatter format
- Write clear, actionable instructions
- Define explicit scope and authority boundaries
- Follow existing agent patterns in
agents/directory
YAML frontmatter schema
---
name: <agent-name>
description: <one-line description>
category: testing | quality | process | infrastructure | release | docs | support | meta
memory: enabled # optional; default enabled. Set to disabled for stateless utility agents
---
Session-start protocol (for session-bound agents)
Agents that do ongoing work across sessions should include a session-start block:
- Check for
.kaizen/agents/<name>/memory.mdin the project root - If present, read it and acknowledge relevant context in the opening brief
- Optionally invoke
kaizen-agentic memory brief <name>for cross-agent orientation
Include this block in the agent prompt under a ## Session Start heading.
Session-close protocol (for session-bound agents)
At the end of each session the agent should:
- Update
## Accumulated Findings,## What Worked,## Watch Pointsas needed - Append one line to
## Session Log(format:YYYY-MM-DD · <summary> · <outcome>) - Bump
last_updatedandsession_countin the frontmatter
Include this block in the agent prompt under a ## Session Close heading.
Agents for which session state is irrelevant (e.g. keepaTodofile, keepaChangelog)
should set memory: disabled in their frontmatter and omit these sections.
Types of Contributions
We welcome various types of contributions:
- Code: New features, bug fixes, improvements
- Agent Definitions: New specialized agents or agent improvements
- Documentation: README updates, code comments, guides
- Testing: New tests, test improvements, bug reports
- Performance: Optimization improvements and measurements
Feedback
We welcome bugs, feature ideas, and adoption experience reports.
- CLI:
kaizen-agentic feedback— lists channels and issue templates - Guide: docs/FEEDBACK.md
- Templates:
.gitea/ISSUE_TEMPLATE/(bug, feature, general feedback)
For cross-repo coordination between custodian agents, use State Hub messages
(POST /messages/) — see session protocol in .claude/rules/session-protocol.md.
Issue Reporting
When reporting bugs, please include:
- Clear description of the problem
- Steps to reproduce the issue
- Expected vs actual behavior
- Environment details (Python version, OS)
- Relevant error messages or logs
Pull Request Process
- Discuss significant changes in an issue first
- Keep PRs focused on a single feature or fix
- Write clear commit messages following conventional commit format
- Update relevant documentation including TODO.md and CHANGELOG.md
- Ensure all checks pass including tests and linting
- Respond to review feedback promptly and constructively
Agent-Assisted Development
This repository includes 17+ specialized agents to assist with development:
- Use
todo-keeperfor TODO.md maintenance - Use
changelog-keeperfor CHANGELOG.md updates - Use
contributing-keeperfor this file maintenance - See CLAUDE.md for complete agent catalog and usage
Community Guidelines
Kaizen Philosophy
We follow continuous improvement principles:
- Quality-first approach to all contributions
- Regular optimization and refinement
- Performance measurement and pattern analysis
- Collaborative problem-solving
Communication
- Be respectful and constructive in all interactions
- Use GitHub issues and discussions for project-related communication
- Share knowledge and help other contributors
- Follow the project's code of conduct
Recognition
Contributors are acknowledged in:
- Release notes and CHANGELOG.md
- Agent definition attribution
- Community recognition for significant contributions
Format: This file follows Keep a Contributing-File V0.0.1 with PythonVibes best practices integration.
Maintenance: Use agent-keepaContributingfile.md to help maintain this file.