FB totalreclaw
Сквозное зашифрованное хранилище для ИИ-агентов — переносимое, ваше навсегда. AES-256-GCM E2EE: сервер никогда не видит открытый текст.
машинный переводПоказать оригиналСкрыть оригинал«End-to-end encrypted memory for AI agents — portable, yours forever. A…»
End-to-end encrypted memory for AI agents — portable, yours forever. AES-256-GCM E2EE: server never sees plaintext.
Сквозное зашифрованное хранилище для ИИ-агентов — переносимое, ваше навсегда.
Как процесс B 65/100 · Почти готов — слабые места: результат и критерий готовности, входы и предусловия, отчётность по ходу
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Назначение скилла само по себе рискованное: работа с кошельками, паролями браузера, наступательная безопасность. Даже честная реализация даёт агенту доступ к тому, что стоит денег.
Объясните в description, зачем нужен доступ и как он ограничен; добавьте тесты, которые показывают отказ на опасных запросах.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Тело SKILL.md длиннее 5 000 токенов: вынесите справочные детали в references/ и подключайте по необходимости.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 29
✓ Критических и высоких находок нет
Средние и низкие: 29
-
средняя Рискованное назначение
intent-wallet-secretsplugin/crypto.ts:92Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Derive auth, encryption, and dedup keys from a recovery phrase.
-
средняя Рискованное назначение
intent-wallet-secretsplugin/index.ts:332Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров/** True when recovery phrase is missing — tools return setup instructions. */
-
средняя Рискованное назначение
intent-wallet-secretsplugin/index.ts:336Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров* Derive keys from the recovery phrase, load or create credentials, and
-
средняя Рискованное назначение
intent-wallet-secretsplugin/index.ts:430Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров// One-time billing check for returning users (imported recovery phrase).
-
средняя Опасные команды
cmd-persistenceplugin/index.ts:494Механизм закрепления (cron / launchd / планировщик / автозапуск в реестре) (строковый литерал в коде, не выполняется)'~/Library/LaunchAgents/ai.openclaw.gateway.plist under <key>EnvironmentVariables</key>:\n' +
строка в коде -
средняя Рискованное назначение
intent-wallet-secretsplugin/index.ts:532Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров/** Recovery phrase cached for LSH seed derivation (set during initialize()). */
-
средняя Рискованное назначение
intent-wallet-secretsplugin/README.md:39Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеровThe agent handles setup: generates your encryption keys, asks you to save a 12-word recovery phrase, and registers you. After that, memory is fully automatic.
-
средняя Рискованное назначение
intent-wallet-secretsplugin/README.md:93Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеровSame encryption, same recovery phrase, same memories across all agents.
-
средняя Рискованное назначение
intent-wallet-secretsREADME.md:247Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров| `TOTALRECLAW_RECOVERY_PHRASE` | **Yes** | -- | 12-word BIP-39 recovery phrase (never sent to server) |
-
средняя Рискованное назначение
intent-wallet-secretsREADME.md:315Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров1. **Key Derivation**: Recovery phrase is processed through Argon2id to derive encryption keys. The phrase is never sent to the server.
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:29Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров## Recovery Phrase -- READ THIS FIRST
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:33Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеровThe recovery phrase is the user's ONLY identity in TotalReclaw. It derives all encryption keys. There is NO password reset, NO recovery mechanism, and NO support channel that can help if it is lost.
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:35Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров**When showing the recovery phrase to the user, ALWAYS include this warning:**
-
средняя Рискованное назначение
intent-wallet-secretsSKILL.md:37Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров> Your recovery phrase is the ONLY way to access your encrypted memories. If you lose it, your memories are gone forever -- there is no password reset, no recovery, and no support that can help. Write
-
низкая Рискованное назначение
intent-wallet-secretsCLAWHUB.md:63Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)description: "End-to-end encrypted memory for AI agents — portable, yours forever. AES-256-GCM E2EE. One recovery phrase, full portability."
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsdist/triggers/before-agent-start.js:296Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)? '\n\nTotalReclaw authentication failed. If using a recovery phrase, check that all 12 words are in the correct order and spelled correctly.'
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsplugin/api-client.ts:104Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)? ' Authentication failed. If using a recovery phrase, check that all 12 words are in the correct order and spelled correctly.'
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsplugin/generate-mnemonic.ts:11Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)console.log('\n Your TotalReclaw recovery phrase (12 words):\n');в кавычках -
низкая Рискованное назначение
intent-wallet-secretsplugin/index.ts:481Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)'1. Set TOTALRECLAW_RECOVERY_PHRASE — ask the user if they have an existing recovery phrase or generate a new 12-word BIP-39 mnemonic.\n' +
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenplugin/package-lock.json:144Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…byA+l3XtsAj+Q8tf…oOo+X6HZ…Q8A==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenplugin/package-lock.json:192Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…bSm+x6ETixtKZBh/qbRE…8Sr/Wcyx…yGA==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenplugin/package-lock.json:240Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…UzJ+En8KcVm9Lk5+uGUQ…GXw==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenplugin/package-lock.json:272Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…595+ujv0…pwV/GONa…zQo/1O6zRIkh0m/8+5Bjr…SZw==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenplugin/package-lock.json:360Строка, похожая на токен (может быть id, хеш или секрет) (определение детектора / чёрного списка)"integrity": "sha5…bUj+rBev…oyX+04WG…4jg==",
детектор -
низкая Секреты в коде
secret-high-entropy-tokenplugin/subgraph-store.ts:26Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)const DEFAULT_DATA_EDGE_ADDRESS = '0xC4…5ca';
в кавычках -
низкая Секреты в коде
secret-high-entropy-tokenplugin/subgraph-store.ts:29Строка, похожая на токен (может быть id, хеш или секрет) (в кавычках — упоминание, а не команда)const DEFAULT_ENTRYPOINT_ADDRESS = '0x00…032';
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsREADME.md:27Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)export TOTALRECLAW_RECOVERY_PHRASE="your twelve word recovery phrase here"
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsREADME.md:100Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (в кавычках — упоминание, а не команда)export TOTALRECLAW_RECOVERY_PHRASE="your twelve word recovery phrase here"
в кавычках -
низкая Рискованное назначение
intent-wallet-secretsSKILL.md:31Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)**CRITICAL SAFETY WARNING:** TotalReclaw generates a NEW recovery phrase for the user. NEVER let the user enter a recovery phrase from an existing crypto wallet they own. TotalReclaw uses BIP-39 mnemo
детектор
Просканировано файлов: 80. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
body-longтело SKILL.md ≈ 7190 токенов (рекомендуется < 5000); вынесите детали в references/ - заметка
frontmatter-keyнеизвестное поле фронтматтера "homepage"
Процессный рейтинг: все десять параметров 65/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 50Когда включается. Не сказано, при каком запросе скилл включается
- 70Стоимость исполнения. Тело инструкции 7190 токенов
- 100Инструменты и файлы. Внешние инструменты не нужны
- 100Шаги. Шагов: 63
- 100Ошибки и развилки. Развилок: 3, есть раздел про ошибки
- 100Согласованность. Имя и обязательные поля на месте
- 100Повторный запуск. Изменяющие операции проверяют текущее состояние
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Разделов верхнего уровня: 11. Похоже на несколько доменов в одном скилле
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +3Длина description 115: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +4Описание говорит, когда скилл НЕ применять
- +4Структура: 48 заголовков
- +3Пошаговые инструкции: 63 пунктов
- +4Есть примеры (34 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 75.