<?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: Abdiel49</title>
    <description>The latest articles on DEV Community by Abdiel49 (@abdiel49).</description>
    <link>https://dev.to/abdiel49</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%2F1119173%2F6ce1f855-6d9c-4e19-8956-95e0fb5b0798.jpeg</url>
      <title>DEV Community: Abdiel49</title>
      <link>https://dev.to/abdiel49</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abdiel49"/>
    <language>en</language>
    <item>
      <title>spec-suite-skill</title>
      <dc:creator>Abdiel49</dc:creator>
      <pubDate>Tue, 18 Aug 2026 04:05:48 +0000</pubDate>
      <link>https://dev.to/abdiel49/spec-suite-skill-4bbk</link>
      <guid>https://dev.to/abdiel49/spec-suite-skill-4bbk</guid>
      <description>&lt;p&gt;Why I Built Spec Suite: Putting an End to Hallucinated AI Documentation&lt;/p&gt;

&lt;p&gt;Let's be honest about the current state of AI-assisted software planning: we've all tried asking a Large Language Model (LLM) or a CLI agent to write a "Technical Requirements Document" or a "Terms of Service" policy. We paste a massive prompt, cross our fingers, and wait.&lt;/p&gt;

&lt;p&gt;The result? Usually, it's a generic wall of text. The AI invents database paradigms you don’t use, ignores your specific user roles, and if you ask for a legal policy, it completely forgets to include the mandatory liability disclaimers. &lt;/p&gt;

&lt;p&gt;I got tired of wrestling with these "hallucinations" and spending more time fixing AI-generated documents than it would take to write them from scratch. That frustration led to the creation of &lt;strong&gt;Spec Suite&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Core Problem: Lack of Contextual Discipline
&lt;/h2&gt;

&lt;p&gt;LLMs are incredibly smart, but they lack discipline. If you ask an autonomous agent to build a Security Threat Model, it will gladly oblige by guessing your architecture. &lt;/p&gt;

&lt;p&gt;To fix this, we don't need &lt;em&gt;better&lt;/em&gt; prompts; we need a &lt;strong&gt;structured prompt ecosystem&lt;/strong&gt;. Agents need to understand that documentation is a dependency graph. You cannot write a Security Plan without first establishing the System Architecture (TRD) and the Database Schema. You cannot write a Data Processing Policy without knowing the jurisdictions you operate in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Spec Suite
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Spec Suite&lt;/strong&gt; is an open-source orchestration skill designed specifically for autonomous AI agents (like Claude Code, Antigravity, Cursor, etc.). Instead of giving the AI loose instructions, Spec Suite teaches your agent to behave like a methodical Senior Software Architect and a rigorous Compliance Expert.&lt;/p&gt;

&lt;p&gt;It achieves this by dividing project documentation into two distinct, interconnected tracks:&lt;/p&gt;

&lt;h3&gt;
  
  
  💻 Track A: The Technical Specs
&lt;/h3&gt;

&lt;p&gt;This track focuses on the engineering blueprints. It guides the AI to produce:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;PRD&lt;/strong&gt; (Product Requirements Document)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TRD&lt;/strong&gt; (Technical Requirements Document &amp;amp; Architecture)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend Schema&lt;/strong&gt; (Database ERDs and indexing strategies)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App Flow&lt;/strong&gt; (User journeys and event-driven system flows)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI/UX Brief&lt;/strong&gt; (Information architecture and accessibility rules)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Implementation Plan&lt;/strong&gt; (Phased delivery and risk registries)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Plan&lt;/strong&gt; (Threat modeling and defense-in-depth)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  ⚖️ Track B: The Legal &amp;amp; Policy Suite
&lt;/h3&gt;

&lt;p&gt;This track focuses on compliance and operations. The agent acts as a policy drafter, always enforcing mandatory "Structural Draft" disclaimers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Legal Compliance Annex&lt;/strong&gt; (Jurisdictional mapping)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terms of Service&lt;/strong&gt; (T&amp;amp;C)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy Policy&lt;/strong&gt; (PII handling and user rights)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Processing Policy&lt;/strong&gt; (Data lifecycles and vendor mapping)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Acceptable Use Policy&lt;/strong&gt; (Content moderation and enforcement)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content &amp;amp; Image Use Policy&lt;/strong&gt; (Copyright and UGC rules)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Use Policy&lt;/strong&gt; (Governance for algorithmic decision-making)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disclaimer &amp;amp; Continuity&lt;/strong&gt; (SLAs and warranties)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Magic: Prerequisite Chaining
&lt;/h2&gt;

&lt;p&gt;What makes Spec Suite powerful isn't just the markdown templates; it's &lt;strong&gt;how&lt;/strong&gt; the AI is instructed to use them.&lt;/p&gt;

&lt;p&gt;Embedded within the skill is a strict set of prerequisite rules. If you tell your agent, &lt;em&gt;"Generate a Security Plan"&lt;/em&gt;, the agent is programmed to stop and verify its context. It will essentially tell you: &lt;em&gt;"Wait, I cannot write a Security Plan without first reading your TRD and Backend Schema."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If those documents don't exist in your project yet, the agent will offer to generate them first. This prerequisite chaining forces the LLM to anchor its outputs to established facts about your project, drastically reducing hallucinations. The resulting documents are highly cohesive because the AI is literally building on its own validated context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lightning-Fast Sub-Module Routing
&lt;/h2&gt;

