Skip to main content

architecture-standards

Use when working in massCode and you need repo-wide architecture rules, naming conventions, decomposition boundaries, or guidance on which massCode skill to load next.

Source facts

Repository
massCodeIO/massCode
Last source activity
May 6, 2026 at 09:04
Detected SKILL.md language
Russian
Stars
7,064
Forks
277

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
architecture-standards
description
Use when working in massCode and you need repo-wide architecture rules, naming conventions, decomposition boundaries, or guidance on which massCode skill to load next.
# Architecture Standards ## Overview Базовый принцип проекта: **YAGNI и простота прежде всего**. Не усложняй код ради гипотетических сценариев, не строй абстракции без повторяющейся потребности и не размывай границы между renderer, API и main. ## Core Rules - Соблюдай разделение слоёв: - Renderer: только UI, composables, вызовы `api.*` и `ipc.invoke(...)`. - API: маршруты Elysia, DTO, orchestration и доступ к сервисам и данным приложения. - Main: системные интеграции, IPC handlers, lifecycle и слой данных приложения. - Data flow по умолчанию: Renderer → API / IPC → service / data layer → response. - Vue-компоненты называй в `PascalCase`. - TypeScript-файлы называй в `camelCase`. - Composables именуй с префиксом `use`, а имя файла должно совпадать с экспортируемой функцией. ## YAGNI Guardrails Признаки overengineering: - функция страхуется от кейса, которого реально не существует; - factory или wrapper используется ровно в одном месте и не скрывает состояние; - abstraction-for-abstraction без повторяющейся боли; - константы, паттерны и конфигурации придуманы заранее, а не из реальной потребности. ## Component Decomposition - Если компонент становится больше примерно `300` строк или держит `3+` несвязанных обязанности, дели его. - Порядок разбиения: 1. вынеси константы и статические данные; 2. вынеси чистые функции в utils, только если это реально переиспользуется; 3. перемести состояние и эффекты в composable; 4. разбей шаблон на локальные child components. - Не держи в `<template>` логику сложнее тернарного оператора. ## Feature Subdirectories - Если часть домена выросла в отдельный subsystem, группируй локальные компоненты, helpers, tests и fixtures в поддиректорию. - Внутри поддиректории не повторяй полный родительский префикс в именах файлов. - Локальные файлы держи рядом с фичей. Shared-код, который нужен нескольким областям, оставляй выше уровнем. ## When to Load Other Skills - Vue renderer, auto-imports, composables, shared state: `vue-renderer-standards` - визуальная база, typography, renderer styling decisions: `ui-foundations` - `Ui*`, Shadcn, `cn`, `cva`, notifications: `ui-primitives` - API routes, DTO, IPC, Electron boundaries: `electron-api-and-ipc` - generated API types, utility typing, локальные view-model: `api-and-typing` - `code` / `notes` / `math` / `tools`, состояние spaces и их синхронизация: `spaces-architecture` - i18n, locale keys, `i18n.t(...)`: `i18n` - docs website, docs sidebar, скриншоты, README-упоминания фич: `documentation-workflow` - scoped lint/test и follow-up commands: `development-workflow` ## Common Mistakes - Тянуть DB или filesystem knowledge в renderer. - Раздувать один компонент до “оркестратора всего”. - Выносить абстракцию до появления второй реальной точки использования. - Размазывать одну фичу по плоской структуре файлов, когда ей уже нужен локальный subdirectory. - Придумывать локальные typing-паттерны, хотя для них уже пора иметь отдельный skill.
View on GitHub