<?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>Forem: Mohd Saalim</title>
    <description>The latest articles on Forem by Mohd Saalim (@mdsaalim).</description>
    <link>https://forem.com/mdsaalim</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1977167%2F6d6f8dd4-954a-4d12-a35c-5ed16151146b.jpeg</url>
      <title>Forem: Mohd Saalim</title>
      <link>https://forem.com/mdsaalim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mdsaalim"/>
    <language>en</language>
    <item>
      <title>Building a Production CLI Tool to Gamify and Enforce Code Documentation with GitHub Copilot CLI</title>
      <dc:creator>Mohd Saalim</dc:creator>
      <pubDate>Sat, 14 Feb 2026 07:13:23 +0000</pubDate>
      <link>https://forem.com/mdsaalim/building-a-production-cli-tool-to-gamify-and-enforce-code-documentation-with-github-copilot-cli-1j4m</link>
      <guid>https://forem.com/mdsaalim/building-a-production-cli-tool-to-gamify-and-enforce-code-documentation-with-github-copilot-cli-1j4m</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Cognitive Guard&lt;/strong&gt; - A CLI tool that analyzes code complexity and blocks commits when complex functions lack documentation. It uses cognitive complexity (not just lines of code) and adds gamification to make documentation less painful.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/salim0986/cognitive-guard" rel="noopener noreferrer"&gt;cognitive-guard&lt;/a&gt;&lt;br&gt;&lt;br&gt;
📦 &lt;strong&gt;PyPI&lt;/strong&gt;: &lt;code&gt;pip install cognitive-guard&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Analyzes cognitive complexity using AST parsing&lt;/li&gt;
&lt;li&gt;Blocks git commits with undocumented complex code&lt;/li&gt;
&lt;li&gt;Interactive TUI for fixing violations in-terminal&lt;/li&gt;
&lt;li&gt;Achievement system with progress tracking&lt;/li&gt;
&lt;li&gt;Multi-language support (Python, JS, TS)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Quick demo&lt;/span&gt;
cognitive-guard demo

&lt;span class="c"&gt;# Interactive setup&lt;/span&gt;
cognitive-guard init &lt;span class="nt"&gt;--interactive&lt;/span&gt;

&lt;span class="c"&gt;# When you try to commit undocumented code:&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add feature"&lt;/span&gt;

🔍 Analyzing staged files...
🚫 COMMIT BLOCKED

Found 2 violations:
  📁 src/utils.py
     ❌ calculate_discount &lt;span class="o"&gt;(&lt;/span&gt;complexity: 15&lt;span class="o"&gt;)&lt;/span&gt; - Missing docstring

&lt;span class="c"&gt;# Progress tracking&lt;/span&gt;
cognitive-guard stats

📊 Your Documentation Journey
   Current:  ████████░░ 80% documented
   Goal:     ██████████ 90% documented
   🎯 Just 5 more &lt;span class="k"&gt;function&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;s&lt;span class="o"&gt;)&lt;/span&gt; to go!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fi8gvs2me50fulyp7465z.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%2Fi8gvs2me50fulyp7465z.png" alt="Initial Config file structure" width="731" height="513"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  My Experience with GitHub Copilot CLI
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Why I Tried Something Different
&lt;/h3&gt;

&lt;p&gt;I've been using Antigravity (Google's VS Code fork with AI chat) for my daily coding. It's solid for writing functions and getting inline suggestions. But for this project, I wanted to try GitHub Copilot CLI to see what difference the terminal-based approach makes.&lt;/p&gt;

&lt;p&gt;Spoiler: The differences were significant.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Starting Point (Feb 5, 2026)
&lt;/h3&gt;

&lt;p&gt;I started with a simple prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh copilot suggest &lt;span class="s2"&gt;"Build a Python CLI tool that analyzes code complexity 
and enforces documentation. Include git hooks, interactive TUI, and tests."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Over the next 6 hours and multiple follow-up prompts, I had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A working complexity analyzer using Python's AST module&lt;/li&gt;
&lt;li&gt;CLI with 7 commands (init, scan, check, tui, stats, hook, update-hook)&lt;/li&gt;
&lt;li&gt;Interactive TUI using Textual&lt;/li&gt;
&lt;li&gt;Git hook integration with safe installation&lt;/li&gt;
&lt;li&gt;19 tests with pytest&lt;/li&gt;
&lt;li&gt;Complete documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That first day ended with a functional Python package. This would have taken me weeks solo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Antigravity vs Copilot CLI: What I Noticed
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Project-Level vs File-Level Context
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Antigravity (chat in IDE):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works great when I'm focused on a single file&lt;/li&gt;
&lt;li&gt;Chat window helps with function-level questions&lt;/li&gt;
&lt;li&gt;Needs me to manually provide context about other files&lt;/li&gt;
&lt;li&gt;Better for "fix this function" or "add this feature to this class"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Copilot CLI:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sees the entire project structure from the start&lt;/li&gt;
&lt;li&gt;Understands relationships between modules&lt;/li&gt;
&lt;li&gt;Suggests architecture patterns, not just code&lt;/li&gt;
&lt;li&gt;Better for "set up CI/CD" or "structure this project"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: When I asked Copilot CLI about project structure, it suggested:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cognitive_guard/
├── core/          # Core logic
├── cli/           # CLI interface
├── tui/           # Interactive UI
├── hooks/         # Git integration
└── utils/         # Utilities
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With Antigravity, I would've had to think through this structure myself, then ask it to help implement each part.&lt;/p&gt;

