For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /ru/docs/web/first-feature.md (or send Accept: text/markdown).
Создайте первую функцию
Сквозной путь от схемы до выпущенного экрана.
Прохождение для начинающих
Предварительные требования: прочтите два приведенных ниже руководства для начинающих, завершите локальную веб-настройку и откройте этот монорепозиторий в корневой папке вашего редактора. Веб-настройки принадлежат apps/web/.env.local; Next.js не читает корень .env. /dashboard в поддельном режиме по умолчанию представляет собой демонстрацию без базы данных; /auth требуется перенесенная база данных.
Вкратце: рабочее пространство — это отдельные пользователи, данные и настройки одной команды. Сервер является доверенным сервером; не допускайте попадания ключей провайдера в код браузера и телефона. Миграция — это изменение версии базы данных, при котором создаются или обновляются таблицы. Модель ИИ — это механизм, который отвечает; Каталог моделей — это список доступных идентификаторов моделей и цен на сервере. Поставщик — это внешняя служба, такая как служба искусственного интеллекта, электронной почты или службы выставления счетов. Право — это грант, который позволяет рабочей области использовать функцию. Вебхук — это сообщение, которое одна служба отправляет на URL другой службы.
1. Откройте VS Code в корне репозитория и попросите своего агента кодирования создать apps/web/app/reports/page.tsx и apps/web/src/reports.ts. Дайте ему поля отчета и разрешенные роли; требуют проверки членства на стороне сервера и запроса, отфильтрованного по workspaceId.
2. Откройте /reports как вошедший в систему участник и убедитесь, что отображаются записи рабочей области.
3. Попробуйте выйти из системы и использовать учетную запись второго рабочего пространства; если кто-либо из них может читать записи, остановитесь и исправьте проверку сервера.
Для пользовательского кода начните с предоставленного prompts/README.md и скопируйте ближайшее приглашение: prompts/new-app-screen.md для экрана приложения или prompts/new-landing-page.md для общедоступной страницы. Для работы с сервером, базой данных или провайдером дайте своему агенту кодирования задание из этого руководства и попросите его прочитать AGENTS.md, .ai/PROJECT_CONTEXT.md и соответствующие зеркала .ai/; проверьте точные исходные файлы, указанные здесь; список файлов и проверки перед редактированием; сохранять права собственности на рабочую область и секреты, доступные только серверу; и покажу вам разницу. Сообщите ему желаемое поведение, поля ввода и вывода, разрешенные роли, ожидаемые успехи и ошибки, а также тестовую учетную запись, поставщика или устройство. Используйте выборочные значения; никогда не вставляйте настоящий секрет.
Создать маршрут
Добавьте страницу под apps/web/app/. Начните с информационной панели или маршрута содержимого, чтобы повторно использовать разрешение сеанса и активной рабочей области. Маршрут существует, если его папка содержит page.tsx; используйте серверный компонент для защищенного чтения.
apps/web/app/reports/page.tsx
apps/web/src/reports.ts
.ai/apps/web/app/reports/page.md
.ai/apps/web/src/reports.mdПроверка доступа и восстановления
Проверьте анонимный доступ, допустимого участника, участника другой рабочей области, отозванный сеанс и требуемую роль. Добавьте пустые состояния и состояния неудачной загрузки с помощью действия восстановления. Уберите этот маршрут из общедоступной карты сайта и добавьте его префикс в файл robots disallows.
Смоделируйте запись
Каждая продуктовая запись начинается со схемы базы данных. Добавьте таблицу в packages/db с колонкой workspaceId, сгенерируйте миграцию и напишите репозиторные хелперы, которые разрешают workspace перед чтением или записью.
// packages/db/src/schema.ts
export const ideas = pgTable("idea", {
id: uuid().primaryKey(),
workspaceId: uuid().notNull().references(() => workspaces.id),
title: text().notNull(),
createdAt: timestamp().defaultNow(),
});
corepack pnpm --filter @supastack/db db:generateАвторизуйте действие
Создайте server action, который разрешает сессию, workspace и entitlement именно в этом порядке. Валидируйте ввод zod-схемой, выполняйте мутацию через репозиторий и возвращайте типизированный результат, который интерфейс может отрисовать.
Порядок важен: мутация, пишущая до проверки владения workspace, уже пересекла границу. Выводите владение на сервере — никогда не доверяйте workspace id, присланному браузером.
Соберите поверхность
Собирайте страницу из общих компонентов и токенов — blocks кита и примитивы ui-web покрывают типовые паттерны. Обрабатывайте состояния загрузки, ошибки и пустоты; функция, рендерящая только счастливый путь, не завершена.