.claude/skills/develop-b24-frontend/SKILL.md
Develop frontend applications for Битрикс24 using Nuxt 3, Битрикс24 UI Kit, and JS SDK. Use this skill when you need to create pages, components, or interact with Битрикс24 API from the frontend.
npx skillsauth add rustams/inbound develop-b24-frontendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The frontend is built with Nuxt 3 and uses @bitrix24/b24ui-nuxt (UI Kit) and @bitrix24/b24jssdk-nuxt (JS SDK).
frontend/app/pages/: Application pages (must end with .client.vue for client-side rendering).frontend/app/components/: Reusable components.frontend/app/stores/: Pinia stores for state management.frontend/app/composables/: Shared logic (e.g., useApi, useAppInit).ALWAYS use B24 prefixed components from @bitrix24/b24ui-nuxt. Do NOT use standard HTML elements or other UI libraries if a B24 component exists.
<template>
<B24App> <!-- Mandatory wrapper -->
<B24Card>
<template #header>
<h3 class="text-lg font-semibold">Title</h3>
</template>
<B24Form :state="state" @submit="onSubmit">
<B24FormField label="Name" name="name" required>
<B24Input v-model="state.name" />
</B24FormField>
<B24Button type="submit" color="air-primary" :loading="isLoading">
Save
</B24Button>
</B24Form>
</B24Card>
</B24App>
</template>
<B24Button color="air-primary" /><B24Input />, <B24Select />, <B24Textarea /><B24Card>, <B24Container>, <B24SidebarLayout><B24Toast /> (use useToast()), <B24Modal />, <B24Alert />Use the SDK to interact with Битрикс24.
// In a component or composable
const { $initializeB24Frame } = useNuxtApp()
const $b24 = await $initializeB24Frame()
// Single method
const result = await $b24.callMethod('crm.deal.get', { id: 123 })
// Batch method
const batch = await $b24.callBatch({
deals: { method: 'crm.deal.list', params: { select: ['ID', 'TITLE'] } },
users: { method: 'user.get', params: { ID: 1 } }
})
const data = batch.getData()
// Open slider
const url = $b24.slider.getUrl('/crm/deal/details/123/')
await $b24.slider.openPath(url)
// Select user
const user = await $b24.dialog.selectUser()
Use stores for API interaction and global state.
// stores/api.ts
const apiStore = useApiStore()
await apiStore.init($b24) // Initialize with B24 frame
const data = await apiStore.getList() // Call backend API
$api (wrapper around $fetch with JWT).apiStore and useAppInit..client.vue as the app runs in an iframe.<B24App>.try/catch and useToast() to show errors.@bitrix24/b24icons-vue.tools
This skill should be used when the user asks to "design agent tools", "create tool descriptions", "reduce tool complexity", "implement MCP tools", or mentions tool consolidation, architectural reduction, tool naming conventions, or agent-tool interfaces.
development
This skill should be used when the user asks to "start an LLM project", "design batch pipeline", "evaluate task-model fit", "structure agent project", or mentions pipeline architecture, agent-assisted development, cost estimation, or choosing between LLM and traditional approaches.
development
PM skill for Claude Code, Codex, Cursor, and Windsurf. Diagnoses SaaS metrics, critiques PRDs, plans roadmaps, runs discovery, coaches PM career transitions, and pressure-tests AI product decisions. Six knowledge domains, 12 templates, 30+ frameworks, and an opinionated interaction style that labels assumptions and names tradeoffs.
development
Understand the Битрикс24 Starter Kit project structure. Use this skill to find where specific code (frontend, backend, infrastructure) is located.