# RFC: Multi-Agent Skill Deployment

**Status:** Draft
**Date:** 2026-01-19
**Author:** Gemini CLI Agent

## Context

This repository (`~/proj/skills`) is the single source of truth for AI capabilities. However, the runtime environment has fragmented into four distinct agents:

1.  **Claude Code** (The original consumer)
2.  **OpenCode** (The open-source alternative)
3.  **OpenAI Codex** (The specialized coding agent)
4.  **Gemini CLI** (The interactive shell agent)

Currently, our deployment script only targets Claude and OpenCode.

## The Goal: "Write Once, Deploy Everywhere"

We want a single command (`./bin/deploy-skill.sh <skill>`) to make that skill available to ALL agents on the system immediately after a system rebuild.

## Target Paths

| Agent | Config File (Dotfiles) | Target Path (Runtime) |
|-------|------------------------|-----------------------|
| **Claude Code** | `home/claude.nix` | `~/.claude/skills/<name>` |
| **OpenCode** | `home/opencode.nix` | `~/.config/opencode/skills/<name>` |
| **OpenAI Codex** | `home/codex.nix` | `~/.codex/skills/<name>` |
| **Gemini CLI** | `home/gemini.nix` | `~/.gemini/skills/<name>` |

## Proposed Changes

### 1. Update `bin/deploy-skill.sh`

The script currently injects config into `claude.nix` and `opencode.nix`. We will expand it to also check for and inject into `codex.nix` and `gemini.nix` if they exist in the dotfiles repo.

**Logic:**
```bash
# For each agent target:
inject_home_file "$DOTFILES/home/codex.nix"  ".codex/skills/$SKILL" ...
inject_home_file "$DOTFILES/home/gemini.nix" ".gemini/skills/$SKILL" ...
```

### 2. Standardize Skill Format

Fortunately, all four agents share the same fundamental skill interface:
*   **Definition:** `SKILL.md` (Markdown with Frontmatter)
*   **Execution:** Bash scripts (via `run_shell_command` or similar)

No changes are needed to the skill format itself, provided we stick to standard POSIX bash and relative paths in scripts.

## Benefits

*   **Unified Capability:** Fixing a bug in `git-commit` skill fixes it for Gemini, Claude, and Codex simultaneously.
*   **Agent Agnosticism:** You can switch agents mid-task without losing access to your tools.
*   **Testing:** You can verify a skill using Gemini (cheaper/faster) before using it with Claude (smarter/expensive).

## Implementation Plan

1.  Update `bin/deploy-skill.sh` to support the new targets.
2.  Create placeholder `home/codex.nix` and `home/gemini.nix` in dotfiles (if missing) to test injection.
3.  Deploy a test skill (`verify-work`) to all 4 targets.
