Skip to content
Back to skills

Solo

ASecurity

Превратить текущую живую сессию в автономного фонового агента claude-control (handoff, кейс A). Сессия формулирует миссию с проверяемым критерием приемки, регистрирует агента через `claude-rc agent create --handoff-*` и после выхода пользователя из сессии продолжает миссию сама - под надзором reconciler'а, с видимостью с телефона и приемкой результата. Использовать когда пользователь говорит "/solo", "продолжи без меня", "доделай фоном", "преврати в агента". Требует установленный агентный сло...

  • 11 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsgobashnodegit

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add dewil/ai-control --skill solo --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Solo?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Solo
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dewil-solo-ai-control/badge)](https://www.skillsdirectory.com/skills/dewil-solo-ai-control)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: solo
description: Превратить текущую живую сессию в автономного фонового агента claude-control (handoff, кейс A). Сессия формулирует миссию с проверяемым критерием приемки, регистрирует агента через `claude-rc agent create --handoff-*` и после выхода пользователя из сессии продолжает миссию сама - под надзором reconciler'а, с видимостью с телефона и приемкой результата. Использовать когда пользователь говорит "/solo", "продолжи без меня", "доделай фоном", "преврати в агента". Требует установленный агентный слой claude-control (Linux/systemd) и git-проект. Контракт handoff - docs/design-2026-07-11-agent-state-machine.md (§9).
---

# solo

Передача текущей сессии в автономный полет. После handoff'а транскрипт сессии
адоптируется в приватный namespace агента, reconciler поднимает ее в выделенном
рантайме `agent-<name>` - с этой же памятью, тем же session_id, видимую с
телефона. Приемку результата ставит внешний контур (reconciler/человек), не сам
агент.

## Пре-флайт (все проверки ДО регистрации; отказ - честный, с причиной)

1. **Платформа**: `command -v claude-rc && systemctl --user is-active claude-agent-reconciler.service` - иначе "агентный слой не установлен".
2. **Git-проект**: cwd внутри git-репо (`git rev-parse --show-toplevel`); vault'ы и не-git каталоги не передаются.
3. **Чистота дерева**: `git status --porcelain` пуст. Иначе - предложи пользователю закоммитить/стэшнуть и остановись: worktree агента создается от HEAD, незакоммиченный WIP в миссию НЕ поедет - молча потерять его недопустимо.
4. **Проверяемый критерий приемки** - без него /solo отказывает (принцип "автоматизируем только проверяемое"). Если критерий можно выразить детерминированной командой (тесты, линт, сборка) - он станет `acceptance.check`; если нет - приемка уйдет человеку (needs-human), об этом честно скажи.

## Шаг 1: миссия

Собери из контекста разговора черновик миссии и покажи пользователю на
подтверждение (без подтверждения не регистрируй):

```markdown
# Миссия: <короткое имя>
## Цель
<что должно быть сделано, 1-3 предложения>
## Критерий приемки (проверяемый)
<команда или человекочитаемый критерий>
## Ограничения
<что нельзя трогать, лимиты>
## Стоп-условия
<когда остановиться и позвать человека>
```

Имя агента: kebab-case из цели, `^[a-z][a-z0-9-]{0,30}[a-z0-9]$`.

## Шаг 2: параметры handoff (механика, выполняй точно)

```bash
# session_id: nonce попадает в транскрипт немедленно (результат тула),
# grep по namespace-каталогу cwd находит НАШ файл
NONCE="solo-$RANDOM$RANDOM"; echo "$NONCE"
SLUG=$(pwd | sed 's|[^a-zA-Z0-9]|-|g')
SID=$(grep -l "$NONCE" "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/projects/$SLUG/"*.jsonl | head -1 | xargs -n1 basename | sed 's/\.jsonl$//')

# PID процесса claude этой сессии: подъем по дереву от шелла тула
P=$$; while [[ -n "$P" && "$P" != 1 ]]; do
  case "$(ps -o comm= -p "$P")" in claude*|node*) CPID=$P; break;; esac
  P=$(ps -o ppid= -p "$P" | tr -d " ")
done
CSTART=$(awk '{print $22}' "/proc/$CPID/stat")
```

`SID` пустой или `CPID` не найден -> handoff невозможен, предложи
**fresh-режим**: тот же create без `--handoff-*` + `claude-rc agent start` -
агент начнет с mission.md без наследования транскрипта.

## Шаг 3: регистрация

Сгенерируй `spec.yaml` СТРОГО по схеме design §19 (не изобретай поля):

```yaml
schema: 1
name: <name>
type: mission
role: <короткая роль>
project: <корень репо>
goal: "<одно предложение>"
autonomy: act              # по умолчанию
memory_max_mb: 700
limits:
  max_iterations: 50
  max_hours: 8
  max_iteration_minutes: 20
acceptance:                # только если критерий реально детерминирован
  check: "<команда>"
  deterministic: true
  timeout_s: 600
```

и mission.md во временные файлы, затем:

```bash
claude-rc agent create <name> --spec <spec> --mission <mission> \
  --handoff-session "$SID" --handoff-pid "$CPID" \
  --handoff-pid-start "$CSTART" --handoff-cwd "$(pwd)"
```

Регистрация транзакционна: агент создается в `desired=paused` с
handoff-блоком; никакой гонки со стартом нет - reconciler начнет адопцию
только после смерти этого процесса (commit-триада).

## Шаг 4: передача

Скажи пользователю ровно это:

- агент `<name>` зарегистрирован, окно handoff - 10 минут;
- **заверши эту сессию** (Ctrl+C дважды или /exit) - reconciler в течение
  1-2 минут адоптирует транскрипт и поднимет агента;
- наблюдение: `claude-rc agent status <name>` / attach / с телефона -
  сессия `agent-<name>`;
- если сессию не завершить за 10 минут - handoff истечет
  (attention: handoff_expired), решение за оператором.

После этого сообщения НЕ выполняй других действий - каждый лишний ход
отодвигает выход из сессии.

## Чего не делать

- Не регистрируй без подтвержденной пользователем миссии.
- Не выдумывай критерий приемки за пользователя - спроси.
- Не пытайся сам завершить сессию или убить процесс claude - выход делает
  пользователь; преждевременная смерть процесса до записи регистрации
  оставит миссию незарегистрированной.
- Не передавай секреты в mission.md/spec.yaml (правило secrets-handling).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.