CC billable-time-stephane-boghossian
Когда ваша коллегия адвокатов спросит «покажи, как ты выставлял счета за работу с ИИ» — а мнения ABA 512, Florida 24-1, California, New York и DC уже вышли — вам понадобится артефакт, который выдержит проверку. billable-time создает его. Из ваших логов сеансов Claude Code он составляет проверяемые записи о времени и печатный пакет аудита HTML с: цепочкой доказательств SHA-256 (исходные файлы + matter.yml + пакет активных раскрытий + самохеш проверяемого артефакта), идентификатором адвоката и блоком подписи, пакетом раскрытия информации по мнению коллегии адвокатов с начальным языком для пяти юрисдикций и детерминированными нарративами, основанными на содержимом, из имени файла и формы инструмента — по умолчанию никогда не из текста запроса. Инструмент отказывается выставлять счета самостоятельно. Режим --strict отказывается отправлять артефакт, если нарушен какой-либо инвариант аудита (широкие маршруты, отсутствие адвоката, отсутствие/непроверенное раскрытие). Поставляется как Node CLI и автономная версия для браузера (без бэкенда; JSONL никогда не покидает страницу). 15 инвариантных тестов проверяют контракт. AGPL-3.0.
машинный переводПоказать оригиналСкрыть оригинал«When your bar comes asking "show me how you billed AI-assisted work" —…»
When your bar comes asking "show me how you billed AI-assisted work" — and ABA 512, Florida 24-1, California, New York, and DC all have opinions out — you need an artifact that survives review. billable-time produces it. From your Claude Code session logs, it drafts reviewable time entries plus a printable HTML audit packet with: SHA-256 chain of evidence (source files + matter.yml + active disclosure pack + verifiable artifact self-hash), attorney identity and signature block, a bar-opinion disclosure pack with starter language for five jurisdictions, and content-aware deterministic narratives derived from filename and tool shape — never from prompt text by default. The tool refuses to bill on its own. --strict mode refuses to ship the artifact if any audit invariant fails (broad routes, missing attorney, missing/unverified disclosure). Comes as a Node CLI and a self-contained browser version (no backend; JSONL never leaves the page). 15 invariant tests verify the contract. AGPL-3.0.
Когда ваша коллегия адвокатов спросит «покажи, как ты выставлял счета за работу с ИИ» — а мнения ABA 512, Florida 24-1, California, New York и DC уже вышли —…
Как процесс C 59/100 · Есть пробелы — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.
Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 1
✓ Критических и высоких находок нет
Средние и низкие: 1
-
средняя Широкие права
meta-broad-allowed-toolsSKILL.md:1Заранее разрешены широкие инструменты: Bashallowed-tools: Bash Read Edit Write
Просканировано файлов: 13. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "triggers"
Процессный рейтинг: все десять параметров 59/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 3, без проверки текущего состояния
- 60Ошибки и развилки. Развилок: 2
- 100Инструменты и файлы. Инструменты объявлены во frontmatter
- 100Шаги. Шагов: 44
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 2040 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Ответ описан самодельной разметкой (7 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 999: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +4Структура: 9 заголовков
- +3Пошаговые инструкции: 44 пунктов
- +4Есть примеры (1 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 81.