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.

16 stars

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

$curl -o ~/.claude/skills/97-dev/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/97-dev/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/97-dev/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How 97-dev Compares

Feature / Agent97-devStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

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

10
from diegosouzapw/awesome-omni-skill

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.

Coding & Development

absinthe-subscriptions

16
from diegosouzapw/awesome-omni-skill

Use when implementing real-time GraphQL subscriptions with Absinthe. Covers Phoenix channels, PubSub, and subscription patterns.

absinthe-resolvers

16
from diegosouzapw/awesome-omni-skill

Use when implementing GraphQL resolvers with Absinthe. Covers resolver patterns, dataloader integration, batching, and error handling.

abramov-state-composition

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Implement REST APIs in ABP Framework with AppServices, DTOs, pagination, filtering, and authorization. Use when building API endpoints for ABP applications.

ably-realtime

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

ABLIC (formerly Seiko Instruments) MPN encoding patterns, suffix decoding, and handler guidance. Use when working with ABLIC power management and memory ICs.

abi-codegen

16
from diegosouzapw/awesome-omni-skill

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.