Contributing to COG
July 10, 2026 · View on GitHub
Thank you for your interest in contributing to COG! This document provides guidelines for contributing to the project.
How to Contribute
Reporting Issues
If you find a bug or have a suggestion:
- Check if the issue already exists in GitHub Issues
- If not, create a new issue with:
- Clear, descriptive title
- Detailed description of the problem or suggestion
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your environment (OS, Obsidian version, AI agent used: Claude Code/Kiro/Other)
Suggesting Enhancements
We welcome ideas for new features or improvements:
- Create an issue with the "enhancement" label
- Describe the feature and why it would be useful
- Provide examples or mockups if applicable
- Be open to discussion and feedback
Pull Requests
Before You Start
- Fork the repository
- Create a new branch for your feature/fix
- Ensure your changes align with COG's philosophy:
- Simplicity over complexity
- Plain text over proprietary formats
- Self-evolving intelligence
- Verification-first approach
- If your PR changes the framework (skills, docs, scripts):
- Bump the version in
COG-VERSION(e.g.,3.2.0→3.3.0) - Add a changelog entry in
CHANGELOG.md - If adding a new file, add it to the
FRAMEWORK_FILESarray incog-update.sh - Update
marketplace-entry.jsonand.claude-plugin/plugin.jsonversion fields - Keep the support matrix truthful in
README.md,SETUP.md,AGENTS.md, anddocs/AGENT-SUPPORT.md - Run
./scripts/validate-agent-surface.shbefore opening the PR
- Bump the version in
Making Changes
- Worker Agents: New agents should be added to
.claude/agents/with this format:- YAML frontmatter with
name,description, andmodel(usesonnetfor I/O tasks,opusonly if reasoning is required) - Clear capability list and output rule
- Add the file to
FRAMEWORK_FILESincog-update.sh - Document in
AGENTS.mdunder "Worker Agents"
- YAML frontmatter with
- Skills: New skills should be added in every surface that claims to support them:
.claude/skills/[name]/SKILL.md- Claude Code format (required; includerolesandintegrationsin frontmatter)AGENTS.md- Universal documentation (required).claude-plugin/plugin.json- Packaged skill manifest (required).kiro/powers/cog-[name]/POWER.md- Kiro format (if Kiro supports the skill).gemini/commands/[name].toml+.gemini/skills/[name].md- Gemini CLI format (if Gemini supports the skill)- If the skill is role-specific, add it to relevant role packs in
.claude/roles/ - If the skill mutates external state (publishes, posts, deploys, transitions tickets), it MUST include a "Verify" step that observes the mutated artifact (curl the URL, screenshot the post) before reporting success — see the Skill Post-Condition Rule in
CLAUDE.md - Prompting note for reasoning models: don't write "show your reasoning" / "think step by step" instructions into SKILL.md files — modern reasoning models handle this internally, and forcing it degrades output. State the goal and the constraints instead.
- If the skill iterates, declare its loop per
/loop-engineering; if it captures reusable environment knowledge, consider the skill distillation pattern
- Templates: Follow existing YAML frontmatter conventions
- Documentation: Update README.md if adding major features
- Examples: Provide examples of your feature in action
Code Style
- Markdown: Use consistent formatting
- YAML: Follow existing metadata structure
- Comments: Explain complex logic or non-obvious decisions
- Naming: Use clear, descriptive names
Testing
Before submitting:
- Test your command/feature in actual COG setup
- Ensure it works with existing commands
- Verify it doesn't break existing functionality
- Check that documentation is accurate
- Run
./scripts/validate-agent-surface.shfor packaging/manifest consistency
Submitting
- Commit your changes with clear, descriptive messages
- Push to your fork
- Create a Pull Request with:
- Clear description of changes
- Reference to related issues
- Examples or screenshots if applicable
- Testing you've done
Types of Contributions We're Looking For
High Priority
- New Skills: Useful skills for common workflows (add in all agent formats)
- Agent Format Support: Improve support for additional AI agents
- Documentation: Tutorials, examples, use cases
- Bug Fixes: Fixes for reported issues
Medium Priority
- Specialized Skills: New skills for specific domains
- Integration Scripts: Scripts for connecting COG with other tools
- Workflow Examples: Real-world workflow demonstrations
- Performance Improvements: Optimizations for large vaults
Welcome But Lower Priority
- UI/Visual: Visual improvements (COG is text-first)
- Platform-Specific: Features for specific platforms (keep it universal)
- Advanced Features: Complex features that increase learning curve
Development Setup
- Fork and clone the repository
- Create a test Obsidian vault
- Copy COG files to your test vault
- Make changes and test
- Submit PR when ready
Coding Conventions
Claude Code Skills (.claude/skills/[name]/SKILL.md)
---
name: skill-name
description: What this skill does
roles: [all]
integrations: [github, slack]
---
# Skill Name
## When to Invoke
[Trigger patterns]
## Process Flow
[Step-by-step process]
## Output Structure
[Expected output format]
Kiro Powers (.kiro/powers/cog-[name]/POWER.md)
---
name: "cog-skill-name"
displayName: "Skill Display Name"
description: "What this power does"
keywords: ["keyword1", "keyword2", "keyword3"]
---
# Skill Name
## When This Power Activates
[Trigger patterns]
## Process Flow
[Step-by-step process]
Worker Agents (.claude/agents/[name].md)
---
name: worker-name
description: What this worker does
model: sonnet
---
You are a [role]. Your job is [single responsibility].
## Capabilities
- **Source**: What it can access
## Output Rule
- Always write results to `/tmp/{task-slug}.md`
- Return ONLY a short status + file path
## Rules
- Never fabricate data
- [domain-specific rules]
Universal Documentation (AGENTS.md)
Add new skills under "## Available Commands" with:
- Command name and triggers
- Description and purpose
- What it does (numbered list)
- Output locations
Template Files
---
type: "template-type"
domain: "domain"
date: "{{date:YYYY-MM-DD}}"
# Standard metadata fields
---
# {{title}}
[Template structure]
Community Guidelines
Be Respectful
- Treat all contributors with respect
- Provide constructive feedback
- Be open to different perspectives
- Help newcomers get started
Be Clear
- Write clear commit messages
- Explain your reasoning
- Provide context in PRs
- Ask questions when unclear
Be Patient
- Maintainers are volunteers
- Reviews may take time
- Be responsive to feedback
- Iterate based on suggestions
Questions?
- General Questions: Discussions
- Bug Reports: Issues
- Feature Requests: Issues with "enhancement" label
License
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to COG! Your help makes this project better for everyone.