9.1 KiB
9.1 KiB
Завершённая работа
Конституция проекта
- Язык: Go 1.25.6
- Рамка: нет определённой рамки (голый Go)
- База данных: Нет базы данных
- Инфраструктура: Web сервер на Go
Кодинг Стандарты
- Линтер: gofmt
- Форматтер: gofmt
- Название: ниже указанные конвенции
- Максимальная длина функции: нет определённой максимальной длины
- Максимальная вложенность: нет определённой максимальной вложенности
Тестирование
- Минимальный порог покрытия: нет определённого минимума покрытия
- Фреймворк: тесты написаны в Go, используется стандартная библиотека
- Требования: тесты должны быть написаны для каждого функционала и проверить все важные сценарии
Ограничения
- Не использовать секреты в коде (хранить их в .skaro/secrets.yaml)
- Не использовать неинициализированные переменные
- Не использовать глобальные переменные, если это возможно
- Не использовать устаревшие функции и пакеты
Безопасность
- Авторизация: нет авторизации в коде (доступ к API ограничен по IP)
- Валидация ввода: проверяется валидность данных перед обработкой
- Секреты: хранятся в .skaro/secrets.yaml
Правила для работы с LLM
- Не оставлять пустые stubs без явного TODO с обоснованием
- Не копировать код: предпочитать реюза и чистую абстракцию
- Не делать неявные допущения — если не уверен, спрашивать
- Всегда генерировать AI_NOTES.md по шаблону
- Следовать кодинг стилю описанному выше
Архитектура проекта
Обзор
Монолитная архитектура.
Компоненты
cmd/gskaro— основной модуль, содержит главный файлmain.go, отвечающий за запуск сервера.internal/llm— пакет, содержащий модели, состояния и потоков для работы с LLM (Language Learning Machine).internal/server— пакет, содержащий серверный код, включая обработчики и сервер.internal/server/web— подпакет, содержащий HTML файлы и Go-код для работы с веб-интерфейсом.
Данные хранения
Не используется база данных.
Связь
Используется REST (Web сервер на Go).
Инфраструктура
Не обнаружено конкретной инфраструктуры, но присутствуют скрипты build.bat, init-gskaro.bat и start-gskaro.bat.
Внешние интеграции
Нет обнаруженных внешних интеграций третьих услуг или API.
Безопасность
- Авторизация отсутствует, доступ к API ограничен по IP.
- Валидация ввода происходит перед обработкой.
- Секреты хранятся в
.skaro/secrets.yaml.
Известные торговые компромиссы
Не обнаружено явных торговых компромиссов, но присутствует отсутствие авторизации и использование монолитной архитектуры.
Структура репозитория
.git/
.gitignore
.skaro/
.skaroignore
build.bat
cmd/
cmd/gskaro/
cmd/gskaro/main.go
go.mod
init-gskaro.bat
internal/
internal/llm/
internal/llm/models.go
internal/llm/state.go
internal/llm/stream.go
internal/server/
internal/server/handlers_llm.go
internal/server/server.go
internal/server/web/
internal/server/web/index.html
internal/server/web_static.go
README.md
start-gskaro.bat
Источники файлов
# ── Skaro (auto-generated, do not remove this marker) ──
# This section is managed by `skaro init`. Do NOT delete it.
# You may add your own rules below the closing marker.
#
# Secrets — API keys, never commit!
.skaro/secrets.yaml
# Usage tracking — local stats, not project artifacts
.skaro/token_usage.yaml
.skaro/usage_log.jsonl
# ── /Skaro ─────────────────────────────────────────────
# .skaroignore — файлы исключенные от LLM анализа во время `skaro init`
# Синтаксис идентичен .gitignore.
# Добавьте пути, содержащие чувствительную, приватную или неактуальную информацию.
#
# ── Секреты & кредиентали ──────────────────────────────
.env
.env.*
!.env.example
*.pem
*.key
*.p12
*.pfx
secrets.*
credentials.*
*_secret*
*_credentials*
# ── Частные данные & дампы ───────────────────────────────
*.sql
*.dump
*.db
*.sqlite
*.sqlite3
data/
datasets/
fixtures/private/
# ── Генерированные & вендированные ──────────────────────
vendor/
third_party/
generated/
auto_generated/
# ── Крупные ассеты ───────────────────────────────────────
assets/
media/
uploads/
storage/
go build -o gskaro-v1.exe ./cmd/gskaro
pause
package main
import "gskaro-v1/internal/server"
func main() {
server.Start()
}
module gskaro-v1
go 1.25.6
gskaro-v1.exe init
pause
init
Функциональная область LLM Console
- LLM консоль: веб-интерфейс для работы с моделями языкового обучения машин (LLM) (
internal/server/web/index.html,internal/server/handlers_llm.go)- Статус: complete
- Детали: позволяет выбирать модель, вводить запросы и просматривать результаты работы модели
Функциональная область LLM Models
- LLM Модели: список доступных моделей языкового обучения машин (
internal/llm/models.go,internal/server/handlers_llm.go)- Статус: complete
- Детали: позволяет выбирать модель для работы с LLM Console
Функциональная область LLM History
- История LLM: просмотр истории запросов и ответов модели (
internal/llm/state.go,internal/server/handlers_llm.go)- Статус: complete
- Детали: позволяет просматривать историю работы модели с LLM Console
Функциональная область LLM Streaming
- Стриминг ответов: получение результатов работы модели по частям (
internal/llm/stream.go,internal/server/handlers_llm.go)- Статус: complete
- Детали: используется для обработки длинных ответов модели
Функциональная область Web Server
- Web сервер: веб-сервер на Go, обеспечивающий доступ к LLM Console и другим функционалам (
internal/server/server.go,internal/server/web_static.go)- Статус: complete
- Детали: позволяет запустить веб-сервер с различными ресурсами, включая HTML и Go код для LLM Console
Функциональная область Build Scripts
- Скрипты сборки: скрипты для сборки и запуска проекта (
build.bat,init-gskaro.bat,start-gskaro.bat)- Статус: complete
- Детали: позволяют собрать и запустить веб-сервер на Windows