По итогам разбора собственной работы. jellybit-review-code не запускался нигде: charter обещал «проход профиля quick», а quick состоял из стадий 0, 1, 5. Проход, который нельзя запустить, нельзя и откалибровать. Теперь он стадия 1 рядом с review-specs — оба applicative, у обоих критерий записан, различаются источники (дельта-спека и конвенции). review-context.sh больше не выгружает go doc -short по всему модулю: это было 264 строки из 458 при том, что граф зависимостей — единственное, чего агент не восстановит сам, — занимает 21. Публичную поверхность он вытянет go doc по нужному месту. Из calibration.md убрана секция дополнительных метрик: precision, корреляция и стоимость прогона вручную никем не считаются, а набор показателей, который не собирают, изображает измеряемость вместо того, чтобы её давать. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
95 lines
3.0 KiB
YAML
95 lines
3.0 KiB
YAML
# yaml-language-server: $schema=https://taskfile.dev/schema.json
|
||
#
|
||
# Запуск команд проекта через Task (https://taskfile.dev).
|
||
# Список задач: `task --list`.
|
||
|
||
version: '3'
|
||
|
||
vars:
|
||
BINARY: jellybit
|
||
PKG: ./cmd/jellybit
|
||
# Версии инструментов для воспроизводимой установки (см. задачу setup).
|
||
GOLANGCI_VERSION: v2.12.2
|
||
GOVULNCHECK_VERSION: v1.6.0
|
||
|
||
tasks:
|
||
default:
|
||
desc: Список доступных задач
|
||
cmds:
|
||
- task --list
|
||
silent: true
|
||
|
||
run:
|
||
desc: 'Локальный запуск (нужен ./config.toml с db_path -> ./jellybit.db)'
|
||
deps: [assets]
|
||
cmds:
|
||
- go run {{.PKG}} --config ./config.toml
|
||
|
||
build:
|
||
desc: Статический бинарь linux/amd64 для сервера (Intel N150)
|
||
deps: [assets]
|
||
cmds:
|
||
- CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags='-s -w' -o {{.BINARY}} {{.PKG}}
|
||
|
||
test:
|
||
desc: Прогон тестов
|
||
cmds:
|
||
- go test ./...
|
||
|
||
lint:
|
||
desc: Запуск golangci-lint
|
||
cmds:
|
||
- golangci-lint run
|
||
|
||
gate:
|
||
desc: 'Детерминированный гейт ревью: build/vet/lint/test/race/покрытие диффа/миграции/секреты. BASE=<rev> — база диффа'
|
||
cmds:
|
||
- bash scripts/gate.sh {{.BASE}}
|
||
|
||
review:context:
|
||
desc: 'Вход для архитектурного прохода ревью: пакеты, граф зависимостей, инвентарь концепций'
|
||
cmds:
|
||
- bash scripts/review-context.sh
|
||
|
||
tidy:
|
||
desc: go mod tidy
|
||
cmds:
|
||
- go mod tidy
|
||
|
||
assets:
|
||
desc: 'Идемпотентный фетч вендорных ассетов в web/static/vendor (по web/assets.manifest, проверка sha256; Node не нужен)'
|
||
cmds:
|
||
- |
|
||
set -e
|
||
while IFS= read -r line; do
|
||
case "$line" in ''|\#*) continue;; esac
|
||
set -- $line
|
||
dest=$1; url=$2; sum=$3
|
||
file="web/static/$dest"
|
||
if [ -f "$file" ] && echo "$sum $file" | sha256sum -c --status - 2>/dev/null; then
|
||
continue
|
||
fi
|
||
mkdir -p "$(dirname "$file")"
|
||
echo "↓ $dest"
|
||
curl -fsSL --retry 3 -o "$file" "$url"
|
||
echo "$sum $file" | sha256sum -c -
|
||
done < web/assets.manifest
|
||
|
||
image:
|
||
desc: Docker-образ из готового бинаря (см. docs/adr docker-deploy)
|
||
deps: [build]
|
||
cmds:
|
||
- docker build -t jellybit:dev .
|
||
|
||
clean:
|
||
desc: Удалить собранный бинарь
|
||
cmds:
|
||
- rm -f {{.BINARY}}
|
||
|
||
setup:
|
||
desc: Установка инструментов разработки (линтер, govulncheck + git-хуки lefthook)
|
||
cmds:
|
||
- go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@{{.GOLANGCI_VERSION}}
|
||
- go install golang.org/x/vuln/cmd/govulncheck@{{.GOVULNCHECK_VERSION}}
|
||
- lefthook install
|