🤖 LLMs for Serious Software Engineering
IDEO-Lab guide for comparing paid professional AI models and coding agents on large, complex software projects: Python, Django, C++, Java, JavaScript, SQL, DevOps, CI/CD, refactoring, debugging, testing and production risk.
Repository agent, refactor and review.
Architecture, debugging and documentation.
Daily coding cockpit and diffs.
Tests, review, rollback, release gate.
Executive ranking
A pragmatic ranking of paid LLMs and coding agents for huge, complex software projects.
RankingProLarge codebaseEvaluation framework
How to judge AI coding tools beyond toy examples: context, tests, refactor safety, discipline and cost.
CriteriaRiskROIGPT-5.5 / ChatGPT Pro
Best used as architect, debugger, patch planner, documentation engine and multi-step reasoning partner.
ReasoningPatchesDocsClaude Opus / Claude Code
A strong repository-level agent for sustained coding, careful review, refactor and long-context work.
RepoReviewRefactorCursor and IDE agents
The IDE layer matters: selection, diff, apply, test, revert and iterate inside the developer cockpit.
IDEComposerDiffsGemini and Antigravity
Fast, multimodal and increasingly agentic, especially attractive for Google-centric teams and high-volume workflows.
SpeedGoogleAgentsCopilot and enterprise assistants
Excellent embedded productivity layer, especially for GitHub teams, but not enough alone for deep architecture.
GitHubPRIDEOpen and sovereign models
DeepSeek, Qwen, Kimi, Mistral and local options: cost, control and sovereignty versus frontier autonomy.
LocalCostSovereigntyLanguage-by-language ranking
Python, Django, C++, Java, JavaScript, SQL and DevOps: the best model depends on the task shape.
PythonC++JSBenchmarks and reality
SWE-Bench, CursorBench, Terminal-Bench and why production engineering is still harder than leaderboards.
BenchmarksRealityLimitsLarge project workflow
A professional workflow for huge codebases: map, plan, patch, test, review, document, then ship.
WorkflowTestsCI/CDAI engineering discipline
Use AI like a senior team: architect, coder, reviewer, tester and release gate, not magic.
GovernanceSafetyTeamThe real question changed
In professional software engineering, the question is no longer simply: which model writes the best code? That question is too small. The real question is: which AI system helps a team understand, modify, test, review and ship complex systems with less risk?
A model that writes a beautiful function can still be dangerous if it forgets architecture, ignores tests, edits the wrong layer, invents APIs, or misunderstands database impact. Large development is not a code-generation contest. It is a risk-reduction discipline.
My practical top tier
- GPT-5.5 Thinking / ChatGPT Pro: strongest as architect, debugger, patch planner, documentation engine and reasoning partner.
- Claude Opus 4.7 / Claude Code: strongest as repository-level agent, reviewer, long-context refactor partner and consistency checker.
- Cursor with top models or Composer: strongest as the practical IDE cockpit where edits, diffs, tests and iterations happen.
| Rank | Tool / model | Best role |
|---|---|---|
| 1A | Claude Opus 4.7 / Claude Code | Repository agent, long refactor, code review, sustained execution |
| 1B | GPT-5.5 Thinking / ChatGPT Pro | Architecture, reasoning, debugging, patch roadmaps, documentation |
| 3 | Cursor / Composer / IDE agent layer | Practical coding cockpit, fast iteration, multi-file edits |
| 4 | Gemini 3.5 Flash / Antigravity | Speed, multimodal workflows, Google ecosystem, high-volume agents |
| 5 | GitHub Copilot Pro+ / Enterprise | Inline productivity, PR help, team adoption in GitHub workflows |
| 6 | Open or sovereign models | Cost control, local deployment, batch automation, privacy-driven workflows |
A professional AI coding stack is not one magic model. It is a small engineering team: 1. Architect model 2. Repository agent 3. IDE editor 4. Test runner 5. Reviewer 6. Release gate
LLMs are moving targets
Rankings change quickly because models, context windows, coding agents, IDE integrations, pricing and usage policies evolve constantly. A leaderboard is useful, but it is not enough for production decisions.
The ranking changes with the workflow
- A chat model may be excellent for architecture but weak at applying diffs.
- An IDE agent may be excellent for implementation but weak for deep design.
- A repository agent may be excellent at refactoring but too expensive for routine tasks.
- A fast model may be perfect for drafts but unsafe as final reviewer.
| Layer | Question | Examples |
|---|---|---|
| Model | How strong is the raw reasoning and coding capability? | GPT-5.5, Claude Opus, Gemini, Qwen |
| Agent | Can it navigate files, tools, tests and long tasks? | Claude Code, Codex-style agents, Antigravity |
| Workspace | Can developers apply, inspect and revert changes safely? | Cursor, GitHub, IDE plugins, CI |
The strongest professional setup
For huge projects, I would not choose only one model. I would combine GPT-5.5 for architecture and reasoning with Claude Opus for repository-level review and sustained code work. Then I would use Cursor or another IDE agent to apply and inspect changes.
This pairing works because models have different instincts. One can propose the plan. The other can challenge it. One can write the patch. The other can review the diff.
Two-model review loop: 1. Ask Model A for architecture and patch plan. 2. Ask Model B to criticize the plan. 3. Apply only the corrected plan. 4. Run tests. 5. Ask Model B to review the diff. 6. Ask Model A to write release notes and rollback notes. 7. Human approves final merge.
| Benefit | Why it matters |
|---|---|
| Reduced hallucination | Two independent models catch different mistakes |
| Better architecture | One model proposes, the other challenges |
| Safer patches | The final diff is reviewed before merge |
| Better documentation | Rationale and rollback are generated while context is fresh |
| Company need | Best choice | Reason |
|---|---|---|
| Very large Python/Django backend | GPT-5.5 + Claude Code | Architecture plus repository safety |
| Massive TypeScript frontend | Cursor + Claude/GPT | Fast IDE iteration and UI refactor support |
| Enterprise Java legacy | Claude Opus + GPT review | Long-context code reading and architecture reasoning |
| C++ systems work | GPT-5.5 plus strict tests | Deep reasoning, invariants and compiler feedback |
| GitHub-first company | Copilot Enterprise plus GPT/Claude | Adoption and PR workflow |
| Cost-sensitive automation | Open model plus frontier reviewer | Batch cost control with expert review |
| Google ecosystem | Gemini + Antigravity | Integration, speed and multimodal workflows |
Do not evaluate with toy problems
A useful coding model must be evaluated on work that resembles production: unclear requirements, existing code, conflicting constraints, tests, migration risks, performance constraints and incomplete documentation.
The real question is not can it code?. Most serious models can code. The real question is: can it modify a fragile system without making it worse?
Core criteria
- Context discipline: does it remember constraints?
- Architecture awareness: does it respect layers?
- Patch precision: does it change only what must change?
- Debugging method: does it use logs and evidence?
- Rollback thinking: does it plan reversibility?
| Criterion | Weight | Strong signal |
|---|---|---|
| Context retention | 15% | Keeps constraints over long sessions |
| Repository navigation | 15% | Finds the right files without random edits |
| Patch correctness | 20% | Compiles and passes tests |
| Minimality | 10% | Avoids unnecessary refactors |
| Debugging | 15% | Uses logs and errors methodically |
| Architecture | 15% | Preserves design and naming conventions |
| Communication | 10% | Produces clear summaries and runbooks |
Practical scoring rule: A model that writes 90% correct code but hides risk is worse than a model that writes 80% correct code and clearly exposes assumptions, missing tests and dangerous side effects.
Small projects lie
Small projects make models look better than they really are. Huge projects reveal whether a model can reason across distance, history and constraints.
Scale dimensions
- Number of files and modules.
- Number of languages and runtimes.
- Database coupling and migration complexity.
- Test suite size and execution time.
- Deployment and rollback constraints.
- Legacy code and undocumented behavior.
| Scale | AI risk | Required guardrail |
|---|---|---|
| Single file | Syntax and local logic | Unit test |
| Small module | Imports and edge cases | Module tests |
| Application feature | Cross-file side effects | Integration tests |
| Framework change | Architecture drift | Design review |
| Database migration | Data loss or downtime | DDL preview and rollback plan |
| Production platform | Systemic failure | Release gate and staged rollout |
Dangerous AI behavior
- Invents files, APIs or configuration keys.
- Changes unrelated code to make a patch look complete.
- Deletes safeguards because they complicate the solution.
- Ignores database migration risks.
- Does not explain what must be tested.
- Confuses a quick fix with a durable design.
- Claims certainty without evidence.
Good signs
- States assumptions explicitly.
- Searches relevant files.
- Produces complete function-level patches when requested.
- Preserves naming and project style.
- Separates diagnosis, patch and validation.
- Proposes tests and rollback steps.
- Warns when a change can affect production data.
Before paying for a pro AI coding subscription, test it on your own work: 1. Give it a real bug from your repository. 2. Give it a multi-file refactor with constraints. 3. Give it a failed test log and ask for diagnosis. 4. Ask it to produce a rollback plan. 5. Ask another model to review its diff. 6. Measure how often humans must correct it. 7. Measure whether it reduces review time. 8. Measure whether it increases risky changes. 9. Test context retention after long conversation. 10. Test whether it respects your coding standards. 11. Test database and migration safety. 12. Test documentation quality. 13. Test cost per useful merged change. 14. Test performance under rate limits. 15. Keep the tool only if it improves shipped quality, not only typing speed.
Where GPT-5.5 is strongest
GPT-5.5 is especially valuable when the work requires reasoning across architecture, implementation, operations and documentation. It is not only a code generator; it is a technical thinking partner.
Strong use cases
- Architecture decisions and trade-off analysis.
- Complex debugging from logs, traces and symptoms.
- Django, Python services, migrations and DevOps workflows.
- Generating complete function-level patches.
- Writing guides, runbooks, release notes and checklists.
- Designing CI/CD gates and operational controls.
Use GPT-5.5 as: Architect -> structure the solution Debugger -> reason from symptoms Patch planner -> define safe steps Teacher -> explain the design Release writer -> document validation and rollback Reviewer -> challenge assumptions Do not use it as: Blind code printer Unreviewed database migrator Untested production operator
| Strength | Why it matters on huge projects | Practical example |
|---|---|---|
| Structured reasoning | Breaks difficult work into phases | Doctor -> analyze -> patch -> test -> report |
| Debugging clarity | Connects logs, code paths and runtime behavior | Explains why a migration passes locally but fails in prod |
| Documentation quality | Keeps technical and business views aligned | Creates DBA/DevOps quick-start guides |
| Function-level patches | Reduces copy/paste confusion | Returns complete function definitions |
| Architecture synthesis | Turns loose ideas into services and interfaces | Moves cron logic into service modules |
| Risk language | Identifies data-loss, rollback and performance hazards | Warns before DDL or long-running migrations |
Good prompt structure: Context: - Project purpose - Current files - Current failure - Constraints Goal: - Desired behavior - Non-goals Patch rules: - Do not refactor unrelated code - Provide complete function definitions - Keep code English-only - Add validation steps Output: 1. Diagnosis 2. Patch plan 3. File-by-file changes 4. Complete functions 5. Tests 6. Rollback notes
Bad: Fix this code. Better: This Django management command is slow in --migrate-status mode. Analyze the uploaded service and command file. Find the hot path. Propose one optimization patch that keeps behavior stable. Return complete function definitions only for modified functions. Add a short test checklist.
Where GPT can still fail
- It may over-architect if the request is broad.
- It may propose a clean design too large for the current patch.
- It may need strong constraints to avoid multi-step confusion.
- It can miss repository conventions if files are incomplete.
- It can produce plausible code if tests are unavailable.
Guardrails
- Provide exact files and current error output.
- Ask for minimal patches.
- Ask for complete functions, not vague insertions.
- Run tests after every patch.
- Use Claude or another model for review.
- Keep a project memory or architecture document.
Where Claude is strongest
Claude Opus and Claude Code are particularly strong when the task requires careful reading of a large codebase, sustained execution and consistency across many files.
Strong use cases
- Large repository navigation.
- Multi-file refactor with style preservation.
- Careful code review and bug discovery.
- Long-context understanding.
- Detecting contradictions and incomplete implementations.
- Maintaining discipline over long sessions.
Use Claude as: Repository scout -> find relevant files Senior reviewer -> challenge the patch Refactor agent -> modify related files coherently Consistency cop -> detect mismatch across layers Bug hunter -> look for edge cases Avoid: Blindly accepting a large agentic diff Skipping tests after broad edits Letting one long session accumulate too much stale context
| Strength | Production value | Example |
|---|---|---|
| Long-context work | Can follow complex system structure | Reads service, command, registry and tests together |
| Review behavior | Flags design and bug risks | Challenges hidden assumptions in a patch |
| Refactor consistency | Keeps naming and logic aligned | Updates related call sites |
| Instruction discipline | Often follows constraints carefully | Does not modify forbidden areas |
| Agentic execution | Can proceed through multi-step tasks | Search, edit, test, fix loop |
Recommended Claude Code task: Goal: Optimize --migrate-status execution time. Scope: Only migration_status_service.py and migrate_safe_v2.py. Rules: Do not change public CLI behavior. Do not add database indexes. Do not rename existing models. Preserve output format. Run existing tests. Report changed functions and risk. Deliverable: Small diff + test result + explanation.
Review workflow: 1. Generate patch with GPT or human. 2. Give diff to Claude. 3. Ask for failure modes. 4. Ask for missing tests. 5. Ask for simpler alternative. 6. Apply only verified improvements. 7. Run tests again. 8. Record final decision.
Risks
- Agentic sessions can become expensive on very long contexts.
- Large diffs can be hard to review if the scope is too broad.
- It may still make assumptions about runtime behavior.
- It needs explicit limits around database, security and production operations.
Guardrails
- Use small bounded tasks.
- Require a diff summary.
- Require tests and failure notes.
- Ask it to preserve public APIs.
- Use separate review sessions for important patches.
- Do not let it rewrite architecture casually.
The workspace changes everything
A model in a chat window can explain code. A model inside an IDE can inspect files, propose diffs, apply changes, compare edits and keep the developer close to the source.
Cursor is strong because it turns the model into a practical development loop: select context, generate change, inspect diff, run tests, revise, commit.
Best uses
- Frontend and TypeScript iteration.
- Multi-file implementation with visible diffs.
- Routine refactors with quick review.
- Explaining unfamiliar files inside the editor.
- Combining top frontier models with IDE ergonomics.
IDE agent loop: 1. Select relevant files. 2. State exact goal. 3. Ask for minimal diff. 4. Review generated changes. 5. Run tests or type checker. 6. Feed failures back to agent. 7. Re-review final diff. 8. Commit with clear message.
| Strength | Why it matters | Example |
|---|---|---|
| Diff visibility | Humans can review changes before accepting | See exactly which files changed |
| Model choice | Use Claude, GPT or Composer depending on task | Switch from speed to deep reasoning |
| Local context | Agent can work near actual code | Ask about current file and references |
| Fast iteration | Good for UI and implementation loops | Build, preview, patch |
| Cost flexibility | Composer-style models can reduce routine task cost | Use expensive models only for hard work |
| Task | Recommended model inside IDE | Reason |
|---|---|---|
| Careful refactor | Claude Opus / high effort | Consistency and review |
| Complex architecture patch | GPT-5.5 high reasoning | Planning and debugging |
| Routine implementation | Composer or faster model | Cost and speed |
| Frontend UI iteration | Cursor model + GPT/Claude review | Rapid visual loops |
| Bug hunt | Claude or GPT with test logs | Reasoning plus code navigation |
IDE-agent risks
- Easy to accept a diff too quickly.
- Agent may change neighboring files unnecessarily.
- Large diffs can hide subtle regressions.
- Generated UI can look good while data flow is wrong.
- Fast iteration can bypass architecture thinking.
Rules
- Keep one goal per edit session.
- Reject broad diffs unless explicitly intended.
- Run type checks, tests and lint.
- Ask for explanation of each changed file.
- Review database and security changes manually.
- Commit small batches.
Where Gemini fits
Gemini is attractive for teams that value speed, multimodal capabilities, Google ecosystem integration and high-volume workflows. It is increasingly relevant for coding agents and app-building workflows.
Good use cases
- Fast prototyping and large-volume tasks.
- Multimodal analysis involving screenshots, UI states or documents.
- Google Cloud and Android-centric workflows.
- Agentic experiments where speed matters.
- High-throughput code assistance with cost sensitivity.
Gemini is a serious competitor when work rewards: - speed - multimodal context - Google ecosystem proximity - lower latency agent loops - high-volume generation For fragile backend architecture, database migrations or production-critical refactors, many teams still prefer GPT or Claude as the final reasoning/review layer.
| Strength | Engineering value | Example |
|---|---|---|
| Speed | Faster loops can improve agent usability | Prototype, inspect, revise |
| Multimodal | Can reason from UI/screenshots/docs | Debug a visual workflow |
| Google integration | Useful for Google Cloud and Android teams | AI Studio, Gemini API, Antigravity |
| Agentic roadmap | Increasing focus on prompt-to-action systems | Managed agents and app-building workflows |
| Cost/performance potential | Can be attractive for large-volume work | Batch review or draft generation |
Gemini workflow: 1. Use it for fast exploration. 2. Use it for UI and multimodal analysis. 3. Use it for Google-specific development. 4. Ask GPT or Claude to review risky architecture. 5. Run tests and validate output. 6. Keep critical DB/security changes gated.
Where to be cautious
- Schema migrations.
- Security-sensitive logic.
- Long-running backend refactors.
- Complex legacy code with hidden dependencies.
- Tasks requiring exact project memory.
Copilot is the default AI layer for many teams
GitHub Copilot is useful because it sits where developers already work: editor, repository, pull request and GitHub workflows. Its adoption path is often easier than introducing a separate AI process.
Best uses
- Autocomplete and routine implementation.
- Boilerplate and common patterns.
- Small refactors and tests.
- Pull request explanations.
- Enterprise rollout with centralized controls.
Where it is not enough
- Deep architecture decisions.
- Complex database migration strategy.
- Huge multi-repository reasoning.
- Severe independent code review.
- Long-form technical documentation.
| Value | Why teams like it | Guardrail |
|---|---|---|
| Low friction | Works inside familiar GitHub/IDE flow | Train developers on review discipline |
| PR support | Helps summarize and explain changes | Do not replace human review |
| Policy controls | Useful for organizations | Align with security/legal rules |
| Autocomplete | Reduces repetitive typing | Watch for subtle logic errors |
| Team standardization | One assistant across many developers | Keep specialized models for hard cases |
Recommended enterprise stack: Everyday coding: - GitHub Copilot in IDE Hard architecture: - GPT-5.5 Thinking Repository refactor/review: - Claude Code or Cursor with Claude Final release: - CI/CD gates - security scan - human approval - rollback note This keeps Copilot as the productivity layer without forcing it to solve every hard problem.
Open models have a different value proposition
Open and semi-open models are not always the strongest frontier coders, but they can be extremely useful when cost, privacy, offline execution or sovereignty matter.
Typical candidates
- DeepSeek coder-style models.
- Qwen coder families.
- Kimi long-context models.
- Mistral and other European options.
- Local inference through Ollama, vLLM or private platforms.
Best use cases
- Batch code summarization.
- Static analysis pre-pass.
- Generating tests for low-risk modules.
- Local documentation search.
- Private code assistance where data cannot leave.
- Cost-controlled automation before frontier review.
| Dimension | Open/local advantage | Frontier-model advantage |
|---|---|---|
| Cost | Can be much cheaper at scale | Better result per hard task |
| Privacy | Can run inside private infrastructure | Provider controls may still be acceptable |
| Latency | Local can be fast if hardware is available | Cloud frontier often more capable |
| Autonomy | Varies widely | Claude/GPT usually stronger |
| Maintenance | You own deployment and tuning | Provider handles upgrades |
| Quality | Good for routine tasks | Better for ambiguous high-stakes tasks |
Cost-efficient hybrid pattern: 1. Local/open model scans repository. 2. Local model builds summaries and dependency maps. 3. Frontier model receives compressed high-value context. 4. Frontier model designs or reviews critical patch. 5. Local model helps generate routine tests/docs. 6. CI validates everything. 7. Human approves high-risk changes. This reduces token cost while keeping frontier reasoning where it matters most.
Python and Django
Python/Django development rewards architectural reasoning, migration awareness, ORM behavior, tests, services, management commands and database safety.
Recommended order
- GPT-5.5 Thinking: architecture, debugging, service extraction, documentation.
- Claude Opus / Claude Code: repository navigation, review, multi-file refactor.
- Cursor with GPT/Claude: practical implementation inside IDE.
- Copilot: routine implementation and autocomplete.
Django-specific checklist: 1. Model definitions 2. Migration files 3. SQL/DDL impact 4. Management command arguments 5. Service boundaries 6. Query performance 7. Index risk 8. Admin integration 9. Tests and fixtures 10. Rollback behavior
C++ and systems work
C++ punishes hallucination. The model must reason about ownership, lifetimes, memory, build systems, ABI compatibility, compiler errors, undefined behavior and performance.
Recommended order
- GPT-5.5: deep reasoning, invariants, debugging complex failures.
- Claude Opus: careful review and broad codebase understanding.
- Cursor: practical editing and compilation loop.
- Specialized/local models: useful for search, boilerplate and comments.
Minimum validation: - build - unit tests - sanitizer run - benchmark if performance-sensitive - code review for lifetime and thread safety
Java and enterprise systems
Java projects are often large, layered and convention-heavy. Success depends on respecting architecture: domain, services, repositories, transactions, security, tests and deployment patterns.
Recommended order
- Claude Opus: strong on large repository navigation and consistency.
- GPT-5.5: strong on architecture, debugging and explanation.
- Copilot Enterprise: useful for organization-wide adoption.
- Cursor: useful if the team accepts an AI-first IDE workflow.
Java checklist
- Transaction boundaries.
- Spring configuration.
- Dependency injection style.
- DTO/entity separation.
- Security annotations.
- Backward compatibility.
- Integration tests.
JavaScript and TypeScript
Frontend work benefits enormously from IDE agents because the loop is visual, iterative and multi-file. The main risk is producing attractive UI with incorrect data flow.
Recommended order
- Cursor with Claude/GPT/Composer: best practical frontend cockpit.
- GPT-5.5: design systems, architecture and debugging.
- Claude Opus: refactor and review.
- Gemini: fast UI/multimodal prototyping.
- Copilot: inline speed.
Frontend validation: 1. TypeScript compile 2. Lint 3. Component state flow 4. Error states 5. Loading states 6. Accessibility 7. Responsive behavior 8. API contract 9. Security and escaping 10. Visual regression if available
| Area | Best model pattern | Reason |
|---|---|---|
| SQL optimization | GPT for reasoning + Claude review | Execution plans require explanation and skepticism |
| Django migrations | GPT-5.5 primary + strict tests | Architecture and data-loss risk |
| CI/CD gates | GPT for design + human DevOps review | Operational constraints matter |
| Infrastructure scripts | Claude/GPT plus shellcheck/tests | Small syntax errors can be destructive |
| Database rollback | Human DBA plus AI planning | AI should assist, not autonomously approve |
Benchmarks are useful, not absolute
Benchmarks give signals about model capability, but they do not fully reproduce production engineering. A benchmark task is normally bounded, graded and isolated. Real development is ambiguous, historical, political and operational.
Useful benchmark families
- SWE-Bench: repository issue resolution.
- CursorBench: ambiguous multi-file IDE tasks.
- Terminal-Bench: command-line workflows and tool coordination.
- Language-specific evals: useful for syntax and local reasoning.
- Internal company evals: often most relevant if built from real work.
| Benchmark / source | Signal | Interpretation |
|---|---|---|
| OpenAI GPT-5.5 release data | Strong agentic coding and command-line workflow scores | GPT is positioned as a top coding/reasoning model |
| Anthropic Opus 4.7 release data | Strong software engineering and agentic workflow positioning | Claude is positioned as a premium code agent |
| CursorBench 3.1 | Opus 4.7 Max, GPT-5.5 Extra High and Composer 2.5 are close at the top | IDE-agent tasks are highly competitive |
| SWE-Chain paper | Agents still struggle with chained package upgrades | Maintenance over time remains hard |
| Production reality | Why benchmark may miss it | What to test internally |
|---|---|---|
| Legacy architecture | Benchmarks rarely contain your exact historical design | Old modules and undocumented flows |
| Database state | Code benchmarks ignore production data shape | Migration rehearsal on realistic data |
| Deployment risk | Leaderboards rarely test release windows | Staging deploy and rollback |
| Human review cost | A patch can pass tests but be hard to maintain | Review time and defect rate |
| Security policy | Benchmarks do not know your compliance rules | Secret handling and data policy |
| Long-term maintenance | One issue is not a release chain | Upgrade and regression sequences |
Company-specific evals are the gold standard
The best benchmark is a curated set of tasks from your own history: old bugs, failed migrations, refactors, performance regressions and support incidents.
Internal eval set
- 10 real bugs.
- 5 multi-file refactors.
- 5 failed migrations.
- 5 performance issues.
- 5 security-sensitive changes.
- 5 documentation/runbook tasks.
For each AI output, score: Correctness: 0-5 Minimality: 0-5 Test quality: 0-5 Risk awareness: 0-5 Maintainability: 0-5 Review effort: 0-5 Reject if: - unsafe database change - invented API - missing rollback for risky change - breaks public behavior - cannot be tested
A professional AI development loop
Large project development must be controlled. The AI should not jump directly from vague request to broad patch. The safe loop is: map the system, plan the change, patch narrowly, test, review, document and release.
Safe loop: 1. Map relevant files 2. Diagnose current behavior 3. Define target behavior 4. Identify risk 5. Propose minimal patch 6. Apply complete function-level changes 7. Run tests 8. Review diff with second model 9. Write release notes 10. Ship behind process
| Patch rule | Reason | Example |
|---|---|---|
| One goal per patch | Limits blast radius | Optimize --migrate-status only |
| Complete function replacement | Avoids copy/paste ambiguity | Return full def block |
| No unrelated refactor | Protects review time | Do not rename services |
| Tests before next patch | Stops cascading confusion | Run targeted testbench |
| Document risk | Improves release quality | DDL or lock risk notes |
| Rollback note | Production needs reversibility | How to disable new feature |
| Role | Best tool |
|---|---|
| Architect | GPT-5.5 Thinking |
| Repository scout | Claude Code |
| Implementer | Cursor / Claude / GPT |
| Reviewer | Claude or GPT alternate model |
| Documentation | GPT-5.5 |
| Routine autocomplete | Copilot |
Workflow script: Architect prompt: Design the minimal safe patch. Reviewer prompt: Find what can break. Implementer prompt: Apply only the approved patch. Tester prompt: Explain the failing test output. Release prompt: Write validation and rollback notes.
AI-assisted release gate checklist: 1. Requirements understood 2. Relevant files identified 3. Patch scope approved 4. No forbidden areas changed 5. Unit tests pass 6. Integration tests pass 7. Migration/DDL impact reviewed 8. Performance impact considered 9. Security impact considered 10. Rollback path written 11. Diff reviewed by second model or human 12. Release notes written 13. Monitoring plan ready 14. Owner assigned 15. Final human approval
AI is a force multiplier, not a substitute for discipline
The best developers will not be the ones who accept the most AI code. They will be the ones who ask better questions, provide better context, demand smaller patches, run tests and review output with engineering judgment.
Good mindset
- AI is a junior/senior hybrid: brilliant, fast, but not accountable.
- The human remains responsible for production.
- Tests are not optional.
- Architecture is a constraint, not decoration.
- Database and security changes require extra skepticism.
Bad mindset
- Accepting large diffs because they look impressive.
- Replacing review with confidence.
- Letting the model invent missing context.
- Skipping rollback because the patch looks simple.
- Using one model as judge of its own work.
| Rule | Why | Implementation |
|---|---|---|
| AI-generated code must be reviewed | Output can be plausible but wrong | Normal PR review |
| High-risk changes need rollback notes | Production must be reversible | Release template |
| No secret sharing | Protect credentials and customer data | Redaction policy |
| No direct prod execution by AI | Avoid uncontrolled operations | Human-controlled deployments |
| Second-model review for risky diffs | Reduce blind spots | Claude reviews GPT or GPT reviews Claude |
| Prompt and result archived when useful | Traceability | Attach to ticket or PR |
Useful prompts: Architecture review: Review this design for hidden coupling, operational risk, rollback difficulty and test coverage. Patch critic: Find the most likely regressions in this diff. Be severe and specific. Migration safety: Explain the DDL impact, lock risk, data-loss risk, rollback path and validation plan. Test design: Design tests that would fail if this patch is wrong. Release summary: Write a concise production release note with validation, monitoring and rollback steps.
Prompt anti-patterns: Avoid: - Fix everything. - Improve this code. - Make it better. - Refactor the module. - Optimize performance. Prefer: - Fix this specific failure. - Preserve this public behavior. - Modify only these files. - Return complete functions only. - Explain validation steps.
The mature AI engineering model: Human: - owns intent - provides context - approves risk - decides release AI: - maps code - proposes plans - writes patches - explains risk - generates tests - reviews diffs - documents operations CI/CD: - verifies behavior - enforces gates - records evidence Production: - protected by rollback, monitoring and ownership
