一键导入
voxagent-conventions
Project conventions, architecture rules, and coding standards for VoxAgent. Always follow these rules when writing code in this project.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Project conventions, architecture rules, and coding standards for VoxAgent. Always follow these rules when writing code in this project.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Async performance profiling and latency optimization patterns for VoxAgent. Use when profiling async code, optimizing pipeline latency, measuring provider performance, or identifying bottlenecks. Triggers on tasks involving performance, latency, profiling, benchmarking, or slow pipeline execution.
Authentication, secret management, and security patterns for VoxAgent. Use when handling API keys, implementing authentication, validating user input, managing sessions, or auditing security. Triggers on tasks involving core/keyring_manager.py, core/safety.py, api/middleware, or any security-related code.
Enforces Clean Code and SOLID principles during code generation or refactoring in VoxAgent. Use when writing new modules, refactoring existing code, reviewing PRs, or optimizing Python/TypeScript code for maintainability and testability. Triggers on tasks involving new skills, providers, platform modules, or React dashboard components.
SQLite and async database patterns for VoxAgent's persistent storage. Use when writing database access code, managing connections, designing schemas, running migrations, or testing data layers. Triggers on tasks involving core/memory.py, any aiosqlite usage, or database-related modules.
FastAPI and async Python patterns for VoxAgent's backend. Use when writing API endpoints, implementing providers, building async pipelines, or testing async code. Triggers on tasks involving api/, providers/, core/ modules, or any async Python code.
Integration and end-to-end testing patterns for VoxAgent. Use when writing API integration tests, pipeline E2E tests, designing fixtures, or building test infrastructure beyond unit tests. Triggers on tasks involving tests/integration/, tests/e2e/, conftest.py, or any test spanning multiple modules.
| name | voxagent-conventions |
| description | Project conventions, architecture rules, and coding standards for VoxAgent. Always follow these rules when writing code in this project. |
VoxAgent is a voice-controlled desktop AI agent. It listens for "Hey Vox", transcribes speech, routes intents through a tiered model system, executes actions, and responds via TTS.
core/ — Pipeline modules (ears, brain, hands, eyes, mouth, autopilot, memory). These MUST remain provider-agnostic.providers/ — All model/API integrations. Every provider implements abstract interfaces from providers/base.py.system/ — OS-specific code ONLY. All system integration code must implement SystemAutomation from system/base.py.skills/ — Task implementations. Each skill must extend BaseSkill and declare execution_tiers + permissions.providers/registry.py.system/base.py interface. Never use win32-specific code outside system/windows.py.keyring library, NEVER in config files. Skills must declare permissions.Every feature module MUST follow this folder structure:
features/{feature}/
├── components/ # UI only — no business logic
│ └── organisms/
│ └── {Component}/
│ └── {Component}.tsx
├── containers/ # Page-level composition + orchestration
│ └── {Feature}View.tsx
├── hooks/ # Custom React hooks — API + state logic
│ └── use{Feature}.ts
├── types/ # ALL type definitions for this feature
│ ├── index.ts # Barrel re-export ONLY (no definitions)
│ ├── {feature}.types.ts # Domain/data types
│ └── components.types.ts# Component prop types
├── constants/ # Static data, mock data, enums, mappings
│ ├── index.ts # Barrel re-export ONLY (no definitions)
│ ├── mocks.ts # Mock/fallback data
│ └── ui.ts # UI-related constants (styles, categories)
└── utils/ # Pure utility functions
├── index.ts # Barrel re-export ONLY (no definitions)
└── {name}.ts # Individual util modules
types/ — NEVER define interfaces/types inline in component or hook files. Always import from @features/{feature}/types or @shared/types.constants/ — NEVER define static arrays, maps, mock data, or configuration objects inline in components or hooks. Always import from @features/{feature}/constants or @shared/constants.utils/ — Pure functions (formatters, filters, validators) MUST be in utils. Components and hooks should only contain React-specific logic.index.ts is barrel-only — NEVER put definitions directly in index.ts. It should only re-export from sibling files. Split into multiple focused files by concern.../) — use @shared/* or @features/* path aliases.@shared/.types/, constants/, utils/, components/organisms/) MUST have an index.ts barrel re-export.shared/)shared/
├── api/ # API client, interceptors
├── components/ # Reusable atoms, molecules, organisms, templates
├── types/ # Shared TypeScript interfaces
├── constants/ # App-wide constants (routes, config)
└── utils/ # App-wide utilities
ruff for formatting and lintingmypy for type checkingexactOptionalPropertyTypes: true)eslint for lintingtests/test_skills.pytests/test_providers.pysnake_case.pyskills/{skill_name}.py matching the name field in the classproviders/{type}/{provider_name}.pytests/test_{module}.pyPascalCase.tsxuse{Name}.tsindex.ts (barrel) or {name}.tsfeat: new featurefix: bug fixrefactor: code restructuringdocs: documentation onlytest: test changeschore: build/config changes