<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gnzikoune</title>
    <description>The latest articles on DEV Community by Gnzikoune (@gnzikoune).</description>
    <link>https://dev.to/gnzikoune</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F959945%2F0b191120-27b5-410d-9263-86e54ac56d4f.png</url>
      <title>DEV Community: Gnzikoune</title>
      <link>https://dev.to/gnzikoune</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gnzikoune"/>
    <language>en</language>
    <item>
      <title>Repository governance isn't the final layer. It's the first one.</title>
      <dc:creator>Gnzikoune</dc:creator>
      <pubDate>Thu, 23 Jul 2026 00:37:14 +0000</pubDate>
      <link>https://dev.to/gnzikoune/repository-governance-isnt-the-final-layer-its-the-first-one-30om</link>
      <guid>https://dev.to/gnzikoune/repository-governance-isnt-the-final-layer-its-the-first-one-30om</guid>
      <description>&lt;p&gt;In recent weeks, something interesting has happened.&lt;/p&gt;

&lt;p&gt;I wrote an article explaining why prompts aren't enough.&lt;/p&gt;

&lt;p&gt;Then I addressed the issue of repository governance.&lt;/p&gt;

&lt;p&gt;The ensuing discussions expanded on this idea.&lt;/p&gt;

&lt;p&gt;I realized that GEF solved a significant problem…&lt;/p&gt;

&lt;p&gt;…but only part of it.&lt;/p&gt;

&lt;p&gt;When I started developing Guardian Engineering Framework, my goal was simple:&lt;/p&gt;

&lt;p&gt;To embed engineering practices directly into the repository, taking them out of the prompts.&lt;/p&gt;

&lt;p&gt;Instead of telling the AI:&lt;/p&gt;

&lt;p&gt;write tests&lt;br&gt;
follow the GitHub feed&lt;br&gt;
document the architecture&lt;/p&gt;

&lt;p&gt;the repository would already contain these requirements.&lt;/p&gt;

&lt;p&gt;This still seems like the right direction to me.&lt;/p&gt;

&lt;p&gt;But repository governance isn't the whole story.&lt;/p&gt;

&lt;p&gt;Imagine an AI agent that could modify:&lt;/p&gt;

&lt;p&gt;CI workflows&lt;br&gt;
Branch protection&lt;br&gt;
Code ownership&lt;br&gt;
Repository rules&lt;br&gt;
Deployment policies&lt;/p&gt;

&lt;p&gt;At this point, governance becomes self-modifying.&lt;/p&gt;

&lt;p&gt;The repository no longer dictates engineering practices.&lt;/p&gt;

&lt;p&gt;The agent defines what engineering means.&lt;/p&gt;

&lt;p&gt;That's a whole different issue.&lt;/p&gt;

&lt;p&gt;This discussion led me to consider technical governance as a multi-layered system of trust.&lt;/p&gt;

&lt;p&gt;AI Agent&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Repository Governance&lt;br&gt;
CI&lt;br&gt;
Hooks&lt;br&gt;
ADR&lt;br&gt;
Documentation&lt;br&gt;
AI Rules&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Platform Governance&lt;br&gt;
Branch Protection&lt;br&gt;
Rule Sets&lt;br&gt;
Required Reviews&lt;br&gt;
Secrets&lt;/p&gt;

&lt;p&gt;↓&lt;/p&gt;

&lt;p&gt;Identity Governance&lt;br&gt;
Permissions&lt;br&gt;
OIDC&lt;br&gt;
IAM&lt;br&gt;
Administrator Rights&lt;br&gt;
Auditing&lt;/p&gt;

&lt;p&gt;Each layer protects the layer below it.&lt;/p&gt;

&lt;p&gt;More importantly…&lt;/p&gt;

&lt;p&gt;Each layer must be harder to modify than the one it protects.&lt;/p&gt;

&lt;p&gt;Otherwise, the boundary of trust disappears.&lt;/p&gt;

&lt;p&gt;This has also changed my view of GEF.&lt;/p&gt;

&lt;p&gt;Today, GEF focuses on repository governance.&lt;/p&gt;

&lt;p&gt;This is a deliberate choice.&lt;/p&gt;

&lt;p&gt;It allows each project to benefit from a solid technical foundation from the very first commit.&lt;/p&gt;

