Песочница

Создание решающих правил

Выполните проверенное правило возврата со строгим JSON, сохраните точную запись решения и разберите границы этой записи.

Эта страница описывает v1.14. Проверьте, является ли она текущим руководством: /version.json

Одно решение, одна проверяемая запись

Выполните правило возврата и сохраните предмет проверки.

Проверенное правило и строгий JSON-ввод дают одно ограниченное локальное решение. Каталог хранит подготовленное правило, канонический ввод, результат и допустимое переносимое ядро.

  1. 01Проверенное правило
  2. 02Строгий JSON-ввод
  3. 03Решение: allow
  4. 04Проверяемое ядро

1. Правило

LISPEX
(let ((days (cdr (car input)))
      (opened (cdr (car (cdr input)))))
  (if (< days 15)
      (if opened "deny" "allow")
      "deny"))

2. Ввод

JSON
{
  "days": 14,
  "opened": false
}

3. Локальный запуск

SHELL
lispex rule run \
  --source refund-window.lspx \
  --input day-14-unopened.json \
  --prepare-limits prepare-limits.json \
  --eval-limits evaluation-limits.json \
  --out decision

lispex rule inspect --dir decision
lispex rule verify --dir decision
lispex rule replay --dir decision
4. Решение

Заказ на 14-й день с закрытым товаром возвращает allow.

5. Проверка записи

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

Что связывает ядро

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

Чего ядро не разрешает

Личность издателя, свежесть, корректность политики, защиту от replay и внешнее действие.

Сначала прочтите решение

Правило задаёт только два вопроса: сколько дней прошло и был ли товар открыт. Оно не читает файлы, не обращается к сети или часам и не вызывает скрытые функции host-приложения.

ВводРешениеПричина
14-й день, товар закрытallowзаказ ещё в пределах срока
15-й день, товар закрытdenyсрок уже истёк
14-й день, товар открытdenyоткрытый товар не допускается

Значение allow или deny для рабочего процесса определяет приложение. Lispex возвращает данные, но не оформляет возврат сам.

Зачем нужны четыре команды

КомандаДействие
rule runподготавливает правило, вычисляет строгий JSON с точными лимитами и атомарно записывает каталог решения из пяти файлов
rule inspectчитает и кратко описывает каталог без выполнения
rule verifyбез выполнения проверяет точный набор файлов, идентификаторы, хэши и связи
rule replayодин раз выполняет записанный запрос в свежем экземпляре вычислителя и требует тот же результат

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

Квитанция и Vouch — разные процессы

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

Оно не устанавливает автора правила, свежесть запроса, справедливость политики, защиту от replay или разрешение на внешнее действие. Vouch — отдельный аутентифицированный процесс с привязкой к запросу. Даже его evidence не превращается во внешнее полномочие само по себе.

Где доступна команда

Процесс rule предоставляет Native-продукт. npm, публичный WASM, браузер и Playground обучают или выполняют другие поддерживаемые поверхности, но не предоставляют эти Native-команды.

Куда дальше

Соберите правило по шагам в разделе Первое решающее правило или изучите зафиксированный Контракт ограниченного вычислителя.