<?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: Tang Weigang</title>
    <description>The latest articles on DEV Community by Tang Weigang (@doramagic).</description>
    <link>https://dev.to/doramagic</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%2F3936036%2F9206ba55-8d8f-457e-a399-6e3316ef715f.png</url>
      <title>DEV Community: Tang Weigang</title>
      <link>https://dev.to/doramagic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/doramagic"/>
    <language>en</language>
    <item>
      <title>Before You Add More Agents, Design the Control Plane</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Wed, 27 May 2026 03:09:03 +0000</pubDate>
      <link>https://dev.to/doramagic/before-you-add-more-agents-design-the-control-plane-2a0i</link>
      <guid>https://dev.to/doramagic/before-you-add-more-agents-design-the-control-plane-2a0i</guid>
      <description>&lt;p&gt;OpenAI Agents Python makes it easy to describe agents, connect tools, define handoffs, and run agentic workflows. That is useful, but it also creates a trap: teams may start by adding more agents before they define the operational boundaries that make those agents safe to use in a real repository.&lt;/p&gt;

&lt;p&gt;The hard part is usually not getting the first demo to run. The hard part is knowing when an agent should start, what it is allowed to touch, what evidence it must leave behind, when it can hand work to another agent, and how the team will recover when the workflow fails.&lt;/p&gt;

&lt;p&gt;For production use, I would start with a control plane.&lt;/p&gt;

&lt;p&gt;This does not need to be a heavy platform. A Markdown checklist, a JSON policy file, and a trace log can be enough for the first version. The key is that the rules exist outside the model's temporary reasoning. They become part of the workflow, not something you hope the model remembers.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Define the task entry contract
&lt;/h2&gt;

&lt;p&gt;An agent should not start from a vague instruction like "fix this feature" or "improve this repo." That may be fine for a toy demo, but it is too wide for real work.&lt;/p&gt;

&lt;p&gt;A task entry contract should answer five questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is the goal?&lt;/li&gt;
&lt;li&gt;What input is trusted?&lt;/li&gt;
&lt;li&gt;What files, services, or systems are in scope?&lt;/li&gt;
&lt;li&gt;What is the acceptance standard?&lt;/li&gt;
&lt;li&gt;When should the agent stop instead of improvising?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, a safer engineering task might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Read only the package under &lt;code&gt;src/connectors&lt;/code&gt;. Modify only &lt;code&gt;connector_policy.py&lt;/code&gt; and related tests. Preserve the git diff. Run the connector test suite. If the requested behavior conflicts with an existing policy rule, stop and return the conflict instead of rewriting the policy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That kind of instruction is not just prompt polish. It reduces the agent's degrees of freedom. It turns an open-ended request into an executable contract.&lt;/p&gt;

&lt;p&gt;The business value is simple: fewer surprising edits, fewer review cycles, and less time spent asking why an agent touched something unrelated.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Separate tools by risk
&lt;/h2&gt;

&lt;p&gt;Tool access should not be binary. "The agent can use tools" is too broad. A file search is not the same risk as deleting a directory, publishing an article, or calling a production API.&lt;/p&gt;

&lt;p&gt;I prefer three buckets.&lt;/p&gt;

&lt;p&gt;Low-risk tools can run directly. Examples: read a file, search for symbols, inspect documentation, list a directory, or open a local artifact.&lt;/p&gt;

&lt;p&gt;Medium-risk tools can run if they leave evidence. Examples: modify a draft, generate a patch, run tests, create a report, or produce a migration plan. The output should be inspectable.&lt;/p&gt;

&lt;p&gt;High-risk tools require an explicit gate. Examples: destructive git commands, deleting files, pushing to a remote, publishing content, spending money, modifying production infrastructure, or calling external APIs with side effects.&lt;/p&gt;

&lt;p&gt;OpenAI Agents Python gives you a framework for building the workflow. It does not automatically know your risk model. That risk model belongs in your engineering system.&lt;/p&gt;

&lt;p&gt;If your agent can publish content, the publication action should not be treated the same way as writing a local draft. If your agent can modify code, the modification should not be treated the same way as reading code. If your agent can call production services, the system needs a gate before side effects happen.&lt;/p&gt;

&lt;p&gt;This is where many agent workflows become fragile. The model may be capable, but the surrounding system has no authority model.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Make handoffs evidence-based
&lt;/h2&gt;

&lt;p&gt;Multi-agent workflows are attractive because they map nicely to human roles: researcher, planner, coder, reviewer, publisher. But every handoff creates a new failure point.&lt;/p&gt;

&lt;p&gt;A handoff table should define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a handoff is allowed&lt;/li&gt;
&lt;li&gt;Which agent receives the task&lt;/li&gt;
&lt;li&gt;What evidence must be passed along&lt;/li&gt;
&lt;li&gt;Which cases block the handoff&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A research agent should not hand work to a writing agent by saying "I found the sources." It should pass source links, key claims, contradictions, uncertain points, and the reason those sources are relevant.&lt;/p&gt;

&lt;p&gt;A coding agent should not hand work to a release agent by saying "fixed." It should pass the diff, tests run, tests skipped, remaining risk, and rollback path.&lt;/p&gt;

&lt;p&gt;That evidence is the difference between agentic collaboration and a chain of guesses.&lt;/p&gt;

&lt;p&gt;The more agents you add, the more important this becomes. Without evidence-based handoffs, every downstream agent has to infer what the upstream agent meant. That makes failures harder to debug and easier to repeat.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Treat trace as a product feature
&lt;/h2&gt;

&lt;p&gt;When an agent workflow fails, the least useful conclusion is "the model was unreliable." That may be true, but it does not tell you what to improve.&lt;/p&gt;

&lt;p&gt;A useful trace should capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The task goal&lt;/li&gt;
&lt;li&gt;The input and source material&lt;/li&gt;
&lt;li&gt;The rules that were active&lt;/li&gt;
&lt;li&gt;The tools that were called&lt;/li&gt;
&lt;li&gt;The files or external systems touched&lt;/li&gt;
&lt;li&gt;The verification result&lt;/li&gt;
&lt;li&gt;The failure reason&lt;/li&gt;
&lt;li&gt;The rule or workflow change suggested for next time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You do not need a complex observability backend on day one. A structured Markdown worklog or JSONL trace can be enough. What matters is that failures become training material for the system.&lt;/p&gt;

&lt;p&gt;If a failure came from a vague task, improve the task entry contract. If a failure came from excessive permission, tighten the tool policy. If a failure came from a weak handoff, change the handoff table. If a failure came from missing verification, add a test or preflight check.&lt;/p&gt;

&lt;p&gt;This is how an agent workflow gets more reliable over time. Not by hoping the next model will magically be better, but by converting failures into rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Start with one real workflow
&lt;/h2&gt;

&lt;p&gt;The wrong move is to design a giant multi-agent platform first. The better move is to choose one low-risk but real workflow.&lt;/p&gt;

&lt;p&gt;Good first workflows include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updating documentation after a code change&lt;/li&gt;
&lt;li&gt;Reviewing a pull request for missing tests&lt;/li&gt;
&lt;li&gt;Classifying issues into actionable buckets&lt;/li&gt;
&lt;li&gt;Producing a release note from a verified diff&lt;/li&gt;
&lt;li&gt;Preparing a technical article draft with source links and disclosure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For each workflow, define the entry contract, tool policy, handoff table, and trace format. Then run it repeatedly. The goal is not to prove that agents are impressive. The goal is to prove that the workflow reduces repeated coordination while preserving reviewability and rollback.&lt;/p&gt;

&lt;p&gt;If a small workflow becomes stable, expand it. If it keeps failing, the trace should tell you whether the problem is the task, the permissions, the handoff, the verification, or the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical takeaway
&lt;/h2&gt;

&lt;p&gt;OpenAI Agents Python is a useful foundation for building agent workflows. But the production value comes from the control plane around it.&lt;/p&gt;

&lt;p&gt;Before adding more agents, define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How tasks enter the system&lt;/li&gt;
&lt;li&gt;Which tools are allowed under which conditions&lt;/li&gt;
&lt;li&gt;What evidence is required for handoff&lt;/li&gt;
&lt;li&gt;How traces feed back into better rules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is less exciting than a flashy demo, but it is the difference between an agent that merely runs and an agent workflow that a team can actually trust.&lt;/p&gt;

&lt;p&gt;Disclosure: this is an unofficial Doramagic technical note. It is not an official OpenAI publication and does not represent the upstream project unless explicitly stated by that project.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>architecture</category>
      <category>openai</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>Adopt Codex CLI only after you can explain the source, boundary, review, and rollback model</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Tue, 26 May 2026 03:51:27 +0000</pubDate>
      <link>https://dev.to/doramagic/adopt-codex-cli-only-after-you-can-explain-the-source-boundary-review-and-rollback-model-5bf1</link>
      <guid>https://dev.to/doramagic/adopt-codex-cli-only-after-you-can-explain-the-source-boundary-review-and-rollback-model-5bf1</guid>
      <description>&lt;p&gt;A lot of teams want to treat Codex CLI as a shortcut: install it, point it at a repository, and hope it saves time immediately. That framing is too shallow for a real codebase.&lt;/p&gt;

