MDSIG is a community sharing platform for Mingdao High School students and teachers to exchange ideas and insights.
pnpm install # Install dependencies
pnpm dev # Dev server (DO NOT use for build verification)
pnpm build # Production build (USE THIS for build verification)
pnpm types # Type check only (no emit)
pnpm check:fix # Biome auto-fix (safe fixes only)Run pnpm check after every change. All generated code must follow these rules (enforced by Biome via biome.json):
- Use 2 spaces for indentation, never tabs
- Keep lines within 80 characters
- Always end statements with a semicolon
- Use double quotes for strings and JSX attributes
- Always include trailing commas in JS/TS (but never in JSON)
- Always wrap arrow function parameters in parentheses:
(x) => x - Include spaces inside braces:
{ value }
- Always use block statements (
{}) withif,else,for,while— no single-line bodies - Use
for...ofinstead of.forEach()for iteration - Use
console.error,console.warn,console.info, orconsole.assertonly — never bareconsole.log - Keep Tailwind CSS class names sorted (Biome enforces
useSortedClasses)
- Do NOT leave unused imports or unused variables — remove them
- Do NOT use array index as React key when a stable identifier is available
- Do NOT leave empty block statements (
{}) — add a comment or remove the block - Do NOT write
elseafterreturn/break/continue— use early return instead - Avoid
anytype — use a specific type whenever possible
These rules are intentionally off — do not "fix" code to satisfy them:
useImportType— usingimportinstead ofimport typeis fineuseExhaustiveDependencies— React hook dependency arrays are not auto-checkednoInferrableTypes— explicit type annotations on inferred values are allowednoStaticElementInteractions,noSvgWithoutTitle,useKeyWithClickEvents— a11y rules are off