&lt;p&gt;But I no longer see repository governance as an end in itself.&lt;/p&gt;

&lt;p&gt;I see it as the foundation.&lt;/p&gt;

&lt;p&gt;The interesting questions that now arise are:&lt;/p&gt;

&lt;p&gt;How do we continuously verify technical policies?&lt;/p&gt;

&lt;p&gt;How do we measure governance drift? How do we audit policy changes?&lt;/p&gt;

&lt;p&gt;How do we ensure that AI cannot, without its knowledge, circumvent its own constraints?&lt;/p&gt;

&lt;p&gt;These questions are probably more important than rapid engineering.&lt;/p&gt;

&lt;p&gt;They are also far more complex.&lt;/p&gt;

&lt;p&gt;I don't believe that the future of AI-assisted software engineering lies solely in smarter agents.&lt;/p&gt;

&lt;p&gt;I believe more in multi-level governance.&lt;/p&gt;

&lt;p&gt;Because excellence in engineering has never been based on blindly trusting developers.&lt;/p&gt;

&lt;p&gt;Perhaps AI should follow the same path.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The future of AI coding isn't better prompts. It's better engineering constraints.</title>
      <dc:creator>Gnzikoune</dc:creator>
      <pubDate>Wed, 22 Jul 2026 03:35:55 +0000</pubDate>
      <link>https://dev.to/gnzikoune/the-future-of-ai-coding-isnt-better-prompts-its-better-engineering-constraints-54ff</link>
      <guid>https://dev.to/gnzikoune/the-future-of-ai-coding-isnt-better-prompts-its-better-engineering-constraints-54ff</guid>
      <description>&lt;p&gt;Over the past few months, I've noticed that most discussions around AI coding assistants focus on prompts.&lt;/p&gt;

&lt;p&gt;People share:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.cursorrules&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;long prompt templates&lt;/li&gt;
&lt;li&gt;custom instructions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The assumption is always the same:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If I explain my engineering practices clearly enough, the AI will follow them."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For simple projects, that works.&lt;/p&gt;

&lt;p&gt;For real software projects, it eventually breaks down.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem isn't intelligence.
&lt;/h2&gt;

&lt;p&gt;It's governance.&lt;/p&gt;

&lt;p&gt;Every AI coding assistant eventually produces something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;giant functions&lt;/li&gt;
&lt;li&gt;skipped tests&lt;/li&gt;
&lt;li&gt;undocumented architectural decisions&lt;/li&gt;
&lt;li&gt;ignored security practices&lt;/li&gt;
&lt;li&gt;direct commits&lt;/li&gt;
&lt;li&gt;inconsistent commit messages&lt;/li&gt;
&lt;li&gt;missing pull request descriptions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not because the model suddenly became "worse".&lt;/p&gt;

&lt;p&gt;Because nothing prevents it from taking shortcuts.&lt;/p&gt;

&lt;p&gt;Exactly like humans.&lt;/p&gt;




&lt;h2&gt;
  
  
  We already solved this problem... for humans.
&lt;/h2&gt;

&lt;p&gt;Professional software engineering has never relied on trust.&lt;/p&gt;

&lt;p&gt;Instead, we built systems that enforce discipline.&lt;/p&gt;

&lt;p&gt;We don't &lt;em&gt;ask&lt;/em&gt; developers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;write tests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We fail CI.&lt;/p&gt;

&lt;p&gt;We don't &lt;em&gt;ask&lt;/em&gt; them to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use meaningful commit messages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We reject the commit.&lt;/p&gt;

&lt;p&gt;We don't &lt;em&gt;ask&lt;/em&gt; them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;not to push directly to production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Protected branches make it impossible.&lt;/p&gt;

&lt;p&gt;Engineering isn't based on trust.&lt;/p&gt;

&lt;p&gt;It's based on constraints.&lt;/p&gt;




&lt;h2&gt;
  
  
  Yet with AI...
&lt;/h2&gt;

&lt;p&gt;...we went backwards.&lt;/p&gt;

&lt;p&gt;Instead of constraints, we write instructions.&lt;/p&gt;

&lt;p&gt;We create increasingly sophisticated prompt files hoping the assistant will remember them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Always write tests.

Always document architectural decisions.

Use GitHub Flow.

Follow OWASP.

Keep functions below 40 lines.

