with one click
add-feature
// Use when adding a new feature, skill, tool, or MCP server to the Valor system. Triggered by 'add a feature', 'create a new tool', 'extend the system', or 'how do I add...'.
// Use when adding a new feature, skill, tool, or MCP server to the Valor system. Triggered by 'add a feature', 'create a new tool', 'extend the system', or 'how do I add...'.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | add-feature |
| description | Use when adding a new feature, skill, tool, or MCP server to the Valor system. Triggered by 'add a feature', 'create a new tool', 'extend the system', or 'how do I add...'. |
| argument-hint | <feature-name> or description |
How to extend the Valor system with new capabilities.
Skills live in .claude/skills-global/<skill>/SKILL.md (cross-repo) or .claude/skills/<skill>/SKILL.md (project-only):
---
name: skill-name
description: "Use when [trigger condition]. Also use when [secondary trigger]."
allowed-tools: Read, Write, Edit, Bash
---
# Skill Name
## What this skill does
Description of what this skill does.
## When to load sub-files
- [Condition A] -> read [SUB_FILE_A.md](SUB_FILE_A.md)
## Quick start
Step-by-step instructions for the most common use of this skill.
.claude/skills-global/ for cross-repo, .claude/skills/ for project-only)prime/SKILL.md - Codebase onboardingpthread/SKILL.md - Parallel thread executionsdlc/SKILL.md - Autonomous dev workflowdo-pr-review/SKILL.md - PR review and implementation validationsetup/SKILL.md - New machine configurationAgents live in .claude/agents/<name>.md:
---
name: agent-name
description: "One-sentence description. Used by the harness to select this agent ā be specific about when to invoke it."
model: sonnet
color: cyan
tools: ['*']
---
# Agent Name
## Purpose
What this agent does and when it's used.
## Instructions
- Focused behavioral instructions
- What to do, what NOT to do
- How to signal completion
Use disallowedTools instead of restricting tools:
---
name: auditor
description: Read-only agent that inspects and reports without modifying anything.
disallowedTools: Write, Edit, NotebookEdit
---
Do NOT use a specific tool list (e.g. tools: [Read, Grep]) ā those names don't match Claude Code's internal tool identifiers and will be silently ignored.
| Field | Example | When to use |
|---|---|---|
model | sonnet, haiku | Override default model |
color | cyan, yellow, red | Visual distinction in UI |
disallowedTools | Write, Edit, NotebookEdit | Read-only agents |
hooks | See builder.md | Post-tool side effects |
.claude/agents/)builder.md ā full tool access, PostToolUse format hookvalidator.md ā read-only via disallowedToolsdev-session.md ā SDK-driven session agentThe bridge is in bridge/telegram_bridge.py.
async def handle_message(self, event):
text = event.message.text
# Add your pattern
if text.startswith('/mycommand'):
return await self.handle_my_command(event)
async def handle_my_command(self, event):
# Extract arguments
args = event.message.text.split()[1:]
# Process and respond
result = do_something(args)
await event.reply(result)
./scripts/valor-service.sh restart
Local tools live in tools/<tool_name>/.
tools/my_tool/
āāā __init__.py # Exports main functions
āāā core.py # Core implementation
āāā cli.py # Optional CLI interface
āāā README.md # Documentation
from .core import my_function, MyClass
__all__ = ['my_function', 'MyClass']
# tools/my_tool/cli.py
import argparse
def main():
parser = argparse.ArgumentParser(description='My tool')
parser.add_argument('action', choices=['do', 'list'])
args = parser.parse_args()
if args.action == 'do':
from .core import my_function
result = my_function()
print(result)
if __name__ == '__main__':
main()
Register in pyproject.toml:
[project.scripts]
my-tool = "tools.my_tool.cli:main"
Then install: uv pip install -e .
| Content Type | Location |
|---|---|
| Development workflow | CLAUDE.md (if essential) |
| Feature documentation | docs/features/<name>.md |
| Architecture details | docs/architecture/<name>.md |
| Operations guides | docs/operations/<name>.md |
| Tool documentation | docs/tools-reference.md |
| Plans (in progress) | docs/plans/<name>.md |
# Feature Name
Brief description.
## Overview
What this feature does and why it exists.
## Usage
How to use it with examples.
## Implementation Details
How it works internally.
## See Also
- Related features
- Related skills
Add new docs to docs/README.md index.
Follow the SDLC pattern:
git add . && git commit -m "Add feature X" && git pushBefore marking a new feature complete:
/prime for codebase orientationdocs/tools-reference.md for tool documentation.claude/skills-global/ for cross-repo skill examples, .claude/skills/ for project-specific ones