machine-tool

$npx mdskill add xuiltul/animaworks/machine-tool

Execute precise code changes via external agent CLIs.

  • Handles heavy refactors, investigations, and batched agent runs.
  • Depends on external agent CLIs and supports engine selection.
  • Requires detailed blueprints and working directory paths.
  • Delivers results as JSON or streams to state directories.

SKILL.md

.github/skills/machine-toolView on GitHub ↗
---
name: machine-tool
description: >-
  Delegates work to external agent CLIs (machine tools) for large code changes, investigation, or analysis.
  Use when: offloading implementation via the machine command, heavy refactors, or batched agent runs.
tags: [machine, agent, external, delegation]
---

# Machine Tool

Delegate tasks to external agent CLIs.
Offload heavy work like code changes, investigation, and analysis to external agents.

## Design Philosophy

You are the **craftsperson**. The machine is a **machine tool** (CNC, laser cutter, etc.).
A machine tool can cut with incredible precision, but it doesn't decide what to build.
It has no memory, no communication, no identity.
**Your job is to provide precise blueprints (instructions).**

## CLI Usage

```bash
animaworks-tool machine run [options] "instruction" -d /path/to/workdir
```

### CLI Options

| Option | Description |
|--------|-------------|
| `-e ENGINE` | Engine selection (omit for auto-selected default; use `-h` to list available engines) |
| `-d PATH` | Working directory (default: current directory) |
| `-t SECONDS` | Timeout in seconds (default: 600s sync, 1800s background) |
| `-m MODEL` | Model override (default: engine's default) |
| `--background` | Background execution (1800s timeout; output streams to `state/cmd_output/`) |
| `-j / --json` | Output result as JSON |

### Basic Examples

```bash
# Minimal (default engine, current directory)
animaworks-tool machine run "detailed instruction"

# Specify engine and directory
animaworks-tool machine run -e cursor-agent "instruction" -d /path/to/workdir

# Background execution
animaworks-tool machine run --background "instruction" -d /path/to/workdir

# Custom timeout
animaworks-tool machine run -t 300 "instruction" -d /path/to/workdir
```

## Writing Good Instructions (Important)

Vague instructions lead to poor results. Always include:

1. **Goal** — What to accomplish
2. **Target files/modules** — What to modify
3. **Constraints** — Coding conventions, API compatibility, etc.
4. **Expected output** — Code, report, diff, etc.

### Pass Long Instructions via File

Instructions containing Bash special characters (`|`, `` ` ``, `$`) will cause shell errors
if passed directly. Write to a file first:

```bash
# Write instruction to file
cat > /tmp/instruction.txt << 'INSTRUCTION'
## Task: PR #2087 Code Review

| Aspect | Check |
|--------|-------|
| Correctness | Meets issue requirements |
| Maintainability | Readability, tests, SRP |

Target file: `app/Services/Movacal/MovacalApiClient.php`
INSTRUCTION

# Read from file and execute
animaworks-tool machine run "$(cat /tmp/instruction.txt)" -d /path/to/workdir
```

## Parallel Execution (`--background`)

Use `--background` to run multiple machines simultaneously.
Output streams in real-time to `state/cmd_output/`.

### 3-Parallel Review Example

```bash
# Launch 3 review perspectives in parallel
animaworks-tool machine run --background "Correctness review..." -d /path &
animaworks-tool machine run --background "Maintainability review..." -d /path &
animaworks-tool machine run --background "Consistency review..." -d /path &
wait

# Check results (Read files from state/cmd_output/)
```

## When to Use

| Scenario | Suitable? |
|----------|-----------|
| Multi-file code changes | YES |
| Bug investigation / root cause analysis | YES |
| Test code generation | YES |
| Refactoring | YES |
| Short questions | NO (answer yourself) |
| Work requiring memory/messaging | NO (do it yourself) |

## Notes

- Machine tools have NO access to AnimaWorks infrastructure (no memory, messaging, or org info)
- Rate limited (5 per session, 2 per heartbeat)
- Background output streams to `state/cmd_output/`, check with Read/Glob

More from xuiltul/animaworks