| name | 1k-code-quality |
| description | Code quality standards — lint (eslint/oxlint), type check (tsc), pre-commit hooks, and comment conventions. All comments must be in English. |
| allowed-tools | Read, Grep, Glob |
Code Quality
Linting, documentation, and general code quality standards for OneKey.
Lint Commands
yarn lint:staged
yarn tsc:staged
yarn lint
yarn lint:only
yarn tsc:only
Note: yarn lint is for CI only. For pre-commit, always use yarn lint:staged.
Pre-Commit Workflow
For fast pre-commit validation:
yarn lint:staged
yarn lint:staged && yarn tsc:staged
Common Lint Fixes
const { used, unused } = obj;
const { used, unused: _unused } = obj;
function foo(used: string, unused: number) {}
function foo(used: string, _unused: number) {}
someAsyncFunction();
void someAsyncFunction();
await someAsyncFunction();
Language Requirements
All comments must be written in English:
async function fetchBalance(address: string): Promise<bigint> {
}
When to Comment
const gasLimit = estimatedGas * 1.5n;
const fee = isPremium ? baseFee * 0.5 : baseFee;
const value = 5;
Development Principles
Single Responsibility
Each function should perform a single, atomic task:
async function fetchUserBalance(userId: string): Promise<Balance> {
const user = await getUser(userId);
return await getBalanceForAddress(user.address);
}
async function fetchUserBalanceAndUpdateUI(userId: string) {
const user = await getUser(userId);
const balance = await getBalanceForAddress(user.address);
setBalanceState(balance);
showNotification('Balance updated');
logAnalytics('balance_fetched');
}
Avoid Over-Abstraction
Don't create helpers for one-time operations:
const createUserFetcher = (config: Config) => {
return (userId: string) => {
return fetchWithConfig(config, `/users/${userId}`);
};
};
const fetchUser = createUserFetcher(defaultConfig);
const user = await fetchUser(userId);
const user = await fetch(`/api/users/${userId}`).then(r => r.json());
Detailed Guides
Code Quality Standards
See code-quality.md for comprehensive guidelines:
- Linting commands and pre-commit workflow
- Comment and documentation standards
- Language requirements (English only)
- Single responsibility principle
- Avoiding over-abstraction
- Consistent naming conventions
- Code quality checklist
Fixing Lint Warnings
See fix-lint.md for complete lint fix workflow:
- Analyzing lint warnings
- Categorizing lint errors
- Common fix patterns by category
- Spellcheck fixes
- Unused variable/parameter handling
- Automated fix strategies
- Testing after fixes
Spellcheck
If a technical term triggers spellcheck errors:
grep -i "yourword" development/spellCheckerSkipWords.txt
echo "yourword" >> development/spellCheckerSkipWords.txt
Checklist
Pre-commit
Code Quality
Related Skills
/1k-sentry-analysis - Sentry error analysis and fixes
/1k-test-version - Test version creation workflow
/1k-coding-patterns - General coding patterns