{"id":"8b4a6fe3-b9a2-4b5d-b76b-d8eab9a7d323","shortId":"5RfFYd","kind":"skill","title":"kaizen","tagline":"Guide for continuous improvement, error proofing, and standardization. Use this skill when the user wants to improve code quality, refactor, or discuss process improvements.","description":"# Kaizen: Continuous Improvement\n\n## Overview\n\nSmall improvements, continuously. Error-proof by design. Follow what works. Build only what's needed.\n\n**Core principle:** Many small improvements beat one big change. Prevent errors at design time, not with fixes.\n\n## When to Use\n**Always applied for:**\n\n- Code implementation and refactoring\n- Architecture and design decisions\n- Process and workflow improvements\n- Error handling and validation\n\n**Philosophy:** Quality through incremental progress and prevention, not perfection through massive effort.\n\n## The Four Pillars\n\n### 1. Continuous Improvement (Kaizen)\n\nSmall, frequent improvements compound into major gains.\n\n#### Principles\n\n**Incremental over revolutionary:**\n\n- Make smallest viable change that improves quality\n- One improvement at a time\n- Verify each change before next\n- Build momentum through small wins\n\n**Always leave code better:**\n\n- Fix small issues as you encounter them\n- Refactor while you work (within scope)\n- Update outdated comments\n- Remove dead code when you see it\n\n**Iterative refinement:**\n\n- First version: make it work\n- Second pass: make it clear\n- Third pass: make it efficient\n- Don't try all three at once\n\n<Good>\n```typescript\n// Iteration 1: Make it work\nconst calculateTotal = (items: Item[]) => {\n  let total = 0;\n  for (let i = 0; i < items.length; i++) {\n    total += items[i].price * items[i].quantity;\n  }\n  return total;\n};\n\n// Iteration 2: Make it clear (refactor)\nconst calculateTotal = (items: Item[]): number => {\nreturn items.reduce((total, item) => {\nreturn total + (item.price \\* item.quantity);\n}, 0);\n};\n\n// Iteration 3: Make it robust (add validation)\nconst calculateTotal = (items: Item[]): number => {\nif (!items?.length) return 0;\n\nreturn items.reduce((total, item) => {\nif (item.price < 0 || item.quantity < 0) {\nthrow new Error('Price and quantity must be non-negative');\n}\nreturn total + (item.price \\* item.quantity);\n}, 0);\n};\n\n````\nEach step is complete, tested, and working\n</Good>\n\n<Bad>\n```typescript\n// Trying to do everything at once\nconst calculateTotal = (items: Item[]): number => {\n  // Validate, optimize, add features, handle edge cases all together\n  if (!items?.length) return 0;\n  const validItems = items.filter(item => {\n    if (item.price < 0) throw new Error('Negative price');\n    if (item.quantity < 0) throw new Error('Negative quantity');\n    return item.quantity > 0; // Also filtering zero quantities\n  });\n  // Plus caching, plus logging, plus currency conversion...\n  return validItems.reduce(...); // Too many concerns at once\n};\n````\n\nOverwhelming, error-prone, hard to verify\n</Bad>\n\n#### In Practice\n\n**When implementing features:**\n\n1. Start with simplest version that works\n2. Add one improvement (error handling, validation, etc.)\n3. Test and verify\n4. Repeat if time permits\n5. Don't try to make it perfect immediately\n\n**When refactoring:**\n\n- Fix one smell at a time\n- Commit after each improvement\n- Keep tests passing throughout\n- Stop when \"good enough\" (diminishing returns)\n\n**When reviewing code:**\n\n- Suggest incremental improvements (not rewrites)\n- Prioritize: critical → important → nice-to-have\n- Focus on highest-impact changes first\n- Accept \"better than before\" even if not perfect\n\n### 2. Poka-Yoke (Error Proofing)\n\nDesign systems that prevent errors at compile/design time, not runtime.\n\n#### Principles\n\n**Make errors impossible:**\n\n- Type system catches mistakes\n- Compiler enforces contracts\n- Invalid states unrepresentable\n- Errors caught early (left of production)\n\n**Design for safety:**\n\n- Fail fast and loudly\n- Provide helpful error messages\n- Make correct path obvious\n- Make incorrect path difficult\n\n**Defense in layers:**\n\n1. Type system (compile time)\n2. Validation (runtime, early)\n3. Guards (preconditions)\n4. Error boundaries (graceful degradation)\n\n#### Type System Error Proofing\n\n<Good>\n```typescript\n// Error: string status can be any value\ntype OrderBad = {\n  status: string; // Can be \"pending\", \"PENDING\", \"pnding\", anything!\n  total: number;\n};\n\n// Good: Only valid states possible\ntype OrderStatus = 'pending' | 'processing' | 'shipped' | 'delivered';\ntype Order = {\nstatus: OrderStatus;\ntotal: number;\n};\n\n// Better: States with associated data\ntype Order =\n| { status: 'pending'; createdAt: Date }\n| { status: 'processing'; startedAt: Date; estimatedCompletion: Date }\n| { status: 'shipped'; trackingNumber: string; shippedAt: Date }\n| { status: 'delivered'; deliveredAt: Date; signature: string };\n\n// Now impossible to have shipped without trackingNumber\n\n````\nType system prevents entire classes of errors\n</Good>\n\n<Good>\n```typescript\n// Make invalid states unrepresentable\ntype NonEmptyArray<T> = [T, ...T[]];\n\nconst firstItem = <T>(items: NonEmptyArray<T>): T => {\n  return items[0]; // Always safe, never undefined!\n};\n\n// Caller must prove array is non-empty\nconst items: number[] = [1, 2, 3];\nif (items.length > 0) {\n  firstItem(items as NonEmptyArray<number>); // Safe\n}\n````\n\nFunction signature guarantees safety\n</Good>\n\n#### Validation Error Proofing\n\n<Good>\n```typescript\n// Error: Validation after use\nconst processPayment = (amount: number) => {\n  const fee = amount * 0.03; // Used before validation!\n  if (amount <= 0) throw new Error('Invalid amount');\n  // ...\n};\n\n// Good: Validate immediately\nconst processPayment = (amount: number) => {\nif (amount <= 0) {\nthrow new Error('Payment amount must be positive');\n}\nif (amount > 10000) {\nthrow new Error('Payment exceeds maximum allowed');\n}\n\nconst fee = amount \\* 0.03;\n// ... now safe to use\n};\n\n// Better: Validation at boundary with branded type\ntype PositiveNumber = number & { readonly \\_\\_brand: 'PositiveNumber' };\n\nconst validatePositive = (n: number): PositiveNumber => {\nif (n <= 0) throw new Error('Must be positive');\nreturn n as PositiveNumber;\n};\n\nconst processPayment = (amount: PositiveNumber) => {\n// amount is guaranteed positive, no need to check\nconst fee = amount \\* 0.03;\n};\n\n// Validate at system boundary\nconst handlePaymentRequest = (req: Request) => {\nconst amount = validatePositive(req.body.amount); // Validate once\nprocessPayment(amount); // Use everywhere safely\n};\n\n````\nValidate once at boundary, safe everywhere else\n</Good>\n\n#### Guards and Preconditions\n\n<Good>\n```typescript\n// Early returns prevent deeply nested code\nconst processUser = (user: User | null) => {\n  if (!user) {\n    logger.error('User not found');\n    return;\n  }\n\n  if (!user.email) {\n    logger.error('User email missing');\n    return;\n  }\n\n  if (!user.isActive) {\n    logger.info('User inactive, skipping');\n    return;\n  }\n\n  // Main logic here, guaranteed user is valid and active\n  sendEmail(user.email, 'Welcome!');\n};\n````\n\nGuards make assumptions explicit and enforced\n</Good>\n\n#### Configuration Error Proofing\n\n<Good>\n```typescript\n// Error: Optional config with unsafe defaults\ntype ConfigBad = {\n  apiKey?: string;\n  timeout?: number;\n};\n\nconst client = new APIClient({ timeout: 5000 }); // apiKey missing!\n\n// Good: Required config, fails early\ntype Config = {\napiKey: string;\ntimeout: number;\n};\n\nconst loadConfig = (): Config => {\nconst apiKey = process.env.API_KEY;\nif (!apiKey) {\nthrow new Error('API_KEY environment variable required');\n}\n\nreturn {\napiKey,\ntimeout: 5000,\n};\n};\n\n// App fails at startup if config invalid, not during request\nconst config = loadConfig();\nconst client = new APIClient(config);\n\n````\nFail at startup, not in production\n</Good>\n\n#### In Practice\n\n**When designing APIs:**\n- Use types to constrain inputs\n- Make invalid states unrepresentable\n- Return Result<T, E> instead of throwing\n- Document preconditions in types\n\n**When handling errors:**\n- Validate at system boundaries\n\n- Use guards for preconditions\n- Fail fast with clear messages\n- Log context for debugging\n\n**When configuring:**\n- Required over optional with defaults\n- Validate all config at startup\n- Fail deployment if config invalid\n- Don't allow partial configurations\n\n### 3. Standardized Work\nFollow established patterns. Document what works. Make good practices easy to follow.\n\n#### Principles\n\n**Consistency over cleverness:**\n- Follow existing codebase patterns\n- Don't reinvent solved problems\n- New pattern only if significantly better\n- Team agreement on new patterns\n\n**Documentation lives with code:**\n- README for setup and architecture\n- CLAUDE.md for AI coding conventions\n- Comments for \"why\", not \"what\"\n- Examples for complex patterns\n\n**Automate standards:**\n- Linters enforce style\n- Type checks enforce contracts\n- Tests verify behavior\n- CI/CD enforces quality gates\n\n#### Following Patterns\n\n<Good>\n```typescript\n// Existing codebase pattern for API clients\nclass UserAPIClient {\n  async getUser(id: string): Promise<User> {\n    return this.fetch(`/users/${id}`);\n  }\n}\n\n// New code follows the same pattern\nclass OrderAPIClient {\n  async getOrder(id: string): Promise<Order> {\n    return this.fetch(`/orders/${id}`);\n  }\n}\n````\n\nConsistency makes codebase predictable\n</Good>\n\n<Bad>\n```typescript\n// Existing pattern uses classes\nclass UserAPIClient { /* ... */ }\n\n// New code introduces different pattern without discussion\nconst getOrder = async (id: string): Promise<Order> => {\n// Breaking consistency \"because I prefer functions\"\n};\n\n````\nInconsistency creates confusion\n</Bad>\n\n#### Error Handling Patterns\n\n<Good>\n```typescript\n// Project standard: Result type for recoverable errors\ntype Result<T, E> = { ok: true; value: T } | { ok: false; error: E };\n\n// All services follow this pattern\nconst fetchUser = async (id: string): Promise<Result<User, Error>> => {\n  try {\n    const user = await db.users.findById(id);\n    if (!user) {\n      return { ok: false, error: new Error('User not found') };\n    }\n    return { ok: true, value: user };\n  } catch (err) {\n    return { ok: false, error: err as Error };\n  }\n};\n\n// Callers use consistent pattern\nconst result = await fetchUser('123');\nif (!result.ok) {\n  logger.error('Failed to fetch user', result.error);\n  return;\n}\nconst user = result.value; // Type-safe!\n````\n\nStandard pattern across codebase\n</Good>\n\n#### Documentation Standards\n\n<Good>\n```typescript\n/**\n * Retries an async operation with exponential backoff.\n *\n * Why: Network requests fail temporarily; retrying improves reliability\n * When to use: External API calls, database operations\n * When not to use: User input validation, internal function calls\n *\n * @example\n * const result = await retry(\n *   () => fetch('https://api.example.com/data'),\n *   { maxAttempts: 3, baseDelay: 1000 }\n * );\n */\nconst retry = async <T>(\n  operation: () => Promise<T>,\n  options: RetryOptions\n): Promise<T> => {\n  // Implementation...\n};\n```\nDocuments why, when, and how\n</Good>\n\n#### In Practice\n\n**Before adding new patterns:**\n\n- Search codebase for similar problems solved\n- Check CLAUDE.md for project conventions\n- Discuss with team if breaking from pattern\n- Update docs when introducing new pattern\n\n**When writing code:**\n\n- Match existing file structure\n- Use same naming conventions\n- Follow same error handling approach\n- Import from same locations\n\n**When reviewing:**\n\n- Check consistency with existing code\n- Point to examples in codebase\n- Suggest aligning with standards\n- Update CLAUDE.md if new standard emerges\n\n### 4. Just-In-Time (JIT)\n\nBuild what's needed now. No more, no less. Avoid premature optimization and over-engineering.\n\n#### Principles\n\n**YAGNI (You Aren't Gonna Need It):**\n\n- Implement only current requirements\n- No \"just in case\" features\n- No \"we might need this later\" code\n- Delete speculation\n\n**Simplest thing that works:**\n\n- Start with straightforward solution\n- Add complexity only when needed\n- Refactor when requirements change\n- Don't anticipate future needs\n\n**Optimize when measured:**\n\n- No premature optimization\n- Profile before optimizing\n- Measure impact of changes\n- Accept \"good enough\" performance\n\n#### YAGNI in Action\n\n<Good>\n```typescript\n// Current requirement: Log errors to console\nconst logError = (error: Error) => {\n  console.error(error.message);\n};\n```\nSimple, meets current need\n</Good>\n\n<Bad>\n```typescript\n// Over-engineered for \"future needs\"\ninterface LogTransport {\n  write(level: LogLevel, message: string, meta?: LogMetadata): Promise<void>;\n}\n\nclass ConsoleTransport implements LogTransport { /_... _/ }\nclass FileTransport implements LogTransport { /_ ... _/ }\nclass RemoteTransport implements LogTransport { /_ ..._/ }\n\nclass Logger {\nprivate transports: LogTransport[] = [];\nprivate queue: LogEntry[] = [];\nprivate rateLimiter: RateLimiter;\nprivate formatter: LogFormatter;\n\n// 200 lines of code for \"maybe we'll need it\"\n}\n\nconst logError = (error: Error) => {\nLogger.getInstance().log('error', error.message);\n};\n\n````\nBuilding for imaginary future requirements\n</Bad>\n\n**When to add complexity:**\n- Current requirement demands it\n- Pain points identified through use\n- Measured performance issues\n- Multiple use cases emerged\n\n<Good>\n```typescript\n// Start simple\nconst formatCurrency = (amount: number): string => {\n  return `$${amount.toFixed(2)}`;\n};\n\n// Requirement evolves: support multiple currencies\nconst formatCurrency = (amount: number, currency: string): string => {\n  const symbols = { USD: '$', EUR: '€', GBP: '£' };\n  return `${symbols[currency]}${amount.toFixed(2)}`;\n};\n\n// Requirement evolves: support localization\nconst formatCurrency = (amount: number, locale: string): string => {\n  return new Intl.NumberFormat(locale, {\\n    style: 'currency',\n    currency: locale === 'en-US' ? 'USD' : 'EUR',\n  }).format(amount);\n};\n````\n\nComplexity added only when needed\n</Good>\n\n#### Premature Abstraction\n\n<Bad>\n```typescript\n// One use case, but building generic framework\nabstract class BaseCRUDService<T> {\n  abstract getAll(): Promise<T[]>;\n  abstract getById(id: string): Promise<T>;\n  abstract create(data: Partial<T>): Promise<T>;\n  abstract update(id: string, data: Partial<T>): Promise<T>;\n  abstract delete(id: string): Promise<void>;\n}\n\nclass GenericRepository<T> { /_300 lines _/ }\nclass QueryBuilder<T> { /_ 200 lines_/ }\n// ... building entire ORM for single table\n\n````\nMassive abstraction for uncertain future\n</Bad>\n\n<Good>\n```typescript\n// Simple functions for current needs\nconst getUsers = async (): Promise<User[]> => {\n  return db.query('SELECT * FROM users');\n};\n\nconst getUserById = async (id: string): Promise<User | null> => {\n  return db.query('SELECT * FROM users WHERE id = $1', [id]);\n};\n\n// When pattern emerges across multiple entities, then abstract\n````\n\nAbstract only when pattern proven across 3+ cases\n</Good>\n\n#### Performance Optimization\n\n<Good>\n```typescript\n// Current: Simple approach\nconst filterActiveUsers = (users: User[]): User[] => {\n  return users.filter(user => user.isActive);\n};\n\n// Benchmark shows: 50ms for 1000 users (acceptable)\n// ✓ Ship it, no optimization needed\n\n// Later: After profiling shows this is bottleneck\n// Then optimize with indexed lookup or caching\n\n````\nOptimize based on measurement, not assumptions\n</Good>\n\n<Bad>\n```typescript\n// Premature optimization\nconst filterActiveUsers = (users: User[]): User[] => {\n  // \"This might be slow, so let's cache and index\"\n  const cache = new WeakMap();\n  const indexed = buildBTreeIndex(users, 'isActive');\n  // 100 lines of optimization code\n  // Adds complexity, harder to maintain\n  // No evidence it was needed\n};\\\n````\n\nComplex solution for unmeasured problem\n</Bad>\n\n#### In Practice\n\n**When implementing:**\n\n- Solve the immediate problem\n- Use straightforward approach\n- Resist \"what if\" thinking\n- Delete speculative code\n\n**When optimizing:**\n\n- Profile first, optimize second\n- Measure before and after\n- Document why optimization needed\n- Keep simple version in tests\n\n**When abstracting:**\n\n- Wait for 3+ similar cases (Rule of Three)\n- Make abstraction as simple as possible\n- Prefer duplication over wrong abstraction\n- Refactor when pattern clear\n\n## Integration with Commands\n\nThe Kaizen skill guides how you work. The commands provide structured analysis:\n\n- **`/why`**: Root cause analysis (5 Whys)\n- **`/cause-and-effect`**: Multi-factor analysis (Fishbone)\n- **`/plan-do-check-act`**: Iterative improvement cycles\n- **`/analyse-problem`**: Comprehensive documentation (A3)\n- **`/analyse`**: Smart method selection (Gemba/VSM/Muda)\n\nUse commands for structured problem-solving. Apply skill for day-to-day development.\n\n## Red Flags\n\n**Violating Continuous Improvement:**\n\n- \"I'll refactor it later\" (never happens)\n- Leaving code worse than you found it\n- Big bang rewrites instead of incremental\n\n**Violating Poka-Yoke:**\n\n- \"Users should just be careful\"\n- Validation after use instead of before\n- Optional config with no validation\n\n**Violating Standardized Work:**\n\n- \"I prefer to do it my way\"\n- Not checking existing patterns\n- Ignoring project conventions\n\n**Violating Just-In-Time:**\n\n- \"We might need this someday\"\n- Building frameworks before using them\n- Optimizing without measuring\n\n## Remember\n\n**Kaizen is about:**\n\n- Small improvements continuously\n- Preventing errors by design\n- Following proven patterns\n- Building only what's needed\n\n**Not about:**\n\n- Perfection on first try\n- Massive refactoring projects\n- Clever abstractions\n- Premature optimization\n\n**Mindset:** Good enough today, better tomorrow. Repeat.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["kaizen","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-kaizen","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/kaizen","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34726 github stars · SKILL.md body (17,609 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T12:51:07.781Z","embedding":null,"createdAt":"2026-04-18T21:39:32.745Z","updatedAt":"2026-04-23T12:51:07.781Z","lastSeenAt":"2026-04-23T12:51:07.781Z","tsv":"'/_':1500,1505,1510,1678 '/_300':1674 '/analyse':1932 '/analyse-problem':1928 '/cause-and-effect':1918 '/data''),':1281 '/orders':1106 '/plan-do-check-act':1924 '/users':1089 '/why':1912 '0':200,204,236,253,260,262,278,311,318,326,334,625,646,677,692,739 '0.03':671,714,765 '1':100,190,365,508,641,1723 '100':1815 '1000':1285,1760 '10000':703 '123':1217 '2':218,372,450,513,642,1578,1600 '200':1525,1679 '3':238,380,517,643,993,1283,1739,1876 '4':384,520,1372 '5':389,1916 '5000':867,901 '50ms':1758 'a3':1931 'abstract':1634,1643,1646,1650,1655,1660,1667,1688,1732,1733,1873,1883,1892,2061 'accept':442,1455,1762 'across':1235,1728,1738 'action':1461 'activ':836 'ad':1303,1629 'add':242,300,373,1428,1550,1820 'agreement':1028 'ai':1043 'align':1363 'allow':710,990 'also':335 'alway':66,137,626 'amount':666,670,676,682,688,691,697,702,713,752,754,764,775,781,1573,1586,1607,1627 'amount.tofixed':1577,1599 'analysi':1911,1915,1922 'anticip':1439 'anyth':546 'api':893,930,1078,1259 'api.example.com':1280 'api.example.com/data''),':1279 'apicli':865,918 'apikey':858,868,877,885,889,899 'app':902 'appli':67,1944 'approach':1345,1746,1845 'architectur':73,1040 'aren':1397 'array':633 'ask':2104 'associ':569 'assumpt':842,1787 'async':1082,1099,1128,1171,1242,1288,1700,1710 'autom':1055 'avoid':1387 'await':1181,1215,1276 'backoff':1246 'bang':1972 'base':1783 'basecrudservic':1645 'basedelay':1284 'beat':51 'behavior':1066 'benchmark':1756 'better':140,443,566,719,1026,2068 'big':53,1971 'bottleneck':1774 'boundari':522,722,769,788,957,2112 'brand':724,730 'break':1132,1321 'build':41,132,1378,1543,1640,1681,2024,2046 'buildbtreeindex':1812 'cach':340,1781,1803,1807 'calculatetot':195,224,245,294 'call':1260,1272 'caller':630,1209 'care':1985 'case':304,1409,1566,1638,1740,1878 'catch':472,1200 'caught':481 'caus':1914 'chang':54,118,129,440,1436,1454 'check':761,1061,1312,1352,2008 'ci/cd':1067 'clarif':2106 'class':606,1080,1097,1116,1117,1496,1501,1506,1511,1644,1672,1676 'claude.md':1041,1313,1367 'clear':175,221,965,1896,2079 'clever':1011,2060 'client':863,916,1079 'code':19,69,139,159,422,801,1035,1044,1092,1120,1332,1356,1417,1528,1819,1852,1965 'codebas':1014,1075,1110,1236,1307,1361 'command':1899,1908,1938 'comment':156,1046 'commit':406 'compil':474,511 'compile/design':462 'complet':282 'complex':1053,1429,1551,1628,1821,1830 'compound':107 'comprehens':1929 'concern':350 'config':852,872,876,883,907,913,919,980,986,1993 'configbad':857 'configur':846,972,992 'confus':1140 'consist':1009,1108,1133,1211,1353 'consol':1468 'console.error':1473 'consoletransport':1497 'const':194,223,244,293,312,618,638,664,668,686,711,732,750,762,770,774,802,862,881,884,912,915,1126,1169,1179,1213,1227,1274,1286,1469,1535,1571,1584,1591,1605,1698,1708,1747,1791,1806,1810 'constrain':934 'context':968 'continu':4,27,32,101,1955,2038 'contract':476,1063 'convent':1045,1316,1340,2013 'convers':345 'core':46 'correct':498 'creat':1139,1656 'createdat':575 'criteria':2115 'critic':429 'currenc':344,1583,1588,1598,1618,1619 'current':1404,1463,1477,1552,1696,1744 'cycl':1927 'data':570,1657,1664 'databas':1261 'date':576,580,582,588,592 'day':1948,1950 'day-to-day':1947 'db.query':1704,1717 'db.users.findbyid':1182 'dead':158 'debug':970 'decis':76 'deepli':799 'default':855,977 'defens':505 'degrad':524 'delet':1418,1668,1850 'deliv':559,590 'deliveredat':591 'demand':1554 'deploy':984 'describ':2083 'design':37,58,75,456,486,929,2042 'develop':1951 'differ':1122 'difficult':504 'diminish':418 'discuss':23,1125,1317 'doc':1325 'document':947,999,1032,1237,1295,1863,1930 'duplic':1889 'e':943,1155,1163 'earli':482,516,796,874 'easi':1005 'edg':303 'effici':180 'effort':96 'els':791 'email':818 'emerg':1371,1567,1727 'empti':637 'en':1622 'en-us':1621 'encount':146 'enforc':475,845,1058,1062,1068 'engin':1393,1482 'enough':417,1457,2066 'entir':605,1682 'entiti':1730 'environ':895,2095 'environment-specif':2094 'err':1201,1206 'error':6,34,56,81,265,321,329,355,376,454,460,468,480,495,521,527,530,608,657,660,680,695,706,742,847,850,892,953,1141,1151,1162,1177,1189,1191,1205,1208,1343,1466,1471,1472,1537,1538,1541,2040 'error-pron':354 'error-proof':33 'error.message':1474,1542 'establish':997 'estimatedcomplet':581 'etc':379 'eur':1594,1625 'even':446 'everyth':290 'everywher':783,790 'evid':1826 'evolv':1580,1602 'exampl':1051,1273,1359 'exceed':708 'exist':1013,1074,1113,1334,1355,2009 'expert':2100 'explicit':843 'exponenti':1245 'extern':1258 'factor':1921 'fail':489,873,903,920,962,983,1221,1250 'fals':1161,1188,1204 'fast':490,963 'featur':301,364,1410 'fee':669,712,763 'fetch':1223,1278 'fetchus':1170,1216 'file':1335 'filetransport':1502 'filter':336 'filteractiveus':1748,1792 'first':166,441,1856,2055 'firstitem':619,647 'fishbon':1923 'fix':62,141,400 'flag':1953 'focus':435 'follow':38,996,1007,1012,1071,1093,1166,1341,2043 'format':1626 'formatcurr':1572,1585,1606 'formatt':1523 'found':812,1194,1969 'four':98 'framework':1642,2025 'frequent':105 'function':652,1137,1271,1694 'futur':1440,1484,1546,1691 'gain':110 'gate':1070 'gbp':1595 'gemba/vsm/muda':1936 'generic':1641 'genericrepositori':1673 'getal':1647 'getbyid':1651 'getord':1100,1127 'getus':1083,1699 'getuserbyid':1709 'gonna':1399 'good':416,549,683,870,1003,1456,2065 'grace':523 'guarante':654,756,831 'guard':518,792,840,959 'guid':2,1903 'handl':82,302,377,952,1142,1344 'handlepaymentrequest':771 'happen':1963 'hard':357 'harder':1822 'help':494 'highest':438 'highest-impact':437 'id':1084,1090,1101,1107,1129,1172,1183,1652,1662,1669,1711,1722,1724 'identifi':1558 'ignor':2011 'imaginari':1545 'immedi':397,685,1841 'impact':439,1452 'implement':70,363,1294,1402,1498,1503,1508,1838 'import':430,1346 'imposs':469,596 'improv':5,18,25,28,31,50,80,102,106,120,123,375,409,425,1253,1926,1956,2037 'inact':825 'inconsist':1138 'incorrect':502 'increment':88,112,424,1976 'index':1778,1805,1811 'input':935,1268,2109 'instead':944,1974,1989 'integr':1897 'interfac':1486 'intern':1270 'intl.numberformat':1614 'introduc':1121,1327 'invalid':477,611,681,908,937,987 'isact':1814 'issu':143,1563 'item':196,197,209,212,225,226,231,246,247,250,257,295,296,308,315,620,624,639,648 'item.price':234,259,276,317 'item.quantity':235,261,277,325,333 'items.filter':314 'items.length':206,645 'items.reduce':229,255 'iter':164,189,217,237,1925 'jit':1377 'just-in-tim':1373,2015 'kaizen':1,26,103,1901,2033 'keep':410,1867 'key':887,894 'later':1416,1768,1961 'layer':507 'leav':138,1964 'left':483 'length':251,309 'less':1386 'let':198,202,1801 'level':1489 'limit':2071 'line':1526,1675,1680,1816 'linter':1057 'live':1033 'll':1532,1958 'loadconfig':882,914 'local':1604,1609,1615,1620 'locat':1349 'log':342,967,1465,1540 'logentri':1518 'logerror':1470,1536 'logformatt':1524 'logger':1512 'logger.error':809,816,1220 'logger.getinstance':1539 'logger.info':823 'logic':829 'loglevel':1490 'logmetadata':1494 'logtransport':1487,1499,1504,1509,1515 'lookup':1779 'loud':492 'main':828 'maintain':1824 'major':109 'make':115,168,173,178,191,219,239,394,467,497,501,610,841,936,1002,1109,1882 'mani':48,349 'massiv':95,1687,2057 'match':1333,2080 'maxattempt':1282 'maximum':709 'mayb':1530 'measur':1444,1451,1561,1785,1859,2031 'meet':1476 'messag':496,966,1491 'meta':1493 'method':1934 'might':1413,1797,2020 'mindset':2064 'miss':819,869,2117 'mistak':473 'momentum':133 'multi':1920 'multi-factor':1919 'multipl':1564,1582,1729 'must':269,631,698,743 'n':734,738,747,1616 'name':1339 'need':45,759,1381,1400,1414,1432,1441,1478,1485,1533,1632,1697,1767,1829,1866,2021,2050 'negat':273,322,330 'nest':800 'network':1248 'never':628,1962 'new':264,320,328,679,694,705,741,864,891,917,1021,1030,1091,1119,1190,1304,1328,1369,1613,1808 'next':131 'nice':432 'nice-to-hav':431 'non':272,636 'non-empti':635 'non-neg':271 'nonemptyarray':615,621,650 'null':806,1715 'number':227,248,297,548,565,640,667,689,728,735,861,880,1574,1587,1608 'obvious':500 'ok':1156,1160,1187,1196,1203 'one':52,122,374,401,1636 'oper':1243,1262,1289 'optim':299,1389,1442,1447,1450,1742,1766,1776,1782,1790,1818,1854,1857,1865,2029,2063 'option':851,975,1291,1992 'order':561,572 'orderapicli':1098 'orderbad':538 'orderstatus':555,563 'orm':1683 'outdat':155 'output':2089 'over-engin':1391,1480 'overview':29 'overwhelm':353 'pain':1556 'partial':991,1658,1665 'pass':172,177,412 'path':499,503 'pattern':998,1015,1022,1031,1054,1072,1076,1096,1114,1123,1143,1168,1212,1234,1305,1323,1329,1726,1736,1895,2010,2045 'payment':696,707 'pend':543,544,556,574 'perfect':93,396,449,2053 'perform':1458,1562,1741 'permiss':2110 'permit':388 'philosophi':85 'pillar':99 'plus':339,341,343 'pnding':545 'point':1357,1557 'poka':452,1979 'poka-yok':451,1978 'posit':700,745,757 'positivenumb':727,731,736,749,753 'possibl':553,1887 'practic':361,927,1004,1301,1836 'precondit':519,794,948,961 'predict':1111 'prefer':1136,1888,2001 'prematur':1388,1446,1633,1789,2062 'prevent':55,91,459,604,798,2039 'price':211,266,323 'principl':47,111,466,1008,1394 'priorit':428 'privat':1513,1516,1519,1522 'problem':1020,1310,1834,1842,1942 'problem-solv':1941 'process':24,77,557,578 'process.env.api':886 'processpay':665,687,751,780 'processus':803 'product':485,925 'profil':1448,1770,1855 'progress':89 'project':1145,1315,2012,2059 'promis':1086,1103,1131,1174,1290,1293,1495,1648,1654,1659,1666,1671,1701,1713 'prone':356 'proof':7,35,455,528,658,848 'prove':632 'proven':1737,2044 'provid':493,1909 'qualiti':20,86,121,1069 'quantiti':214,268,331,338 'querybuild':1677 'queue':1517 'ratelimit':1520,1521 'readm':1036 'readon':729 'recover':1150 'red':1952 'refactor':21,72,148,222,399,1433,1893,1959,2058 'refin':165 'reinvent':1018 'reliabl':1254 'rememb':2032 'remotetransport':1507 'remov':157 'repeat':385,2070 'req':772 'req.body.amount':777 'request':773,911,1249 'requir':871,897,973,1405,1435,1464,1547,1553,1579,1601,2108 'resist':1846 'result':941,1147,1153,1175,1214,1275 'result.error':1225 'result.ok':1219 'result.value':1229 'retri':1240,1252,1277,1287 'retryopt':1292 'return':215,228,232,252,254,274,310,332,346,419,623,746,797,813,820,827,898,940,1087,1104,1186,1195,1202,1226,1576,1596,1612,1703,1716,1752 'review':421,1351,2101 'revolutionari':114 'rewrit':427,1973 'robust':241 'root':1913 'rule':1879 'runtim':465,515 'safe':627,651,716,784,789,1232 'safeti':488,655,2111 'scope':153,2082 'search':1306 'second':171,1858 'see':162 'select':1705,1718,1935 'sendemail':837 'servic':1165 'setup':1038 'ship':558,584,599,1763 'shippedat':587 'show':1757,1771 'signatur':593,653 'signific':1025 'similar':1309,1877 'simpl':1475,1570,1693,1745,1868,1885 'simplest':368,1420 'singl':1685 'skill':12,1902,1945,2074 'skill-kaizen' 'skip':826 'slow':1799 'small':30,49,104,135,142,2036 'smallest':116 'smart':1933 'smell':402 'solut':1427,1831 'solv':1019,1311,1839,1943 'someday':2023 'source-sickn33' 'specif':2096 'specul':1419,1851 'standard':9,994,1056,1146,1233,1238,1365,1370,1998 'start':366,1424,1569 'startedat':579 'startup':905,922,982 'state':478,552,567,612,938 'status':532,539,562,573,577,583,589 'step':280 'stop':414,2102 'straightforward':1426,1844 'string':531,540,586,594,859,878,1085,1102,1130,1173,1492,1575,1589,1590,1610,1611,1653,1663,1670,1712 'structur':1336,1910,1940 'style':1059,1617 'substitut':2092 'success':2114 'suggest':423,1362 'support':1581,1603 'symbol':1592,1597 'system':457,471,510,526,603,768,956 'tabl':1686 'task':2078 'team':1027,1319 'temporarili':1251 'test':283,381,411,1064,1871,2098 'thing':1421 'think':1849 'third':176 'this.fetch':1088,1105 'three':185,1881 'throughout':413 'throw':263,319,327,678,693,704,740,890,946 'time':59,126,387,405,463,512,1376,2018 'timeout':860,866,879,900 'today':2067 'togeth':306 'tomorrow':2069 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':199,208,216,230,233,256,275,547,564 'trackingnumb':585,601 'transport':1514 'treat':2087 'tri':183,287,392,1178,2056 'true':1157,1197 'type':470,509,525,537,554,560,571,602,614,725,726,856,875,932,950,1060,1148,1152,1231 'type-saf':1230 'typescript':188,286,529,609,659,795,849,1073,1112,1144,1239,1462,1479,1568,1635,1692,1743,1788 'uncertain':1690 'undefin':629 'unmeasur':1833 'unrepresent':479,613,939 'unsaf':854 'updat':154,1324,1366,1661 'us':1623 'usd':1593,1624 'use':10,65,663,672,718,782,931,958,1115,1210,1257,1266,1337,1560,1565,1637,1843,1937,1988,2027,2072 'user':15,804,805,808,810,817,824,832,1176,1180,1185,1192,1199,1224,1228,1267,1702,1707,1714,1720,1749,1750,1751,1754,1761,1793,1794,1795,1813,1981 'user.email':815,838 'user.isactive':822,1755 'userapicli':1081,1118 'users.filter':1753 'valid':84,243,298,378,514,551,656,661,674,684,720,766,778,785,834,954,978,1269,1986,1996,2097 'validateposit':733,776 'validitem':313 'validitems.reduce':347 'valu':536,1158,1198 'variabl':896 'verifi':127,359,383,1065 'version':167,369,1869 'viabl':117 'violat':1954,1977,1997,2014 'wait':1874 'want':16 'way':2006 'weakmap':1809 'welcom':839 'whys':1917 'win':136 'within':152 'without':600,1124,2030 'work':40,151,170,193,285,371,995,1001,1423,1906,1999 'workflow':79 'wors':1966 'write':1331,1488 'wrong':1891 'yagni':1395,1459 'yoke':453,1980 'zero':337","prices":[{"id":"508a9810-882a-4c16-85d4-f5279bb5f52d","listingId":"8b4a6fe3-b9a2-4b5d-b76b-d8eab9a7d323","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:39:32.745Z"}],"sources":[{"listingId":"8b4a6fe3-b9a2-4b5d-b76b-d8eab9a7d323","source":"github","sourceId":"sickn33/antigravity-awesome-skills/kaizen","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/kaizen","isPrimary":false,"firstSeenAt":"2026-04-18T21:39:32.745Z","lastSeenAt":"2026-04-23T12:51:07.781Z"}],"details":{"listingId":"8b4a6fe3-b9a2-4b5d-b76b-d8eab9a7d323","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"kaizen","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34726,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"de8fef8a7cc36ed34b43417a05c0f8ea42a8fd12","skill_md_path":"skills/kaizen/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/kaizen"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"kaizen","description":"Guide for continuous improvement, error proofing, and standardization. Use this skill when the user wants to improve code quality, refactor, or discuss process improvements."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/kaizen"},"updatedAt":"2026-04-23T12:51:07.781Z"}}