&lt;p&gt;If you are adopting Codex CLI in a team that cares about quality, the real question is not whether it can write code. The real question is whether the workflow around it is explicit enough to be reviewed, bounded, and reversed. Without those four properties, the tool can create output faster, but it cannot create confidence faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Start from the source of truth
&lt;/h2&gt;

&lt;p&gt;Before any assistant touches a repository, someone needs to answer a basic question: what is the current source of truth?&lt;/p&gt;

&lt;p&gt;That sounds trivial, but it is the first place AI-assisted workflows drift. Teams often test a tool against a repository snapshot, an old issue thread, or a blog post that no longer matches the current implementation. Once that happens, every next step becomes fragile because the assistant is reasoning from stale input.&lt;/p&gt;

&lt;p&gt;A useful adoption process starts by checking three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the repository or package is the current one&lt;/li&gt;
&lt;li&gt;the installation or usage instructions still match reality&lt;/li&gt;
&lt;li&gt;the command being run is documented for this version, not an older release&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If those checks fail, do not treat the tool as “mostly correct.” Treat the source as unresolved. In practice, a fast assistant reading the wrong upstream source is not a productivity gain. It is a faster way to compound confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Make the permission boundary visible
&lt;/h2&gt;

&lt;p&gt;The second boundary is operational scope.&lt;/p&gt;

&lt;p&gt;A team should be able to answer, in plain language, what the tool may read, what it may change, what it may execute, and what requires human approval. If those boundaries are hidden in the operator’s head, the workflow is already too loose.&lt;/p&gt;

&lt;p&gt;This matters because the early demo of an AI coding tool is misleading. It feels safe when it is only producing text. The risk appears when the same tool is allowed to inspect files, write patches, run shell commands, or touch directories that nobody explicitly intended to expose.&lt;/p&gt;

&lt;p&gt;A mature setup does not see permission boundaries as friction. It sees them as the thing that makes the workflow repeatable. The point is not to maximize what the tool can do. The point is to define exactly what it can do so the rest of the team can trust the result.&lt;/p&gt;

&lt;p&gt;A practical rule is simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;read access should be explicit&lt;/li&gt;
&lt;li&gt;write access should be narrow&lt;/li&gt;
&lt;li&gt;destructive actions should require confirmation&lt;/li&gt;
&lt;li&gt;privileged steps should be isolated from exploratory steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you cannot describe the boundary clearly, you do not yet have a production workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Put review back at the center
&lt;/h2&gt;

&lt;p&gt;The third boundary is review.&lt;/p&gt;

&lt;p&gt;This is where many teams get the biggest false win. A tool produces a patch quickly, and the team celebrates the speed. But if the patch is hard to inspect, hard to compare, or hard to reject, the tool has not reduced cost. It has merely moved cost into a later phase when context is already lower.&lt;/p&gt;

&lt;p&gt;Review is not a ceremonial step after generation. Review is part of the product.&lt;/p&gt;

&lt;p&gt;A good AI-assisted workflow makes the output:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy to inspect&lt;/li&gt;
&lt;li&gt;easy to compare&lt;/li&gt;
&lt;li&gt;easy to reject&lt;/li&gt;
&lt;li&gt;easy to refine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means the assistant should be optimized for diffs, not theatrics. If a change cannot be understood in a short review cycle, the workflow is not ready. The best sign of maturity is not that the assistant can generate a large patch. It is that a normal engineer can explain why the patch is acceptable in minutes.&lt;/p&gt;

&lt;p&gt;This is also where teams should insist on a clear evidence trail. If a change passes, where is the proof? If it fails, what specifically failed? If the answer is vague, the workflow is too soft to rely on.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Treat rollback as part of the design
&lt;/h2&gt;

&lt;p&gt;The fourth boundary is rollback.&lt;/p&gt;

&lt;p&gt;Rollback is often treated like cleanup after the fact. That is the wrong mental model. Rollback is part of the design of the workflow itself.&lt;/p&gt;

&lt;p&gt;Every real repository will eventually see a bad assumption, an incomplete refactor, a broken command, or a change that looked reasonable until someone reviewed it closely. The question is not whether mistakes will happen. The question is whether recovery is fast enough that the team stays calm.&lt;/p&gt;

&lt;p&gt;A rollback-capable workflow has three qualities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you can identify the last safe state&lt;/li&gt;
&lt;li&gt;you can return to it quickly&lt;/li&gt;
&lt;li&gt;you can explain what changed without guessing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If those three qualities are not present, then every experiment becomes a one-way door. That is too expensive for a solo team and unacceptable for a shared codebase.&lt;/p&gt;

&lt;p&gt;This is the difference between “the tool can help me write code” and “the tool can participate in an engineering system.” The first is a demo. The second is a capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Use a better adoption question
&lt;/h2&gt;

&lt;p&gt;The wrong question is: can the tool generate good code?&lt;/p&gt;

&lt;p&gt;The better question is: can the team trust the workflow around the tool?&lt;/p&gt;

&lt;p&gt;That better question breaks down into four operational checks:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can we identify the source of truth before the tool starts?&lt;/li&gt;
&lt;li&gt;Can we define the tool’s authority without ambiguity?&lt;/li&gt;
&lt;li&gt;Can we tell whether the change is acceptable in under five minutes?&lt;/li&gt;
&lt;li&gt;Can we return to the last known good state without guesswork?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Those are more useful than any demo because they turn a vague technology discussion into a reviewable operating standard.&lt;/p&gt;

&lt;p&gt;If any of those questions is “not yet,” the right answer is not to push harder on the model. The right answer is to fix the workflow boundary first.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. What a real adoption path looks like
&lt;/h2&gt;

&lt;p&gt;For a real team, the best rollout is boring on purpose.&lt;/p&gt;

&lt;p&gt;It should begin with a narrow, reversible use case. Not a magical broad permission set. Not an open-ended “let’s see what happens.” A narrow path where the output is easy to inspect and easy to undo.&lt;/p&gt;

&lt;p&gt;A good adoption path usually looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;choose one repository&lt;/li&gt;
&lt;li&gt;define one class of change&lt;/li&gt;
&lt;li&gt;define one reviewer&lt;/li&gt;
&lt;li&gt;define one rollback path&lt;/li&gt;
&lt;li&gt;measure whether the same standard holds on the second and third run&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The repetition matters. The first successful run is easy to overvalue because everybody is paying attention. The real test is the second, third, and tenth run, when the novelty is gone and the tool has to fit ordinary work.&lt;/p&gt;

&lt;p&gt;If the workflow does not survive repetition, it is not ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Why this matters for the team, not just the tool
&lt;/h2&gt;

&lt;p&gt;This approach is bigger than Codex CLI.&lt;/p&gt;

&lt;p&gt;Any AI coding tool used in a real repository should be evaluated the same way. The issue is not which vendor is cleverer. The issue is whether the team can maintain control while gaining speed.&lt;/p&gt;

&lt;p&gt;When something goes wrong, a mature team should not debate the intelligence of the tool. It should inspect the broken boundary:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;was the source stale?&lt;/li&gt;
&lt;li&gt;were the permissions too broad?&lt;/li&gt;
&lt;li&gt;was the review path unclear?&lt;/li&gt;
&lt;li&gt;was rollback not guaranteed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That framing reduces emotional noise and makes the problem fixable. It also makes the workflow easier to teach to other engineers because the rules are operational, not mystical.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. The shortest useful conclusion
&lt;/h2&gt;

&lt;p&gt;Codex CLI is worth adopting only when the surrounding workflow is already disciplined enough to keep it honest.&lt;/p&gt;

&lt;p&gt;If source is verified, permissions are bounded, review is visible, and rollback is guaranteed, the tool becomes useful. If not, it just helps you create uncertainty faster.&lt;/p&gt;

