# Maximiliano Contieri - Software Design

I am Maximiliano Contieri I've been working as a software engineer and teaching for about 25 years. I write about software design, refactoring, test driven development, clean code and code smells.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## AI Coding Tip 036 - Grant AI the Least Privilege Possible

DevFeed: [AI Coding Tip 036 - Grant AI the Least Privilege Possible](<https://devfeed.tech/articles/ai-coding-tip-036-grant-ai-the-least-privilege-possible-18226.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-036-grant-ai-the-least-privilege-possible>)

Author: Maxi Contieri

Published: 2026-09-12T15:51:59Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [API](<https://devfeed.tech/topics/api.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [api](<https://devfeed.tech/tags/api.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [least-privilege](<https://devfeed.tech/tags/least-privilege.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

This developer tip explains why AI agents should receive only the access required for their tasks. It describes how overly broad API permissions, shared credentials, compromised context, and external models connected through MCP can turn routine automation into unauthorized actions.

### Source excerpt

Deny by default, or watch your API become someone else's playground. TL;DR: Give every AI agent only the access its task needs, and watch for the intrusion nobody granted. Common Mistake ❌ You wire

## AI Coding Tip 035 - Write Skill Descriptions in Three Sentences

DevFeed: [AI Coding Tip 035 - Write Skill Descriptions in Three Sentences](<https://devfeed.tech/articles/ai-coding-tip-035-write-skill-descriptions-in-three-sentences-18225.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-035-write-skill-descriptions-in-three-sentences>)

Author: Maxi Contieri

Published: 2026-09-06T01:34:09Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [context](<https://devfeed.tech/tags/context.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [skills](<https://devfeed.tech/tags/skills.md>)

### AI overview

This tutorial recommends writing each skill description in three sentences: when to read it, the situation that triggers it, and what the skill does. It argues that concise, trigger-focused descriptions improve routing, reduce incorrect skill selection, lower context costs, and simplify maintenance.

### Source excerpt

TL;DR: Split every skill description into three sentences: when to read it, when to use it, and what it does. Common Mistake ❌ You write a skill description as one long paragraph. It explains everyth

## AI Coding Tip 034 - Stop Hoarding Rules in Your AGENTS.md

DevFeed: [AI Coding Tip 034 - Stop Hoarding Rules in Your AGENTS.md](<https://devfeed.tech/articles/ai-coding-tip-034-stop-hoarding-rules-in-your-agents-md-18224.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-034-stop-hoarding-rules-in-your-agents-md>)

Author: Maxi Contieri

Published: 2026-08-28T18:10:58Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [coding](<https://devfeed.tech/tags/coding.md>), [context](<https://devfeed.tech/tags/context.md>), [developer](<https://devfeed.tech/tags/developer.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [skills](<https://devfeed.tech/tags/skills.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The article advises developers to regularly audit AGENTS.md files and skills, remove rules that no longer matter, and test whether instructions still improve agent performance. It highlights context bloat, stale skills, dead MCP servers, plugins, and hooks as ongoing maintenance costs.

### Source excerpt

TL;DR: Audit your AGENTS.md and skills on a schedule, or you keep paying context rent on rules the model has outgrown. Common Mistake ❌ Every time the AI does something wrong, you add a rule to stop

## How to prevent AI coding tools from hiding test failures

DevFeed: [How to prevent AI coding tools from hiding test failures](<https://devfeed.tech/articles/ai-coding-tip-033-protect-yourself-against-ai-cheating-18223.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-033-protect-yourself-against-ai-cheating>)

Author: Maxi Contieri

Published: 2026-08-23T19:31:15Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [coding](<https://devfeed.tech/tags/coding.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains how AI coding tools can appear to fix defects by deleting failing tests, reverting business-rule changes, or commenting out assertions. It recommends writing the failing test first, specifying expected behavior precisely, forbidding deletions and skips, and reviewing the diff.

### Source excerpt

TL;DR: Write the failing test first and ban deletions, or the AI deletes your test, reverts your fix, and calls it done. Common Mistake ❌ You ask the AI to fix a failing test, and it deletes the test

## Code Smell 321 - Getter Piggybacking

DevFeed: [Code Smell 321 - Getter Piggybacking](<https://devfeed.tech/articles/code-smell-321-getter-piggybacking-18228.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/code-smell-321-getter-piggybacking>)

Author: Maxi Contieri

Published: 2026-08-20T02:51:49Z

Content type: article

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [business-logic](<https://devfeed.tech/tags/business-logic.md>), [class](<https://devfeed.tech/tags/class.md>), [code](<https://devfeed.tech/tags/code.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>)

### AI overview

This article explains a code smell in which an existing getter is reused to implement business logic outside the object that owns the value. It describes the resulting duplicated rules, broken encapsulation, scattered comparisons, and fragile refactoring, and recommends adding behavior methods, keeping comparisons inside the object, passing collaborators instead of primitives, and using getters mainly for rendering.

### Source excerpt

TL;DR: Don't reuse an existing getter to bolt on new business logic from outside the object. Problems 😔 Duplicated business rules Broken encapsulation Scattered comparison logic Hidden domain kn

## AI Coding Tip 032 - Build a Dark Factory Pipeline

DevFeed: [AI Coding Tip 032 - Build a Dark Factory Pipeline](<https://devfeed.tech/articles/ai-coding-tip-032-build-a-dark-factory-pipeline-18222.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-032-build-a-dark-factory-pipeline>)

Author: Maxi Contieri

Published: 2026-08-16T14:54:12Z

Content type: opinion

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [audit](<https://devfeed.tech/tags/audit.md>), [production](<https://devfeed.tech/tags/production.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [quality-control](<https://devfeed.tech/tags/quality-control.md>), [review](<https://devfeed.tech/tags/review.md>)

### AI overview

This article recommends an automated pull-request pipeline in which one model builds from a specification, a separate model from another vendor or family adversarially verifies the result, and flagged changes are fixed before human review. A defined sample of merged pull requests is randomly audited by humans, with overrides logged as correction signals and merges blocked when either gate is skipped.

### Source excerpt

TL;DR: Run your pipeline like a dark factory: automated, sampled, and policed by an adversarial model. Common Mistake ❌ You let one model write a pull request, then hand the same model (or a suspicio

## AI Coding Tip 031 - Stop Over-Prompting Reasoning Models

DevFeed: [AI Coding Tip 031 - Stop Over-Prompting Reasoning Models](<https://devfeed.tech/articles/ai-coding-tip-031-stop-over-prompting-reasoning-models-18221.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-031-stop-over-prompting-reasoning-models>)

Author: Maxi Contieri

Published: 2026-08-08T23:16:29Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [Prompt Engineering](<https://devfeed.tech/topics/prompt-engineering.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [anthropic](<https://devfeed.tech/topics/anthropic.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [anthropic](<https://devfeed.tech/tags/anthropic.md>), [models](<https://devfeed.tech/tags/models.md>), [prompting](<https://devfeed.tech/tags/prompting.md>), [reasoning](<https://devfeed.tech/tags/reasoning.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

This article argues that modern reasoning models generally verify and pace themselves, so developers should remove redundant prompts such as "think step by step," "double-check your work," and blanket ALWAYS/NEVER rules. It recommends configuring explicit effort, scope, length, and autonomy settings, while using decision criteria instead of unnecessary absolute instructions.

### Source excerpt

TL;DR: Reasoning models already verify and pace themselves, so drop those prompts and set real effort, scope, length, autonomy. Common Mistake ❌ You still write prompts for a model that evolved and s

## AI Coding Tip 030 - Script Your Skills, Not Your Prompts

DevFeed: [AI Coding Tip 030 - Script Your Skills, Not Your Prompts](<https://devfeed.tech/articles/ai-coding-tip-030-script-your-skills-not-your-prompts-18220.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-030-script-your-skills-not-your-prompts>)

Author: Maxi Contieri

Published: 2026-07-31T22:54:55Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Script](<https://devfeed.tech/topics/script.md>), [coding](<https://devfeed.tech/topics/coding.md>), [API](<https://devfeed.tech/topics/api.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [coding](<https://devfeed.tech/tags/coding.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [script](<https://devfeed.tech/tags/script.md>), [test](<https://devfeed.tech/tags/test.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

The article recommends turning repeatable AI skill steps into tested scripts instead of relying on repeated free-form prompts. It explains that scripts improve determinism, reduce token use, keep credentials in configuration files, support retries and timeouts for API calls, and make failures easier to diagnose. The model should handle judgment calls such as selecting which script to run.

### Source excerpt

TL;DR: Turn repeatable skill steps into tested scripts instead of prompts, so behavior stays deterministic and cheap. Common Mistake ❌ You ask the AI to repeat the same multi-step task through free-f

## AI Coding Tip 029 - Stop Using One Model for Everything

DevFeed: [AI Coding Tip 029 - Stop Using One Model for Everything](<https://devfeed.tech/articles/ai-coding-tip-029-stop-using-one-model-for-everything-18219.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-029-stop-using-one-model-for-everything>)

Author: Maxi Contieri

Published: 2026-07-26T15:08:02Z

Content type: opinion

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [coding](<https://devfeed.tech/topics/coding.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>)

Tags: [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [coding](<https://devfeed.tech/tags/coding.md>), [cost](<https://devfeed.tech/tags/cost.md>), [review](<https://devfeed.tech/tags/review.md>), [scope](<https://devfeed.tech/tags/scope.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article argues that AI coding pipelines should assign different models to planning, coding, reviewing, and testing. It recommends using fresh context, automated test harnesses, independent reviewers, model rotation, and separate models for TDD stages to reduce shared blind spots, vendor dependence, and missed edge cases.

### Source excerpt

TL;DR: Assign a different model to each pipeline stage since none excels at planning, coding, reviewing, and testing alike. Common Mistake ❌ You open one chat with your favorite model and ask it to p

## AI Coding Tip 028 - Build a Company Brain

DevFeed: [AI Coding Tip 028 - Build a Company Brain](<https://devfeed.tech/articles/ai-coding-tip-028-build-a-company-brain-18218.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-028-build-a-company-brain>)

Author: Maxi Contieri

Published: 2026-07-19T03:03:15Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Access Control](<https://devfeed.tech/topics/access-control.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [documentation](<https://devfeed.tech/tags/documentation.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [permission](<https://devfeed.tech/tags/permission.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This tutorial proposes connecting a company's fragmented knowledge systems to AI through MCP servers and a defined skill. It emphasizes source citations, freshness checks, explicit tool boundaries, and preserving requester-specific access control.

### Source excerpt

TL;DR: Wire a skill into your company's live systems so every answer carries a source and a freshness check. Common Mistake ❌ As a single contributor, you can build a personal Second Brain, and it wo

## AI Coding Tip 027 - Force Code Standards

DevFeed: [AI Coding Tip 027 - Force Code Standards](<https://devfeed.tech/articles/ai-coding-tip-027-force-code-standards-18217.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-027-force-code-standards>)

Author: Maxi Contieri

Published: 2026-07-10T14:24:14Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Language models](<https://devfeed.tech/topics/language-models.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [harness](<https://devfeed.tech/tags/harness.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [large-language-model](<https://devfeed.tech/tags/large-language-model.md>), [linter](<https://devfeed.tech/tags/linter.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [reviews](<https://devfeed.tech/tags/reviews.md>), [skills](<https://devfeed.tech/tags/skills.md>), [trust](<https://devfeed.tech/tags/trust.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A tutorial on enforcing coding standards in AI-assisted development. It recommends converting prose standards into machine-checkable rules, running them through hooks and validator skills, and using an LLM judge for ambiguous semantic violations before code reaches human review.

### Source excerpt

TL;DR: Wire your standards into hooks, skills, and a judge, so the harness blocks violations before a human opens the diff. Common Mistake ❌ You paste your coding standards into AGENTS.md and trust t

## AI Coding Tip 026 - Assign a Persona to Every Skill Definition

DevFeed: [AI Coding Tip 026 - Assign a Persona to Every Skill Definition](<https://devfeed.tech/articles/ai-coding-tip-026-assign-a-persona-to-every-skill-definition-18216.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-026-assign-a-persona-to-every-skill-definition>)

Author: Maxi Contieri

Published: 2026-07-04T20:36:14Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [prompt](<https://devfeed.tech/tags/prompt.md>), [skills](<https://devfeed.tech/tags/skills.md>)

### AI overview

This article recommends assigning an explicit persona or role at the beginning of every skill definition. It explains that a declared role can make AI outputs more consistent, auditable, appropriately calibrated, and safer to chain across skills.

### Source excerpt

Know who speaks before the skill runs TL;DR: Always define a clear role at the top of every skill file so you know whose perspective drives the execution. Common Mistake ❌ You write a skill full of

## Loop Engineering: Designing Evaluated AI-Agent Workflows

DevFeed: [Loop Engineering: Designing Evaluated AI-Agent Workflows](<https://devfeed.tech/articles/the-dirty-secret-behind-loop-engineering-18229.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/the-dirty-secret-behind-loop-engineering>)

Author: Maxi Contieri

Published: 2026-06-26T20:20:37Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Loop Engineering](<https://devfeed.tech/topics/loop-engineering.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Agent Harness](<https://devfeed.tech/topics/agent-harness.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [agent-harness](<https://devfeed.tech/tags/agent-harness.md>), [ai](<https://devfeed.tech/tags/ai.md>), [build](<https://devfeed.tech/tags/build.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This tutorial explains Loop Engineering as a workflow in which a system prompts an AI agent, rather than a person prompting it manually. It identifies four required parts--goal, context, evaluation, and agent--and emphasizes that evaluation provides exit criteria while a harness supplies operational boundaries. It also advocates starting with a narrowly scoped, testable specification and iterating from a failing evaluation.

### Source excerpt

Everyone is talking about Loop Engineering. Apparently, you don't need to program anymore. TL;DR: Loop Engineering is the hottest AI workflow pattern of 2026. But it hides a dirty secret. The Tweet

## Code Smell 320 - Vanity Coverage

DevFeed: [Code Smell 320 - Vanity Coverage](<https://devfeed.tech/articles/code-smell-320-vanity-coverage-18227.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/code-smell-320-vanity-coverage>)

Author: Maxi Contieri

Published: 2026-06-23T23:32:02Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [mutation-testing](<https://devfeed.tech/topics/mutation-testing.md>), [Test coverage](<https://devfeed.tech/topics/coverage.md>)

Tags: [coverage](<https://devfeed.tech/tags/coverage.md>), [mutation-testing](<https://devfeed.tech/tags/mutation-testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

The article describes vanity coverage: tests that execute code without verifying meaningful behavior, which can create false confidence and allow defects to reach production. It recommends behavior-focused assertions and mutation testing to identify ineffective tests.

### Source excerpt

TL;DR: You write tests that touch every line but verify nothing, creating false confidence in a broken system. Problems 😔 False confidence Hidden production defects Misleading metrics Wasted tes

## AI Coding Tip 025 - Pair Every Skill With a Pitfalls File

DevFeed: [AI Coding Tip 025 - Pair Every Skill With a Pitfalls File](<https://devfeed.tech/articles/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file-18215.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-025-pair-every-skill-with-a-pitfalls-file>)

Author: Maxi Contieri

Published: 2026-06-20T00:51:51Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [coding](<https://devfeed.tech/tags/coding.md>), [memory](<https://devfeed.tech/tags/memory.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [modular](<https://devfeed.tech/tags/modular.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [skills](<https://devfeed.tech/tags/skills.md>)

### AI overview

This tutorial recommends placing an append-only PITFALLS.md file beside each SKILL.md to record an AI's recurring mistakes, their triggers, and the correct behavior. The goal is to preserve corrections across sessions while keeping skill documentation focused on the normal workflow.

### Source excerpt

TL;DR: Add a PITFALLS.md next to every SKILL.md so your AI never repeats the same mistake twice. Common Mistake ❌ You write a great SKILL.md. The AI follows it well most of the time. Then it does som

## AI Coding Tip 024 - Force a Criteria Check Before the Task Ends

DevFeed: [AI Coding Tip 024 - Force a Criteria Check Before the Task Ends](<https://devfeed.tech/articles/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends-18214.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends>)

Author: Maxi Contieri

Published: 2026-06-12T23:28:07Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [trust](<https://devfeed.tech/tags/trust.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The article recommends spawning a fresh, read-only subagent after each coding task to verify mandatory rules independently. It proposes checking modified files line by line, requiring explicit PASS or FAIL evidence, and blocking completion until violations are fixed.

### Source excerpt

TL;DR: Spawn a fresh subagent after every task to check your rules, because the AI that did the work can't audit itself. Common Mistake ❌ You write a detailed AGENTS.md with strict mandatory rules. T

## AI Coding Tip 023 - Shrink your AI's Pull Request

DevFeed: [AI Coding Tip 023 - Shrink your AI's Pull Request](<https://devfeed.tech/articles/ai-coding-tip-023-shrink-your-ai-s-pull-request-18213.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-023-shrink-your-ai-s-pull-request>)

Author: Maxi Contieri

Published: 2026-06-06T16:06:11Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Code review](<https://devfeed.tech/topics/code-review.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [pull-request](<https://devfeed.tech/tags/pull-request.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This developer tip recommends instructing AI coding agents to split feature work into small, reviewable pull requests, with each pull request limited in size and focused on one logical change. The approach is intended to improve reviewability, CI feedback, rollback, and merge-conflict management.

### Source excerpt

TL;DR: Tell your AI to split work into small reviewable pull requests before it writes any code. Common Mistake ❌ You ask your AI agent to build a feature. The agent opens a 2,000-line pull request t

## AI Coding Tip 022 - Give AI a Harness to Work With

DevFeed: [AI Coding Tip 022 - Give AI a Harness to Work With](<https://devfeed.tech/articles/ai-coding-tip-022-give-ai-a-harness-to-work-with-18212.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-022-give-ai-a-harness-to-work-with>)

Author: Maxi Contieri

Published: 2026-05-31T22:21:20Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [coding](<https://devfeed.tech/tags/coding.md>), [guards](<https://devfeed.tech/tags/guards.md>), [harness](<https://devfeed.tech/tags/harness.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains how to give AI coding tools a structured harness before prompting. It recommends project rules, clean commit checkpoints, explicit test requirements, read-only planning, scoped instruction files, documented AI context, and protected tests to make changes safer, more consistent, and easier to review or revert.

### Source excerpt

TL;DR: Install your harness before prompting: the structure you set up first is what turns an impulsive AI into a safe, steerable collaborator. Common Mistake ❌ You open a fresh chat and type a bare

## AI Coding Tip 021 - Avoid Comprehension Debt

DevFeed: [AI Coding Tip 021 - Avoid Comprehension Debt](<https://devfeed.tech/articles/ai-coding-tip-021-avoid-comprehension-debt-18211.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-021-avoid-comprehension-debt>)

Author: Maxi Contieri

Published: 2026-05-23T15:24:29Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [audit](<https://devfeed.tech/tags/audit.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [debug](<https://devfeed.tech/tags/debug.md>), [implement](<https://devfeed.tech/tags/implement.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [production](<https://devfeed.tech/tags/production.md>), [quality](<https://devfeed.tech/tags/quality.md>), [team](<https://devfeed.tech/tags/team.md>), [technical](<https://devfeed.tech/tags/technical.md>), [tests](<https://devfeed.tech/tags/tests.md>), [velocity](<https://devfeed.tech/tags/velocity.md>)

### AI overview

This tutorial explains how merging AI-generated code without understanding it creates comprehension debt: a growing gap between the codebase and what the team can genuinely explain and maintain. It recommends requiring explanations, documenting AI-made architectural decisions, testing understanding without the AI chat, and adding comprehension checks to pull requests.

### Source excerpt

TL;DR: Merging code you don't understand creates comprehension debt that compounds until your team can no longer maintain it. Common Mistake ❌ You ask the AI to implement a feature. The code looks cl

## AI Coding Tip 020 - Create a Second Brain

DevFeed: [AI Coding Tip 020 - Create a Second Brain](<https://devfeed.tech/articles/ai-coding-tip-020-create-a-second-brain-18210.md>)

Original publisher: [Read original article](<https://maximilianocontieri.com/ai-coding-tip-020-create-a-second-brain>)

Author: Maxi Contieri

Published: 2026-05-17T14:10:52Z

Content type: tutorial

Language: en

Sources: [Maximiliano Contieri - Software Design](<https://devfeed.tech/sources/maximiliano-contieri-software-design.md>)

Topics: [Obsidian](<https://devfeed.tech/topics/obsidian-md.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [context](<https://devfeed.tech/tags/context.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [memory](<https://devfeed.tech/tags/memory.md>), [notes](<https://devfeed.tech/tags/notes.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

This tutorial explains how to use Obsidian or similar local Markdown tools, YAML metadata, structured notes, and dynamic queries to build a persistent project knowledge base. It describes giving AI tools access to relevant notes and code so they can use prior decisions, debugging information, and project context across sessions.

### Source excerpt

TL;DR: Use Obsidian with Markdown notes, YAML metadata, and direct AI file access to build a Second Brain with LLMs that gives your tools persistent project context. Common Mistake ❌ You paste a snip