Never commit directly to main.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those aren't guarantees.&lt;/p&gt;

&lt;p&gt;They're suggestions.&lt;/p&gt;

&lt;p&gt;And suggestions are eventually ignored.&lt;/p&gt;




&lt;h2&gt;
  
  
  Rules are not enforcement.
&lt;/h2&gt;

&lt;p&gt;Recently I came across an article making a simple observation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Rules without enforcement are just hopes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That sentence stayed with me.&lt;/p&gt;

&lt;p&gt;It perfectly describes the current state of AI-assisted development.&lt;/p&gt;

&lt;p&gt;An AI may fully understand your engineering rules.&lt;/p&gt;

&lt;p&gt;It may even agree with them.&lt;/p&gt;

&lt;p&gt;But unless something checks compliance, nothing prevents shortcuts.&lt;/p&gt;

&lt;p&gt;The same principle applies to human developers.&lt;/p&gt;

&lt;p&gt;Why should AI be different?&lt;/p&gt;




&lt;h2&gt;
  
  
  The repository should enforce engineering.
&lt;/h2&gt;

&lt;p&gt;That realization completely changed how I think about AI development.&lt;/p&gt;

&lt;p&gt;Instead of teaching every assistant how my projects work...&lt;/p&gt;

&lt;p&gt;...what if the project itself became responsible for enforcing engineering practices?&lt;/p&gt;

&lt;p&gt;Not through prompts.&lt;/p&gt;

&lt;p&gt;Through mechanisms.&lt;/p&gt;

&lt;p&gt;Imagine starting a project where, from the very first commit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git Hooks reject invalid commits.&lt;/li&gt;
&lt;li&gt;CI blocks pull requests with insufficient test coverage.&lt;/li&gt;
&lt;li&gt;Security defaults are already configured.&lt;/li&gt;
&lt;li&gt;Branch protection is expected.&lt;/li&gt;
&lt;li&gt;ADR templates already exist.&lt;/li&gt;
&lt;li&gt;Documentation structure is predefined.&lt;/li&gt;
&lt;li&gt;AI assistants receive project-specific guidance automatically.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The assistant isn't simply &lt;em&gt;asked&lt;/em&gt; to follow best practices.&lt;/p&gt;

&lt;p&gt;The repository continuously pushes it toward them.&lt;/p&gt;




&lt;h2&gt;
  
  
  This is why I built GEF.
&lt;/h2&gt;

&lt;p&gt;Guardian Engineering Framework (GEF) started as a project generator.&lt;/p&gt;

&lt;p&gt;But over time I realized that's not what it really is.&lt;/p&gt;

&lt;p&gt;It's a governance layer for AI-assisted software development.&lt;/p&gt;

&lt;p&gt;Its purpose isn't to generate code.&lt;/p&gt;

&lt;p&gt;Its purpose is to generate constraints.&lt;/p&gt;

&lt;p&gt;From the first commit, a project already contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;engineering standards&lt;/li&gt;
&lt;li&gt;Git workflow&lt;/li&gt;
&lt;li&gt;AI rules&lt;/li&gt;
&lt;li&gt;documentation templates&lt;/li&gt;
&lt;li&gt;ADR structure&lt;/li&gt;
&lt;li&gt;Git Hooks&lt;/li&gt;
&lt;li&gt;CI pipelines&lt;/li&gt;
&lt;li&gt;security defaults&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repository becomes opinionated before a single feature is written.&lt;/p&gt;




&lt;h2&gt;
  
  
  Prompts are Level 1.
&lt;/h2&gt;

&lt;p&gt;Repository governance is Level 2.&lt;/p&gt;

&lt;p&gt;Most AI tooling today focuses on prompts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Prompt Engineering
↓
Explain the rules
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GEF moves one step further.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repository Governance
↓
Enforce the rules
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I believe the next evolution will go even further.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent Governance

↓

Policy Engines

↓

Runtime Verification

↓

Continuous Compliance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of asking AI systems to behave correctly...&lt;/p&gt;

&lt;p&gt;...we'll build systems where incorrect behavior simply cannot progress through the engineering workflow.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;The future isn't autonomous AI.&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
It's governed AI.&lt;/p&gt;

&lt;p&gt;The goal isn't replacing engineers.&lt;/p&gt;

&lt;p&gt;The goal isn't removing code reviews.&lt;/p&gt;