&lt;p&gt;Doramagic project page: &lt;a href="https://doramagic.ai/en/projects/codex/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/codex/&lt;/a&gt;&lt;br&gt;
Manual: &lt;a href="https://doramagic.ai/en/projects/codex/manual/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/codex/manual/&lt;/a&gt;&lt;br&gt;
Source repository: &lt;a href="https://github.com/openai/codex" rel="noopener noreferrer"&gt;https://github.com/openai/codex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Non-official note: this is a Doramagic-made, non-official AI capability package. Unless the upstream project states otherwise, it does not represent an official upstream release.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivitydevops</category>
    </item>
    <item>
      <title>Codex CLI is useful only when the workflow around it is reviewable and reversible</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Tue, 26 May 2026 03:45:42 +0000</pubDate>
      <link>https://dev.to/doramagic/codex-cli-is-useful-only-when-the-workflow-around-it-is-reviewable-and-reversible-43l8</link>
      <guid>https://dev.to/doramagic/codex-cli-is-useful-only-when-the-workflow-around-it-is-reviewable-and-reversible-43l8</guid>
      <description>&lt;p&gt;A lot of teams still evaluate AI coding tools by asking whether the tool can generate code quickly. That is a useful question, but it is not the one that decides whether the tool can enter a real workflow.&lt;/p&gt;

&lt;p&gt;If you plan to put Codex CLI into a live repository, the real question is whether the surrounding process is reviewable, bounded, and reversible. Without those three properties, fast code generation is only a faster way to create uncertainty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the source boundary
&lt;/h2&gt;

&lt;p&gt;The first thing a team needs is source clarity.&lt;/p&gt;

&lt;p&gt;Is the repository current? Are the docs aligned with the implementation? Is the installation guide still valid? Is the command you are about to run documented for the current version, not for an older release buried in an issue thread? If the source chain is stale, every later decision is built on a false premise.&lt;/p&gt;

&lt;p&gt;This sounds basic, but it is where a lot of AI tool adoption goes wrong. People test the tool on whatever seems to work, then discover later that the official docs and the actual behavior drifted apart months ago. A fast assistant reading the wrong repository or an outdated example is not an efficiency gain. It is a faster way to multiply confusion.&lt;/p&gt;

&lt;p&gt;The practical move is simple: verify the current upstream source before you trust the assistant’s output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Define the permission boundary before you try to save time
&lt;/h2&gt;

&lt;p&gt;The second boundary is operational scope.&lt;/p&gt;

&lt;p&gt;What can the tool read? What can it modify? What commands can it execute? Which directories are in scope? Which actions require human confirmation? Which steps must be blocked until a reviewer looks at them?&lt;/p&gt;

&lt;p&gt;Teams often skip this because the tool feels helpful during the first demo. That is exactly the danger. An AI coding tool becomes risky when everyone assumes it is “just helping” while it is already touching files, shell commands, or environments that nobody explicitly intended to expose.&lt;/p&gt;

&lt;p&gt;Good teams do not treat permission boundaries as friction. They treat them as the thing that makes the rest of the workflow usable.&lt;/p&gt;

&lt;p&gt;A boundary is not a limitation on productivity. It is what turns productivity from a guess into a repeatable process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Put review back at the center
&lt;/h2&gt;

&lt;p&gt;The third boundary is review.&lt;/p&gt;

&lt;p&gt;If a change cannot be inspected in a diff, if the intent cannot be understood from the patch, or if the test output cannot explain what changed, then the AI has not saved time. It has just moved the cost to a later moment when the team has less context.&lt;/p&gt;

&lt;p&gt;The best workflow is not the one that makes the biggest patch quickly. It is the one that makes the patch easy to evaluate.&lt;/p&gt;

&lt;p&gt;That means the output needs to be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;easy to inspect,&lt;/li&gt;
&lt;li&gt;easy to compare,&lt;/li&gt;
&lt;li&gt;easy to reject,&lt;/li&gt;
&lt;li&gt;and easy to refine.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, the tool should make review easier, not optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rollback is not cleanup; rollback is part of the design
&lt;/h2&gt;

&lt;p&gt;The fourth boundary is rollback.&lt;/p&gt;

&lt;p&gt;Every real workflow will eventually see a bad edit, a wrong assumption, a partial refactor, a failed test run, or a change that looks fine until a reviewer pushes back. The question is not whether failure will happen. The question is whether recovery is simple enough that the team stays calm.&lt;/p&gt;

&lt;p&gt;A good rollback path means you can identify the last safe state, return to it quickly, and explain what changed. Without that, every trial becomes a one-way door.&lt;/p&gt;

&lt;p&gt;This is where many tools look stronger than they are. They can produce code, but they cannot produce confidence. And in a real team, confidence comes from being able to reverse the move if it turns out to be the wrong move.&lt;/p&gt;

&lt;h2&gt;
  
  
  A better evaluation model
&lt;/h2&gt;

&lt;p&gt;Instead of asking, “Did it generate good code?”, ask these four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Can we identify the exact source of truth before the tool starts?&lt;/li&gt;
&lt;li&gt;Can we define the tool’s authority without ambiguity?&lt;/li&gt;
&lt;li&gt;Can we tell whether the change is acceptable in under five minutes?&lt;/li&gt;
&lt;li&gt;Can we return to the last known good state without guesswork?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Those questions are more useful than any demo. They shift the discussion from vague enthusiasm to operational control.&lt;/p&gt;

&lt;p&gt;That is the standard I would apply to any AI coding tool, not just Codex CLI. It also makes team coordination easier. When something goes wrong, you do not argue about the tool’s intelligence. You inspect the broken boundary: source, permissions, review, or rollback.&lt;/p&gt;

&lt;h2&gt;
  
  
  What “good” actually looks like
&lt;/h2&gt;

&lt;p&gt;A mature team does not need a heroic pilot project to justify the tool. It needs a repeatable path that a normal engineer can follow on an ordinary day.&lt;/p&gt;

&lt;p&gt;The team should be able to say:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why a change was accepted,&lt;/li&gt;
&lt;li&gt;why a change was rejected,&lt;/li&gt;
&lt;li&gt;where the evidence lives,&lt;/li&gt;
&lt;li&gt;and how to undo it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If that conversation takes more than a few minutes, the workflow is still too vague.&lt;/p&gt;

&lt;p&gt;That is why I treat Codex CLI as a capability asset, not as a magical terminal replacement. It is useful only when the surrounding system makes its outputs inspectable and reversible. The real win is not speed by itself. The real win is speed with control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for day-to-day adoption
&lt;/h2&gt;

&lt;p&gt;A lot of teams overestimate the importance of the first successful run.&lt;/p&gt;

&lt;p&gt;The first run is easy to celebrate because the context is fresh and everybody is paying attention. The real test is whether the same standard can hold on the second, third, and tenth run, when nobody is excited anymore and the tool has to fit into actual work.&lt;/p&gt;

&lt;p&gt;That is where the source boundary, permission boundary, review boundary, and rollback boundary become practical rather than theoretical. They stop being abstract ideas and become the difference between a tool that integrates and a tool that merely impresses.&lt;/p&gt;

&lt;p&gt;If the workflow cannot survive repetition, it is not ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  The shortest useful conclusion
&lt;/h2&gt;

&lt;p&gt;Codex CLI should not be adopted because it looks clever in a demo. It should be adopted because the team can trust the workflow around it.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;source is verified,&lt;/li&gt;
&lt;li&gt;permissions are bounded,&lt;/li&gt;
&lt;li&gt;review is visible,&lt;/li&gt;
&lt;li&gt;rollback is guaranteed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If those four things are true, the tool becomes useful.&lt;br&gt;
If they are not, the tool just creates faster uncertainty.&lt;/p&gt;

&lt;p&gt;Doramagic project page: &lt;a href="https://doramagic.ai/en/projects/codex/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/codex/&lt;/a&gt;&lt;br&gt;
Manual: &lt;a href="https://doramagic.ai/en/projects/codex/manual/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/codex/manual/&lt;/a&gt;&lt;br&gt;
Source repository: &lt;a href="https://github.com/openai/codex" rel="noopener noreferrer"&gt;https://github.com/openai/codex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Non-official note: this is a Doramagic-made, non-official AI capability package. Unless the upstream project states otherwise, it does not represent an official upstream release.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>devops</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Codex CLI Is Useful Only When the Workflow Around It Is Reviewable and Reversible</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Mon, 25 May 2026 02:26:16 +0000</pubDate>
      <link>https://dev.to/doramagic/codex-cli-is-useful-only-when-the-workflow-around-it-is-reviewable-and-reversible-533g</link>
      <guid>https://dev.to/doramagic/codex-cli-is-useful-only-when-the-workflow-around-it-is-reviewable-and-reversible-533g</guid>
      <description>&lt;h1&gt;
  
  
  Why Codex CLI is only useful when the workflow around it is reviewable and reversible
&lt;/h1&gt;

&lt;p&gt;A lot of teams evaluate an AI coding tool the wrong way.&lt;/p&gt;

&lt;p&gt;They install it, ask it to change a file, watch it produce something plausible, and then conclude the tool is ready for real work. That conclusion is too optimistic. A terminal coding agent is not useful because it can generate text that looks like code. It becomes useful only when the workflow around it is strong enough to survive a bad run, a partial run, or a misunderstood instruction.&lt;/p&gt;