&lt;h4&gt;
  
  
  DevOps and Tooling
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Antigravity:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Struggles with questions about GitHub Actions&lt;/li&gt;
&lt;li&gt;Limited help with package configuration&lt;/li&gt;
&lt;li&gt;Not designed for Makefile or Docker questions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Copilot CLI:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generated complete CI/CD workflows&lt;/li&gt;
&lt;li&gt;Helped with pyproject.toml configuration&lt;/li&gt;
&lt;li&gt;Suggested pre-commit hooks setup&lt;/li&gt;
&lt;li&gt;Created Makefile with relevant targets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CLI is in its natural environment for these tasks. It understands terminal workflows.&lt;/p&gt;

&lt;h4&gt;
  
  
  Multi-File Refactoring
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;The CI/CD Disaster:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My GitHub Actions were failing with 73 linting errors across 22 files. Deprecated type hints (Dict → dict), unused imports, formatting issues.&lt;/p&gt;

&lt;p&gt;With Antigravity, I would've:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Opened each file individually&lt;/li&gt;
&lt;li&gt;Asked for fixes per file&lt;/li&gt;
&lt;li&gt;Manually ensured consistency&lt;/li&gt;
&lt;li&gt;Probably missed some files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;With Copilot CLI, I asked:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh copilot suggest &lt;span class="s2"&gt;"Fix all Black and Ruff linting errors across the codebase"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scanned all 22 files&lt;/li&gt;
&lt;li&gt;Applied consistent fixes&lt;/li&gt;
&lt;li&gt;Explained the changes&lt;/li&gt;
&lt;li&gt;Updated everything in one pass&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;73 errors → 0 in one session.&lt;/p&gt;

&lt;h4&gt;
  
  
  Documentation Generation
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Antigravity:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Good for docstrings when I'm in a file&lt;/li&gt;
&lt;li&gt;Helps with comments and inline docs&lt;/li&gt;
&lt;li&gt;Needs me to create documentation files first&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Copilot CLI:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generated README.md structure&lt;/li&gt;
&lt;li&gt;Created CONTRIBUTING.md, SECURITY.md&lt;/li&gt;
&lt;li&gt;Suggested what docs I needed&lt;/li&gt;
&lt;li&gt;Provided examples of each doc type&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I asked "What documentation does this project need?", Copilot CLI listed: README, QUICKSTART, ARCHITECTURE, CONTRIBUTING, SECURITY, CHANGELOG. Then helped create each one.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Actually Happened
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The Complexity Algorithm
&lt;/h4&gt;

&lt;p&gt;I asked: "I need cognitive complexity analysis counting control flow, nesting, and boolean logic"&lt;/p&gt;

&lt;p&gt;Copilot CLI generated an AST-based analyzer. What caught my attention: it didn't just give me code—it explained the cognitive complexity concept and showed me Python AST patterns I hadn't used before.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculate_complexity&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AST&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;complexity&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="n"&gt;nesting_level&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;child&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;node&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;child&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;If&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;While&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;For&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
            &lt;span class="n"&gt;complexity&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;nesting_level&lt;/span&gt;  &lt;span class="c1"&gt;# Nested = harder to understand
&lt;/span&gt;        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="nf"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;child&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;BoolOp&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="n"&gt;complexity&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;child&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;complexity&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The comment about nested control flow? That was from Copilot CLI explaining &lt;em&gt;why&lt;/em&gt; the formula works that way.&lt;/p&gt;

&lt;h4&gt;
  
  
  The TUI Challenge
&lt;/h4&gt;

&lt;p&gt;I needed an interactive terminal UI. I'd heard of Textual but never used it.&lt;/p&gt;

&lt;p&gt;Me: "I want an interactive TUI where users can browse violations and edit docstrings"&lt;/p&gt;

