Claude-skill-registry 1k-feature-guides
Feature development guides for OneKey. Use when adding new chains, socket events, notifications, pages, or routes. Covers blockchain integration, WebSocket subscriptions, push notifications, and navigation patterns.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/1k-feature-guides" ~/.claude/skills/majiayu000-claude-skill-registry-1k-feature-guides && rm -rf "$T"
manifest:
skills/data/1k-feature-guides/SKILL.mdsource content
Feature Development Guides
Comprehensive guides for extending OneKey app functionality.
Quick Reference
| Feature | Guide | Key Files |
|---|---|---|
| Add blockchain chain | adding-chains.md | |
| Add WebSocket events | adding-socket-events.md | |
| Push notifications | notification-system.md | |
| Pages & routes | page-and-route.md | |
Adding New Chains
See: references/rules/adding-chains.md
Key steps:
- Implement chain core logic in
packages/core/src/chains/mychain/ - Add chain configuration in
packages/shared/src/config/chains/ - Update UI components for chain-specific features
- Add comprehensive tests
Reference implementations:
- EVM chains:
packages/core/src/chains/evm/ - Bitcoin:
packages/core/src/chains/btc/ - Solana:
packages/core/src/chains/sol/
Adding WebSocket Events
See: references/rules/adding-socket-events.md
Key steps:
- Define event name in
enumEAppSocketEventNames - Define payload type interface with
msgId: string - Add event handler in
PushProviderWebSocket.initWebSocket() - Always acknowledge messages via
ackNotificationMessage
this.socket.on(EAppSocketEventNames.myEvent, (payload: IMyPayload) => { void this.backgroundApi.serviceNotification.ackNotificationMessage({ msgId: payload.msgId, action: ENotificationPushMessageAckAction.arrived, }); void this.backgroundApi.someService.handleEvent(payload); });
Notification System
See: references/rules/notification-system.md
Notification modes:
| Mode | Action |
|---|---|
| 1 (page) | Navigate to specific page |
| 2 (dialog) | Show dialog |
| 3 (openInBrowser) | Open URL in external browser |
| 4 (openInApp) | Open URL in in-app browser |
| 5 (openInDapp) | Open URL in DApp browser |
Key files:
- Service:
packages/kit-bg/src/services/ServiceNotification/ServiceNotification.ts - Utils:
packages/shared/src/utils/notificationsUtils.ts - Types:
packages/shared/types/notification.ts
Pages & Routes
See: references/rules/page-and-route.md
Page types:
| Type | Description |
|---|---|
| Modal overlay pages |
| Tab route pages |
| Full screen onboarding pages |
Route configuration locations:
- Modal routes:
packages/kit/src/routes/Modal/router.tsx - Tab routes:
packages/kit/src/routes/Tab/router.ts - Onboarding:
packages/kit/src/views/Onboardingv2/router/index.tsx
Important:
- ⚠️ Never delete pages - use redirect pattern for deprecated routes
- ⚠️ Route paths must be unique across the entire application
- ⚠️ Always use
withpop: truenavigation.navigate
Related Skills
- React and TypeScript best practices/1k-coding-patterns
- Project structure and import rules/1k-architecture
- Jotai atom patterns/1k-state-management