&lt;p&gt;That is the practical lesson I keep seeing with tools like Codex CLI: the capability itself is not the product. The capability plus the source boundary, permission boundary, review path, test path, and rollback path is the product.&lt;/p&gt;

&lt;p&gt;If your team skips that layer, you are not adopting an AI workflow. You are importing uncertainty into a place where you used to have discipline.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first mistake: treating the demo as the operating model
&lt;/h2&gt;

&lt;p&gt;A demo is optimized to look good. A real workflow is optimized to fail safely.&lt;/p&gt;

&lt;p&gt;That difference matters more than the model brand, the prompt style, or the UI polish. A terminal agent can make a small repository feel magical because the first few tasks are usually easy: rename a function, add a README section, move a helper, adjust a test expectation. Those are not the hard cases. The hard cases are the ones where the tool touches the wrong directory, edits the wrong branch, oversteps its permissions, or silently assumes a convention that does not exist in your repo.&lt;/p&gt;

&lt;p&gt;A strong evaluation therefore starts with a different question:&lt;/p&gt;

&lt;p&gt;What exactly must be true before I trust this tool in a real repository?&lt;/p&gt;

&lt;p&gt;For me, the answer has five parts.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;I can verify the source.&lt;/li&gt;
&lt;li&gt;I can define what the tool is allowed to read and change.&lt;/li&gt;
&lt;li&gt;I can inspect every meaningful change in git.&lt;/li&gt;
&lt;li&gt;I can run the relevant tests before I accept the output.&lt;/li&gt;
&lt;li&gt;I can revert the whole trial without ambiguity.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without those five pieces, the tool may still be impressive, but it is not yet operational.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source verification is not a nice-to-have
&lt;/h2&gt;

&lt;p&gt;The first thing to check is not whether the tool can write code. The first thing to check is whether you are following the right source.&lt;/p&gt;

&lt;p&gt;That sounds obvious, but it is where many teams get sloppy. They pull install instructions from an old blog post, copy a workflow from a stale README, or rely on memory from an earlier version. With AI tools, that creates a subtle failure mode: the model appears capable, but the documentation, flags, defaults, or safeguards may have changed since the last time you looked.&lt;/p&gt;

&lt;p&gt;A reviewable workflow begins with source identity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which repository is the canonical upstream?&lt;/li&gt;
&lt;li&gt;Which version or branch are you actually using?&lt;/li&gt;
&lt;li&gt;Which docs are current, and which are historical?&lt;/li&gt;
&lt;li&gt;Is the install path consistent with the tool you are actually running?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your answer to any of those is fuzzy, stop there. Do not move on to performance, prompt tuning, or automation. Those are downstream concerns. Source mismatch is upstream failure.&lt;/p&gt;

&lt;p&gt;For a team like mine, the practical rule is simple: before any tool touches a production repository, I want a source page that I can point to and a local note that says exactly what was verified. If I cannot answer “what changed since the last run?”, I am not ready to use the tool again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Permission boundaries define whether the tool is useful or risky
&lt;/h2&gt;

&lt;p&gt;The second mistake is treating permissions as a UI problem rather than a system design problem.&lt;/p&gt;

&lt;p&gt;Coding agents can be dangerous for reasons that have nothing to do with raw code quality. They can read files too widely, write to the wrong place, generate edits based on outdated assumptions, or run commands that have side effects you did not intend. The risk is not just “bad code.” The risk is “bad code plus uncontrolled scope.”&lt;/p&gt;

&lt;p&gt;A real workflow needs permission boundaries that are explicit enough to explain to another engineer in one minute.&lt;/p&gt;

&lt;p&gt;Questions I want answered before a trial:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What directories can the agent inspect?&lt;/li&gt;
&lt;li&gt;What files can it edit?&lt;/li&gt;
&lt;li&gt;Can it execute shell commands?&lt;/li&gt;
&lt;li&gt;If so, which commands are safe and which commands require review?&lt;/li&gt;
&lt;li&gt;When should the agent stop and ask for human confirmation?&lt;/li&gt;
&lt;li&gt;What is the smallest safe target repository for the first trial?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where many teams confuse speed with safety. They want the agent to move fast, so they grant broad access. That is backwards. The smaller and clearer the permission boundary, the faster the team can actually move, because the review burden drops.&lt;/p&gt;

&lt;p&gt;I would rather let a tool work in a narrow sandbox and prove itself than give it broad access and spend the rest of the week trying to explain what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  The review path is the real value
&lt;/h2&gt;

&lt;p&gt;If an AI coding tool leaves you with code you cannot inspect, it is not solving engineering work. It is generating opaque artifacts.&lt;/p&gt;

&lt;p&gt;The most useful thing about a coding agent is not the code it writes. It is the fact that it can be forced into the same review path as a human contributor:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the diff is visible,&lt;/li&gt;
&lt;li&gt;the change is scoped,&lt;/li&gt;
&lt;li&gt;the intent is explainable,&lt;/li&gt;
&lt;li&gt;and the reviewer can reject it without drama.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the standard. If the output cannot go through a normal git review, it is not ready for a real repo.&lt;/p&gt;

&lt;p&gt;A good workflow is one where the output can be answered with a series of concrete checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What file changed?&lt;/li&gt;
&lt;li&gt;Why did it change?&lt;/li&gt;
&lt;li&gt;What is the behavioral difference?&lt;/li&gt;
&lt;li&gt;Is the new behavior covered by a test?&lt;/li&gt;
&lt;li&gt;Does the change touch a risky path?&lt;/li&gt;
&lt;li&gt;What happens if I reject this patch?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those questions sound basic, but they are the difference between a coding assistant and a production habit.&lt;/p&gt;

&lt;p&gt;The agent should not be evaluated on whether it can produce a long answer. It should be evaluated on whether the answer collapses cleanly into an inspectable diff and a credible explanation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests are not a formality
&lt;/h2&gt;

&lt;p&gt;A coding agent that does not live inside your test loop is just a fast way to create plausible-looking changes.&lt;/p&gt;

&lt;p&gt;That is the part teams underestimate. They see a change that compiles or looks reasonable in the editor and assume the work is done. But engineering value is not “the patch looks okay.” Engineering value is “the patch survives the relevant validation path.”&lt;/p&gt;

&lt;p&gt;For different repos, that validation path may mean different things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unit tests,&lt;/li&gt;
&lt;li&gt;integration tests,&lt;/li&gt;
&lt;li&gt;type checks,&lt;/li&gt;
&lt;li&gt;linting,&lt;/li&gt;
&lt;li&gt;snapshot updates,&lt;/li&gt;
&lt;li&gt;smoke tests,&lt;/li&gt;
&lt;li&gt;or a specific manual acceptance check.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important thing is not which test style you use. The important thing is that you know, ahead of time, what evidence counts as acceptance.&lt;/p&gt;

&lt;p&gt;That means every agent workflow should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What tests should run after the change?&lt;/li&gt;
&lt;li&gt;Which tests are mandatory versus optional?&lt;/li&gt;
&lt;li&gt;What failure is acceptable during the trial, and what failure is a stop signal?&lt;/li&gt;
&lt;li&gt;What is the smallest set of commands that proves the change is safe enough?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without that, the agent may feel productive, but your repo is accumulating unverified state.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rollback is the boundary that separates a trial from a commitment
&lt;/h2&gt;

&lt;p&gt;This is the part most teams postpone, and the part they regret postponing.&lt;/p&gt;

&lt;p&gt;If a trial with an AI coding tool goes wrong, you need a rollback path that is boring and fast. Boring means it is already decided. Fast means you do not need to re-derive the reversal under pressure.&lt;/p&gt;

&lt;p&gt;A real rollback plan should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the branch or workspace you used,&lt;/li&gt;
&lt;li&gt;the exact command or mechanism to undo the trial,&lt;/li&gt;
&lt;li&gt;the files that were allowed to change,&lt;/li&gt;
&lt;li&gt;the commands that should be reversed or replayed,&lt;/li&gt;
&lt;li&gt;and the notes that explain why the trial failed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The absence of rollback is what turns experimentation into operational debt.&lt;/p&gt;

&lt;p&gt;I do not think “reversible” is a nice philosophical ideal. I think it is the minimum condition for using a coding agent in a serious repository. If you cannot explain how to back out, you have not actually bounded the trial.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reviewable and reversible is a better adoption criterion than “smart”
&lt;/h2&gt;

&lt;p&gt;One of the reasons AI coding discussions become noisy is that people ask the wrong question. They ask whether the tool is smart enough. That question is too vague to be useful.&lt;/p&gt;

&lt;p&gt;A more practical question is:&lt;/p&gt;

&lt;p&gt;Can my team understand, verify, and undo what the tool did?&lt;/p&gt;

&lt;p&gt;That question is better because it maps to engineering controls instead of vague capability claims.&lt;/p&gt;

&lt;p&gt;If the answer is yes, the tool may genuinely improve throughput.&lt;/p&gt;

&lt;p&gt;If the answer is no, the tool may still be impressive, but it does not belong in a critical workflow yet.&lt;/p&gt;

&lt;p&gt;This applies whether the tool is used for a one-off change, a repetitive maintenance task, or a larger refactor. The core adoption pattern does not change:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;verify the source,&lt;/li&gt;
&lt;li&gt;define the permission boundary,&lt;/li&gt;
&lt;li&gt;keep the diff reviewable,&lt;/li&gt;
&lt;li&gt;keep the validation path explicit,&lt;/li&gt;
&lt;li&gt;keep rollback easy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Anything beyond that is optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this means in practice for Codex CLI
&lt;/h2&gt;

&lt;p&gt;I like Codex CLI for the same reason I like any serious engineering tool: it can be made useful if the system around it is disciplined.&lt;/p&gt;

&lt;p&gt;That discipline is not decorative. It is the product.&lt;/p&gt;

&lt;p&gt;When I evaluate a terminal coding agent, I want to see a setup that makes the following easy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;confirm the upstream source,&lt;/li&gt;
&lt;li&gt;read the install path once,&lt;/li&gt;
&lt;li&gt;understand the permission boundary,&lt;/li&gt;
&lt;li&gt;inspect the diff in git,&lt;/li&gt;
&lt;li&gt;run the right tests,&lt;/li&gt;
&lt;li&gt;and roll back if the trial does not hold up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If those things are hard, the tool is not ready for the way real teams work.&lt;/p&gt;

&lt;p&gt;That is why I would not frame adoption as “Can Codex CLI write code?”&lt;br&gt;
I would frame it as “Can Codex CLI operate inside a workflow that is reviewable and reversible?”&lt;/p&gt;

&lt;p&gt;That is the difference between a useful capability and a flashy demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple acceptance checklist
&lt;/h2&gt;

&lt;p&gt;If I were deciding whether to trust a new coding agent in a repo, I would want this checklist to be true:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I know the canonical upstream source.&lt;/li&gt;
&lt;li&gt;I know the current docs match the current tool.&lt;/li&gt;
&lt;li&gt;I know what the agent can read and edit.&lt;/li&gt;
&lt;li&gt;I know what commands are allowed.&lt;/li&gt;
&lt;li&gt;I can review every change in git.&lt;/li&gt;
&lt;li&gt;I know which tests prove the patch is valid.&lt;/li&gt;
&lt;li&gt;I can revert the trial cleanly.&lt;/li&gt;
&lt;li&gt;I can explain the trial to another engineer without hand-waving.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is enough to start.&lt;/p&gt;

&lt;p&gt;If you cannot satisfy that checklist, the tool may still be worth experimenting with, but it is not ready to become part of your normal workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final judgment
&lt;/h2&gt;

&lt;p&gt;My view is simple: Codex CLI is useful only when the surrounding workflow is reviewable and reversible.&lt;/p&gt;

&lt;p&gt;That sounds strict, but it is actually the friendly standard. It keeps the tool honest, keeps the team in control, and prevents a promising demo from becoming a maintenance problem.&lt;/p&gt;

&lt;p&gt;The right adoption path is not to ask the agent to do more. It is to ask the workflow to prove more.&lt;/p&gt;

&lt;p&gt;If the workflow can prove source identity, permission boundary, reviewability, testability, and rollback discipline, then the agent earns its place.&lt;/p&gt;

&lt;p&gt;If it cannot, then the tool is not the problem. The workflow is.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Codex CLI needs a rollback-ready workflow, not just a quick install</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Sun, 24 May 2026 03:05:35 +0000</pubDate>
      <link>https://dev.to/doramagic/codex-cli-needs-a-rollback-ready-workflow-not-just-a-quick-install-k0d</link>
      <guid>https://dev.to/doramagic/codex-cli-needs-a-rollback-ready-workflow-not-just-a-quick-install-k0d</guid>
      <description>&lt;p&gt;When teams evaluate Codex CLI, the first questions are usually simple: can we install it, and can it help with code changes?&lt;/p&gt;

&lt;p&gt;Those questions matter, but they are not enough.&lt;/p&gt;

&lt;p&gt;A coding agent becomes useful in a real repository only when the workflow around it is reviewable and reversible.&lt;/p&gt;

&lt;p&gt;That means checking a few things before treating the tool as production-adjacent:&lt;/p&gt;

&lt;p&gt;First, verify the source path.&lt;br&gt;
Make sure the repository, documentation, and install path you are following are actually the current upstream path and not a stale secondary summary.&lt;/p&gt;

&lt;p&gt;Second, define the permission boundary.&lt;br&gt;
What can the tool read, what can it edit, what commands can it run, and where must a human step in?&lt;/p&gt;

&lt;p&gt;Third, require a review path.&lt;br&gt;
A good result is not "the agent wrote code."&lt;br&gt;
A good result is "the change can be inspected in git, checked against tests, and rejected without confusion."&lt;/p&gt;

&lt;p&gt;Fourth, keep rollback discipline.&lt;br&gt;
If a trial goes wrong, the team should know the smallest safe environment, the expected output, and how to back out without leaving uncertain state behind.&lt;/p&gt;

&lt;p&gt;This is why Doramagic treats Codex CLI as more than a terminal AI demo.&lt;br&gt;
The useful part is the capability asset around it: source review, setup boundaries, validation checks, and rollback guidance.&lt;/p&gt;

&lt;p&gt;Project page:&lt;br&gt;
&lt;a href="https://doramagic.ai/en/projects/codex/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/codex/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source repository:&lt;br&gt;
&lt;a href="https://github.com/openai/codex" rel="noopener noreferrer"&gt;https://github.com/openai/codex&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an independent Doramagic resource pack. It is not an official upstream project release unless the upstream project says so.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>ai</category>
    </item>
    <item>
      <title>Aider clone signals point to rollback-ready coding contracts, not just better code generation</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Fri, 22 May 2026 17:39:52 +0000</pubDate>
      <link>https://dev.to/doramagic/aider-clone-signals-point-to-rollback-ready-coding-contracts-not-just-better-code-generation-ob6</link>
      <guid>https://dev.to/doramagic/aider-clone-signals-point-to-rollback-ready-coding-contracts-not-just-better-code-generation-ob6</guid>
      <description>&lt;p&gt;Today’s first high-quality Doramagic publishing topic is &lt;code&gt;Aider&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I am not treating the 2026-05-23 GitHub collection as a completed fact source. The live collection process stalled during the publishing window and did not write a &lt;code&gt;2026-05-23.jsonl&lt;/code&gt; file. This post therefore uses the newest available local metrics snapshot: the 2026-05-22 GitHub traffic file.&lt;/p&gt;

&lt;p&gt;In that snapshot, &lt;code&gt;doramagic-aider-pack&lt;/code&gt; had 4 views, 21 clones, and 21 unique cloners. This is not a large number, and it does not prove adoption. A clone can come from a batch scan, a script, a mirror, a one-off check, or a real evaluator. Treating clones as satisfaction would be a weak claim.&lt;/p&gt;

&lt;p&gt;The signal is still useful because Aider sits in a category that is easy to misunderstand. People often frame AI coding tools as “chatbots that write more code.” In actual engineering work, the valuable question is different: can the tool keep a code change inside a contract that is inspectable, reversible, and reviewable?&lt;/p&gt;

&lt;p&gt;The first layer of an AI coding tool is obvious. It turns a natural-language request into code changes. It can inspect files, propose patches, run tests, and iterate. That is useful, but it is not enough for daily engineering work. Teams also need to know what boundary the agent changed, what evidence it used, what it did not know, and what it will do when the first attempt fails.&lt;/p&gt;

&lt;p&gt;This is where Aider-style tools differ from ordinary code completion. They participate in the change loop. Once a tool participates in the change loop, it needs engineering discipline, not just generation ability.&lt;/p&gt;

&lt;p&gt;A reusable Aider capability pack should answer at least six questions.&lt;/p&gt;

&lt;p&gt;First, how does the agent establish the task boundary before editing?&lt;/p&gt;

&lt;p&gt;It should know which files are in scope, which directories are only references, which files must not be touched, and which existing changes may belong to the user. Without that rule, “can edit code” becomes “can change the whole repository.” For a small team or one-person company, that is especially dangerous because there may be no second reviewer waiting downstream.&lt;/p&gt;

&lt;p&gt;Second, what evidence must be captured before the patch?&lt;/p&gt;

&lt;p&gt;A good coding workflow should not begin with blind edits. It should record the branch, dirty worktree, relevant tests, existing failures, target files, entry points, configuration, and dependencies. Without this evidence, a later claim that the task is fixed may only mean that one narrow path happened to pass.&lt;/p&gt;

&lt;p&gt;Third, how small should the patch be?&lt;/p&gt;

