T01 · Skill Instruction Hijacking
- Location
references/TEAM-RESEARCH.md:9- Finding
Research workflow instructs the agent to operate indefinitely without human oversight
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is mostly coherent as a team-planning and experiment-automation tool, but its Research Lab workflow grants broad unattended command, compute, and repository-changing authority without adequate safeguards.
Install only if you intend to use local experiment automation and are comfortable reviewing every command before it runs. Run it in a disposable clone or sandbox, avoid unattended or overnight loops, do not pass untrusted --run-cmd, --metric-cmd, --file, project paths, or agent definitions, and treat any generated git commits, branches, ledgers, or review logs as user-visible side effects.
references/TEAM-RESEARCH.md:9Research workflow instructs the agent to operate indefinitely without human oversight
scripts/experiment.sh:54User-controlled experiment commands are executed through shell evaluation
scripts/activate.sh:75Agent activation accepts and prints arbitrary readable local files
The declared description presents a multi-roster team orchestration capability: discovering specialists from three rosters, composing teams, activating them, and using planner/reviewer roles. The supplied code only provides a local CLI for browsing one agency directory and printing a selected agent's Markdown/personality content. While the word 'activate' appears in both, the implementation is much narrower: it selects a single file from the Agency Division and outputs it. There is no evidence of team composition, cross-roster discovery, planner/reviewer logic, autonomous research loops, or deliverable validation. This is a material description-behavior mismatch, not just an implementation detail omission.
The declared description centers on discovering and assembling specialist teams from rosters and having planner/reviewer roles validate work. None of that behavior appears in the code. Instead, the script is an experiment automation utility modeled on autoresearch: it operates on a local project, executes configurable shell commands, uses git for branch and commit management, extracts metrics, and tracks outcomes in a ledger. This is a materially different primary purpose with several undeclared operational capabilities. Therefore the description does not accurately represent the code.
The declared description centers on team-building and orchestration across named rosters, plus planner/reviewer roles. The supplied code does not implement any roster access, team selection, agent activation, planning, or autonomous research behavior. Instead, it only creates a markdown review checklist/template for QA review of a task and saves it to a log/output file. While the description mentions a reviewer validating deliverables, this script merely scaffolds a review document and does not perform the broader advertised team-builder functionality. Therefore the actual behavior is materially narrower and different from the declared purpose.
The code supports only the 'discover' portion of the description by listing agents from three rosters and allowing filtering by roster, division, and search query. There is no logic for composing teams, selecting optimal specialists, activating agents, running autonomous research loops, or reviewing/validating deliverables. The declared description therefore materially overstates the skill's implemented capabilities relative to this code chunk.
Referenced artifact was not completely inspected
| `SKILL.md` | This file — overview, scripts, quick start |
git reset --hard HEAD~1 is a destructive command that discards local changes and rewrites working state. In a skill document intended for agent consumption, including this as a routine autonomous action creates clear potential for data loss and unauthorized rollback of user work.
Run: uv run train.py > run.log 2>&1 Result: val_bpb 1.0050 (worse than 0.9932) Decision: DISCARD — regression, reverted Action: git reset --hard HEAD~1
**Experiment 3: Reduce model depth, increase width**
This second use of git reset --hard HEAD~1 repeats the same destructive rollback pattern after a crash scenario, normalizing unsafe repository manipulation as part of autonomous behavior. Crash handling is already a high-risk context, and adding hard resets can compound failures with irreversible loss of intermediate work.
Run: uv run train.py > run.log 2>&1 Result: OOM crash — grep output empty, tail shows CUDA OOM Decision: CRASH — too much VRAM, reverted Action: git reset --hard HEAD~1
### Final Ledger
The script accepts --metric-cmd and --run-cmd as user input and later executes them with eval/bash -c, which permits arbitrary shell execution in the context of the user running the skill. In a skill advertised for team composition rather than local experiment orchestration, this materially expands the attack surface and can be abused for command execution, data access, or destructive local actions.
Most of the script implements autonomous experiment execution, metric extraction, timeout handling, git branching, checkout, and commit behavior, which is unrelated to the declared skill purpose of discovering and activating specialist teams. This scope mismatch is dangerous because users may grant trust appropriate for a planning skill while the code performs local repository mutation and experiment automation with side effects.
The setup flow creates or switches git branches and the run flow later commits or reverts tracked files, mutating the user's repository state automatically. In the context of a team-builder skill, these repository actions are not justified by the manifest and could overwrite work, alter history expectations, or conceal unreviewed changes under automation.
The skill prominently promotes autonomous experiment loops but provides no upfront safety warning that these workflows may consume significant compute, alter repositories, or run project-specific commands. In a skill context where users may copy-paste commands directly, missing warnings can lead to unintended execution with operational or integrity consequences.
The documented experiment commands invite users to initialize and run automation against arbitrary project paths without warning that these actions may change files, execute training or shell workflows, and consume local or remote resources. That omission increases the likelihood of accidental destructive or expensive actions by users who treat the commands as low-risk documentation examples.
Describing the research loop as something that can 'loop forever' signals potentially unbounded execution and resource consumption. In the context of autonomous experiment tooling, this can lead to runaway compute usage, excessive API costs, persistent disk churn, or repeated code mutations if users enable continuous operation without hard limits.
| Specialized | 7 | Agents Orchestrator, Data Analytics, LSP Engineer |
### 3. Research Lab (`references/TEAM-RESEARCH.md`)
Autonomous experiment loops adapted from Karpathy's [autoresearch](https://github.com/karpathy/autoresearch). Set up a measurable experiment, run it in a fixed time budget, keep improvements, discard failures, loop forever.
Source code reference: `reference/autoresearch-master/` (program.md, train.py, prepare.py)
The document explicitly proposes an autonomous research loop that runs overnight and even says it runs indefinitely until manually stopped, while modifying and executing train.py. That describes potentially impactful code execution without any safety warning, guardrails, resource limits, approval checkpoints, or isolation requirements, which could lead users to launch uncontrolled experiments that consume compute, alter code, or produce unsafe changes.
The instruction to 'activate any specialist' by reading an external definition file and 'adopt their role' is broad delegation guidance without clear trust boundaries, approval gates, or safety constraints. In a multi-agent skill, this can cause unintended persona adoption, prompt-scope expansion, or invocation of risky downstream instructions from referenced agent files, especially because those files are treated as authoritative operational specs.
The phrase 'loop forever' endorses unbounded execution and resource consumption. In an agent skill, that is dangerous because it can lead to runaway compute usage, prolonged unattended modifications, and persistent command execution without a termination condition.
# Research Lab — Autonomous Experiment Methodology
Adapted from Karpathy's [autoresearch](https://github.com/karpathy/autoresearch) framework. The core idea: set up a measurable experiment, run it in a fixed time budget, keep improvements, discard failures, and loop forever.
This methodology is **not limited to ML training**. It applies to any domain with a measurable metric: image analysis pipelines, prompt engineering, configuration tuning, data processing, performance optimization, and more.
The file promotes a fully autonomous, never-ending experimentation loop without warning about unattended code changes, shell execution, costs, or system impact. In a skill context, omission of those safeguards increases the chance that an agent runs risky operations continuously without human oversight.
The explicit LOOP FOREVER instruction operationalizes indefinite autonomous experimentation rather than merely describing a concept. Combined with code modification and experiment-running steps, it materially increases the risk of runaway activity and repeated side effects on repositories and systems.
LOOP FOREVER:
1. Review current state (baseline metric, recent experiments)
2. Propose a hypothesis — what change might improve the metric?
3. Implement the change (modify only the in-scope file/config)
This documentation instructs an agent to autonomously modify code, execute experiments, and continue indefinitely, which exceeds the stated purpose of a team-composition skill. In context, these are operational instructions that could drive real code changes and command execution without bounded authorization, creating a meaningful risk of unintended system modification and resource consumption.
Here LOOP FOREVER is paired with git and shell actions, making the unbounded behavior directly actionable. This is especially risky because the loop can repeatedly commit, run programs, inspect logs, and reset history with no built-in approval or global resource ceiling.
LOOP FOREVER:
1. Look at the git state: the current branch/commit we're on
2. Tune train.py with an experimental idea by directly hacking the code
3. git commit
The embedded autoresearch loop explicitly directs shell execution, git commits, log scraping, crash inspection, and branch advancement/reversion. Those actions are unrelated to a team-builder’s declared function and would grant an agent a workflow for autonomous repository manipulation and command execution if followed.
The instructions include git reset reversion behavior without warning that it can discard local work and alter repository state. In an autonomous-agent setting, destructive version-control commands are especially dangerous because they can erase changes without the user’s knowledge or a recovery plan.
The script initializes and appends to a results ledger inside the target project and treats an arbitrary file as modifiable in-scope state. Persistent local experiment management is consistent with autoresearch tooling, but it is not justified by a manifest focused on composing specialist teams from rosters.
The script executes the configurable run_cmd directly, and in do_run wraps it in bash -c, with no safety warning or guardrails. This is dangerous because users may treat the option as a benign experiment parameter when it actually grants full shell execution, enabling arbitrary commands, exfiltration, or destructive operations.
The script evaluates metric_cmd via eval, so a value that appears to be a simple metric extractor can execute arbitrary shell syntax. Because metric extraction is expected to be read-only, this hidden execution path is especially risky and can surprise users with code execution in a trusted workflow.
No suspicious patterns detected.