Write code like a human will maintain it

Comments, naming, and readability

  • Many prefer minimal comments and clear naming over heavy commenting.
  • Redundant “explain what the code does” comments are seen as noise and likely to rot; comments should explain “why”, not “what” or “how the framework works”.
  • Some advocate a literate-programming-like workflow (write prose/intent first, then code), but acknowledge this often devolves into restating the code.
  • Consensus: good names, simple structure, and occasional “here be dragons / rationale” comments are ideal.

LLM-generated comments and style

  • Strong frustration with LLMs producing verbose, low-value comments, historical notes, and implementation-process chatter.
  • Models often describe language basics, surrounding code quirks, or caller behavior, breaking encapsulation and quickly going stale.
  • Attempts to constrain this via CLAUDE.md / AGENTS.md rules help somewhat but are inconsistently followed; negative instructions (“don’t do X”) are especially flaky.

Productivity vs maintainability with AI

  • Some claim 10x feature/bugfix throughput by shipping whatever passes tests and letting AI “deal with the mess later”.
  • Others warn this slop compounds: duplicated logic, diverging business rules, and nested defensive layers make future AI and human work slower and riskier.
  • There’s debate whether short-term speed will be offset by long-term complexity, especially in large codebases.

Prompts, checklists, and review workflows

  • Many use project-level CLAUDE.md / AGENTS.md plus explicit “/review” commands with long checklists (DRY, style, duplication, dead code, tests, docs).
  • Some split review into multiple specialized passes (security, accessibility, performance, simplification) and even multi-model adversarial review.
  • Others report diminishing returns as instruction lists grow; models still ignore basic rules (e.g., git usage), requiring system-level guardrails.

Traditional tooling and guardrails

  • Static analyzers, linters, code-formatters, duplication detectors, and pre-commit/CI checks are widely recommended as non-stochastic baselines.
  • Some write custom linters or compiler-level checks to enforce things LLMs routinely violate (no magic numbers, no dynamic imports, doc/test requirements).

Roles of humans vs AI

  • Several developers now use LLMs mainly for exploration, refactoring, and review, but still hand-write core code.
  • Others embrace AI-heavy workflows, accepting that humans may no longer hold a full mental model of the system and instead rely on strong harnesses and tooling.
  • Underneath, many emphasize: maintainable structure, DRYness, and clear abstractions still matter—for both humans and agents consuming the code later.