&lt;p&gt;Copilot CLI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Suggested Textual over alternatives (with reasoning)&lt;/li&gt;
&lt;li&gt;Generated the complete TUI structure&lt;/li&gt;
&lt;li&gt;Added keyboard shortcuts (q, ↑↓ navigation, Enter to edit)&lt;/li&gt;
&lt;li&gt;Included error handling for file operations&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I learned a new framework while building the feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Antigravity would've been great once I knew I wanted Textual. But Copilot CLI helped me &lt;em&gt;choose&lt;/em&gt; Textual in the first place.&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%2Fhb1ureez2bqo1n08e20u.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%2Fhb1ureez2bqo1n08e20u.png" alt="TUI Interface" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  The Git Hook Problem
&lt;/h4&gt;

&lt;p&gt;Safe git hook installation is tricky. Copilot CLI's solution included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backing up existing hooks&lt;/li&gt;
&lt;li&gt;Creating a hook that fails gracefully&lt;/li&gt;
&lt;li&gt;Providing clear instructions when blocking commits&lt;/li&gt;
&lt;li&gt;Including a bypass option (--no-verify)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These were edge cases I would have discovered through bug reports, not upfront design.&lt;/p&gt;

&lt;h3&gt;
  
  
  When Antigravity Would've Been Better
&lt;/h3&gt;

&lt;p&gt;To be fair, there were moments where Antigravity's IDE integration would've been smoother:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Function-level debugging&lt;/strong&gt;: When a specific function had bugs, stepping through in the IDE with AI help is more natural&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Code review&lt;/strong&gt;: Reading generated code with inline suggestions is easier in an editor&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Incremental changes&lt;/strong&gt;: Making small tweaks to existing functions works better with IDE context&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But for &lt;strong&gt;building a new project from scratch&lt;/strong&gt;, especially one that involves DevOps, testing, and documentation—Copilot CLI was the better choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Next 8 Days: Iteration and Polish
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Days 2-3 (Feb 6-8): GitHub Integration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added CI/CD workflows&lt;/li&gt;
&lt;li&gt;Created issue templates&lt;/li&gt;
&lt;li&gt;Set up pre-commit hooks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Days 4-5 (Feb 12): The CI/CD Maze&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Copilot CLI fixed all 73 linting errors in one pass. It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updated type annotations to Python 3.9+ style&lt;/li&gt;
&lt;li&gt;Removed unused imports consistently&lt;/li&gt;
&lt;li&gt;Fixed import ordering&lt;/li&gt;
&lt;li&gt;Explained each change type&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More importantly, I learned why modern Python prefers &lt;code&gt;dict&lt;/code&gt; over &lt;code&gt;typing.Dict&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Days 6-7 (Feb 12): PyPI Preparation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Copilot CLI helped with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Package metadata in pyproject.toml&lt;/li&gt;
&lt;li&gt;Build configuration&lt;/li&gt;
&lt;li&gt;Distribution setup&lt;/li&gt;
&lt;li&gt;Installation testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All terminal-based tasks where Antigravity wouldn't have much to offer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Days 8-9 (Feb 13-14): Usability Push&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I had a working tool but wanted it friendlier. I asked for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A demo command for quick onboarding&lt;/li&gt;
&lt;li&gt;Interactive setup with questions&lt;/li&gt;
&lt;li&gt;Better error messages with fix suggestions&lt;/li&gt;
&lt;li&gt;Visual progress bars in stats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copilot CLI generated encouraging messages that weren't cheesy, progress bars using ASCII art, and error messages that guide instead of blame.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Learning Curve
&lt;/h3&gt;

&lt;p&gt;Some things took adjustment:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Over-Engineering&lt;/strong&gt;: Initial suggestions were sometimes too comprehensive. I learned to ask for "simple" or "minimal" first, then iterate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context Matters&lt;/strong&gt;: For large changes, breaking requests into smaller prompts worked better. "Refactor this specific module" beats "improve my codebase."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Verification&lt;/strong&gt;: Generated tests were solid starting points but needed domain-specific adjustments. The structure and patterns were valuable though.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real Productivity Gains(AI Generated)
&lt;/h3&gt;

