| name | extend-protocol |
| description | Extend the Scoutica Protocol with new schemas, entity types, rule templates, or CLI commands. Use when asked to add new features, modify the card format, add support for new entity types (agents, teams, robots), or contribute to the protocol specification. |
extend-protocol
Add new capabilities to the Scoutica Protocol — new schemas, entity types, rules, or CLI features.
When to Use
- User wants to add a new field to the card schema
- User wants to support a new entity type (AI agent, team, robot)
- User wants to add a new CLI command
- User wants to create a new evaluation rule template
- User wants to modify the protocol specification
Extension Points
1. Add a New Card Field
The candidate card has no standalone JSON Schema file — profile.json is a
flat object written by the CLI and checked by tools/validate_card.py. To add a
field (e.g. a top-level ai_models array of models the candidate has trained or
deployed), extend the flat profile shape:
{
"schema_version": "0.1.0",
"skills": ["Python", "Go", "React"],
"tools_and_platforms": ["Kubernetes", "AWS"],
+ "ai_models": ["Llama 3", "Stable Diffusion"]
}
Checklist:
2. Add a New Entity Type
The protocol supports multiple entity types beyond humans:
| Type | Card For | Example |
|---|
human | Individual professional | Software engineer |
ai_agent | Autonomous AI agent | Coding assistant, trading bot |
service | API or SaaS product | Translation service, CDN |
robot | Physical autonomous system | Warehouse robot, drone |
team | Group of entities | Engineering squad |
organization | Company or department | DevOps team at Company X |
To add a new entity type:
- Create a schema variant:
schemas/<type>_profile.schema.json
- Create a card template:
protocol/platform/02_skill_patterns/template_<type>_skill.md
- Update the base schema's
entity_type enum
- Add CLI support:
scoutica init --type <type>
3. Add a New Rule Template
Location: protocol/templates/rules/
Create a new .md file that follows this pattern:
# Rule: <rule-name>
## Purpose
What this rule evaluates.
## Input
- `profile.json` fields used
- `rules.yaml` fields used
## Algorithm
1. Step-by-step evaluation logic
2. Clear decision criteria
## Output
- PASS / FAIL / SOFT_REJECT
- Reason string
- Confidence score (0-100)
Checklist:
4. Add a New CLI Command
Source: tools/scoutica (bash) and tools/scoutica.ps1 (PowerShell)
cmd_newcommand() {
}
case "$command" in
init) cmd_init "$@" ;;
scan) cmd_scan "$@" ;;
newcommand) cmd_newcommand "$@" ;;
...
esac
echo -e " ${CYAN}newcommand${NC} Description of what it does"
Checklist:
5. Add a New AI Provider for Scan
Source: tools/scoutica → cmd_scan() function
if command -v gemini &>/dev/null; then
provider="gemini"
elif command -v claude &>/dev/null; then
provider="claude"
elif command -v newcli &>/dev/null; then
provider="newcli"
fi
case "$provider" in
newcli)
response=$(newcli --prompt "$(cat "$tmp_prompt")" 2>/dev/null)
;;
esac
Development Workflow
- Fork the repo
- Create a feature branch
- Make changes following the checklists above
- Run
scoutica validate on the sample card
- Test with
scoutica scan using your changes
- Submit a PR with a clear description
File Map
| What | Where |
|---|
| JSON Schemas | schemas/ |
| CLI (bash) | tools/scoutica |
| CLI (PowerShell) | tools/scoutica.ps1 |
| Card templates | protocol/templates/ |
| Rule templates | protocol/templates/rules/ |
| AI scan prompt | tools/SCAN_PROMPT.md |
| Sample card | protocol/examples/sample_card/ |
| Protocol specs | protocol/platform/ |
| Flow diagrams | .specs/protocol_flows.md |
| Agent instructions | SKILL.md |