&lt;p&gt;The goal isn't trusting AI more.&lt;/p&gt;

&lt;p&gt;The goal is building engineering systems that require less trust in everyone involved—humans and AI alike.&lt;/p&gt;

&lt;p&gt;Because great engineering has never been about trusting developers.&lt;/p&gt;

&lt;p&gt;It's always been about designing systems that make good practices the easiest path—and bad practices the hardest.&lt;/p&gt;

&lt;p&gt;AI shouldn't be an exception.&lt;/p&gt;

&lt;p&gt;If AI-assisted development becomes the new normal, perhaps the real competitive advantage won't be better prompts.&lt;/p&gt;

&lt;p&gt;It will be better engineering governance.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Why your AI code always ends up producing "technical debt" (and how GEF solves the problem)</title>
      <dc:creator>Gnzikoune</dc:creator>
      <pubDate>Wed, 22 Jul 2026 00:01:08 +0000</pubDate>
      <link>https://dev.to/gnzikoune/why-your-ai-code-always-ends-up-producing-technical-debt-and-how-gef-solves-the-problem-13fi</link>
      <guid>https://dev.to/gnzikoune/why-your-ai-code-always-ends-up-producing-technical-debt-and-how-gef-solves-the-problem-13fi</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Introduction: The Paradox of the Amnesiac Assistant