&lt;p&gt;Time comparison (estimated vs actual):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Without AI&lt;/th&gt;
&lt;th&gt;With Antigravity&lt;/th&gt;
&lt;th&gt;With Copilot CLI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Project setup&lt;/td&gt;
&lt;td&gt;4 hours&lt;/td&gt;
&lt;td&gt;2 hours&lt;/td&gt;
&lt;td&gt;30 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Core algorithm&lt;/td&gt;
&lt;td&gt;8 hours&lt;/td&gt;
&lt;td&gt;4 hours&lt;/td&gt;
&lt;td&gt;2 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TUI implementation&lt;/td&gt;
&lt;td&gt;12 hours&lt;/td&gt;
&lt;td&gt;8 hours&lt;/td&gt;
&lt;td&gt;3 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tests&lt;/td&gt;
&lt;td&gt;10 hours&lt;/td&gt;
&lt;td&gt;6 hours&lt;/td&gt;
&lt;td&gt;2 hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation&lt;/td&gt;
&lt;td&gt;8 hours&lt;/td&gt;
&lt;td&gt;6 hours&lt;/td&gt;
&lt;td&gt;1 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD&lt;/td&gt;
&lt;td&gt;6 hours&lt;/td&gt;
&lt;td&gt;5 hours&lt;/td&gt;
&lt;td&gt;1 hour&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~64 hours&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~31 hours&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~13 hours&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Antigravity would've saved me time, but Copilot CLI was faster for this type of project.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Actually Made Copilot CLI Valuable Here
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. It's a Teacher&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every suggestion came with context. Not just "use this pattern" but "use this pattern because of X, and watch out for Y."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Architecture Guidance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I asked about project structure, it suggested separation of concerns, proper package organization, and configuration patterns. This shaped the whole project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. DevOps Knowledge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The CI/CD workflows included matrix testing, caching, artifact uploading, and coverage reports. I learned GitHub Actions patterns I didn't know existed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Documentation Generation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The generated README followed best practices with installation, usage, examples, and contribution guidelines. I learned what good documentation looks like.&lt;/p&gt;

&lt;h3&gt;
  
  
  My New Workflow
&lt;/h3&gt;

&lt;p&gt;After this experience, here's how I think about using both tools:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Antigravity or Copilot Chat when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing and refining individual functions&lt;/li&gt;
&lt;li&gt;Debugging specific code sections&lt;/li&gt;
&lt;li&gt;Doing code review&lt;/li&gt;
&lt;li&gt;Making small, focused changes&lt;/li&gt;
&lt;li&gt;Working within a single file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Copilot CLI when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starting a new project&lt;/li&gt;
&lt;li&gt;Setting up tooling (CI/CD, pre-commit, etc.)&lt;/li&gt;
&lt;li&gt;Generating documentation&lt;/li&gt;
&lt;li&gt;Multi-file refactoring&lt;/li&gt;
&lt;li&gt;Learning about project structure&lt;/li&gt;
&lt;li&gt;Anything DevOps-related&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They complement each other. Copilot CLI gets the project structured and running. Antigravity helps refine the details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tips for Using Copilot CLI
&lt;/h3&gt;

&lt;p&gt;Based on 17+ sessions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Be specific&lt;/strong&gt;: "Refactor this function to use async/await" beats "make it better"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterate&lt;/strong&gt;: Start simple, then ask "how can we improve this?"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn, don't copy&lt;/strong&gt;: Read the generated code, understand the patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provide context&lt;/strong&gt;: Mention what you're building and what problem you're solving&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use it beyond code&lt;/strong&gt;: Documentation, debugging, DevOps, learning new tools&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Final Numbers
&lt;/h3&gt;

&lt;p&gt;After 9 days:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code&lt;/strong&gt;: 1,200+ lines across 24 Python files&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests&lt;/strong&gt;: 19 tests, 40% coverage, all passing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality&lt;/strong&gt;: Black and Ruff linters passing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: 15+ markdown files, 15,000+ words&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Status&lt;/strong&gt;: Published on PyPI, production-ready&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Would I Use It Again?
&lt;/h3&gt;

&lt;p&gt;Yes. For new projects, especially those involving DevOps and documentation, Copilot CLI is now my starting point.&lt;/p&gt;

&lt;p&gt;The 5x speed improvement over solo work is real, but the continuous learning is more valuable. Each session taught me something new about Python, tooling, or best practices.&lt;/p&gt;

&lt;p&gt;Antigravity remains my go-to for daily coding tasks. But for "build something new from scratch"? Copilot CLI won me over.&lt;/p&gt;

&lt;h3&gt;
  
  
  Try It
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;cognitive-guard
cognitive-guard demo
cognitive-guard init &lt;span class="nt"&gt;--interactive&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📦 &lt;strong&gt;PyPI&lt;/strong&gt;: &lt;a href="https://pypi.org/project/cognitive-guard/" rel="noopener noreferrer"&gt;cognitive-guard&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔗 &lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/mdsaalim/cognitive-guard" rel="noopener noreferrer"&gt;cognitive-guard&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The question isn't which AI tool is better. The question is which tool fits the task. For building this project, Copilot CLI was the right choice.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built in 9 days • 17+ Copilot CLI sessions • 1,200+ lines of code&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
