Development
#agent
architecture
Project architecture and file structure conventions for all process types. Use when: (1) Creating new files or modules, (2) Deciding where code should go, (3) Converting single-file components to directories, (4) Reviewing code for structure compliance, (5) Adding new bridges, services, agents, or workers.
DeepseekModel
Curated skill
Quality Excellent · 90
v1.0.0
Get
https://deepseekmodel.com/api/download.php?id=iofficeai-aionui-claude-skills-architecture-skill-md&format=skill
Download .skill
Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name architecture description Project architecture and file structure conventions for all process types. Use when: (1) Creating new files or modules, (2) Deciding where code should go, (3) Converting single-file components to directories, (4) Reviewing code for structure compliance, (5) Adding new bridges, services, agents, or workers. Architecture Skill Determine correct file placement and structure for an Electron multi-process project. Detailed References Renderer layer (components, hooks, utils, pages, CSS): references/renderer.md Main process & shared layer (bridges, services, worker, preload): references/process.md Project root & monorepo layout (directory structure, migration status): references/project-layout.md Decision Tree — Where Does New Code Go? Is it UI (React components, hooks, pages)? └── YES → packages/desktop/src/renderer/ → see references/renderer.md Is it an IPC handler responding to renderer calls? └── YES → packages/desktop/src/process/bridge/ → see references/process.md Is it business logic running in the main process? └── YES → packages/desktop/src/process/services/ → see references/process.md Is it an AI platform connection (API client, message protocol)? └── YES → packages/desktop/src/process/agent/<platform>/ Is it a background task that runs in a worker thread? └── YES → packages/desktop/src/process/worker/ Is it used by BOTH main and renderer processes? └── YES → packages/desktop/src/common/ Is it an HTTP/WebSocket endpoint? └── YES → packages/desktop/src/process/webserver/ Is it a plugin/extension resolver or loader? └── YES → packages/desktop/src/process/extensions/ Is it a messaging channel (Lark, DingTalk, Telegram)? └── YES → packages/desktop/src/process/channels/ Process Boundary Rules Hard rules — violating them causes runtime crashes. Process Can use Cannot use Main ( packages/desktop/src/process/ ) Node.js, Electron main APIs, fs , path , child_process DOM APIs ( document , window , React) Renderer ( packages/desktop/src/renderer/ ) DOM APIs, React, browser APIs Node.js APIs ( fs , path ), Electron main APIs Worker ( packages/desktop/src/process/worker/ ) Node.js APIs DOM APIs, Electron APIs Preload ( packages/desktop/src/preload/ ) contextBridge , ipcRenderer DOM manipulation, Node.js fs Cross-process communication: Main ↔ Renderer: IPC via packages/desktop/src/preload/ + packages/desktop/src/process/bridge/*.ts Main ↔ Worker: fork protocol via packages/desktop/src/process/worker/WorkerProtocol.ts // NEVER in renderer import { something } from '@process/services/foo' ; // crashes at runtime // Use IPC instead const result = await window . api . someMethod (); // goes through preload Naming Conventions Directories Scope Convention Reason Renderer component/module dirs PascalCase React convention — dir name = component name Everything else lowercase Node.js convention Categorical dirs (everywhere) lowercase components/ , hooks/ , utils/ , services/ Platform dirs (everywhere) lowercase acp/ , codex/ , gemini/ — cross-process consistency Quick test: "Inside packages/desktop/src/renderer/ AND represents a specific component/feature (not a category)?" → PascalCase. Otherwise → lowercase. Files Content Convention Examples React components, classes PascalCase SettingsModal.tsx , CronService.ts Hooks camelCase with use prefix useTheme.ts , useCronJobs.ts Utilities, helpers camelCase formatDate.ts , cronUtils.ts Entry points index.ts / index.tsx Required for directory-based modules Config, types, constants camelCase types.ts , constants.ts Styles kebab-case or Name.module.css chat-layout.css Structural Rules Directory size limit : Max 10 direct children. Split into subdirectories by responsibility when approaching. No single-file directories : Merge into parent or related directory. Single file vs directory : If a component needs a private sub-component or hook, convert to a directory with index.tsx . Page-private first : Start code in pages/<PageName>/ . Promote to shared only when a second consumer appears. Test File Mapping Tests mirror source files in tests/ subdirectories: Source Test packages/desktop/src/process/services/CronService.ts tests/unit/cronService.test.ts packages/desktop/src/renderer/hooks/ui/useAutoScroll.ts tests/unit/useAutoScroll.dom.test.ts packages/desktop/src/process/extensions/ExtensionLoader.ts tests/unit/extensions/extensionLoader.test.ts When tests/unit/ exceeds 10 direct children, group into subdirectories matching source structure. Quick Checklist Code is in the correct process directory (no cross-process imports) Renderer code does not use Node.js APIs Main process code does not use DOM APIs New IPC channels are bridged through preload.ts Renderer component/module dirs use PascalCase; categorical dirs use lowercase Platform dirs use lowercase everywhere Directory-based modules have index.tsx / index.ts entry point Page-private code is under pages/<PageName>/ , not in shared dirs No single-file directories No directory exceeds 10 direct children New source files are auto-included in coverage — verify they are not accidentally excluded in vitest.config.ts → coverage.exclude New services separate pure logic from IO
Keywords that activate this skill. Click one to copy it.
This skill does not provide trigger words.
The downloaded .skill package contains the following fields.
| Field | Description |
|---|---|
| format | Format tag (skill/v1) |
| skill_id | Unique skill ID |
| name | Skill name |
| version | Version |
| description | Description |
| category | Categories (array) |
| trigger_words | Trigger words |
| tags | Tags |
| source | Source |
| source_url | Source URL (this page) |
| exported_at | Exported at (set per download) |
| system_prompt | System prompt body |
| model_config | Model config: provider / model / temperature / max_tokens / top_p |
| examples | Examples |
| install_guide | Import guide for Coze / Dify / Claude / custom frameworks |
The same skill can be exported in different platform formats.