Skip to content

feat: setup Biome, TypeScript validation, AGENTS.md guidelines, and GitHub CI - #1

Merged
Yiling-J merged 2 commits into
mainfrom
setup-project-ci
Jun 4, 2026
Merged

feat: setup Biome, TypeScript validation, AGENTS.md guidelines, and GitHub CI#1
Yiling-J merged 2 commits into
mainfrom
setup-project-ci

Conversation

@Yiling-J

@Yiling-J Yiling-J commented Jun 4, 2026

Copy link
Copy Markdown
Member

This PR initializes the repository setup to make it a solid production-ready project:

  1. Establishes Bun as the package manager and JS runtime.
  2. Standardizes formatting, linting, and import organization using Biome (biome.json).
  3. Adds a standard .gitignore to filter out system files, IDE configs, dependencies, and environment files.
  4. Introduces AGENTS.md detailing code standards, design rules, and commit message conventions.
  5. Sets up GitHub CI workflow (.github/workflows/ci.yml) to automatically install dependencies and run validation (biome check, tsc --noEmit, and vite build) on push and pull requests.
  6. Resolves styling warnings and unused properties (e.g. @import order in index.css, unused prop in ChineseBorder.tsx).

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request sets up the 'shumai' creative platform web application, introducing configuration files, guidelines, and core React components like the main App, Footer, and InteractiveShowcase. The code review highlights several critical improvements and fixes: enabling strict mode in tsconfig.json to prevent runtime errors, replacing __dirname with import.meta.dirname in vite.config.ts to avoid a ReferenceError in ES modules, enabling unused variable and import linting in biome.json, cleaning up unused and redundant imports in InteractiveShowcase.tsx, and correcting corrupted characters in a configuration comment.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread tsconfig.json
@@ -0,0 +1,20 @@
{
"compilerOptions": {
"target": "ES2022",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The TypeScript configuration is missing "strict": true. Enabling strict mode is a fundamental best practice for production-ready TypeScript projects as it enforces strict null checks and prevents a wide range of common runtime errors (such as reading properties of undefined).

Suggested change
"target": "ES2022",
"target": "ES2022",
"strict": true,

Comment thread vite.config.ts
plugins: [react(), tailwindcss()],
resolve: {
alias: {
'@': path.resolve(__dirname, '.'),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

In Node.js ES modules ("type": "module" in package.json), __dirname is not defined and will throw a ReferenceError at runtime in standard Node.js environments. Since Vite config is parsed as ESM, use import.meta.dirname instead for standard compatibility.

Suggested change
'@': path.resolve(__dirname, '.'),
'@': path.resolve(import.meta.dirname, '.'),

Comment thread biome.json
Comment on lines +9 to +10
"noUnusedVariables": "off",
"noUnusedImports": "off"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Disabling noUnusedVariables and noUnusedImports goes against the goal of standardizing code quality and formatting in a production-ready setup. Unused variables and imports can clutter the codebase and hide potential logic bugs. It is highly recommended to enable these rules.

Suggested change
"noUnusedVariables": "off",
"noUnusedImports": "off"
"noUnusedVariables": "error",
"noUnusedImports": "error"

Comment on lines +1 to +16
import {
CheckCircle2,
Clock,
Cpu,
Eye,
FileVideo,
Layers,
LayoutGrid,
Maximize2,
MessageSquare,
MonitorCheck,
Play,
Sparkles,
Volume2,
Zap,
} from 'lucide-react';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The icons CheckCircle2, Clock, and Eye are imported from lucide-react but never used in this file. Removing them keeps the imports clean and avoids unnecessary dependencies.

import {
  Cpu,
  FileVideo,
  Layers,
  LayoutGrid,
  Maximize2,
  MessageSquare,
  MonitorCheck,
  Play,
  Sparkles,
  Volume2,
  Zap,
} from 'lucide-react';

Zap,
} from 'lucide-react';
import { AnimatePresence, motion } from 'motion/react';
import React, { useState } from 'react';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

In React 19, importing React is no longer required for JSX. Since only useState is used from the 'react' package, you can safely remove the default React import.

Suggested change
import React, { useState } from 'react';
import { useState } from 'react';

Comment thread vite.config.ts
},
server: {
// HMR is disabled in AI Studio via DISABLE_HMR env var.
// Do not modify—file watching is disabled to prevent flickering during agent edits.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The comment contains corrupted characters (modifyâ��file instead of modify—file) due to an encoding mismatch. Fixing this ensures clean and professional documentation.

Suggested change
// Do not modify�file watching is disabled to prevent flickering during agent edits.
// Do not modify—file watching is disabled to prevent flickering during agent edits.

@Yiling-J
Yiling-J merged commit aec9629 into main Jun 4, 2026
1 check passed
@Yiling-J
Yiling-J deleted the setup-project-ci branch June 4, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant