<?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: Tashfiqul Islam</title>
    <description>The latest articles on DEV Community by Tashfiqul Islam (@tashfiq61).</description>
    <link>https://dev.to/tashfiq61</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%2F3995766%2Ffa5c44f6-4e17-4298-8fec-2f25df59108c.jpg</url>
      <title>DEV Community: Tashfiqul Islam</title>
      <link>https://dev.to/tashfiq61</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tashfiq61"/>
    <language>en</language>
    <item>
      <title>Agents Don’t Just Need Better Models. They Need Better Repositories.</title>
      <dc:creator>Tashfiqul Islam</dc:creator>
      <pubDate>Tue, 23 Jun 2026 19:45:39 +0000</pubDate>
      <link>https://dev.to/tashfiq61/agents-dont-just-need-better-models-they-need-better-repositories-4999</link>
      <guid>https://dev.to/tashfiq61/agents-dont-just-need-better-models-they-need-better-repositories-4999</guid>
      <description>&lt;p&gt;Most conversations about coding agents eventually become model comparisons.&lt;/p&gt;

&lt;p&gt;Which model is better?&lt;br&gt;
Which one writes cleaner code?&lt;br&gt;
Which one follows instructions better?&lt;br&gt;
Which one can handle a larger repo?&lt;/p&gt;

&lt;p&gt;Those questions matter.&lt;/p&gt;

&lt;p&gt;But the more I use coding agents, the more I think we are missing a bigger part of the problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Agents often fail not because the model is bad, but because the repo is bad for agents.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A coding agent does not land in a clean abstract problem space.&lt;/p&gt;

&lt;p&gt;It lands in your repository.&lt;/p&gt;

&lt;p&gt;And your repository is part of the prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  The repo is part of the prompt
&lt;/h2&gt;

&lt;p&gt;When an agent starts working in a codebase, it inherits everything around it.&lt;/p&gt;

&lt;p&gt;It inherits the folder structure.&lt;/p&gt;

&lt;p&gt;It inherits the naming conventions.&lt;/p&gt;

&lt;p&gt;It inherits the missing docs.&lt;/p&gt;

&lt;p&gt;It inherits the stale setup instructions.&lt;/p&gt;

&lt;p&gt;It inherits the test suite that may or may not run.&lt;/p&gt;

&lt;p&gt;It inherits the internal patterns that only a few people on the team understand.&lt;/p&gt;

&lt;p&gt;It inherits the weird config files.&lt;/p&gt;

&lt;p&gt;It inherits the shortcuts, inconsistencies, and half-written decisions that accumulated over time.&lt;/p&gt;

&lt;p&gt;Then we ask it to make a safe change.&lt;/p&gt;

&lt;p&gt;And when it gets something wrong, we blame the model.&lt;/p&gt;

&lt;p&gt;Sometimes that is fair. Sometimes the model really does miss the point.&lt;/p&gt;

&lt;p&gt;But often, the repo gave it a bad environment to work in.&lt;/p&gt;

&lt;h2&gt;
  
  
  “The model was bad” is sometimes the wrong diagnosis
&lt;/h2&gt;

&lt;p&gt;I have seen agents fail in ways that look like intelligence problems at first.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It rewrites too much code.&lt;/li&gt;
&lt;li&gt;It ignores a project convention.&lt;/li&gt;
&lt;li&gt;It adds a dependency the team would never approve.&lt;/li&gt;
&lt;li&gt;It cannot figure out how to run tests.&lt;/li&gt;
&lt;li&gt;It touches files it should probably avoid.&lt;/li&gt;
&lt;li&gt;It follows stale setup instructions.&lt;/li&gt;
&lt;li&gt;It makes a change that looks plausible but does not match how the repo works.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is easy to call that a model failure.&lt;/p&gt;

&lt;p&gt;But if a human engineer joined the same project with no onboarding doc, no architecture notes, no contribution guide, no clear test command, and no explanation of the team’s conventions, we would not call that engineer bad on day one.&lt;/p&gt;

&lt;p&gt;We would say the repo has poor onboarding.&lt;/p&gt;

&lt;p&gt;Agents have the same problem.&lt;/p&gt;

&lt;p&gt;They just fail faster.&lt;/p&gt;

&lt;p&gt;And they fail with more confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Good agent workflows are boring
&lt;/h2&gt;

&lt;p&gt;The best coding-agent workflows I have seen are not magical.&lt;/p&gt;

&lt;p&gt;They are usually boring in a very useful way.&lt;/p&gt;

&lt;p&gt;The repo has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clear &lt;code&gt;AGENTS.md&lt;/code&gt; or equivalent instruction file&lt;/li&gt;
&lt;li&gt;Documented setup steps&lt;/li&gt;
&lt;li&gt;Pinned tools and versions&lt;/li&gt;
&lt;li&gt;Obvious test commands&lt;/li&gt;
&lt;li&gt;CI that gives useful feedback&lt;/li&gt;
&lt;li&gt;Clear project conventions&lt;/li&gt;
&lt;li&gt;Safe boundaries around secrets and config&lt;/li&gt;
&lt;li&gt;Enough context for the agent to understand what “good” looks like&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That does not make the agent perfect.&lt;/p&gt;

&lt;p&gt;But it changes the failure mode.&lt;/p&gt;

&lt;p&gt;Instead of guessing wildly, the agent has rails. It can make a bounded change, run the expected checks, and explain what it did.&lt;/p&gt;

&lt;p&gt;That is a very different workflow from “here is a vague task, please modify a repo you barely understand.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Repo readiness should be measurable
&lt;/h2&gt;

&lt;p&gt;We already measure many parts of software quality.&lt;/p&gt;

&lt;p&gt;We measure test coverage.&lt;/p&gt;

&lt;p&gt;We measure lint errors.&lt;/p&gt;

&lt;p&gt;We measure build status.&lt;/p&gt;

&lt;p&gt;We scan dependencies.&lt;/p&gt;

&lt;p&gt;We check secrets.&lt;/p&gt;

&lt;p&gt;We track CI health.&lt;/p&gt;

&lt;p&gt;But when it comes to coding agents, we still use vague language:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This repo works pretty well with agents.&lt;/p&gt;

&lt;p&gt;Claude Code struggles here.&lt;/p&gt;

&lt;p&gt;Codex keeps making weird changes.&lt;/p&gt;

&lt;p&gt;Cursor is good in this repo but bad in that one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those observations are useful, but they are not operational.&lt;/p&gt;

&lt;p&gt;If agents are going to work inside real repositories, we need better questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the repo explain its own conventions?&lt;/li&gt;
&lt;li&gt;Can an agent find the correct setup path?&lt;/li&gt;
&lt;li&gt;Are tool versions pinned?&lt;/li&gt;
&lt;li&gt;Are test commands discoverable?&lt;/li&gt;
&lt;li&gt;Are dangerous commands documented or isolated?&lt;/li&gt;
&lt;li&gt;Are secrets protected from casual reads?&lt;/li&gt;
&lt;li&gt;Is there enough project context to avoid broad guessing?&lt;/li&gt;
&lt;li&gt;Can this be checked repeatedly as the repo changes?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last question matters.&lt;/p&gt;

&lt;p&gt;Agent-readiness should not be a one-time cleanup. It should be something that can improve, regress, and be checked in CI like anything else.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not about replacing engineers
&lt;/h2&gt;

&lt;p&gt;I do not think the practical future is “agents do everything and engineers disappear.”&lt;/p&gt;

&lt;p&gt;The more useful version is this:&lt;/p&gt;

&lt;p&gt;Agents become part of the engineering workflow.&lt;/p&gt;

&lt;p&gt;They help with refactors, tests, docs, migrations, investigations, repetitive changes, and implementation work.&lt;/p&gt;

&lt;p&gt;But if they are going to be part of the workflow, the workflow has to be designed for them.&lt;/p&gt;

&lt;p&gt;Most repositories today are still designed for humans who already have context.&lt;/p&gt;

&lt;p&gt;Humans have Slack history, team memory, onboarding calls, product knowledge, and years of accumulated judgment.&lt;/p&gt;

&lt;p&gt;Agents do not have that unless we write it down somewhere they can use.&lt;/p&gt;

&lt;p&gt;That means the repository has to carry more of its own context.&lt;/p&gt;

&lt;h2&gt;
  
  
  The next layer of developer tooling
&lt;/h2&gt;

&lt;p&gt;I think this is where a lot of developer tooling is heading.&lt;/p&gt;

&lt;p&gt;Not just better chat interfaces.&lt;/p&gt;

&lt;p&gt;Not just better editors.&lt;/p&gt;

&lt;p&gt;Not just bigger context windows.&lt;/p&gt;

&lt;p&gt;But repo-level systems that make codebases safer and more understandable for agentic work.&lt;/p&gt;

&lt;p&gt;That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clearer instructions&lt;/li&gt;
&lt;li&gt;Better defaults&lt;/li&gt;
&lt;li&gt;Deterministic checks&lt;/li&gt;
&lt;li&gt;Safer automation boundaries&lt;/li&gt;
&lt;li&gt;Better CI integration&lt;/li&gt;
&lt;li&gt;More explicit governance around what agents can and cannot do&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is also the idea I have been exploring with a small open-source project called &lt;strong&gt;Charter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Charter is an offline CLI that gives a repository a deterministic &lt;code&gt;0–100&lt;/code&gt; readiness score for coding-agent workflows.&lt;/p&gt;

&lt;p&gt;It checks areas like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Secrets&lt;/li&gt;
&lt;li&gt;MCP/tool safety&lt;/li&gt;
&lt;li&gt;Environment setup&lt;/li&gt;
&lt;li&gt;CI&lt;/li&gt;
&lt;li&gt;Tests&lt;/li&gt;
&lt;li&gt;Governance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then it points to concrete gaps that make agents more likely to fail.&lt;/p&gt;

&lt;p&gt;No LLM scoring.&lt;br&gt;
No network calls.&lt;br&gt;
Same repo, same score.&lt;/p&gt;

&lt;p&gt;The project is still early, but the framing has been useful for me:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If agents keep failing in a repo, maybe the repo is part of the problem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/use-charter/charter" rel="noopener noreferrer"&gt;https://github.com/use-charter/charter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;Better models will help.&lt;/p&gt;

&lt;p&gt;They will reason better. They will follow instructions better. They will make fewer mistakes.&lt;/p&gt;

&lt;p&gt;But they will still inherit the environment we give them.&lt;/p&gt;

&lt;p&gt;If the repo is confusing, unsafe, undocumented, and hard to verify, even a very good agent can make things worse.&lt;/p&gt;

&lt;p&gt;The model matters.&lt;/p&gt;

&lt;p&gt;The repo matters too.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>go</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I built Charter because AI coding agents don’t just need better models — they need safer repositories to land in.

It’s an offline CLI that gives any repo a deterministic 0–100 agent-readiness score, with clear fixes for every gap.</title>
      <dc:creator>Tashfiqul Islam</dc:creator>
      <pubDate>Sun, 21 Jun 2026 21:43:35 +0000</pubDate>
      <link>https://dev.to/tashfiq61/i-built-charter-because-ai-coding-agents-dont-just-need-better-models-they-need-safer-16po</link>
      <guid>https://dev.to/tashfiq61/i-built-charter-because-ai-coding-agents-dont-just-need-better-models-they-need-safer-16po</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/tashfiq61/charter-a-deterministic-readiness-score-for-ai-coding-agents-i7f" class="crayons-story__hidden-navigation-link"&gt;Charter: a deterministic readiness score for AI coding agents&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/tashfiq61" class="crayons-avatar  crayons-avatar--l  "&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3995766%2Ffa5c44f6-4e17-4298-8fec-2f25df59108c.jpg" alt="tashfiq61 profile" class="crayons-avatar__image" width="96" height="96"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/tashfiq61" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Tashfiqul Islam
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Tashfiqul Islam
                
              
              &lt;div id="story-author-preview-content-3957847" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/tashfiq61" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3995766%2Ffa5c44f6-4e17-4298-8fec-2f25df59108c.jpg" class="crayons-avatar__image" alt="" width="96" height="96"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Tashfiqul Islam&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/tashfiq61/charter-a-deterministic-readiness-score-for-ai-coding-agents-i7f" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jun 21&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/tashfiq61/charter-a-deterministic-readiness-score-for-ai-coding-agents-i7f" id="article-link-3957847"&gt;
          Charter: a deterministic readiness score for AI coding agents
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/agents"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;agents&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/security"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;security&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/tashfiq61/charter-a-deterministic-readiness-score-for-ai-coding-agents-i7f#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>cli</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Charter: a deterministic readiness score for AI coding agents</title>
      <dc:creator>Tashfiqul Islam</dc:creator>
      <pubDate>Sun, 21 Jun 2026 21:33:49 +0000</pubDate>
      <link>https://dev.to/tashfiq61/charter-a-deterministic-readiness-score-for-ai-coding-agents-i7f</link>
      <guid>https://dev.to/tashfiq61/charter-a-deterministic-readiness-score-for-ai-coding-agents-i7f</guid>
      <description>&lt;p&gt;AI coding agents inherit the repository they land in.&lt;/p&gt;

&lt;p&gt;That sounds obvious until you watch one fail for reasons that have nothing to do with the model.&lt;/p&gt;

&lt;p&gt;Give an agent a clear &lt;code&gt;AGENTS.md&lt;/code&gt;, pinned tools, runnable tests, safe defaults, and a CI path it can understand, and it usually behaves like a careful senior engineer. Drop it into a repo with missing context, an MCP server pinned to &lt;code&gt;@latest&lt;/code&gt;, unclear conventions, and a secret sitting in plain sight, and it will still try to help. Confidently.&lt;/p&gt;

&lt;p&gt;That confidence is the dangerous part.&lt;/p&gt;

&lt;p&gt;I kept seeing the same pattern: an agent commits a key it found in a config file. Another hangs because an MCP server changed underneath it. Another rewrites half a module because nothing told it how the project is supposed to work.&lt;/p&gt;

&lt;p&gt;Those are not model failures. They are repository failures.&lt;/p&gt;

&lt;p&gt;And until now, they have mostly been invisible. There was no simple answer to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How safe is this repo for an AI agent to work in?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Charter does
&lt;/h2&gt;

&lt;p&gt;Charter is an offline CLI that grades any repository from 0 to 100 based on how ready it is for AI coding agents.&lt;/p&gt;

&lt;p&gt;It checks nine areas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Secrets&lt;/li&gt;
&lt;li&gt;MCP safety&lt;/li&gt;
&lt;li&gt;Agent configuration&lt;/li&gt;
&lt;li&gt;Environment setup&lt;/li&gt;
&lt;li&gt;CI&lt;/li&gt;
&lt;li&gt;Testing&lt;/li&gt;
&lt;li&gt;Autonomy&lt;/li&gt;
&lt;li&gt;Governance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under those areas are eighteen deterministic rules. Each rule has a severity, a clear check, and a concrete fix.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;charter doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you get a score, a breakdown, and the exact gaps keeping the repo from being safer for agents.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiz0mdh10fcnjkmtehu94.webp" 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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiz0mdh10fcnjkmtehu94.webp" alt="Charter doctor output" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first number is usually humbling. That is kind of the point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is not an LLM judging your repo
&lt;/h2&gt;

&lt;p&gt;The obvious version of this product would be: point a model at the repo and ask, “Is this agent-ready?”&lt;/p&gt;

&lt;p&gt;I did not want that.&lt;/p&gt;

&lt;p&gt;A score you cannot reproduce is not a gate. It is a vibe.&lt;/p&gt;

&lt;p&gt;Charter’s score is a public formula over a fixed rule set. Same repo, same score, every time. No prompt drift. No API bill. No model deciding whether your other model has enough context.&lt;/p&gt;

&lt;p&gt;It is closer to a linter than a reviewer.&lt;/p&gt;

&lt;p&gt;That makes it boring in the best way. You can read the rules, predict the result, and trust the number enough to put it in CI.&lt;/p&gt;

&lt;h2&gt;
  
  
  The loop
&lt;/h2&gt;

&lt;p&gt;The workflow is intentionally small.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Initialize the repo
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;charter init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This scaffolds the files an agent expects, including &lt;code&gt;AGENTS.md&lt;/code&gt; and &lt;code&gt;charter.yaml&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Get the baseline
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;charter doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most repos that have never been prepared for agents land somewhere around 40–60.&lt;/p&gt;

&lt;p&gt;That does not mean the repo is bad. It usually means the repo was built for humans who already know the context, not for agents that need the context written down.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Fix what is safe to fix
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;charter fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Charter is diff-first. It shows what it wants to change before anything is written.&lt;/p&gt;

&lt;p&gt;It also has hard boundaries: secrets and destructive commands are never auto-touched. Charter will point them out, but it will not put its hands on them.&lt;/p&gt;

&lt;h2&gt;
  
  
  It belongs in CI too
&lt;/h2&gt;

&lt;p&gt;A local score is useful. A CI gate is better.&lt;/p&gt;

&lt;p&gt;Charter emits SARIF 2.1.0, so findings can show up in GitHub Code Scanning. There is also an official GitHub Action with a score threshold:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;use-charter/charter-action@v1&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;threshold&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That turns “this repo feels agent-ready” into something much easier to reason about:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This repo must stay above 80 before we merge.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The score can ratchet up over time instead of being a one-off cleanup project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The contract
&lt;/h2&gt;

&lt;p&gt;Charter makes a few hard promises:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No network calls&lt;/li&gt;
&lt;li&gt;No LLM in the core scoring path&lt;/li&gt;
&lt;li&gt;No file deletion&lt;/li&gt;
&lt;li&gt;No silent mutation&lt;/li&gt;
&lt;li&gt;Every finding maps back to a rule&lt;/li&gt;
&lt;li&gt;Every rule includes a fix&lt;/li&gt;
&lt;li&gt;The same binary works locally and in CI&lt;/li&gt;
&lt;li&gt;Releases are signed, SLSA-built, and shipped with SBOMs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is Apache-2.0 and free forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Install it with Homebrew:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install &lt;/span&gt;use-charter/tap/charter
charter doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or install it with Go:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go &lt;span class="nb"&gt;install &lt;/span&gt;go.use-charter.dev/charter/cmd/charter@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also grab a signed binary from the releases page.&lt;/p&gt;

&lt;p&gt;Docs and the full rule list are here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://use-charter.dev/" rel="noopener noreferrer"&gt;https://use-charter.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source is on &lt;a href="https://github.com/use-charter/charter" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; - please give it a star if you find it useful.&lt;/p&gt;

&lt;p&gt;I would genuinely like to hear which rule you think is missing.&lt;/p&gt;

&lt;p&gt;The first number is usually humbling. Fixing it is the point.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>opensource</category>
      <category>security</category>
    </item>
  </channel>
</rss>