&lt;p&gt;AI tools tend to produce large changes when the task is underspecified. Large changes can look productive, but they increase review cost and rollback risk. A better rule is: make the smallest verifiable change first, run the closest relevant check, then decide whether to expand scope. A capability pack should make that rhythm explicit instead of hoping the model chooses it.&lt;/p&gt;

&lt;p&gt;Fourth, how should failure narrow the search?&lt;/p&gt;

&lt;p&gt;Failing tests are not the problem. Guessing after failure is the problem. The agent should record the command, the error summary, the suspected cause, the next hypothesis, and why that hypothesis is better than the alternatives. Then failure becomes reusable evidence instead of an invisible chain of automated attempts.&lt;/p&gt;

&lt;p&gt;Fifth, when must the agent stop?&lt;/p&gt;

&lt;p&gt;Authentication, billing, database migrations, destructive scripts, production configuration, release actions, user privacy, and external publication are not ordinary coding steps. The agent should stop, explain the risk, propose the next action, and wait for confirmation. The stronger the tool becomes, the more important the stop rule becomes.&lt;/p&gt;

&lt;p&gt;Sixth, what proves the result?&lt;/p&gt;

&lt;p&gt;“Done” is not proof. A useful final state should include changed files, why the change was made, which checks were run, which checks were not run, remaining risks, and the next recommended action. Code that cannot be reviewed is just maintenance debt produced faster.&lt;/p&gt;

&lt;p&gt;For Doramagic, the lesson is that an Aider resource pack should not be a prompt collection. It should be a portable engineering contract. It should connect code generation, context reading, patch boundaries, verification commands, failure recovery, human confirmation, and final evidence into one reusable loop.&lt;/p&gt;

&lt;p&gt;More precisely, this is not just a prompt library. A high-quality Aider capability asset needs a source map that says which evidence came from upstream Aider, the Doramagic project page, and the local publishing metrics; host instructions that tell the agent how to read the repository, respect file scope, and protect the dirty worktree; a prompt preview that shows how the operator should describe a task; a pitfall log for large patches, accidental deletion, missing tests, and context mistakes; a boundary card for database changes, production configuration, account permissions, release actions, and external publication; eval or smoke check criteria for deciding whether the patch passed; a human manual with a review checklist; a test log that records what was and was not run; and a feedback path so failure becomes reusable knowledge.&lt;/p&gt;

&lt;p&gt;The decision rule should be explicit. GO when the task is scoped, reversible, and covered by a clear verification checklist. HOLD when requirements are vague, tests are missing, or file boundaries are unclear. NO_GO when the change touches production data, deletion, account authority, external publishing, or any action that cannot be safely rolled back. This pass/fail criteria is more useful than saying the model “seems to understand the code.”&lt;/p&gt;

&lt;p&gt;The limits also need to be visible. This is independent guidance, not official Aider documentation, and it should not claim to represent the upstream project. The pack should help an operator decide how to use an AI coding agent safely; it should not pretend that every repository, team policy, or production environment has the same risk boundary.&lt;/p&gt;

&lt;p&gt;That is also why a Doramagic Aider pack should not only explain “how to make Aider write code.” The stronger use case is explaining which tasks are safe for direct edits, which tasks should only produce candidate patches, when the agent must stop, and how each success or failure becomes reusable operating knowledge.&lt;/p&gt;

&lt;p&gt;Today’s metrics do not prove that &lt;code&gt;doramagic-aider-pack&lt;/code&gt; is successful. They only show that someone or some system is pulling on this type of capability. The better question to keep testing is whether users need a portable AI coding work contract that they can load, reuse, inspect, and verify, rather than another prompt that says “help me change this code.”&lt;/p&gt;

&lt;p&gt;source_asset_url:&lt;br&gt;
&lt;a href="https://github.com/Aider-AI/aider" rel="noopener noreferrer"&gt;https://github.com/Aider-AI/aider&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;doramagic_project_url:&lt;br&gt;
&lt;a href="https://doramagic.ai/en/projects/aider/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/aider/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an independent Doramagic resource pack. It is not an official Aider release unless the upstream project says so.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Chrome DevTools MCP traffic shows developers are checking operability, not hype</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Fri, 22 May 2026 07:16:02 +0000</pubDate>
      <link>https://dev.to/doramagic/chrome-devtools-mcp-traffic-shows-developers-are-checking-operability-not-hype-47i1</link>
      <guid>https://dev.to/doramagic/chrome-devtools-mcp-traffic-shows-developers-are-checking-operability-not-hype-47i1</guid>
      <description>&lt;p&gt;Today's first Doramagic publishing signal comes from &lt;code&gt;doramagic-chrome-devtools-mcp-pack&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the partial 2026-05-22 GitHub metrics snapshot, the repository had 44 views, 2 unique viewers, 120 clones, and 60 unique cloners. The more important signal is the path pattern: &lt;code&gt;traffic&lt;/code&gt; was opened 16 times, &lt;code&gt;commit-activity&lt;/code&gt; 10 times, the repository overview 8 times, and there were also visits to community health, pulse, README, README.zh-CN, branches, and contributors.&lt;/p&gt;

&lt;p&gt;I would not interpret this as satisfaction. A GitHub clone can come from real evaluation, a script, a mirror, a batch checker, or a one-off scan. Views and clones are not product love by themselves. But the path pattern still matters because it does not look like casual article reading. It looks like an operability and trust check.&lt;/p&gt;

&lt;p&gt;That distinction is important for Chrome DevTools MCP and browser-agent work.&lt;/p&gt;

&lt;p&gt;Browser automation creates an easy illusion: if an agent can open a page, click a button, read the DOM, and take a screenshot, then it can complete a real workflow. In practice, the hard part is not the click. The hard part is knowing the page state before the click, verifying the result after the click, and recovering when the page does something unexpected.&lt;/p&gt;

&lt;p&gt;A reusable UI acceptance chain has to answer several questions.&lt;/p&gt;

&lt;p&gt;First, what is the starting state?&lt;/p&gt;

&lt;p&gt;Is the user logged in? Is the active tab the target page? Has the page finished loading? Are cookies, permissions, language settings, cached state, region, popups, or experiments affecting the result? If this state is not recorded, a successful run may be impossible to reproduce.&lt;/p&gt;

&lt;p&gt;Second, what counts as verification?&lt;/p&gt;

&lt;p&gt;Many browser agents stop at "the page looks fine." That is not acceptance. Acceptance needs inspectable evidence: URL, key DOM state, screenshot, console errors, failed network requests, form state, enabled buttons, post-submit confirmation, public URL, or dashboard status. Without evidence, automation is just an unaudited action.&lt;/p&gt;

&lt;p&gt;Third, where is the action boundary and what are the limits?&lt;/p&gt;

&lt;p&gt;Chrome DevTools MCP brings an agent closer to a real browser session. That increases capability, but it also increases risk. Login, publish, delete, submit, pay, authorize, upload, or change account settings are not ordinary clicks. A context pack has to say which actions can be automated, which actions require human confirmation, and which actions should stop at draft or preview.&lt;/p&gt;

&lt;p&gt;Fourth, what is the recovery path?&lt;/p&gt;

&lt;p&gt;Real UI workflows fail in small ways: the editor is not focused, Markdown is swallowed by a rich-text field, the upload control rejects the file, a platform sends the post to moderation, a loading overlay never ends, labels change across languages, or an account-risk modal appears. A pack that only says "click publish" is not useful. A better pack tells the agent what to record, where to roll back, and how to decide whether the issue is content, account state, or platform behavior.&lt;/p&gt;

&lt;p&gt;This is why the Chrome DevTools MCP path data is interesting. Developers were not only opening the main page. They were checking traffic, commit activity, community health, pulse, branches, and contributors. That is closer to asking "can I trust and operationalize this?" than "is this a cool demo?"&lt;/p&gt;

&lt;p&gt;For Doramagic, the lesson is simple: AI capability packs should not be prompt collections, especially in high-side-effect domains like browser automation, UI acceptance, and publishing workflows. This is not just a prompt problem. A useful capability asset needs an operating contract:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what to observe before acting;&lt;/li&gt;
&lt;li&gt;what the agent may do alone;&lt;/li&gt;
&lt;li&gt;where it must stop for confirmation;&lt;/li&gt;
&lt;li&gt;what evidence it must leave behind;&lt;/li&gt;
&lt;li&gt;how it should recover from failure;&lt;/li&gt;
&lt;li&gt;how one successful run becomes a reusable workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why a Chrome DevTools MCP pack needs more than a README. README gives the human entry point. AGENTS.md and CLAUDE.md give host instructions. A source map shows what evidence the pack is based on. A prompt preview shows the intended interaction shape. Pitfall notes prevent repeated failure modes. A human manual gives the operator a checklist before loading the pack into a host. Evals define acceptance criteria. Boundary cards keep the agent from turning a powerful browser interface into uncontrolled action. Feedback notes help the next run improve instead of repeating the same failure.&lt;/p&gt;

