This repository has been archived on 2026-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
anvillm/scripts/Planning

111 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# Planning - Research/Engineering/Tech-Editor workflow
# Usage: ./scripts/Planning <backend> <workdir>
set -e
if [ $# -ne 2 ]; then
echo "Usage: $0 <backend> <workdir>"
echo " backend: claude, kiro-cli"
exit 1
fi
BACKEND="$1"
DOC_PATH="$2"
# Generate random alias prefix
RANDOM_WORD=$(shuf -n1 -e alpha beta gamma delta zeta theta kappa sigma omega lambda)
RANDOM_NUM=$(printf "%02d" $((RANDOM % 100)))
ALIAS_PREFIX="${RANDOM_WORD}${RANDOM_NUM}"
NAMESPACE=$(namespace)
if [ -z "$NAMESPACE" ]; then
echo "Error: No namespace found. Is anvillm running?"
exit 1
fi
AGENT="agent"
# Helper to create session and capture ID
create_session() {
local backend="$1" cwd="$2"
local before after
before=$(9p read $AGENT/list | awk '{print $1}' | sort)
echo "new $backend $cwd" | 9p write $AGENT/ctl
after=$(9p read $AGENT/list | awk '{print $1}' | sort)
comm -13 <(echo "$before") <(echo "$after") | head -1
}
echo "Creating research session..."
RESEARCH_ID=$(create_session "$BACKEND" "$DOC_PATH")
echo " ID: $RESEARCH_ID"
echo "Creating engineering session..."
ENG_ID=$(create_session "$BACKEND" "$DOC_PATH")
echo " ID: $ENG_ID"
echo "Creating tech-editor session..."
EDITOR_ID=$(create_session "$BACKEND" "$DOC_PATH")
echo " ID: $EDITOR_ID"
# Set aliases
echo "${ALIAS_PREFIX}-research" | 9p write $AGENT/$RESEARCH_ID/alias
echo "${ALIAS_PREFIX}-engineering" | 9p write $AGENT/$ENG_ID/alias
echo "${ALIAS_PREFIX}-techeditor" | 9p write $AGENT/$EDITOR_ID/alias
# Research context
cat <<EOF | 9p write $AGENT/$RESEARCH_ID/context
Your job is to research system architecture and code for requested information. Use the agent-kb skill.
- Input: knowledge base (agent-kb) and relevant code
- Output: concrete human- and LLM-readable knowledge about the system
- Prefer updating existing kb documents over creating new ones
- Only create new KB documents if the knowledge discovered is significant and reusable
When you receive a query from engineering, research and respond:
- Use the peer-bot skill to find and communicate with the engineering agent (alias contains "engineering")
- Send your answer back to engineering
Do not actively await responses, but stop working until you receive an explicit request to conduct research.
EOF
# Engineering context
cat <<EOF | 9p write $AGENT/$ENG_ID/context
Your job is to update design documentation in $DOC_PATH. Follow agent-kb conventions. Search the knowledge base for relevant documents.
If documentation is insufficient, query the research bot:
- Use the peer-bot skill to find and communicate with the research agent (alias contains "research")
- Include in your query: the question, context, and request for full path to new/updated docs or a direct answer
- Wait for the research agent to send the answer back
You will receive edit requests from the tech-editor:
- Use the peer-bot skill to find and communicate with the tech-editor agent (alias contains "techeditor")
- Apply the requested changes and send acknowledgment back
Do not actively await responses, but stop working until you receive an explicit request to make a change from the tech-editor.
EOF
# Tech-editor context
cat <<EOF | 9p write $AGENT/$EDITOR_ID/context
You are a professional technical writer. Ensure documentation in $DOC_PATH is high quality, readable, and at the right detail level for software engineers.
Do not edit documents directly. Send recommended changes to engineering:
- Use the peer-bot skill to find and communicate with the engineering agent (alias contains "engineering")
- Include your recommended changes
- Request acknowledgment from engineering
When engineering acknowledges, proofread again. Iterate until satisfied.
Do not actively await responses, but stop working until you receive an explicit request to perform work.
EOF
echo ""
echo "✓ Planning workflow ready ($ALIAS_PREFIX)"
echo ""
echo "Sessions:"
echo " ${ALIAS_PREFIX}-research: $RESEARCH_ID"
echo " ${ALIAS_PREFIX}-engineering: $ENG_ID"
echo " ${ALIAS_PREFIX}-techeditor: $EDITOR_ID"
echo ""
echo "Start by giving engineering a task, or tech-editor a document to review."