← blog/ai-in-our-development-routinePT
    // blog/ai-in-our-development-routine.md

    How AI Became Part of Our Development Routine

    Not about faster code. It's memory that doesn't forget, audits before touching anything, and a clear limit on what AI doesn't decide alone.

    2026-08-16·6 min·AI·POSTEP Digital

    granular memory · audit before touching · production protocol · hardening ≠ business decision

    // 00

    It's not about generating code faster

    We already wrote about using AI to build a SaaS from scratch. This post is different: it's about the normal day — ten client projects open at once, each with its own stack and business rules, and the real question isn't “how fast can AI write a function,” it's “how do I not mix client A's context with client B's.”

    The gain that matters isn't typing speed. It's routine: memory that survives between sessions, the discipline of auditing before touching anything, and separating what's a technical improvement from what's a business decision. That's what changes when you run AI in production, every day, across many projects — not a demo.

    // 01

    Memory that survives the session

    Every work session ends the same way: what got decided, why, and any new gotcha becomes a file — one fact per file, not a giant log nobody rereads. Next time someone touches that system, the lesson is already loaded before the first question.

    // one fact per file, always with the why
    ---
    name: kommo-bodyless-204
    description: lookup with no match returns 204, not 404
    ---
    **Why:** r.ok is true on 204 — parsing the
    empty body throws unhandled, becomes silent fail
    **How to apply:** check status === 204 before .json()

    That specific memory is why a bug two clients each fixed half of became visible as a pattern instead of staying two disconnected incidents. Without the record, the second fix would've been just another bug fix — not the discovery that a pattern was missing.

    Rule: wrong memory is worse than no memory. Every fact has a date and context, and gets revised — not stacked forever.

    // 02

    Audit before you touch anything

    Documentation describes what should be running. Only the real code, what's actually deployed, tells you what is running. Before any change to a client's production system, the rule is to read the real file first — even when a doc exists claiming what “should” be there.

    That's how we found, just last week, a silent-failure bug that had already been fixed in two different clients — but was still untouched in a third one, four months later, because nobody had compared its real code against the pattern that already existed elsewhere. The doc said one thing. The deploy said another.

    Rule: “the doc says it works this way” isn't evidence. Evidence is reading the file that's actually deployed, or running the query against the real database.

    // 03

    Plan first, handbrake on in production

    A risk-free change can ship directly. A production change follows a fixed protocol: understand the real state, propose a written plan, migrations always additive, deploy only through the official channel — never a shortcut — and live validation afterward, never just trusting the tool's “success” message.

    // checklist that never skips a step in production
    1. real state read the DB/code, not the doc
    2. written plan before any edit
    3. migration always additive, never destructive
    4. deploy official channel only
    5. live validation never trust “success” alone

    For a decision that genuinely carries weight — touching data that feeds an active campaign's optimization, say — it's worth switching engines: ask the strongest model available for that specific decision, instead of letting the same day-to-day flow decide it in passing.

    Rule: the bigger the blast radius of a change, the slower and more checked the path to it — never the other way around.

    // 04

    What AI doesn't decide on its own

    Every technical improvement runs through a filter before shipping: does it only change reliability, or does it also change what the system decides or reports? If a field belongs to another system, or a specific number routes to a specific team, that's the client's rule — it doesn't get unified because it “would be cleaner.”

    When a technical change runs into a business decision — changing when a conversion event fires, for example — it becomes two steps: the part that only makes the system more reliable ships now; the part that changes what gets reported gets documented, measured, and only ships with explicit approval.

    Rule: hardening is never an excuse to unilaterally decide something that changes business behavior. If the line is gray, it becomes a question — not an assumption.

    // 05

    Summary: routine, not magic

    memory

    every lesson becomes 1 file with date, why, and how to apply — so the same bug never gets fixed from scratch twice.

    audit

    read the real deployed code, not the docs. Docs describe intent; the deploy is what actually runs.

    protocol

    written plan, additive migration, deploy through the right channel only, live validation — always, no shortcuts in production.

    limit

    technical improvement never decides business rules on its own. A gray line becomes an explicit question, not a silent assumption.

    // the main rule

    AI in a development routine isn't about writing code faster. It's about running the same rigor every day, on every project, without getting tired — memory that doesn't forget, audits that don't trust for free, and discipline that separates reliability from decisions.

    written by
    POSTEP Digital
    ← see all posts