# witness

Подписывает манифест исправлений с Ed25519 и следит за регрессиями через текстовые маркеры в коде. Помогает вовремя заметить, если баг вернулся после случайного отката.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 655 установок · ★ 79357
- Автор: ruvnet
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/ruvnet/ruflo/tree/HEAD/plugins/ruflo-core/skills/witness/SKILL.md
- Обновлён: 2026-10-25
- HTML: https://affpapa.org/nevibecode/skills/witness

## Что делает

Скилл отслеживает исправления в кодовой базе с помощью контрольных строк. В файл witness-fixes.json заносят идентификатор бага, целевой файл и маркер — характерную подстроку, которая должна оставаться на месте. Если чужой коммит вырежет исправление, проверка сразу сообщит о регрессии.

Для генерации манифеста и подписи нужен пакет @noble/ed25519. Скрипт init.mjs создаёт заготовки verification.md.json и verification-history.jsonl. Без ключей RUFLO_WITNESS_SEED подпись строится на хеше коммита для проверки целостности. Для подтверждения авторства задают собственный приватный сид и открытый ключ.

История в формате JSONL сохраняет состояние каждого фикса между релизами. Команда history позволяет найти коммит, в котором маркер пропал. Если включить флаг --strict, скрипт завершится с ошибкой даже при изменении хеша файла с сохранённым маркером.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill witness -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/witness/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/witness/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill witness -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/witness/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill witness -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/witness/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install ruvnet/ruflo witness
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/witness/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill witness -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/ruvnet/ruflo --path plugins/ruflo-core/skills/witness
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/witness/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add ruvnet/ruflo --skill witness -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/ruvnet/ruflo/tree/HEAD/plugins/ruflo-core/skills/witness/SKILL.md

## Когда брать
- отслеживать возврат исправленных ошибок через маркеры в коде
- подписывать манифест релизов с помощью Ed25519
- находить конкретный коммит, вызвавший регрессию бага
- блокировать сборку в CI при пропаже контрольной строки фикса

## Примеры запросов агенту
- Проверь регрессии фиксов через witness verify
- Сгенерируй манифест witness regen для нового релиза
- Покажи историю изменений по фиксу F1 через witness history

## Похожие
- [do](https://affpapa.org/nevibecode/skills/do.md) — скилл · 7000 установок
- [grounded-vault](https://affpapa.org/nevibecode/skills/grounded-vault.md) — скилл · 1400 установок
- [no-mistakes](https://affpapa.org/nevibecode/skills/no-mistakes.md) — скилл · 5600 установок
- [cmux-testing](https://affpapa.org/nevibecode/skills/cmux-testing.md) — скилл · 4900 установок
- [code-review](https://affpapa.org/nevibecode/skills/secondsky-code-review.md) — скилл · 530 установок
- [sentry-setup-releases](https://affpapa.org/nevibecode/skills/sentry-setup-releases.md) — скилл · 1500 установок

Из того же набора: [ruvnet/ruflo](https://affpapa.org/nevibecode/by/ruvnet/ruflo.md) — 146 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
