This repository is the active SAST Link Next implementation, not a blank starter. When contributing, please keep changes aligned with the existing product flows, route structure, and CI expectations instead of treating the project like a fresh template.
Make sure you can run the project locally:
pnpm install
pnpm devThe current CI workflows are wired for master and develop, and the local repository is presently on master.
Suggested branch naming:
feat/<short-description>fix/<short-description>docs/<short-description>test/<short-description>refactor/<short-description>ci/<short-description>chore/<short-description>
Examples:
feat/add-user-bind-status-cardfix/register-ticket-errordocs/update-testing-guide
Key areas to understand before changing behavior:
app/(tourist)for unauthenticated flowsapp/(user)for authenticated flowslib/apifor backend integrationstore/for Zustand state
- Use TypeScript and keep strict typing intact.
- Use
@/imports for internal modules. - Keep route files lowercase (
page.tsx,layout.tsx). - Use colocated tests where practical.
- Prefer existing UI primitives in
components/ui/and established layout components before introducing new patterns.
pnpm lint
pnpm test
pnpm buildAt minimum, make sure the documented commands and file paths match the repo as it exists now.
Use Conventional Commits whenever possible:
feat:fix:docs:refactor:test:ci:chore:
Examples:
feat(auth): add github callback state handling
fix(profile): clamp avatar zoom wheel interactions
docs(readme): sync setup guide with current routes
test(api): add auth client coverage
Use the repository’s PR template and include:
- what changed
- why it changed
- how it was validated
- screenshots or recordings for UI changes
Before opening a PR:
- self-review the diff
- make sure related docs are updated
- confirm CI-relevant commands still pass locally when applicable
Update docs when you change:
- routes or user flows
- environment variables
- build or test commands
- CI behavior
Primary documentation files:
README.mdREADME_zh.mdTESTING.mdCI_CD.mdCONTRIBUTING.md
If you add or change behavior:
- update or add colocated Jest tests when feasible
- keep tests focused on user-visible behavior and state transitions
- avoid weakening coverage or CI thresholds without documenting the reason
See TESTING.md for the current test setup.
If you cannot complete a change fully:
- document the exact boundary
- leave reproducible notes
- avoid vague “partial” states without explaining what still blocks completion
That makes the next contributor much faster and reduces re-discovery work.