- name
- noodle
- description
- Operate the Noodle CLI — explain commands, find flags, create/edit .noodle.toml config. Also covers writing skills for Noodle: the orders pipeline, task-type schedule fields, stage composition, and the orders-next.json schema. Use when running noodle commands, editing .noodle.toml, writing or updating a skill's schedule field, authoring new task-type skills, or asking "how to run noodle", "noodle help", "configure noodle".
# Noodle
Skills that run themselves. Write skills with a `schedule:` field describing when they should run. Noodle's scheduler agent reads those descriptions, writes orders, and the loop spawns agents in isolated worktrees to do the work.
## How the Loop Works
1. **Brief** — Noodle gathers project state into `.noodle/mise.json` (backlog, active agents, history, capacity, registered skills)
2. **Schedule** — the scheduler agent reads mise, writes `.noodle/orders-next.json`
3. **Dispatch** — Noodle promotes orders and spawns agent sessions
4. **Execute** — each agent runs in its own worktree with the assigned skill
5. **Merge** — completed work merges back to main
## Skills
A skill is a directory with a `SKILL.md`. The body is the agent's instructions. The frontmatter is metadata.
**General skills** (no `schedule:`) are invoked directly by agents. Examples: `commit`, `debugging`.
**Scheduled skills** (with `schedule:`) run autonomously. The scheduler reads the `schedule:` value as prose and uses judgment to decide when conditions are met.
```yaml
---
name: quality
description: Post-cook quality gate.
schedule: "Follow-up stage after execute. Cross-provider review preferred."
---
```
Skills live in `.agents/skills/` by default. Paths in `skills.paths` are searched in order; first match wins.
For the full guide on writing skills, orders, and schedule fields, see [references/skill-authoring.md](references/skill-authoring.md).
## Configuration
Noodle reads `.noodle.toml` at project root. Scaffolded on first `noodle start`. Most projects only need:
```toml
mode = "supervised" # auto | supervised | manual
[routing.defaults]
provider = "claude"
model = "claude-opus-4-6"
[skills]
paths = [".agents/skills"]
```
Full config reference: [references/configuration.md](references/configuration.md)
## CLI
All commands accept `--project-dir` (default: current directory, env: `NOODLE_PROJECT_DIR`).
### Core
| Command | Description |
|---------|-------------|
| `noodle start` | Start the noodle loop |
| `noodle start --once` | Run one scheduling cycle and exit |
| `noodle status` | Show runtime status (active agents, queue depth, loop state) |
| `noodle reset` | Clear all runtime state (refuses if loop is running) |
### Skills & Schemas
| Command | Description |
|---------|-------------|
| `noodle skills` | List resolved skills |
| `noodle skills list` | List all resolved skills |
| `noodle schema <target>` | Print schema docs for a target |
| `noodle schema list` | List available schema targets (`mise`, `orders`, `status`) |
### Worktrees
| Command | Description |
|---------|-------------|
| `noodle worktree create <name>` | Create a new linked worktree |
| `noodle worktree create <name> --from <ref>` | Create from a specific branch or commit |
| `noodle worktree exec <name> <command...>` | Run a command inside a worktree (CWD-safe) |
| `noodle worktree merge <name>` | Merge a worktree branch into integration branch |
| `noodle worktree merge <name> --into <branch>` | Merge into a specific target branch |
| `noodle worktree list` | List all worktrees with merge status |
| `noodle worktree prune` | Remove merged and patch-equivalent worktrees |
| `noodle worktree cleanup <name>` | Remove a worktree without merging |
| `noodle worktree cleanup <name> --force` | Remove even with unmerged commits |
| `noodle worktree hook` | Run worktree session hook (used internally) |
### Events
| Command | Description |
|---------|-------------|
| `noodle event emit <type>` | Emit an external event into the loop |
| `noodle event emit <type> --payload <json>` | Emit with a JSON payload |
| `noodle event emit <type> --session <id>` | Emit to a specific session's event log |
Full CLI reference: https://poteto.github.io/noodle/reference/cli
## Troubleshooting
1. **"fatal config diagnostics prevent start"** — Check `.noodle.toml` against `noodle schema`.
2. **Missing adapter scripts** — Create scripts or update paths in config.
3. **Stale worktrees** — `noodle worktree list`, then `noodle worktree prune`.
## References
- [references/skill-authoring.md](references/skill-authoring.md) — writing skills: pipeline, orders schema, schedule fields, stage composition, full examples
- [references/configuration.md](references/configuration.md) — full .noodle.toml config reference
- https://poteto.github.io/noodle/concepts/adapters — adapter setup, script contracts, provider examples
- https://poteto.github.io/noodle/concepts/scheduling — how the loop schedules and dispatches work
- https://poteto.github.io/noodle/concepts/skills — skill discovery, composition, scheduled vs general
- https://poteto.github.io/noodle/concepts/runtimes — process, sprites, and runtime routing
عرض على GitHub