It's an experience we've all had: you start a new project with a cutting-edge AI like Cursor, Windsurf, or Copilot. The first few hours are magical. The architecture is clean, the commits are conventional, and the tests pass. You feel like a conductor, increasing your productivity tenfold.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then, things start to go wrong. Caught up in the flow of development, the AI ​​begins to "forget" the basic rules. It suddenly produces 200-line functions, ignores unit tests to go faster, or pushes its changes directly to the main branch without review. You end up spending more time reminding it of Clean Code principles than actually coding. This is the flip side of "Vibe Coding": an initial acceleration that comes at the cost of exponential technical debt. The Guardian Engineering Framework (GEF) was designed to break this cycle of amnesia. This isn't just a style guide; it's a "mechanical" solution that transforms your engineering standards into insurmountable barriers for AI (and for you).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Impact Point #1: The End of "Readable" Rules, Hello Mechanical Enforcement
In most teams, standards lie dormant in a dusty wiki. The core philosophy of GEF is radical:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"ENGINEERING_PLAYBOOK.md is the source of absolute truth. It defines the universal rules... engineering rules should not be reread—they should be mechanically enforced."&lt;br&gt;
GEF transforms passive documentation into an active technical barrier. Whether you're developing a FastAPI backend, a Next.js frontend, or a mobile application, the framework is completely agnostic. Its strength lies in its scaffolding system: it doesn't just copy files, it dynamically injects your metrics (like {{MAX_LINES}}) directly into the IDE's configuration files (.cursorrules, .windsurfrules). The Playbook thus becomes the true operating system of your project, ensuring that the AI ​​"breathes" your rules without you ever having to repeat them.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Impact Point #2: "Hard Limits" and the Wisdom of the Boy Scout&lt;br&gt;
AI isn't capable of intuitively self-moderating. Therefore, the GEF imposes strict technical limits injected into your linters (Biome, ESLint, Ruff). Depending on the criticality, the framework adjusts the parameters:&lt;br&gt;
Startup/R&amp;amp;D Level: Speed ​​is prioritized. Functions of 50 lines max, 4 parameters, cyclomatic complexity of 15.&lt;br&gt;
Standard/Enterprise Level: The happy medium. Functions of 30 lines, 3 parameters, complexity of 10.&lt;br&gt;
Mission Critical level: Absolute rigor. Functions limited to 15 lines, 2 parameters max, complexity capped at 5.&lt;br&gt;
Beyond these figures, GEF imposes senior architectural hygiene. We apply the Boy Scout Rule: we clean up surrounding code during a fix without proactively refactoring the entire database. We also follow the Rule of Three: we tolerate duplication twice, but on the third instance, abstraction becomes a mandatory requirement.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Impact point #3: AI becomes your Tech Lead, not just your "code-pusher." GEF reverses the power dynamic by transforming AI into an autonomous Tech Lead governed by the principles of Clean Architecture and SOLID. The framework mandates a workflow where AI no longer simply "churns out" code; it drives the process:&lt;br&gt;
Kanban Governance: The AI ​​must identify or create a ticket via the CLI (gh issue create) before taking any action.&lt;br&gt;
Architecture First: For any structural change, it is required to write an Architecture Decision Report (ADR) in docs/explanation/adr/ following the Diátaxis standard.&lt;br&gt;
Separation of Concerns: It is instructed to isolate the "business" from the "infrastructure," ensuring that the domain never depends on technical implementations.&lt;br&gt;
Business Intent: Each Pull Request must be prepared with a clear intent and submitted for human validation before any merge.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Impact Point #4: The "Crash Clause" or Forced Honesty&lt;br&gt;
The greatest danger of an AI is its propensity for "toxic" hallucinations when it's stuck. To counter this, the GEF integrates a "Crash Clause" into its prompt system:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"When faced with a wall (unsolvable error, ambiguous instruction)... the AI ​​must fail loudly (Fail Fast) and stop to ask for help... rather than improvising a toxic solution."&lt;br&gt;
This Fail Fast approach protects the integrity of the project. By stopping as soon as the ambiguity exceeds a certain threshold, the AI ​​avoids polluting the codebase with flawed solutions that will take you days to debug.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Impact Point #5: "Secure-by-Design" Security and Git Guardians&lt;br&gt;
To achieve DORA Elite status, the GEF deploys automated security barriers inspired by OWASP:&lt;br&gt;
Mechanical Security: The framework locks critical parameters. For example, the lifetime of an Access Token (JWT) is limited to 15 minutes, and Rate Limiting is enforced by default (100 requests/min). AI can no longer take dangerous shortcuts in authentication.&lt;br&gt;
Git Hooks (pre-commit &amp;amp; pre-push): These physically block any direct commit to main. They enforce Conventional Commits including the issue ID (#XYZ) and detect secrets in plain text before they leave your machine.&lt;br&gt;
CI of Intent: The continuous integration pipeline systematically rejects PRs with less than 80% test coverage or lacking a clear business logic.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conclusion: Towards "Governed" Engineering&lt;br&gt;
The Guardian Engineering Framework is not simply a productivity tool; it is a manifesto for rigorous engineering in the age of artificial intelligence. By transforming design and safety principles into automated mechanisms, it protects us from the silent pitfalls of complacency.&lt;br&gt;
In the age of "Vibe Coding," are we ready to let mechanical tools protect our rigor from our own laziness—and that of our assistants? The answer lies in the first commit of your next GEF project.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>ai</category>
      <category>coding</category>
      <category>programming</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>I got tired of repeating engineering rules to AI on every project. So I built GEF.</title>
      <dc:creator>Gnzikoune</dc:creator>
      <pubDate>Tue, 21 Jul 2026 02:23:41 +0000</pubDate>
      <link>https://dev.to/gnzikoune/i-got-tired-of-repeating-engineering-rules-to-ai-on-every-project-so-i-built-gef-4b6d</link>
      <guid>https://dev.to/gnzikoune/i-got-tired-of-repeating-engineering-rules-to-ai-on-every-project-so-i-built-gef-4b6d</guid>
      <description>&lt;p&gt;For several months, I noticed the same problem with Cursor, Windsurf, and other AI assistants.&lt;/p&gt;

&lt;p&gt;They're excellent…&lt;/p&gt;

&lt;p&gt;but they quickly forget project rules.&lt;/p&gt;

&lt;p&gt;At first:&lt;/p&gt;

&lt;p&gt;clean architecture&lt;br&gt;
conventional commits&lt;br&gt;
documentation&lt;br&gt;
tests&lt;/p&gt;

&lt;p&gt;Then, after a few hours of development:&lt;/p&gt;

&lt;p&gt;200-line functions&lt;br&gt;
direct push to main&lt;br&gt;
no ADR&lt;br&gt;
forgotten documentation&lt;br&gt;
ignored OWASP rules&lt;/p&gt;

&lt;p&gt;End up, you end up repeating the same instructions:&lt;/p&gt;

&lt;p&gt;"Use GitHub Flow"&lt;/p&gt;

&lt;p&gt;"Don't forget the tests"&lt;/p&gt;

&lt;p&gt;"Respect the complexity limits"&lt;/p&gt;

&lt;p&gt;"Document this decision"&lt;/p&gt;

&lt;p&gt;Again.&lt;/p&gt;

&lt;p&gt;And again.&lt;/p&gt;

&lt;p&gt;And again.&lt;/p&gt;

&lt;p&gt;So I decided to reverse the problem.&lt;/p&gt;

&lt;p&gt;Instead of reminding the AI ​​of the rules…&lt;/p&gt;

&lt;p&gt;...why not integrate them directly into the project?&lt;/p&gt;

&lt;p&gt;This is exactly what Guardian Engineering Framework (GEF) does.&lt;/p&gt;

&lt;p&gt;The idea&lt;/p&gt;

&lt;p&gt;GEF is a project generator.&lt;/p&gt;

&lt;p&gt;But unlike a simple scaffold, it also installs:&lt;/p&gt;

&lt;p&gt;Engineering Playbook&lt;br&gt;
AI prompts&lt;br&gt;
Git Hooks&lt;br&gt;
CI/CD&lt;br&gt;
Cursor/Windsurf rules&lt;br&gt;
ADR&lt;br&gt;
Diátaxis documentation&lt;/p&gt;

&lt;p&gt;right from project creation.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-gef&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A few minutes later, the project already has technical governance.&lt;/p&gt;

&lt;p&gt;What is generated&lt;/p&gt;

&lt;p&gt;GEF automatically configures:&lt;/p&gt;

&lt;p&gt;GitHub Flow&lt;br&gt;
Conventional Commits&lt;br&gt;
Pull Request template&lt;br&gt;
CI GitHub Actions&lt;br&gt;
Docker&lt;br&gt;
documentation&lt;br&gt;
ADR&lt;br&gt;
lint&lt;br&gt;
security&lt;br&gt;
AI prompts&lt;/p&gt;

&lt;p&gt;The goal is for the project to enforce best practices, even when multiple developers or multiple AIs are involved.&lt;/p&gt;

&lt;p&gt;An AI that acts as a Tech Lead&lt;/p&gt;

&lt;p&gt;This is the point I find most interesting.&lt;/p&gt;

&lt;p&gt;The framework pushes the AI ​​to:&lt;/p&gt;

&lt;p&gt;create ADRs&lt;br&gt;
open Pull Requests&lt;br&gt;
respect issues&lt;br&gt;
run tests&lt;br&gt;
follow a reproducible workflow&lt;/p&gt;

&lt;p&gt;The AI ​​is no longer just a code generator.&lt;/p&gt;

&lt;p&gt;It follows a process.&lt;/p&gt;

&lt;p&gt;Why it's open source&lt;/p&gt;

&lt;p&gt;I wanted something usable with:&lt;/p&gt;

&lt;p&gt;Cursor&lt;br&gt;
Windsurf&lt;br&gt;
GitHub Copilot&lt;br&gt;
Claude Code&lt;/p&gt;

&lt;p&gt;without depending on a specific IDE.&lt;/p&gt;

&lt;p&gt;All the rules reside within the project.&lt;/p&gt;

&lt;p&gt;Repository&lt;/p&gt;

&lt;p&gt;GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Gnzikoune/GEF" rel="noopener noreferrer"&gt;https://github.com/Gnzikoune/GEF&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NPM:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/create-gef" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/create-gef&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Feedback is welcome.&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Need help!</title>
      <dc:creator>Gnzikoune</dc:creator>
      <pubDate>Wed, 25 Oct 2023 14:07:36 +0000</pubDate>
      <link>https://dev.to/gnzikoune/need-help-2ddp</link>
      <guid>https://dev.to/gnzikoune/need-help-2ddp</guid>
      <description>&lt;p&gt;Hello there, I have a problem with cypress. Currently I am testing an application that we are developing, it is called Business Plan. I'm carrying out tests on the financial part of our application and I'm having difficulty. My test must be carried out on the forecast financing budget at start-up. I have several fields in terms of needs such as: Total Business Creation Formalities, Total Computer Equipment, Total Furniture to name just a few. These fields must then be filled in with the amount that each requirement costs. In addition I would like to retrieve the values that the users will enter and check that the sum of these is equal to the total amount of requirements. How do I go about it since I've been running out for two days already?&lt;/p&gt;

</description>
      <category>cypress</category>
    </item>
  </channel>
</rss>
