continuous-learning-v2
Warn
Audited by Gen Agent Trust Hub on Sep 23, 2026
Risk Level: MEDIUMINDIRECT_PROMPT_INJECTIONEXTERNAL_DOWNLOADSPERSISTENCEDYNAMIC_EXECUTION
Full Analysis
- [INDIRECT_PROMPT_INJECTION]: The skill records tool inputs and outputs into
observations.jsonlviahooks/observe.sh. A background agent (agents/observer.md) later analyzes these logs to generate new "instincts" (instructions). An attacker controlling a tool's output (e.g., through a malicious web page or source file) could inject instructions that the background agent would "learn" and apply to future sessions.\n - Ingestion points:
hooks/observe.shcaptures rawtool_outputfrom all tools and appends it to~/.claude/homunculus/observations.jsonl.\n - Boundary markers: None. The logs are processed as raw strings without delimiters or instructions to ignore embedded commands.\n
- Capability inventory: The background process (
agents/start-observer.sh) uses theclaudeCLI to write new behavior-modifying instructions to the file system at~/.claude/homunculus/instincts/personal/.\n - Sanitization: No sanitization or filtering is performed on tool outputs before they are processed by the learning agent.\n- [EXTERNAL_DOWNLOADS]: The
/instinct-importcommand, implemented inscripts/instinct-cli.py, allows fetching and installing "instinct" files from arbitrary remote URLs usingurllib.request.urlopen. These files contain instructions that directly influence agent behavior.\n- [PERSISTENCE]: Theagents/start-observer.shscript launches a persistent background process usingdisown. This process monitors session logs and periodically modifies the skill's instruction base, allowing behavior changes to persist and evolve independently of the current session.\n- [DYNAMIC_EXECUTION]: The/evolvecommand clusters existing instincts and generates new.mdskill, command, and agent files at runtime. This allows the system to dynamically expand its own instruction set based on potentially untrusted data gathered during sessions.
Audit Metadata