&lt;p&gt;The stronger browser agents become, the less useful it is to optimize only for "can it click?" The better product direction is: can every step be observed, proven, reversed, and reviewed?&lt;/p&gt;

&lt;p&gt;Today's metrics do not prove that &lt;code&gt;doramagic-chrome-devtools-mcp-pack&lt;/code&gt; is successful. They do show that people are checking the right surface: not whether Chrome DevTools MCP is hot, but whether the capability can fit into a trustworthy execution chain.&lt;/p&gt;

&lt;p&gt;source_asset_url:&lt;br&gt;
&lt;a href="https://github.com/tangweigang-jpg/doramagic-chrome-devtools-mcp-pack" rel="noopener noreferrer"&gt;https://github.com/tangweigang-jpg/doramagic-chrome-devtools-mcp-pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;doramagic_project_url:&lt;br&gt;
&lt;a href="https://doramagic.ai/en/projects/chrome-devtools-mcp/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/chrome-devtools-mcp/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an independent Doramagic resource pack. It is not an official upstream project release unless the upstream project says so.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>A clone-heavy MCP pack signal is about inspectability, not marketing</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Thu, 21 May 2026 02:42:44 +0000</pubDate>
      <link>https://dev.to/doramagic/a-clone-heavy-mcp-pack-signal-is-about-inspectability-not-marketing-4a6k</link>
      <guid>https://dev.to/doramagic/a-clone-heavy-mcp-pack-signal-is-about-inspectability-not-marketing-4a6k</guid>
      <description>&lt;p&gt;Today's second Doramagic signal comes from &lt;code&gt;doramagic-prism-mcp-pack&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the 2026-05-21 GitHub metrics snapshot, the repository had only 1 view and 1 unique viewer, but 40 clones and 31 unique cloners. That ratio is easy to misread. It does not prove satisfaction. GitHub clone activity can include real evaluation, scripts, CI, mirrors, or one-time scanning. But it is still a useful signal because it suggests that some users or systems are not merely reading the page. They are pulling the pack into an environment where it can be inspected.&lt;/p&gt;

&lt;p&gt;For MCP-related resources, that distinction matters.&lt;/p&gt;

&lt;p&gt;MCP is often discussed as if connecting a server automatically gives an agent a reliable capability. In practice, the interface is only one layer. The agent still needs task context, host instructions, permission boundaries, input assumptions, error recovery behavior, and acceptance criteria. Without those, the model can call tools while still misunderstanding the job.&lt;/p&gt;

&lt;p&gt;A clone-heavy signal says the pack has to survive local inspection.&lt;/p&gt;

&lt;p&gt;First, the entrypoint must be obvious. A user should not have to guess whether to start with README, AGENTS.md, CLAUDE.md, the human manual, or a prompt preview. The pack should make the first useful path visible.&lt;/p&gt;

&lt;p&gt;Second, the boundary must be explicit. The resource should explain what belongs to the upstream project, what Doramagic added, and what the agent still cannot infer. This is especially important for MCP packs because official-status confusion is easy: a pack can be useful without being an official upstream release.&lt;/p&gt;

&lt;p&gt;Third, the pack should contain failure knowledge. If the agent gets missing credentials, an unavailable server, an incompatible host, or incomplete input data, the right behavior is not confident continuation. It is to stop, report the missing evidence, and give the user a recovery path.&lt;/p&gt;

&lt;p&gt;Fourth, the pack needs acceptance checks. A user cloning the repo is likely to inspect whether the files are actionable. That means commands, file boundaries, source maps, risk notes, and validation criteria matter more than polished positioning copy.&lt;/p&gt;

&lt;p&gt;This is why Doramagic treats a project pack as an inspectable capability asset. The goal is not to make a generic MCP advertisement. The goal is to let a user or agent host answer practical questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What task does this pack support?&lt;/li&gt;
&lt;li&gt;Which file should I load first?&lt;/li&gt;
&lt;li&gt;Which host instructions are available?&lt;/li&gt;
&lt;li&gt;Which parts come from upstream evidence?&lt;/li&gt;
&lt;li&gt;What should the agent refuse to guess?&lt;/li&gt;
&lt;li&gt;How do I know the task is actually complete?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;prism-mcp&lt;/code&gt; signal is not a victory claim. It is a reminder that clone-heavy behavior raises the bar for structure. If people pull the repository locally, the pack must be clear enough to be audited without a sales page.&lt;/p&gt;

&lt;p&gt;source_asset_url:&lt;br&gt;
&lt;a href="https://github.com/tangweigang-jpg/doramagic-prism-mcp-pack" rel="noopener noreferrer"&gt;https://github.com/tangweigang-jpg/doramagic-prism-mcp-pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;doramagic_project_url:&lt;br&gt;
&lt;a href="https://doramagic.ai/zh/projects/prism-mcp/" rel="noopener noreferrer"&gt;https://doramagic.ai/zh/projects/prism-mcp/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an independent Doramagic resource pack. It is not an official upstream project release unless the upstream project says so.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Complex AI frameworks need acceptance-ready context packs, not longer prompts</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Thu, 21 May 2026 02:41:19 +0000</pubDate>
      <link>https://dev.to/doramagic/complex-ai-frameworks-need-acceptance-ready-context-packs-not-longer-prompts-50cl</link>
      <guid>https://dev.to/doramagic/complex-ai-frameworks-need-acceptance-ready-context-packs-not-longer-prompts-50cl</guid>
      <description>&lt;p&gt;Today's first Doramagic publishing signal comes from &lt;code&gt;doramagic-langchain-pack&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the 2026-05-21 GitHub metrics snapshot, the repository had 12 views, 1 unique viewer, 28 clones, 23 unique cloners, and 2 stars. The more useful signal is not the raw count. It is the path pattern. The visitor did not only open the repository home. They also opened &lt;code&gt;01_PROMPT_PREVIEW.md&lt;/code&gt;, &lt;code&gt;03_PITFALL_LOG.md&lt;/code&gt;, &lt;code&gt;04_BOUNDARY_RISK_CARD.md&lt;/code&gt;, and &lt;code&gt;05_HUMAN_MANUAL.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That pattern matters because LangChain is not a simple library with one obvious happy path. It is a large, evolving framework with multiple subsystems: chains, retrieval, tools, agents, memory, callbacks, evaluation, integrations, and deployment concerns. A coding agent can sound confident while still mixing old APIs, tutorial assumptions, and project-specific requirements.&lt;/p&gt;

&lt;p&gt;For a project like this, a longer prompt is not enough.&lt;/p&gt;

&lt;p&gt;A prompt can start the interaction. It can tell the model what role to take, how to respond, and what output format to prefer. But it cannot, by itself, give a user a durable operating contract. It does not tell the agent when to stop guessing. It does not separate example code from production constraints. It does not preserve known failure modes across hosts. It does not define what evidence proves that the task is done.&lt;/p&gt;

&lt;p&gt;An acceptance-ready context pack needs several layers.&lt;/p&gt;

&lt;p&gt;First, it needs a human manual. The user should understand what task the pack is meant to support before loading it into an agent. Is it for reading architecture, migrating code, debugging chains, building retrieval workflows, or preparing safer prompts for a coding host? If the task boundary is vague, the agent will treat every LangChain request as the same generic problem.&lt;/p&gt;

&lt;p&gt;Second, it needs a pitfall log. In large frameworks, failure knowledge is often more valuable than ideal-path instructions. A pitfall log tells the agent which common moves are risky: relying on stale examples, skipping version checks, confusing demo snippets with application code, or proposing a high-level chain without showing how it is validated.&lt;/p&gt;

&lt;p&gt;Third, it needs a boundary and risk card. A useful agent should know what it cannot safely infer. If the user does not provide the dependency version, runtime error, file layout, or reproduction command, the agent should surface the missing evidence instead of inventing a confident answer.&lt;/p&gt;

&lt;p&gt;Fourth, it needs an acceptance path. A response is not complete just because it reads well. The pack should help the agent leave behind inspectable evidence: files touched, commands to run, assumptions made, expected output, and recovery notes when the result fails.&lt;/p&gt;

&lt;p&gt;That is why Doramagic treats context packs as portable capability assets rather than prompt collections. A prompt preview is still useful, but it is only the front door. The durable value is in the manual, source map, pitfall log, risk boundary, and eval checklist that let the same capability move across Codex, Claude Code, Cursor, Aider, or another host.&lt;/p&gt;

&lt;p&gt;The interesting part of today's LangChain signal is that readers were already inspecting those deeper files. That suggests they were not only asking whether an AI agent can write LangChain code. They were asking whether the pack can make the agent guess less, verify more, and recover when the first answer is wrong.&lt;/p&gt;

