Navigate the Formisch monorepo structure. Use when finding code locations, understanding architecture, locating source files, or implementing features across packages and frameworks.
Quick reference for understanding and navigating the Formisch repository structure.
Formisch is a schema-based, headless form library with a framework-agnostic core supporting multiple frameworks (Preact, Qwik, React, Solid, Svelte, Vue). Framework-specific reactivity is injected at build time for native performance.
Architecture:
formisch/
├── packages/ # Core packages
│ ├── core/ # Framework-agnostic form logic
│ └── methods/ # Form manipulation methods
├── frameworks/ # Framework-specific wrappers (preact, qwik, react, solid, svelte, vue)
├── playgrounds/ # Testing environments per framework
├── scripts/ # Automation scripts
├── website/ # Documentation site
├── skills/ # Agent skills (this folder)
└── prompts/ # Legacy AI agent guides (deprecated)
/packages/core/ → @formisch/coreFramework-agnostic form logic. Builds to framework-specific outputs via tsdown.config.ts.
Key directories:
src/array/ - Array field utilitiessrc/field/ - Field managementsrc/form/ - Form state managementsrc/framework/ - Framework reactivity integration (injected at build time)src/types/ - TypeScript types/packages/methods/ → @formisch/methodsForm manipulation utilities. Each method in its own directory (src/{method-name}/).
Available methods: focus, getAllErrors, getErrors, getInput, handleSubmit, insert, move, remove, replace, reset, setErrors, setInput, submit, swap, validate
/frameworks/{framework}/ → @formisch/{framework}Thin wrappers that:
Structure:
frameworks/{framework}/
├── src/
│ ├── components/ # Form, Field components
│ ├── primitives/ # createForm/useForm, useField, useFieldArray
│ ├── types/ # Framework-specific types
│ └── index.tsx # Main export
/playgrounds/{framework}/Minimal apps for testing. Use workspace dependencies (workspace:*). Run with pnpm dev.
/website/Documentation site built with Qwik. Update when APIs change.
| Looking for... | Location |
|---|---|
| Form state logic | /packages/core/src/form/ |
| Field management | /packages/core/src/field/ |
| Array utilities | /packages/core/src/array/ |
| Methods (submit, reset, etc.) | /packages/methods/src/{method-name}/ |
| Framework components | /frameworks/{framework}/src/components/ |
| Framework primitives | /frameworks/{framework}/src/primitives/ |
| Type definitions | /packages/core/src/types/ |
| Usage examples | /playgrounds/{framework}/src/ |
| Documentation | /website/src/routes/ |
pnpm install # Install dependencies
pnpm build # Build a package
pnpm test # Run tests
pnpm lint # Lint and type check
/packages/core/src//packages/core/src/framework//website//packages/methods/src/{method-name}//packages/methods/src/index.ts/packages/core/src/framework/{framework}.tstsdown.config.ts/frameworks/{framework}/ package/playgrounds/{framework}/.test.ts)pnpm testFramework-agnostic core - Written once, compiled to framework-specific versions via tsdown.config.ts. Framework reactivity is injected at build time from /packages/core/src/framework/{framework}.ts. This ensures:
workspace:* dependencies in playgroundsPyTorch深度学习模式与最佳实践,用于构建稳健、高效且可复现的训练流程、模型架构和数据加载。