From 5fdcc039d1e2180cd344a46b85a54e04de838923 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Wed, 18 Feb 2026 22:33:09 +0100 Subject: [PATCH] Add agent-hook script and SKILLS_PROMPT.md - Added agent-hook for future use with wrapper script - Created SKILLS_PROMPT.md for automatic skill loading - Updated mkfile to install both - Kept explicit commands in agent config (agent-hook needs wrapper) --- kiro-cli/SKILLS_PROMPT.md | 26 +++++++++++++++++++++++ mkfile | 3 +++ scripts/agent-hook | 43 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 kiro-cli/SKILLS_PROMPT.md create mode 100755 scripts/agent-hook diff --git a/kiro-cli/SKILLS_PROMPT.md b/kiro-cli/SKILLS_PROMPT.md new file mode 100644 index 0000000..f84271b --- /dev/null +++ b/kiro-cli/SKILLS_PROMPT.md @@ -0,0 +1,26 @@ +# Skills System + +You have access to specialized capabilities through the skills library. + +## How It Works + +Before responding to any request, evaluate if you need specialized tools or knowledge: + +1. **Check for relevant skills**: Run `anvillm-skills list` to see available capabilities +2. **Load what you need**: Run `anvillm-skills load ` for any relevant skills +3. **Apply the skill**: Follow the loaded documentation to complete the task + +## When to Load Skills + +Load skills proactively based on the user's request: + +- **Agent communication** → load `anvillm-communication` skill +- **Multi-agent workflows** → load `anvillm-communication` skill +- **Mailbox operations** → load `anvillm-communication` skill + +## Commands + +- `anvillm-skills list` - List all available skills with descriptions +- `anvillm-skills load ` - Load specific skill documentation + +Always check available skills first if the request requires capabilities beyond basic operations. diff --git a/mkfile b/mkfile index e40c006..56b68c9 100644 --- a/mkfile +++ b/mkfile @@ -12,6 +12,8 @@ build:V: chmod 0755 $INSTALL_PATH/Alog cp scripts/anvillm-skills $INSTALL_PATH/anvillm-skills chmod 0755 $INSTALL_PATH/anvillm-skills + cp scripts/agent-hook $INSTALL_PATH/agent-hook + chmod 0755 $INSTALL_PATH/agent-hook cp scripts/9p-read-inbox $INSTALL_PATH/9p-read-inbox chmod 0755 $INSTALL_PATH/9p-read-inbox mkdir -p $INSTALL_PATH/Workflows @@ -23,6 +25,7 @@ build:V: mkdir -p $HOME/.claude/agents mkdir -p $HOME/.claude/hooks cp kiro-cli/agent/* $HOME/.kiro/agents/ + cp kiro-cli/SKILLS_PROMPT.md $HOME/.kiro/ cp claude/agent/* $HOME/.claude/agents/ cp claude/hooks/* $HOME/.claude/hooks/ chmod +x $HOME/.claude/hooks/*.sh diff --git a/scripts/agent-hook b/scripts/agent-hook new file mode 100755 index 0000000..88a1e57 --- /dev/null +++ b/scripts/agent-hook @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Kiro (and many other agents) pass JSON payload to hook on stdin +TIMEOUT=$(command -v gtimeout 2>/dev/null || command -v timeout 2>/dev/null || :) +payload=$(${TIMEOUT:+"$TIMEOUT" 3} jq -c . 2>/dev/null || :) + +# Debug: log what we received +echo "[agent-hook] Received payload: $payload" >> /tmp/agent-hook.log + +[[ $payload ]] || exit 0 # Just exit + +event='' +cwd=$PWD +IFS=$'\t' read -r _event _cwd < <(jq -r '"\(.hook_event_name // "")\t\(.cwd // "")"' <<<"$payload") || : +[[ ${_event:-} ]] && event=$_event +[[ ${_cwd:-} ]] && cwd=$_cwd + +echo "[agent-hook] Parsed event: $event, cwd: $cwd" >> /tmp/agent-hook.log + +# Helper for anvillm state transitions +anvillm_set_state() { + local agent_id=${AGENT_ID:-} + [[ $agent_id ]] && echo "$1" | 9p write "agent/$agent_id/state" 2>/dev/null || true +} + +case "$event" in + agentSpawn) + cat ~/.kiro/SKILLS_PROMPT.md + ;; + userPromptSubmit) + anvillm_set_state running + ;; + preToolUse) + ;; + postToolUse) + ;; + stop) + anvillm_set_state idle + ;; + *) + ;; +esac