&lt;p&gt;source_asset_url:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tangweigang-jpg/doramagic-langchain-pack" rel="noopener noreferrer"&gt;https://github.com/tangweigang-jpg/doramagic-langchain-pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;doramagic_project_url:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://doramagic.ai/en/projects/langchain/" rel="noopener noreferrer"&gt;https://doramagic.ai/en/projects/langchain/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an independent Doramagic resource pack. It is not an official upstream project release unless the upstream project says so.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>AI skills should be portable capability assets, not prompt collections</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Wed, 20 May 2026 14:34:07 +0000</pubDate>
      <link>https://dev.to/doramagic/ai-skills-should-be-portable-capability-assets-not-prompt-collections-1h6e</link>
      <guid>https://dev.to/doramagic/ai-skills-should-be-portable-capability-assets-not-prompt-collections-1h6e</guid>
      <description>&lt;p&gt;The second signal in today's Doramagic metrics was not another browser automation pack. It was &lt;code&gt;doramagic-skills&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the 2026-05-20 sample, the repo had 35 views, 8 unique viewers, 10 clones, and 10 unique cloners. The interesting part is that visitors did not only stop at the repository home. They also opened specific skill files such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;skills/economic-dashboard/human_summary.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;skills/qlib-ai-quant&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That behavior matters. It means people are checking whether a skill is useful for a concrete task.&lt;/p&gt;

&lt;h2&gt;
  
  
  A prompt is not enough
&lt;/h2&gt;

&lt;p&gt;Many AI skills are just prompt snippets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;act as this expert;&lt;/li&gt;
&lt;li&gt;follow these steps;&lt;/li&gt;
&lt;li&gt;return this format;&lt;/li&gt;
&lt;li&gt;avoid these mistakes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That can be useful, but it is not yet a portable capability asset.&lt;/p&gt;

&lt;p&gt;If a skill only works in one chat, one model, or one tool, it is hard to maintain. If it has no trigger conditions, no validation path, and no failure boundary, it becomes another piece of text that users hesitate to trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a portable skill needs
&lt;/h2&gt;

&lt;p&gt;A reusable skill should answer at least four questions.&lt;/p&gt;

&lt;p&gt;First, what task does it solve?&lt;/p&gt;

&lt;p&gt;Concrete beats abstract. "Generate an economic dashboard summary" is more useful than "make the AI understand economics."&lt;/p&gt;

&lt;p&gt;Second, when should it be triggered?&lt;/p&gt;

&lt;p&gt;The skill should describe the inputs that activate it, the cases where it should not run, and the missing data that should stop the agent.&lt;/p&gt;

&lt;p&gt;Third, how is the result validated?&lt;/p&gt;

&lt;p&gt;An agent response is not the same as a completed task. A skill should leave evidence: generated files, data sources, commands, acceptance criteria, and failure notes.&lt;/p&gt;

&lt;p&gt;Fourth, can it move across hosts?&lt;/p&gt;

&lt;p&gt;The same capability should be easy to adapt to Codex, Claude Code, Cursor, Aider, or another AI coding host.&lt;/p&gt;

&lt;p&gt;That is why Doramagic treats a skill as a bundle of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;human manual;&lt;/li&gt;
&lt;li&gt;host instructions;&lt;/li&gt;
&lt;li&gt;prompt preview;&lt;/li&gt;
&lt;li&gt;eval checklist;&lt;/li&gt;
&lt;li&gt;known pitfalls;&lt;/li&gt;
&lt;li&gt;source map;&lt;/li&gt;
&lt;li&gt;boundary and risk card.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to collect more prompts. The goal is to help people own AI capabilities they can load, reuse, verify, and improve.&lt;/p&gt;

&lt;p&gt;Project:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tangweigang-jpg/doramagic-skills" rel="noopener noreferrer"&gt;https://github.com/tangweigang-jpg/doramagic-skills&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is unofficial AI capability content prepared by Doramagic. Unless an upstream project explicitly says otherwise, it is not an official upstream release.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>AI coding agents need browser evidence, not just code inspection</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Wed, 20 May 2026 01:48:45 +0000</pubDate>
      <link>https://dev.to/doramagic/ai-coding-agents-need-browser-evidence-not-just-code-inspection-41e7</link>
      <guid>https://dev.to/doramagic/ai-coding-agents-need-browser-evidence-not-just-code-inspection-41e7</guid>
      <description>&lt;p&gt;The strongest signal in today's Doramagic GitHub metrics was not an abstract agent framework. It was a practical browser-verification pack:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/tangweigang-jpg/doramagic-chrome-devtools-mcp-pack" rel="noopener noreferrer"&gt;https://github.com/tangweigang-jpg/doramagic-chrome-devtools-mcp-pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the 2026-05-20 sample, it had 120 clones, 60 unique cloners, and 44 views. The paths included traffic and commit-activity pages, which suggests readers were checking whether the pack was real enough to reuse.&lt;/p&gt;

&lt;p&gt;That signal matters because AI coding agents often fail at the same boundary: they can edit code, but they cannot always prove that the browser experience works.&lt;/p&gt;

&lt;p&gt;Common failure modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the page is blank, but the agent says it is done;&lt;/li&gt;
&lt;li&gt;tests pass, but the button cannot be clicked;&lt;/li&gt;
&lt;li&gt;console errors are ignored;&lt;/li&gt;
&lt;li&gt;network failures are not connected to the code change;&lt;/li&gt;
&lt;li&gt;screenshots exist, but no acceptance criteria are checked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chrome DevTools MCP-style access gives an agent browser evidence: console output, network behavior, DOM state, and real interaction results.&lt;/p&gt;

&lt;p&gt;But a tool is not yet a capability asset. A reusable pack should tell the host agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;when browser evidence is required;&lt;/li&gt;
&lt;li&gt;what evidence must be recorded;&lt;/li&gt;
&lt;li&gt;when to stop instead of guessing;&lt;/li&gt;
&lt;li&gt;how to connect browser failure back to a code change.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A useful loop looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;open the target URL
-&amp;gt; inspect console errors
-&amp;gt; run the key interaction
-&amp;gt; record the visible result
-&amp;gt; compare against acceptance criteria
-&amp;gt; only then edit code or report success
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is an unofficial AI capability pack prepared by Doramagic. Unless the upstream project explicitly says otherwise, it is not an official upstream release.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Load OpenSkills context into Codex or Claude Code without guessing source boundaries</title>
      <dc:creator>Tang Weigang</dc:creator>
      <pubDate>Tue, 19 May 2026 12:17:36 +0000</pubDate>
      <link>https://dev.to/doramagic/load-openskills-context-into-codex-or-claude-code-without-guessing-source-boundaries-4dhh</link>
      <guid>https://dev.to/doramagic/load-openskills-context-into-codex-or-claude-code-without-guessing-source-boundaries-4dhh</guid>
      <description>&lt;p&gt;The useful question is not whether an AI coding agent can read an OpenSkills README.&lt;/p&gt;

&lt;p&gt;The useful question is whether the agent can tell the difference between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the upstream OpenSkills project actually provides;&lt;/li&gt;
&lt;li&gt;what an independent Doramagic resource pack adds;&lt;/li&gt;
&lt;li&gt;what the current host still needs to verify before acting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That boundary matters because coding agents often fail by turning inference into a claim. A resource pack should reduce that behavior, not hide it behind a better prompt.&lt;/p&gt;

&lt;p&gt;A practical OpenSkills AI context pack should give the host:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a source map;&lt;/li&gt;
&lt;li&gt;host instructions for Codex, Claude Code, Cursor, or Aider;&lt;/li&gt;
&lt;li&gt;a prompt preview;&lt;/li&gt;
&lt;li&gt;a pitfall log;&lt;/li&gt;
&lt;li&gt;a smoke check or eval;&lt;/li&gt;
&lt;li&gt;a boundary card;&lt;/li&gt;
&lt;li&gt;a human manual;&lt;/li&gt;
&lt;li&gt;a test log;&lt;/li&gt;
&lt;li&gt;a feedback path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One minimal acceptance check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task: explain how an OpenSkills-style capability asset should be moved into another AI host.
Pass: the answer separates upstream behavior, Doramagic's independent context pack, and host-specific assumptions.
Fail: the answer implies Doramagic is the official OpenSkills release or skips source boundaries.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The point is not to make the workflow heavier. The point is to make the agent stop guessing earlier.&lt;/p&gt;

&lt;p&gt;Doramagic pack:&lt;br&gt;
&lt;a href="https://github.com/tangweigang-jpg/doramagic-openskills-pack" rel="noopener noreferrer"&gt;https://github.com/tangweigang-jpg/doramagic-openskills-pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an independent Doramagic resource pack. It is not an official upstream project release unless the upstream project says so.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