&lt;p&gt;You don't always need to generate a massive 15-document suite. Sometimes you're just hacking in your terminal and realize you need a quick database schema for a new feature.&lt;/p&gt;

&lt;p&gt;Spec Suite includes an alias-based sub-module routing system. You can simply tell your agent:&lt;br&gt;
&lt;code&gt;Execute spec-suite:schema for this feature&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The agent bypasses the master orchestrator, reads the specific guidelines for database schemas, asks you for the target output directory, and generates exactly what you need in seconds.&lt;/p&gt;
&lt;h2&gt;
  
  
  Try It In Your Project
&lt;/h2&gt;

&lt;p&gt;I've made Spec Suite completely Open Source (MIT License). If you are using NPM-compatible autonomous agents, you can install it globally or inject it directly into your current workspace with a single command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @abdiel49/spec-suite-skill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The next time you start a new project, try telling your agent: &lt;em&gt;"Generate the full spec suite for this idea."&lt;/em&gt; Grab a coffee, and watch it meticulously orchestrate your entire technical and legal foundation.&lt;/p&gt;

&lt;p&gt;If Spec Suite saves you hours of documentation headaches (like it has for me), consider giving it a star on &lt;a href="https://github.com/abdiel49/spec-suite-skill" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; or reaching out on Twitter to share your experience. Happy coding!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>writing</category>
    </item>
    <item>
      <title>Configure Cloudflare Email Routing with Gmail to Send and Receive Mails</title>
      <dc:creator>Abdiel49</dc:creator>
      <pubDate>Tue, 12 May 2026 16:11:49 +0000</pubDate>
      <link>https://dev.to/abdiel49/configure-cloudflare-email-routing-with-gmail-to-send-and-receive-mails-382j</link>
      <guid>https://dev.to/abdiel49/configure-cloudflare-email-routing-with-gmail-to-send-and-receive-mails-382j</guid>
      <description>&lt;h2&gt;
  
  
  Configure Cloudflare Email Routing
&lt;/h2&gt;

&lt;p&gt;Open: &lt;code&gt;https://dash.cloudflare.com&lt;/code&gt; and go to &lt;code&gt;Email → Email Routing&lt;/code&gt;,  enable Email Routing and create your custom address.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;user@yourdomain.com
→ forwards to
yourgmail@gmail.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cloudflare will send a verification email to your Gmail account to confirm the forwarding destination. Open the email and verify it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enable Gmail App Passwords
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://myaccount.google.com/security" rel="noopener noreferrer"&gt;https://myaccount.google.com/security&lt;/a&gt; and enable 2-Step Verification, then open: &lt;a href="https://myaccount.google.com/apppasswords" rel="noopener noreferrer"&gt;https://myaccount.google.com/apppasswords&lt;/a&gt; and generate a new App Password for Mail.&lt;/p&gt;

&lt;p&gt;Google will generate a password similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;abcd efgh ijkl mnop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will be your SMTP password.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Gmail to Send Emails Using Your Domain
&lt;/h2&gt;

&lt;p&gt;In Gmail go to:&lt;/p&gt;

&lt;p&gt;Settings → See all settings → Accounts and Import → Send mail as → Add another email address.&lt;/p&gt;

&lt;p&gt;Add: &lt;a href="mailto:user@yourdomain.com"&gt;user@yourdomain.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2rzeih7vf6e7dzjqpeg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2rzeih7vf6e7dzjqpeg.png" alt="Add new mail with your domain image" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use this SMTP configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SMTP Server: smtp.gmail.com
Port: 587
Username: yourgmail@gmail.com
Password: YOUR_APP_PASSWORD
TLS: Enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Verify the Custom Domain Email
&lt;/h2&gt;

&lt;p&gt;Gmail will send a verification email to: &lt;a href="mailto:user@yourdomain.com"&gt;user@yourdomain.com&lt;/a&gt;&lt;br&gt;
Cloudflare will forward it to your Gmail inbox automatically.&lt;br&gt;
Open the email and confirm the verification.&lt;br&gt;
Refresh Gmail, now you can send emails as: &lt;a href="mailto:user@yourdomain.com"&gt;user@yourdomain.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhjnzlzz8c9nxoecne9av.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhjnzlzz8c9nxoecne9av.png" alt="Select send email as a" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure SPF and DMARC
&lt;/h2&gt;

&lt;p&gt;Add these DNS TXT records in Cloudflare.&lt;/p&gt;

&lt;h3&gt;
  
  
  SPF
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Host: &lt;code&gt;@&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Value: &lt;code&gt;v=spf1 include:_spf.google.com ~all&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  DMARC
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Host: &lt;code&gt;_dmarc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Value: &lt;code&gt;v=DMARC1; p=quarantine;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>email</category>
      <category>cloudflare</category>
      <category>smtp</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
