Thanks for your interest in contributing to ELIS. This guide covers how to get started, add new agents, modify contracts, and submit your changes.
git clone https://github.com/xiapeli/elis.git
cd elis
# Copy the skill file to your Claude Code commands directory
mkdir -p ~/.claude/commands
cp -n elis.md ~/.claude/commands/
# Test it works
# Open Claude Code and run:
/elis design "A minimal portfolio site"elis.md # The main skill file (all agent definitions)
docs/
agents.md # Full agent reference
contracts.md # Contract system specification
customization.md # How to customize ELIS defaults
examples/ # Walkthrough examples (SaaS, portfolio, startup)
prd-loop/ # Autonomous PRD-driven development loop
-
Pick the right layer. ELIS has 6 layers: Discovery, Design, Build, Backend, Deploy, Business. Your agent should fit one of them.
-
Define the contract (partitura). Every agent needs a structured contract with:
model— which Claude model it uses (haiku, sonnet, opus)input_contract— required and optional inputsoutput_contract— expected output format and schemaquality_gates— pass/fail criteriatimeout_msandmax_retries
-
Write the agent prompt. Add your agent definition inside
elis.mdunder the appropriate layer section. Follow the existing pattern: role description, capabilities, input/output format, and quality gates. -
Update the README. Add your agent to the layer table in
README.mdand todocs/agents.md. -
Add an example. If possible, add a usage example in the
examples/directory showing the agent in action.
Contracts live inside elis.md as structured definitions for each agent. To modify one:
- Read the existing contract in
elis.mdfor the agent you want to change. - Update the relevant fields (input/output schemas, quality gates, timeout, etc.).
- Update
docs/contracts.mdif your change affects the contract specification. - Test the agent with the modified contract by running the relevant
/eliscommand.
Important: Changing a contract's output schema may break downstream agents that consume its output. Grep for the agent name across elis.md to find all dependencies before modifying.
- Fork the repository.
- Create a feature branch from
main:git checkout -b feat/add-copywriter-agent
- Make your changes following the patterns described above.
- Use conventional commits:
feat:— new feature (new agent, new command, new preset)fix:— bug fixdocs:— documentation onlyrefactor:— code restructuring without behavior changetest:— adding or updating tests
- Open a Pull Request against
mainwith a clear description of what you changed and why.
These are good starting points. See also the issues labeled good first issue.
- New agents: Analytics, Copywriter, SEO specialist
- Design presets: brutalist, corporate, playful themes
- Example PRDs: common project types for the PRD loop
- Translations: translate agent prompts to other languages
- Integration tests: tests for the contract system
- Documentation: improve existing docs, add tutorials
Be respectful and constructive. We follow standard open-source etiquette. No tolerance for harassment, trolling, or bad-faith contributions.