97-dev
Apply timeless programming wisdom from "97 Things Every Programmer Should Know" when writing, reviewing, or refactoring code. Use for design decisions, code quality checks, professional development guidance, testing strategies, and workflow optimization.
Best use case
97-dev is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Apply timeless programming wisdom from "97 Things Every Programmer Should Know" when writing, reviewing, or refactoring code. Use for design decisions, code quality checks, professional development guidance, testing strategies, and workflow optimization.
Teams using 97-dev should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/97-dev/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How 97-dev Compares
| Feature / Agent | 97-dev | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Apply timeless programming wisdom from "97 Things Every Programmer Should Know" when writing, reviewing, or refactoring code. Use for design decisions, code quality checks, professional development guidance, testing strategies, and workflow optimization.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
Best AI Skills for Claude
Explore the best AI skills for Claude and Claude Code across coding, research, workflow automation, documentation, and agent operations.
SKILL.md Source
# 97-dev: Programmer's Wisdom Distilled principles from 97 Things Every Programmer Should Know. Apply when writing, reviewing, or making design decisions. ## Core Philosophy **Code is design.** Software development is a creative discipline requiring craftsmanship, not mechanical construction. **The code tells the truth.** Documentation lies, comments decay - only executable code reveals actual behavior. Make code self-explanatory. **Care about your code.** Excellence stems from attitude, not just knowledge. Craft elegant code that is clearly correct. ## Quick Principles | Principle | One-liner | |-----------|-----------| | Simplicity | Remove everything unnecessary; less is more | | Boy Scout | Leave code cleaner than you found it | | DRY | Single authoritative representation for each piece of knowledge | | SRP | One reason to change per class/module/function | | Comments | Comment only what code cannot say - explain *why*, not *what* | | Tech debt | Pay immediately or track the compounding interest | | Testing | Non-negotiable professional obligation | | Errors | Always check, always handle, every time | | Next commit | Know exactly what you're committing before you start | | Users | You are not the user - observe, don't assume | ## Detailed References Load these when you need deeper guidance on specific topics: ### [references/simplicity.md](references/simplicity.md) **When:** Refactoring bloated code, making architectural decisions, deciding what to remove, questioning if features are needed. Covers: Beauty in simplicity, reduction over addition, improving by removing, code as design. ### [references/quality.md](references/quality.md) **When:** Code review, enforcing standards, improving maintainability, designing APIs and interfaces. Covers: Boy Scout Rule, DRY principle, Single Responsibility, interface design, code as truth. ### [references/professionalism.md](references/professionalism.md) **When:** Career decisions, team dynamics, handling pressure, technical debt discussions, attitude check. Covers: Professional responsibility, caring about code, long-term thinking, prudent debt management. ### [references/testing.md](references/testing.md) **When:** Writing tests, handling errors, debugging issues, arguing for test coverage, writing comments. Covers: Testing as engineering rigor, error handling discipline, debugging strategy, comment guidelines. ### [references/learning.md](references/learning.md) **When:** Professional development, skill building, code reading sessions, understanding complexity limits. Covers: Continuous learning strategies, deliberate practice, reading code, knowing your limits. ### [references/workflow.md](references/workflow.md) **When:** Planning work, commit strategy, user research, daily development practices. Covers: Know your next commit, you are not the user, version control practices, breaking things safely. ## Checklist **Writing code:** - [ ] Single responsibility per function/class? - [ ] Any duplication to extract? - [ ] Anything removable without losing functionality? - [ ] Names descriptive enough to skip comments? - [ ] Would I maintain this for years? **Reviewing code:** - [ ] Leaves codebase cleaner? - [ ] Error cases handled? - [ ] Interface easy to use correctly? - [ ] Matches existing patterns? **Debugging:** - [ ] Ruled out my own code first? - [ ] Isolated problem systematically? - [ ] Testing assumptions, not seeking confirmation? ## Source [97 Things Every Programmer Should Know](https://github.com/97-things/97-things-every-programmer-should-know) - O'Reilly, Creative Commons.
Related Skills
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
absinthe-subscriptions
Use when implementing real-time GraphQL subscriptions with Absinthe. Covers Phoenix channels, PubSub, and subscription patterns.
absinthe-resolvers
Use when implementing GraphQL resolvers with Absinthe. Covers resolver patterns, dataloader integration, batching, and error handling.
abramov-state-composition
Write JavaScript code in the style of Dan Abramov, co-creator of Redux and React core team member. Emphasizes predictable state management, composition over inheritance, and developer experience. Use when building React applications or managing complex state.
abp-service-patterns
ABP Framework application layer patterns including AppServices, DTOs, Mapperly mapping, Unit of Work, and common patterns like Filter DTOs and ResponseModel. Use when: (1) creating AppServices, (2) mapping DTOs with Mapperly, (3) implementing list filtering, (4) wrapping API responses.
abp-infrastructure-patterns
ABP Framework cross-cutting patterns including authorization, background jobs, distributed events, multi-tenancy, and module configuration. Use when: (1) defining permissions, (2) creating background jobs, (3) publishing/handling distributed events, (4) configuring modules.
abp-entity-patterns
ABP Framework domain layer patterns including entities, aggregates, repositories, domain services, and data seeding. Use when: (1) creating entities with proper base classes, (2) implementing custom repositories, (3) writing domain services, (4) seeding data.
abp-contract-scaffolding
Generate ABP Application.Contracts layer scaffolding (interfaces, DTOs, permissions) from technical design. Enables parallel development by abp-developer and qa-engineer. Use when: (1) backend-architect needs to generate contracts, (2) preparing for parallel implementation workflow, (3) creating API contracts before implementation.
abp-api-implementation
Implement REST APIs in ABP Framework with AppServices, DTOs, pagination, filtering, and authorization. Use when building API endpoints for ABP applications.
ably-realtime
Ably real-time messaging patterns, WebSocket channel management, message validation and processing, staleness filtering, error recovery strategies, collaborative editing with drag-and-drop, optimistic updates for voting, real-time board collaboration, and Ably integration best practices for ree-board project
ablic
ABLIC (formerly Seiko Instruments) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with ABLIC power management and memory ICs.
abi-codegen
Convert JSON ABI files to TypeScript const exports with proper typing. Use when working with smart contract ABIs, converting JSON to TypeScript, generating typed contract interfaces, or adding new contract ABIs to the SDK.