typescript-satisfies-operator
Guides proper usage of TypeScript's satisfies operator vs type annotations. Use this skill when deciding between type annotations (colon) and satisfies, validating object shapes while preserving literal types, or troubleshooting type inference issues.
SKILL.md
| Name | typescript-satisfies-operator |
| Description | Guides proper usage of TypeScript's satisfies operator vs type annotations. Use this skill when deciding between type annotations (colon) and satisfies, validating object shapes while preserving literal types, or troubleshooting type inference issues. |
OpenCode Configuration
My personal OpenCode configuration.
Before OpenCode existed, I maintained a personal "second brain". A collection of notes on programming patterns, product management frameworks, and psychology principles. I found it valuable to transform these notes into skills that the AI can execute, making my accumulated knowledge actionable during coding sessions.
Feel free to:
- Browse and adapt skills for your own config
- Use agents as templates for your workflows
- Share tips and tricks you've found useful
Structure
.
├── AGENTS.md # Personal preferences & coding guidelines
├── opencode.json # Main config (plugins, MCP servers, providers)
├── agents/ # Custom agents for specialized tasks
├── commands/ # Custom slash commands
└── scripts/ # Helper scripts
Custom Agents
| Agent | Purpose |
|---|---|
code-reviewer | Comprehensive code review |
code-simplifier | Refactor for clarity and maintainability |
deep-thinker | Structured thinking for complex problems |
effort-estimator | Estimate development effort |
git-commit | Generate conventional commit messages |
requirements-analyzer | Analyze feature requirements |
skill-creator | Create new skills with proper structure |
talk | Conversational interactions |
Skills Library
Skills are executable knowledge notes — my personal "second brain" converted into actionable guidance for the AI agent.
The full skills library now lives in flpbalada/fb-skills.
| Category | Skills |
|---|---|
| TypeScript | best practices, advanced types, satisfies operator, interface vs type |
| React | useState, useCallback, key prop, "use client" boundaries |
| CSS | container queries, Tailwind v4 best practices |
| Architecture | naming conventions, project structure, wrong abstraction patterns |
| Product Frameworks | Jobs-to-be-Done, Business Model Canvas, Hooked Model, Fogg Behavior Model, PEST analysis, product decisions |
| UX Psychology | cognitive load, cognitive biases, cognitive fluency, Hick's law, progressive disclosure, trust signals, halo effect |
| Behavioral Design | loss aversion, status quo bias, social proof, curiosity gap, self-initiated triggers, visual cues & CTAs |
| Decision Making | hypothesis trees, five whys, graph thinking, game theory (tit-for-tat) |
| Agile | Kanban, theme-epic-story hierarchy, user stories |
| Product Management | what not to do as PM |
MCP Servers
- Context7 — Real-time library/API documentation
- Exa — Web search and code examples
- Figma MCP — Design file integration (local)
Plugins
@franlol/opencode-md-table-formatter@0.0.3— Markdown table formatting@mohak34/opencode-notifier@latest— Desktop notifications