<?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: Xu Bian</title>
    <description>The latest articles on DEV Community by Xu Bian (@xu_bian_f1525524ffcb08e35).</description>
    <link>https://dev.to/xu_bian_f1525524ffcb08e35</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%2F2479858%2F87325cb9-be31-4966-8b8f-abd6b1993886.png</url>
      <title>DEV Community: Xu Bian</title>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xu_bian_f1525524ffcb08e35"/>
    <language>en</language>
    <item>
      <title>From One Failure to Project Memory: Make the Pipeline Stronger Over Time</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:16:08 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/from-one-failure-to-project-memory-make-the-pipeline-stronger-over-time-3n9n</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/from-one-failure-to-project-memory-make-the-pipeline-stronger-over-time-3n9n</guid>
      <description>&lt;p&gt;If AI makes the same mistake repeatedly in the same project, the problem is usually not just the model.&lt;/p&gt;

&lt;p&gt;The task contract may be unclear. The context package may miss a source file. Stop conditions may be absent. Tests may not cover the behavior. The evidence gate may be too weak. Project rules may exist only in chat.&lt;/p&gt;

&lt;p&gt;The final layer of a project-specific AI delivery pipeline is feedback and knowledge capture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do not only correct AI in chat
&lt;/h2&gt;

&lt;p&gt;Many people tell the agent, "do not do that next time."&lt;/p&gt;

&lt;p&gt;That is almost no process improvement.&lt;/p&gt;

&lt;p&gt;The next session, tool, model, or project directory may not carry that lesson. Even if the model remembers, it may not know which project, scenario, or file scope the lesson belongs to.&lt;/p&gt;

&lt;p&gt;Real project memory should enter project mechanisms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Classify the failure first
&lt;/h2&gt;

&lt;p&gt;After a failure, do not immediately add another rule. Classify the failure.&lt;/p&gt;

&lt;p&gt;Common classes include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;unclear requirement;&lt;/li&gt;
&lt;li&gt;wrong context;&lt;/li&gt;
&lt;li&gt;wrong source of truth;&lt;/li&gt;
&lt;li&gt;excessive permission;&lt;/li&gt;
&lt;li&gt;unsafe tool call;&lt;/li&gt;
&lt;li&gt;missing test;&lt;/li&gt;
&lt;li&gt;missing evidence;&lt;/li&gt;
&lt;li&gt;unclear release boundary;&lt;/li&gt;
&lt;li&gt;source-specific lesson generalized incorrectly;&lt;/li&gt;
&lt;li&gt;project rule not loaded by the AI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once the failure is classified, the project can decide what to fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons belong in different layers
&lt;/h2&gt;

&lt;p&gt;Not every lesson should become a skill.&lt;/p&gt;

&lt;p&gt;Some lessons belong in the issue template because they affect task intake.&lt;/p&gt;

&lt;p&gt;Some belong in AGENTS.md because they are project-wide rules.&lt;/p&gt;

&lt;p&gt;Some belong in a skill because they are workflow-specific.&lt;/p&gt;

&lt;p&gt;Some belong in tests or fixtures because machines should verify them.&lt;/p&gt;

&lt;p&gt;Some belong in an evidence gate because they define completion.&lt;/p&gt;

&lt;p&gt;Some belong in scripts because text reminders are not strong enough.&lt;/p&gt;

&lt;p&gt;Some should remain project-local and should not be promoted to central knowledge.&lt;/p&gt;

&lt;p&gt;Only stable cross-project lessons should become central knowledge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Skill is not a trash bin
&lt;/h2&gt;

&lt;p&gt;Skill files can become another messy documentation folder.&lt;/p&gt;

&lt;p&gt;If every AI mistake adds one more sentence to a skill, the skill becomes longer, more contradictory, and harder to trigger.&lt;/p&gt;

&lt;p&gt;Good rules should live in the narrowest verifiable layer.&lt;/p&gt;

&lt;p&gt;If it is code behavior, use a test.&lt;br&gt;&lt;br&gt;
If it is execution process, use a script or state machine.&lt;br&gt;&lt;br&gt;
If it is task entry, use an issue template.&lt;br&gt;&lt;br&gt;
If it is a project-wide boundary, use AGENTS.md.&lt;br&gt;&lt;br&gt;
If it is a workflow manual, use a skill.&lt;br&gt;&lt;br&gt;
If it is a cross-project method, use the central knowledge base.&lt;/p&gt;

&lt;h2&gt;
  
  
  The role of the central knowledge base
&lt;/h2&gt;

&lt;p&gt;The central knowledge base should not take over every project detail.&lt;/p&gt;

&lt;p&gt;It should capture stable cross-project patterns: task contracts, evidence contracts, context packages, dynamic skill lifecycle, publication boundaries, release boundaries, and similar methods.&lt;/p&gt;

&lt;p&gt;Project repositories should keep project facts, private materials, source-specific interpretation, and concrete implementation details.&lt;/p&gt;

&lt;p&gt;That keeps the central knowledge base as the method layer while project pipelines retain execution authority.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;An AI delivery pipeline should not only execute tasks. It should learn how the project can use AI better next time.&lt;/p&gt;

&lt;p&gt;A repeated failure should not remain a complaint. It should become a clearer contract, better context, stronger evidence, narrower permissions, a better gate, or a more reliable project rule.&lt;/p&gt;

&lt;p&gt;That is why a pipeline is stronger than chat: it turns one experience into structure for the next run.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/feedback-to-project-memory/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/feedback-to-project-memory/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Put Humans at Risk Boundaries, Not Only at the Final Approval</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:15:30 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/put-humans-at-risk-boundaries-not-only-at-the-final-approval-48g2</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/put-humans-at-risk-boundaries-not-only-at-the-final-approval-48g2</guid>
      <description>&lt;p&gt;Many AI workflows treat human-in-the-loop as a final approval step.&lt;/p&gt;

&lt;p&gt;That is too late.&lt;/p&gt;

&lt;p&gt;If AI has already modified critical code, triggered external actions, polluted project state, or opened a PR, a final approve button can only catch part of the problem. The dangerous side effects may already have happened.&lt;/p&gt;

&lt;p&gt;Humans should stand at risk boundaries, not only at the end of the workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a risk boundary?
&lt;/h2&gt;

&lt;p&gt;Risk boundaries are concrete.&lt;/p&gt;

&lt;p&gt;In software projects, they often include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;money, payment, trading, or payout;&lt;/li&gt;
&lt;li&gt;permissions, security, privacy, or compliance;&lt;/li&gt;
&lt;li&gt;database schema or persisted formats;&lt;/li&gt;
&lt;li&gt;production data or production configuration;&lt;/li&gt;
&lt;li&gt;release, deployment, or migration;&lt;/li&gt;
&lt;li&gt;irreversible external actions;&lt;/li&gt;
&lt;li&gt;product claims that cannot be verified.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In professional tools, risk boundaries may also include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writing uncertain visual recognition into project truth;&lt;/li&gt;
&lt;li&gt;turning a source-specific repair into a general rule;&lt;/li&gt;
&lt;li&gt;applying irreversible changes to a user project;&lt;/li&gt;
&lt;li&gt;presenting an unverified demo as a reproducible capability.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These boundaries should not rely on the model's good judgment alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human gates should be early enough
&lt;/h2&gt;

&lt;p&gt;A good human gate appears before the risky action.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;if triage finds high risk, stop at analysis;&lt;/li&gt;
&lt;li&gt;if implementation would change core business semantics, ask for confirmation first;&lt;/li&gt;
&lt;li&gt;if a tool call would touch production or an external system, require approval;&lt;/li&gt;
&lt;li&gt;if the evidence gate fails, block PR readiness;&lt;/li&gt;
&lt;li&gt;after merge, release still requires a separate boundary;&lt;/li&gt;
&lt;li&gt;after deployment, done still requires production verification.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is stronger than a final review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Release boundaries must be separate
&lt;/h2&gt;

&lt;p&gt;AI often compresses "code changed" into "work done."&lt;/p&gt;

&lt;p&gt;Real projects cannot do that.&lt;/p&gt;

&lt;p&gt;These states should remain separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;local patch;&lt;/li&gt;
&lt;li&gt;tests passed;&lt;/li&gt;
&lt;li&gt;PR opened;&lt;/li&gt;
&lt;li&gt;PR reviewed;&lt;/li&gt;
&lt;li&gt;PR merged;&lt;/li&gt;
&lt;li&gt;release ready;&lt;/li&gt;
&lt;li&gt;deployed;&lt;/li&gt;
&lt;li&gt;production verified;&lt;/li&gt;
&lt;li&gt;done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each state has different ownership. The AI worker may reach PR. A release workflow may handle release readiness. Production verification may require humans or monitoring.&lt;/p&gt;

&lt;p&gt;If these states collapse into one "done," the project loses risk control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Humans are routers, not bottlenecks
&lt;/h2&gt;

&lt;p&gt;People often worry that human gates reduce automation efficiency.&lt;/p&gt;

&lt;p&gt;They can, if every step requires approval. But the right answer is not to remove humans. It is to place humans at a few important boundaries.&lt;/p&gt;

&lt;p&gt;Low-risk tasks can run automatically. Medium-risk tasks can ask for help when evidence is missing. High-risk tasks can stop at analysis by default. Release and production verification can remain separate.&lt;/p&gt;

&lt;p&gt;Then humans are not manual buttons for every step. They are risk routers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Human-in-the-loop does not mean "someone looked at it." It means humans intervene at the right places.&lt;/p&gt;

&lt;p&gt;A project-specific AI delivery pipeline should encode human gates and release boundaries into the workflow instead of leaving them to the model's moment-by-moment judgment.&lt;/p&gt;

&lt;p&gt;AI can increase speed. Humans own risk. The pipeline keeps those responsibilities from replacing each other.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/human-gates-and-release-boundaries/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/human-gates-and-release-boundaries/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Evidence Contract: AI Delivery Must Come With Proof</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:14:53 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/evidence-contract-ai-delivery-must-come-with-proof-7a5</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/evidence-contract-ai-delivery-must-come-with-proof-7a5</guid>
      <description>&lt;p&gt;The most dangerous sentence in AI delivery is: "It is done."&lt;/p&gt;

&lt;p&gt;That sentence is not evidence. AI can write confidently. A summary can look complete. A PR description can be polished. None of that proves the work is actually complete.&lt;/p&gt;

&lt;p&gt;A project-specific AI delivery pipeline should redefine "done" as an evidence question: what reviewable proof supports each acceptance criterion?&lt;/p&gt;

&lt;p&gt;That is the evidence contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tests matter, but they are not everything
&lt;/h2&gt;

&lt;p&gt;Tests are one of the most important forms of evidence. They are not the only form.&lt;/p&gt;

&lt;p&gt;A backend function fix may be covered by unit and integration tests. A frontend interaction change may also need screenshots or a recording. A data-link fix may need API output, logs, read-only SQL, or queue observation. A SketchUp modeling tool may need a design model diff, bridge trace, top-view screenshot, and live bridge smoke.&lt;/p&gt;

&lt;p&gt;The question is not only "did tests run?" The question is "what evidence does this delivery require?"&lt;/p&gt;

&lt;h2&gt;
  
  
  Evidence must map to acceptance criteria
&lt;/h2&gt;

&lt;p&gt;Many projects enforce evidence by changed file type. If frontend files changed, screenshots are required. If service or database code changed, data proof is required.&lt;/p&gt;

&lt;p&gt;That is already much better than no evidence. But the stronger version maps evidence to acceptance criteria.&lt;/p&gt;

&lt;p&gt;If the task has three acceptance criteria, the manifest should answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which test or screenshot proves the first one;&lt;/li&gt;
&lt;li&gt;which API output or log proves the second one;&lt;/li&gt;
&lt;li&gt;whether the third is uncovered, and why.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That lets reviewers decide whether the AI solved the user problem, not merely whether it ran some commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  The evidence manifest should be a file
&lt;/h2&gt;

&lt;p&gt;Evidence should not live only in chat.&lt;/p&gt;

&lt;p&gt;An evidence manifest can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task ID or PR;&lt;/li&gt;
&lt;li&gt;change summary;&lt;/li&gt;
&lt;li&gt;acceptance criteria;&lt;/li&gt;
&lt;li&gt;evidence for each criterion;&lt;/li&gt;
&lt;li&gt;test commands and results;&lt;/li&gt;
&lt;li&gt;screenshot or data proof paths;&lt;/li&gt;
&lt;li&gt;checks that were not run and why;&lt;/li&gt;
&lt;li&gt;residual risks;&lt;/li&gt;
&lt;li&gt;generation time;&lt;/li&gt;
&lt;li&gt;worker or tool version.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The manifest does not guarantee correctness. It gives reviewers something durable to inspect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Different projects need different evidence
&lt;/h2&gt;

&lt;p&gt;Evidence contracts must be project-specific.&lt;/p&gt;

&lt;p&gt;In systems like TidalFi, changes that touch APIs, services, databases, queues, Redis, or event flows cannot rely only on unit tests. They need data proof. Frontend flow changes need screenshots. Release-related changes need a release boundary and production verification.&lt;/p&gt;

&lt;p&gt;In SketchUp Agent Harness, "there is a visible model" is not enough. The project needs to know where the model came from, whether the structured design model is consistent, whether the bridge trace is explainable, whether the SketchUp scene came from a clean replay, and whether visual review is backed by source evidence.&lt;/p&gt;

&lt;p&gt;In knowledge publication, "the article was generated" is not enough. The system needs source trace, bilingual siblings, series metadata, language switching, site build validation, and clear ownership between knowledge and site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Without evidence, it is not done
&lt;/h2&gt;

&lt;p&gt;This rule changes AI behavior.&lt;/p&gt;

&lt;p&gt;Without an evidence gate, AI tends to declare completion in natural language. With an evidence contract, AI must collect test results, screenshots, logs, traces, and risk notes during execution.&lt;/p&gt;

&lt;p&gt;It behaves more like an engineering worker and less like a chat assistant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The completion standard for AI delivery should not be "AI believes it is done."&lt;/p&gt;

&lt;p&gt;Done should mean that the acceptance criteria in the task contract have matching evidence, missing coverage is explicitly stated, and high-risk boundaries were not crossed silently.&lt;/p&gt;

&lt;p&gt;That is the value of the evidence contract.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/evidence-contract-for-ai-delivery/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/evidence-contract-for-ai-delivery/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Put AI in an Isolated Workspace: Real Projects Need Stage-Gated Workers</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:14:16 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/put-ai-in-an-isolated-workspace-real-projects-need-stage-gated-workers-3o06</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/put-ai-in-an-isolated-workspace-real-projects-need-stage-gated-workers-3o06</guid>
      <description>&lt;p&gt;If AI is going to work inside a real project, it should not freely modify your main working directory.&lt;/p&gt;

&lt;p&gt;Your normal checkout may contain uncommitted changes, temporary debugging, unsynced documents, production configuration, or personal scripts. If an AI agent deletes, rewrites, or runs the wrong thing there, accountability becomes messy.&lt;/p&gt;

&lt;p&gt;That is why a project-specific AI delivery pipeline needs work isolation and stage-gated workers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Isolation is not distrust
&lt;/h2&gt;

&lt;p&gt;Isolation does not mean AI will always fail. It is normal engineering practice.&lt;/p&gt;

&lt;p&gt;Human engineers use branches, PRs, CI, review, and release gates. AI should be placed in a similarly traceable workspace.&lt;/p&gt;

&lt;p&gt;Isolation can take many forms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a Git branch;&lt;/li&gt;
&lt;li&gt;a worktree;&lt;/li&gt;
&lt;li&gt;a slot workspace;&lt;/li&gt;
&lt;li&gt;a sandbox;&lt;/li&gt;
&lt;li&gt;a temporary project directory;&lt;/li&gt;
&lt;li&gt;a dedicated evidence directory;&lt;/li&gt;
&lt;li&gt;constrained tool permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important point is that AI execution is separated from the user's normal workspace.&lt;/p&gt;

&lt;h2&gt;
  
  
  A branch can also be a claim lock
&lt;/h2&gt;

&lt;p&gt;In multi-worker settings, isolation also solves concurrency.&lt;/p&gt;

&lt;p&gt;If two AI workers handle the same issue, they may overwrite each other, open duplicate PRs, or corrupt task state. A clear branch claim or workspace slot tells the system that the task is already being handled.&lt;/p&gt;

&lt;p&gt;That is more reliable than a chat message saying "I am working on it."&lt;/p&gt;

&lt;p&gt;Project state should live in GitHub, issue comments, labels, branches, manifests, or another external system, not only in the model context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workers should not jump to the end
&lt;/h2&gt;

&lt;p&gt;AI tends to treat a task as one continuous action: read, edit, test, summarize.&lt;/p&gt;

&lt;p&gt;Real projects need stages.&lt;/p&gt;

&lt;p&gt;A more stable worker flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;triage
-&amp;gt; analysis
-&amp;gt; implementation
-&amp;gt; validation
-&amp;gt; evidence packaging
-&amp;gt; PR or handoff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;High-risk systems should separate even more:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;release readiness
-&amp;gt; release approval
-&amp;gt; deployment
-&amp;gt; production verification
-&amp;gt; done
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each stage has different permissions. Triage can read code but should not freely edit business logic. Analysis can propose a plan but should stop on high risk. Implementation can modify files but must produce evidence. Release should usually be a separate boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  What stage gates do
&lt;/h2&gt;

&lt;p&gt;Stage gates are not there to slow everything down. They make failures earlier and cheaper.&lt;/p&gt;

&lt;p&gt;Finding unclear requirements during triage is cheaper than finding them in a PR. Finding high risk during analysis is cheaper than after implementation. Finding missing evidence before review is cheaper than finding it in production.&lt;/p&gt;

&lt;p&gt;This follows the same logic as a deployment pipeline: each stage increases confidence and usually costs more. The later the stage, the more careful the process should be.&lt;/p&gt;

&lt;h2&gt;
  
  
  Guarded full-speed is not blind execution
&lt;/h2&gt;

&lt;p&gt;I like full-speed execution, but only as guarded full-speed.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;the task contract is clear;&lt;/li&gt;
&lt;li&gt;the context package is prepared;&lt;/li&gt;
&lt;li&gt;the workspace is isolated;&lt;/li&gt;
&lt;li&gt;high-risk boundaries are written down;&lt;/li&gt;
&lt;li&gt;validation commands and evidence requirements are defined;&lt;/li&gt;
&lt;li&gt;stop conditions are enforced.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under those conditions, AI can ask fewer unnecessary questions, keep moving, debug failing tests, and package evidence.&lt;/p&gt;

&lt;p&gt;Without those conditions, "full speed" is just faster loss of control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;An AI worker that enters a real project should work in an isolated space and move through stages.&lt;/p&gt;

&lt;p&gt;This does not reduce efficiency. It lets the project absorb AI efficiency safely.&lt;/p&gt;

&lt;p&gt;The useful goal is not "AI finishes everything in one shot." The useful goal is "AI works in the right space, with the right permissions, through the right gates, up to the right delivery boundary."&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/isolated-stage-gated-ai-worker/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/isolated-stage-gated-ai-worker/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Give AI the Context It Should See, Not the Whole Repository</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:13:01 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/give-ai-the-context-it-should-see-not-the-whole-repository-3ap4</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/give-ai-the-context-it-should-see-not-the-whole-repository-3ap4</guid>
      <description>&lt;p&gt;Many AI task failures do not happen because the model cannot modify code. They happen because the model reads the wrong context.&lt;/p&gt;

&lt;p&gt;It may trust outdated docs, treat a roadmap as fact, read an AI-assistance note as a product rule, generalize from one failed sample, or find a similarly named implementation that is already obsolete.&lt;/p&gt;

&lt;p&gt;That is why a project-specific AI delivery pipeline should not simply tell AI to "read the repository." It should prepare a context package for the task.&lt;/p&gt;

&lt;h2&gt;
  
  
  More context is not always better
&lt;/h2&gt;

&lt;p&gt;It is tempting to give AI everything. In real projects, that often makes the result worse.&lt;/p&gt;

&lt;p&gt;Too much context distracts the model. Messy documentation makes temporary decisions look permanent. Long chat history can revive decisions that were already rejected.&lt;/p&gt;

&lt;p&gt;The project needs narrow context, not maximum context.&lt;/p&gt;

&lt;p&gt;Narrow context means the task receives the facts it needs, and misleading material is not exposed by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Source of truth must be explicit
&lt;/h2&gt;

&lt;p&gt;The most important field in a context package is the source of truth.&lt;/p&gt;

&lt;p&gt;In a codebase, the current code and tests often outrank old docs. In a product project, public capability claims should be grounded in README, user docs, release artifacts, and runnable demos. In a knowledge publication system, public content must trace back to sources, not only to summaries.&lt;/p&gt;

&lt;p&gt;Without an explicit source of truth, AI tends to treat available materials as if they are equally reliable.&lt;/p&gt;

&lt;p&gt;That is dangerous because real project materials have hierarchy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;code and tests may outrank old documents;&lt;/li&gt;
&lt;li&gt;current product docs may outrank early roadmaps;&lt;/li&gt;
&lt;li&gt;project-local facts may outrank central methodology;&lt;/li&gt;
&lt;li&gt;raw evidence may outrank AI summaries;&lt;/li&gt;
&lt;li&gt;public claims must be more conservative than internal plans.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The context package should state these priorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a context package contains
&lt;/h2&gt;

&lt;p&gt;A useful package can be simple:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;project rules relevant to the task;&lt;/li&gt;
&lt;li&gt;source-of-truth files;&lt;/li&gt;
&lt;li&gt;relevant specs, ADRs, issues, PRs, or runbooks;&lt;/li&gt;
&lt;li&gt;relevant tests, fixtures, screenshots, or traces;&lt;/li&gt;
&lt;li&gt;known failures;&lt;/li&gt;
&lt;li&gt;validation commands;&lt;/li&gt;
&lt;li&gt;files that may be changed;&lt;/li&gt;
&lt;li&gt;files that must not be touched;&lt;/li&gt;
&lt;li&gt;precedence rules when context conflicts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is more controlled than letting the agent search the whole repository on its own.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is where project-specific value appears
&lt;/h2&gt;

&lt;p&gt;General agent tools can provide strong models, shell access, file editing, MCP, subagents, and hooks. They cannot know your project's truth hierarchy by default.&lt;/p&gt;

&lt;p&gt;For example, a TidalFi worker must know which paths involve money, trading, KYC, or production release. A SketchUp Agent Harness worker must know how the design model, source evidence, and SketchUp scene relate. A knowledge publication worker must know that the knowledge base owns bilingual candidates while the site owns rendering and deployment.&lt;/p&gt;

&lt;p&gt;These are not generic tool facts. They are project context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context packages also prevent overgeneralization
&lt;/h2&gt;

&lt;p&gt;AI easily turns one example into a general rule.&lt;/p&gt;

&lt;p&gt;In a design tool, one floor plan repair should not become a universal product rule. In a trading system, one issue-specific fix should not redefine global business semantics. In a knowledge system, one project's directory habit should not be copied into every project.&lt;/p&gt;

&lt;p&gt;A context package can label the material:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fact;&lt;/li&gt;
&lt;li&gt;evidence;&lt;/li&gt;
&lt;li&gt;inference;&lt;/li&gt;
&lt;li&gt;project-local rule;&lt;/li&gt;
&lt;li&gt;reusable method;&lt;/li&gt;
&lt;li&gt;source-specific interpretation that must not be generalized.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That reduces the chance of local experience leaking into global rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Giving AI context does not mean dumping the whole repository into the conversation.&lt;/p&gt;

&lt;p&gt;What works is a task-level context package: small, accurate, prioritized, source-grounded, and bounded.&lt;/p&gt;

&lt;p&gt;Much of the value of a project-specific AI delivery pipeline comes from this. It does not make the model magically smarter. It makes the model work on the right layer of truth.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/context-package-and-source-truth/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/context-package-and-source-truth/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>From Chat Request to Task Contract: Route the Work Before AI Executes</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:12:55 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/from-chat-request-to-task-contract-route-the-work-before-ai-executes-3pnb</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/from-chat-request-to-task-contract-route-the-work-before-ai-executes-3pnb</guid>
      <description>&lt;p&gt;The most common risk in AI-assisted development is not that the model cannot write code. It is that the model starts writing code too early.&lt;/p&gt;

&lt;p&gt;A person says, "please fix this," and the agent quickly reads files, guesses the cause, edits code, runs tests, and summarizes the result. That can look productive. But the important project questions have not been answered yet: is the request mature enough, and how far is the AI allowed to go?&lt;/p&gt;

&lt;p&gt;That is why a project-specific AI delivery pipeline starts with task intake and execution mode routing, not implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat is not a task contract
&lt;/h2&gt;

&lt;p&gt;Chat is good for discussion. It is not a reliable execution contract.&lt;/p&gt;

&lt;p&gt;A conversation can mix complaints, guesses, goals, background, temporary ideas, and real acceptance criteria. A human can often separate those layers. AI may not do it consistently.&lt;/p&gt;

&lt;p&gt;A task contract compresses the discussion into an executable boundary.&lt;/p&gt;

&lt;p&gt;A minimal contract should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the user problem;&lt;/li&gt;
&lt;li&gt;the expected behavior;&lt;/li&gt;
&lt;li&gt;current evidence;&lt;/li&gt;
&lt;li&gt;acceptance criteria;&lt;/li&gt;
&lt;li&gt;explicit non-goals;&lt;/li&gt;
&lt;li&gt;known risks;&lt;/li&gt;
&lt;li&gt;the source of truth;&lt;/li&gt;
&lt;li&gt;stop conditions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without these fields, AI is improvising inside an ambiguous task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Route before execution
&lt;/h2&gt;

&lt;p&gt;After the task contract, the pipeline should choose an execution mode.&lt;/p&gt;

&lt;p&gt;I use four modes.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;auto-run&lt;/code&gt; is for low-risk, bounded, testable, reversible work: small UI copy, obvious bugs, documentation fixes, or local test additions.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;manual-triage&lt;/code&gt; is for unclear work or anything that may touch money, permissions, security, schema, production state, or core business semantics. AI can analyze, but it should not implement by default.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;guarded-full-speed&lt;/code&gt; is for complex but bounded work. AI can keep moving, but only inside project-specific stop conditions, evidence requirements, and human gates.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;spike&lt;/code&gt; is for exploration. A spike produces decision material, not production-ready delivery.&lt;/p&gt;

&lt;p&gt;These modes are not about how smart the model is. They are about how much execution authority the project is willing to grant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-run must be opt-in
&lt;/h2&gt;

&lt;p&gt;Automation should not be on by default.&lt;/p&gt;

&lt;p&gt;Issues, product discussions, and project notes contain many things that should not be executed automatically: user feedback, product ideas, incidents, compliance questions, and temporary notes.&lt;/p&gt;

&lt;p&gt;Only explicitly opted-in tasks should let AI claim, analyze, implement, and open PRs automatically.&lt;/p&gt;

&lt;p&gt;The opt-in is not just a label. It means the project has confirmed that scope, risk, and acceptance are clear enough for the pipeline to handle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stop conditions matter more than prompt advice
&lt;/h2&gt;

&lt;p&gt;Many prompts say, "ask me if you are unsure." That is too weak.&lt;/p&gt;

&lt;p&gt;The project should encode stop conditions in the task contract or execution rules. Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;acceptance criteria are missing;&lt;/li&gt;
&lt;li&gt;requirements conflict;&lt;/li&gt;
&lt;li&gt;core business semantics would change;&lt;/li&gt;
&lt;li&gt;production data would be modified;&lt;/li&gt;
&lt;li&gt;money, trading, permissions, security, or compliance is involved;&lt;/li&gt;
&lt;li&gt;the evidence gate fails;&lt;/li&gt;
&lt;li&gt;AI cannot find a reliable source of truth.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When these conditions appear, AI should not keep trying to finish. It should move the task to a state such as &lt;code&gt;needs-input&lt;/code&gt;, &lt;code&gt;review-required&lt;/code&gt;, or &lt;code&gt;failed-needs-human&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not bureaucracy
&lt;/h2&gt;

&lt;p&gt;Task contracts may look like process overhead. In practice, they reduce rework.&lt;/p&gt;

&lt;p&gt;Without a contract, AI may produce a patch quickly, but you spend more time deciding whether it solved the real problem, expanded scope, or crossed a boundary.&lt;/p&gt;

&lt;p&gt;With a contract, the work is narrower, clearer, and easier to validate. Even failure becomes useful because you can locate whether the failure came from requirements, context, implementation, tests, or evidence.&lt;/p&gt;

&lt;p&gt;That is the first rule of the delivery pipeline: turn the request into an executable contract, then decide whether AI is allowed to act.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/task-contract-and-execution-mode-router/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/task-contract-and-execution-mode-router/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>AI Is Not the Process: What a Project-Specific AI Delivery Pipeline Means</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Tue, 12 May 2026 11:12:13 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/ai-is-not-the-process-what-a-project-specific-ai-delivery-pipeline-means-449p</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/ai-is-not-the-process-what-a-project-specific-ai-delivery-pipeline-means-449p</guid>
      <description>&lt;p&gt;Many people use AI for coding by placing the whole workflow inside one chat: describe the task, ask the agent to read the repository, edit files, run tests, and summarize the result.&lt;/p&gt;

&lt;p&gt;That works for small experiments. It becomes fragile in long-running projects, shared repositories, production systems, or professional software automation. The problem is not only whether the model is smart enough. The problem is that the model is being asked to own too much of the delivery process.&lt;/p&gt;

&lt;p&gt;The better pattern is to place AI capability inside a project-specific delivery pipeline.&lt;/p&gt;

&lt;p&gt;AI is the worker. The project pipeline constrains, validates, records, and escalates.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why project-specific matters
&lt;/h2&gt;

&lt;p&gt;A general AI tool cannot know a project's real risk boundaries by default.&lt;/p&gt;

&lt;p&gt;In a trading system, payout, KYC, funded accounts, order states, and production release are hard boundaries. In a SketchUp modeling tool, the real boundaries are the structured design model, source evidence, bridge trace, SketchUp execution, and visual review. In a personal knowledge publishing system, the boundaries become source traceability, bilingual publication candidates, site rendering, and deployment ownership.&lt;/p&gt;

&lt;p&gt;These constraints do not come from a generic model. They come from project truth.&lt;/p&gt;

&lt;p&gt;So the goal is not to build a more general replacement for Codex or Claude Code. The goal is to build a stable AI delivery pipeline inside a real project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the pipeline owns
&lt;/h2&gt;

&lt;p&gt;A useful project-specific AI delivery pipeline must answer questions like these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is this request mature enough to execute?&lt;/li&gt;
&lt;li&gt;Should AI run automatically, analyze only, move fast under guardrails, or only run a spike?&lt;/li&gt;
&lt;li&gt;What context should AI receive before execution?&lt;/li&gt;
&lt;li&gt;What can AI change, and what is out of bounds?&lt;/li&gt;
&lt;li&gt;When must the AI stop and ask for a human?&lt;/li&gt;
&lt;li&gt;What evidence proves the work is complete?&lt;/li&gt;
&lt;li&gt;Should the result become a PR, a release candidate, a knowledge note, or only an experiment record?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the project does not answer these questions through its own mechanisms, the AI is still improvising inside a chat.&lt;/p&gt;

&lt;h2&gt;
  
  
  A minimal structure
&lt;/h2&gt;

&lt;p&gt;I break the pipeline into a few parts.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Task Intake&lt;/code&gt; turns discussion into an executable task contract.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Execution Mode Router&lt;/code&gt; decides how much autonomy AI gets.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Context Package&lt;/code&gt; gives the AI the narrow context it should see.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Work Isolation&lt;/code&gt; keeps AI execution inside a branch, worktree, slot workspace, or sandbox.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Stage-Gated Worker&lt;/code&gt; separates triage, analysis, implementation, validation, evidence packaging, and handoff.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Evidence Contract&lt;/code&gt; requires tests, screenshots, API output, logs, traces, or other reviewable proof.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Human Gate&lt;/code&gt; puts humans at real risk boundaries.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Feedback Capture&lt;/code&gt; turns repeated failures into rules, tests, skills, templates, or knowledge base entries.&lt;/p&gt;

&lt;p&gt;Together, these parts are what I mean by a harness. It is not a prompt. It is not a single tool. It is the project control layer that lets AI participate in delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where TDD fits
&lt;/h2&gt;

&lt;p&gt;TDD is useful, but it is not the whole answer.&lt;/p&gt;

&lt;p&gt;When a behavior is clear and testable, writing tests before implementation is a strong pattern. But many real tasks are not function-level exercises. Frontend changes need screenshots. Data-link changes need API or log proof. SketchUp modeling needs structured model diffs and visual review. Knowledge publication needs source trace and bilingual route validation.&lt;/p&gt;

&lt;p&gt;So the better rule is not "everything must be TDD." The better rule is "every delivery must have an evidence contract."&lt;/p&gt;

&lt;p&gt;Tests are one kind of evidence. They are not the only kind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this is more stable than vibe coding
&lt;/h2&gt;

&lt;p&gt;Vibe coding is fast. Its weakness is that boundaries and evidence are often too weak.&lt;/p&gt;

&lt;p&gt;A project-specific AI delivery pipeline does not reject speed. It puts speed on rails.&lt;/p&gt;

&lt;p&gt;Low-risk tasks can auto-run. Complex but bounded tasks can run in guarded full-speed mode. High-risk tasks should stop at analysis or human confirmation. Exploratory work can be a spike, but it should not be treated as production-ready delivery.&lt;/p&gt;

&lt;p&gt;AI can still move quickly. It just does not get to mix immature requirements, high-risk actions, and unverified completion into one vague "done."&lt;/p&gt;

&lt;h2&gt;
  
  
  The core idea
&lt;/h2&gt;

&lt;p&gt;The future value is not just making AI more impressive inside a chat window. The value is making projects better at using AI inside their delivery systems.&lt;/p&gt;

&lt;p&gt;Models will change. CLI tools will change. MCP, hooks, skills, and subagents will change.&lt;/p&gt;

&lt;p&gt;The durable asset is the project mechanism: how tasks are defined, how context is provided, how execution is constrained, how evidence is collected, how humans intervene, and how failures improve the next run.&lt;/p&gt;

&lt;p&gt;That is the value of a project-specific AI delivery pipeline.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/project-specific-ai-delivery-pipeline/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/project-specific-ai-delivery-pipeline/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>workflow</category>
    </item>
    <item>
      <title>From Chat Advice to a Durable Design Project</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Thu, 07 May 2026 03:57:02 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/from-chat-advice-to-a-durable-design-project-k8b</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/from-chat-advice-to-a-durable-design-project-k8b</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" alt="Article cover image" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many AI design experiences stop inside a chat box.&lt;/p&gt;

&lt;p&gt;You describe a spatial problem, and the AI gives advice. You add a few images, and it analyzes them. You ask for another style, and it writes a new direction. In the short term, this is useful. But once a project runs for days or weeks, the chat box starts to show its limits.&lt;/p&gt;

&lt;p&gt;Advice becomes scattered. Versions blur. Source material loses context. A decision that made sense yesterday may be impossible to explain tomorrow.&lt;/p&gt;

&lt;p&gt;A real design project needs more than advice. It needs a durable project surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why chat advice is not enough
&lt;/h2&gt;

&lt;p&gt;Chat is a good thinking interface, but it is not a stable project container.&lt;/p&gt;

&lt;p&gt;It has three natural weaknesses.&lt;/p&gt;

&lt;p&gt;First, chat history is a weak source of truth. One decision may hide inside ten messages, one dimension may come from an image, and one rule may be a temporary instruction you typed in a hurry. The next time AI makes a change, it can easily miss one of those facts.&lt;/p&gt;

&lt;p&gt;Second, chat history is weak at versioning. You can tell AI to "change it according to what we just discussed," but the project needs to know what changed, why it changed, whether it affects other spaces, and whether it can be rolled back.&lt;/p&gt;

&lt;p&gt;Third, chat history is weak at holding material. Drawings, references, components, materials, screenshots, feedback, and rules all need organization. If they are only dropped into a chat window, it becomes difficult to review provenance and validity later.&lt;/p&gt;

&lt;p&gt;If an AI design tool only optimizes chat, it becomes a smart but forgetful consultant.&lt;/p&gt;

&lt;h2&gt;
  
  
  The project workspace is the ground of the workbench
&lt;/h2&gt;

&lt;p&gt;A more reliable approach is to put each design task inside its own project workspace.&lt;/p&gt;

&lt;p&gt;That workspace is not just a folder. It is the shared operating surface between the designer and AI.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;the current design model;&lt;/li&gt;
&lt;li&gt;project rules;&lt;/li&gt;
&lt;li&gt;source drawings and material;&lt;/li&gt;
&lt;li&gt;components and material lists;&lt;/li&gt;
&lt;li&gt;screenshots, renderings, and review records;&lt;/li&gt;
&lt;li&gt;version differences;&lt;/li&gt;
&lt;li&gt;temporary memory valid only for this project;&lt;/li&gt;
&lt;li&gt;next actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this structure, AI does not have to infer project state from chat history every time. It can read explicit files, modify explicit files, produce explicit artifacts, and write important changes back to the project.&lt;/p&gt;

&lt;p&gt;For designers, this is closer to real work. A design project is not completed by one sentence. It is made of material, rules, models, drawings, communication, and versions.&lt;/p&gt;

&lt;h2&gt;
  
  
  A durable project needs structured truth
&lt;/h2&gt;

&lt;p&gt;A project workspace is still not enough. It needs a clear structured truth layer.&lt;/p&gt;

&lt;p&gt;In a direction such as SketchUp Agent Harness, that layer can be &lt;code&gt;design_model.json&lt;/code&gt;. It records spaces, dimensions, components, rules, assumptions, and execution state.&lt;/p&gt;

&lt;p&gt;The point is not that designers should hand-write JSON. The point is that AI, the designer, and the software need a shared fact layer.&lt;/p&gt;

&lt;p&gt;If the design only lives inside a SketchUp scene, AI has a hard time knowing which parts came from source evidence and which parts are temporary operations. If the design only lives in screenshots, it is hard to repair. If the design only lives in chat, it is even harder to compare versions.&lt;/p&gt;

&lt;p&gt;A structured truth layer lets the system answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what spaces and components exist now;&lt;/li&gt;
&lt;li&gt;where the dimensions came from;&lt;/li&gt;
&lt;li&gt;which assumptions are still unconfirmed;&lt;/li&gt;
&lt;li&gt;which feedback has been accepted;&lt;/li&gt;
&lt;li&gt;which rules affected this change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the difference between a durable project and one-off advice.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI should turn conversation into project state
&lt;/h2&gt;

&lt;p&gt;Chat still matters. Designers should be able to say naturally: "This entrance is too narrow. Move the cabinet beside it a little."&lt;/p&gt;

&lt;p&gt;The key is that AI should not only reply, "Sure, I will adjust it." It should turn that sentence into project state:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;identify the affected space and component;&lt;/li&gt;
&lt;li&gt;check whether project rules allow the change;&lt;/li&gt;
&lt;li&gt;create a modification plan;&lt;/li&gt;
&lt;li&gt;update the structured model;&lt;/li&gt;
&lt;li&gt;execute into SketchUp or prepare execution;&lt;/li&gt;
&lt;li&gt;leave a change record;&lt;/li&gt;
&lt;li&gt;generate a screenshot for confirmation when needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then conversation does not evaporate.&lt;/p&gt;

&lt;p&gt;Each useful exchange should move the project state forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  A good workbench lets projects pause and resume
&lt;/h2&gt;

&lt;p&gt;Real projects are often interrupted. You work on one version today, switch to another client tomorrow, and return three days later.&lt;/p&gt;

&lt;p&gt;If an AI design tool depends only on chat memory, resuming the project becomes painful. You have to explain the background again, upload material again, and remind the tool of the rules again.&lt;/p&gt;

&lt;p&gt;A workbench-style tool should let the project pause and resume. When the designer opens the project again, AI can see the current model, rules, material, snapshots, accepted feedback, and unfinished tasks.&lt;/p&gt;

&lt;p&gt;This is not about giving AI infinite memory. It is about keeping memory in the place where it belongs: the project.&lt;/p&gt;

&lt;p&gt;Over time, the real value of an AI design tool is not making every chat answer prettier. It is turning chat, material, model state, and feedback into a design project that can continue.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/from-chat-advice-to-durable-design-project/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/from-chat-advice-to-durable-design-project/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>design</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>Which Design Rule Wins: Defaults, Personal Preferences, Project Rules, or Session Instructions?</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Thu, 07 May 2026 03:49:12 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/which-design-rule-wins-defaults-personal-preferences-project-rules-or-session-instructions-4ill</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/which-design-rule-wins-defaults-personal-preferences-project-rules-or-session-instructions-4ill</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" alt="Article cover image" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The deeper an AI design tool enters real projects, the more rule conflicts it will face.&lt;/p&gt;

&lt;p&gt;A designer has personal preferences. A project has explicit requirements. A client gives temporary feedback. The product itself has defaults. Without priority, AI can easily mix these layers together.&lt;/p&gt;

&lt;p&gt;My recommended starting order is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;product defaults
-&amp;gt; designer profile
-&amp;gt; current project rules
-&amp;gt; explicit instruction in the current session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why project rules should beat personal preferences
&lt;/h2&gt;

&lt;p&gt;Personal preferences matter. A designer may have long-term preferences for clearance, material expression, storage strategy, or lighting.&lt;/p&gt;

&lt;p&gt;But once the work enters a specific project, project rules should take priority.&lt;/p&gt;

&lt;p&gt;The reason is simple: project rules usually come from the client brief, site conditions, budget, construction limits, and specific users. They are not abstract taste. They are the boundaries of the current project.&lt;/p&gt;

&lt;p&gt;If a personal profile overrides project rules, AI may force an old habit into a project where it does not fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why current instructions should be highest
&lt;/h2&gt;

&lt;p&gt;An explicit instruction in the current session usually represents a local design decision.&lt;/p&gt;

&lt;p&gt;For example, the project may prefer wider circulation, but the designer says: "For this temporary option, allow the passage to become narrower so I can see how much storage improves."&lt;/p&gt;

&lt;p&gt;AI can execute that local instruction, but it must know that this is a session instruction. It is not a permanent project rule, and it is not an update to the designer's profile.&lt;/p&gt;

&lt;p&gt;Current instruction being highest does not mean it can silently rewrite long-term rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Every rule should know its source
&lt;/h2&gt;

&lt;p&gt;Priority is important, but provenance is just as important.&lt;/p&gt;

&lt;p&gt;AI should be able to explain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;did this rule come from product defaults or the designer profile?&lt;/li&gt;
&lt;li&gt;is it a current project rule or a temporary session instruction?&lt;/li&gt;
&lt;li&gt;did it override a lower-priority rule?&lt;/li&gt;
&lt;li&gt;should it be written back to the project?&lt;/li&gt;
&lt;li&gt;does it need confirmation before being saved long term?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without source explanation, "following rules" becomes a black box.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do not turn project exceptions into global habits
&lt;/h2&gt;

&lt;p&gt;Design projects often contain one-off exceptions.&lt;/p&gt;

&lt;p&gt;One client prefers a special material. One floor plan has unusual circulation. One source drawing needs a special interpretation. These can be recorded, but they should not automatically become global rules.&lt;/p&gt;

&lt;p&gt;A good AI design workbench should separate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;product defaults: suitable for all users;&lt;/li&gt;
&lt;li&gt;designer profile: long-term habits for one designer;&lt;/li&gt;
&lt;li&gt;project rules: valid only for the current project;&lt;/li&gt;
&lt;li&gt;session instructions: valid only for the current operation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Only with this separation can AI avoid polluting future projects with accidental decisions from one project.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/notes/design-rule-precedence-for-ai-designers/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/notes/design-rule-precedence-for-ai-designers/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>design</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>How Visual Feedback Becomes Structured Design Changes</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Thu, 07 May 2026 03:48:34 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/how-visual-feedback-becomes-structured-design-changes-3g08</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/how-visual-feedback-becomes-structured-design-changes-3g08</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" alt="Article cover image" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Designers read images quickly.&lt;/p&gt;

&lt;p&gt;A top view, screenshot, or rendering can reveal problems faster than text: the proportions are wrong, the entrance is too narrow, the furniture is crowded, the wall direction is strange, or the lighting emphasis is off.&lt;/p&gt;

&lt;p&gt;That makes visual feedback an important part of an AI design workbench.&lt;/p&gt;

&lt;p&gt;But visual feedback can also become a new source of disorder. If it stops at "this looks wrong," or if AI only patches the current picture, the project quickly fills with screenshots, opinions, and one-off fixes.&lt;/p&gt;

&lt;p&gt;The key question is: how does visual feedback return to the structured design project?&lt;/p&gt;

&lt;h2&gt;
  
  
  The image is not the final truth
&lt;/h2&gt;

&lt;p&gt;Screenshots and renderings are useful, but they are not the only source of truth for a design project.&lt;/p&gt;

&lt;p&gt;An image can show what appears to be happening, but it usually cannot answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;does this problem come from spatial dimensions or camera perspective?&lt;/li&gt;
&lt;li&gt;is the model wrong, or is the rendering expression wrong?&lt;/li&gt;
&lt;li&gt;should the material change, or should the lighting change?&lt;/li&gt;
&lt;li&gt;was the source drawing interpreted incorrectly, or was placement wrong later?&lt;/li&gt;
&lt;li&gt;should this feedback affect project-wide rules or only this version?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If AI directly edits the image, the short-term output may look better, but the reason is lost.&lt;/p&gt;

&lt;p&gt;A reliable workbench should treat images as review artifacts, not final truth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback needs classification
&lt;/h2&gt;

&lt;p&gt;When a designer says "this is wrong," AI should not immediately make a blind edit. It should first classify the feedback.&lt;/p&gt;

&lt;p&gt;Common categories include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;model structure issue: a space, wall, opening, furniture item, or dimension needs a change;&lt;/li&gt;
&lt;li&gt;source evidence issue: an original drawing, scan, photo, or annotation was interpreted incorrectly;&lt;/li&gt;
&lt;li&gt;design rule issue: clearance, proportion, circulation, lighting, style, or preference rules need adjustment;&lt;/li&gt;
&lt;li&gt;presentation issue: camera angle, lighting, material, or rendering settings created the confusion;&lt;/li&gt;
&lt;li&gt;project-local memory: this client or site has a specific preference that should not become a global rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After classification, AI can decide where the change belongs.&lt;/p&gt;

&lt;p&gt;For example, "the dining table is too close to the circulation path" is not just an aesthetic comment. It may mean the table component should move, the clearance rule should be checked, or the current camera angle exaggerates crowding.&lt;/p&gt;

&lt;p&gt;Those are three different actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Accepted feedback should become structured action
&lt;/h2&gt;

&lt;p&gt;Visual feedback should enter the project through a conversion process.&lt;/p&gt;

&lt;p&gt;First, record the feedback: which image, which version, who said it, and what the issue is.&lt;/p&gt;

&lt;p&gt;Second, locate the object: which space, wall, opening, component, material, light, or rule is affected.&lt;/p&gt;

&lt;p&gt;Third, decide the action: modify the model, update source interpretation, adjust a rule, rerender, or record a project preference.&lt;/p&gt;

&lt;p&gt;Fourth, execute and leave a diff. AI changes the structured model or related files, not just a new image.&lt;/p&gt;

&lt;p&gt;Fifth, generate a new review artifact so the designer can confirm whether the problem was solved.&lt;/p&gt;

&lt;p&gt;This loop may look slower, but it makes the project repairable, reviewable, and continuous.&lt;/p&gt;

&lt;h2&gt;
  
  
  Top views are good at exposing structural errors
&lt;/h2&gt;

&lt;p&gt;In spatial design and modeling, top views have a special value: they reveal structural errors more easily than perspective views.&lt;/p&gt;

&lt;p&gt;Perspective views can hide problems. Top views expose broken walls, wrong opening directions, unclosed room boundaries, reversed balcony orientation, or furniture intruding into circulation.&lt;/p&gt;

&lt;p&gt;But a top view is still only a review artifact. It finds problems; it does not own the truth.&lt;/p&gt;

&lt;p&gt;The repair should still return to the structured model, source evidence, or design rules.&lt;/p&gt;

&lt;p&gt;If a screenshot reveals that "the door is in the wrong position," AI should ask or infer: was the doorway evidence interpreted incorrectly, was the door component placed incorrectly, or did the rule change?&lt;/p&gt;

&lt;p&gt;That is how visual feedback enters the workbench.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do not let screenshots become another junk drawer
&lt;/h2&gt;

&lt;p&gt;Many AI workflows produce lots of images. Each image can generate opinions, and each opinion can generate more images.&lt;/p&gt;

&lt;p&gt;Without structured write-back, the project moves from a chat junk drawer to a screenshot junk drawer.&lt;/p&gt;

&lt;p&gt;A good AI design workbench should control this risk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;each important screenshot has provenance, version, and purpose;&lt;/li&gt;
&lt;li&gt;each important feedback item can be traced to an object and an action;&lt;/li&gt;
&lt;li&gt;accepted feedback is written back to project state;&lt;/li&gt;
&lt;li&gt;rejected feedback can still explain why it was not executed;&lt;/li&gt;
&lt;li&gt;a preference scoped to one project should not become a global product rule.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The value of visual feedback is not that AI produces more images. It is that designers can find problems faster and turn them into executable, verifiable design changes.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/visual-feedback-to-structured-changes/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/visual-feedback-to-structured-changes/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>design</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>A Designer's Core Value Is Judgment, Not Faster Drafting</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Thu, 07 May 2026 03:46:57 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/a-designers-core-value-is-judgment-not-faster-drafting-2jdm</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/a-designers-core-value-is-judgment-not-faster-drafting-2jdm</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" alt="Article cover image" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When AI enters design work, the conversation often narrows to one question: who can draw faster?&lt;/p&gt;

&lt;p&gt;If AI can produce images faster, build models faster, and revise options faster, does that reduce the value of a designer?&lt;/p&gt;

&lt;p&gt;The question sounds sharp, but it defines design work too narrowly. Drawing and modeling matter, but they are only part of design expression and execution. In real projects, the scarce ability is not only drawing the line. It is knowing what is worth drawing, why it should be drawn that way, and when the project should stop drawing in the wrong direction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speed is not the only variable
&lt;/h2&gt;

&lt;p&gt;Faster execution changes the industry, but speed does not automatically create good design.&lt;/p&gt;

&lt;p&gt;A space can produce ten options quickly, but without judgment those options are just ten forms of visual noise. A model can be filled with furniture, lighting, and materials quickly, but without tradeoff it may only express the wrong direction more completely.&lt;/p&gt;

&lt;p&gt;AI is good at expanding possibilities. It can turn one idea into several versions, batch repetitive actions, and organize feedback into tasks.&lt;/p&gt;

&lt;p&gt;But design projects also need convergence. A designer decides which possibilities should remain, which should be deleted, which are beautiful but wrong for the project, and which look conservative but fit the goal better.&lt;/p&gt;

&lt;p&gt;That is the core division of labor: AI increases options and executes actions; the designer judges direction and accepts results.&lt;/p&gt;

&lt;h2&gt;
  
  
  Judgment happens at many levels
&lt;/h2&gt;

&lt;p&gt;Design judgment is not only "does this look good?"&lt;/p&gt;

&lt;p&gt;It happens across multiple layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Goal judgment: what problem is this space trying to solve?&lt;/li&gt;
&lt;li&gt;Constraint judgment: which budget, size, circulation, lighting, construction, or user habit cannot be broken?&lt;/li&gt;
&lt;li&gt;Priority judgment: what comes first among beauty, storage, comfort, cost, buildability, and maintainability?&lt;/li&gt;
&lt;li&gt;Feedback judgment: when a client says "I don't like it," is the problem style, proportion, material, or presentation?&lt;/li&gt;
&lt;li&gt;Version judgment: what actually improved compared with the previous version?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These judgments are not replaced by one generated image.&lt;/p&gt;

&lt;p&gt;AI can participate in the judgment process. It can list differences, expose conflicts, remind the designer of missing constraints, and simulate alternatives. But accepting a direction and taking responsibility for a tradeoff still belongs to the designer.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI should reduce low-level execution, not absorb judgment
&lt;/h2&gt;

&lt;p&gt;If an AI tool packages all value as "automatic generation," the designer is left standing beside the machine, judging whatever it gives back. That is shallow collaboration.&lt;/p&gt;

&lt;p&gt;A better collaboration model lets AI handle low-level execution while the designer keeps high-level judgment.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;the designer states the goal, and AI turns it into a clearer design brief;&lt;/li&gt;
&lt;li&gt;the designer provides a plan or source material, and AI creates an editable working model;&lt;/li&gt;
&lt;li&gt;the designer says "this circulation feels wrong," and AI maps the issue to a space, opening, furniture item, or rule;&lt;/li&gt;
&lt;li&gt;the designer accepts feedback, and AI writes it as a structured change rather than only editing an image;&lt;/li&gt;
&lt;li&gt;the designer asks to compare versions, and AI summarizes the differences and risks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In that mode, AI does not replace the designer. It turns design judgment into actions that can be executed, recorded, and reviewed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designers should not become prompt operators
&lt;/h2&gt;

&lt;p&gt;Another common mistake is imagining future designers mainly as people who know how to write prompts.&lt;/p&gt;

&lt;p&gt;Prompts are useful, but prompt writing should not become the new core job. Otherwise designers only move from CAD operators to AI instruction operators.&lt;/p&gt;

&lt;p&gt;A valuable AI design workbench should reduce the translation cost between the designer and the tool.&lt;/p&gt;

&lt;p&gt;Designers should be able to speak in normal design language: this space feels compressed, this circulation is unclear, this cabinet should not dominate the visual center, this corridor needs safer width for an elderly user.&lt;/p&gt;

&lt;p&gt;The workbench should connect that language to project facts: which space, which component, which rule, which dimension, which version, which source drawing.&lt;/p&gt;

&lt;p&gt;When natural language can reliably land on project facts, designers do not need to keep learning machine-friendly spells.&lt;/p&gt;

&lt;h2&gt;
  
  
  The designer's value moves earlier
&lt;/h2&gt;

&lt;p&gt;AI will make some execution skills cheaper. That is not a problem by itself.&lt;/p&gt;

&lt;p&gt;If repetitive drafting, modeling, organizing, and small revisions are absorbed by tools, the designer's value moves earlier in the workflow: defining the problem, organizing information, creating rules, filtering options, explaining tradeoffs, and turning feedback into next actions.&lt;/p&gt;

&lt;p&gt;This also means designers cannot rely only on "I know how to operate the software." Software operation still matters, but it increasingly becomes one expression of design judgment rather than the whole value of the designer.&lt;/p&gt;

&lt;p&gt;In the AI era, the strongest designers will be able to say clearly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why this direction is worth pursuing;&lt;/li&gt;
&lt;li&gt;which constraints have been accepted;&lt;/li&gt;
&lt;li&gt;which possibilities were rejected;&lt;/li&gt;
&lt;li&gt;why this version is better than the previous one;&lt;/li&gt;
&lt;li&gt;what AI can execute, and what must return to the designer for confirmation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is the ability an AI design workbench should amplify.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/designer-judgment-not-drafting/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/designer-judgment-not-drafting/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>design</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
    <item>
      <title>AI Workbench for Designers: How Designers Should Work With AI</title>
      <dc:creator>Xu Bian</dc:creator>
      <pubDate>Thu, 07 May 2026 03:46:54 +0000</pubDate>
      <link>https://dev.to/xu_bian_f1525524ffcb08e35/ai-workbench-for-designers-how-designers-should-work-with-ai-eb2</link>
      <guid>https://dev.to/xu_bian_f1525524ffcb08e35/ai-workbench-for-designers-how-designers-should-work-with-ai-eb2</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgpwfegvjd0tww9cl183.png" alt="Article cover image" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When people talk about AI design tools, the default question is often: can AI draw for me? Can it make renderings? Can it turn one sentence into a model?&lt;/p&gt;

&lt;p&gt;Those questions matter, but they are not the whole workflow a designer needs over time.&lt;/p&gt;

&lt;p&gt;Designers do not only need a faster drawing button. They need a workbench that can hold design judgment across a project: where the intent lives, where source material lives, who maintains the rules, how the model state changes, how visual feedback returns to the design, and why each revision happened.&lt;/p&gt;

&lt;p&gt;That is why I prefer to think in terms of an &lt;code&gt;AI workbench for designers&lt;/code&gt;, not a chatbot, image generator, or automatic drafting plugin.&lt;/p&gt;

&lt;h2&gt;
  
  
  A workbench is different from a chat tool
&lt;/h2&gt;

&lt;p&gt;Chat tools are good at answering questions. You can ask for color ideas, style references, spatial suggestions, circulation advice, or material options. They can provide inspiration and help organize language.&lt;/p&gt;

&lt;p&gt;But a real design project does not stop at one answer.&lt;/p&gt;

&lt;p&gt;A project changes over time. A client revises the brief. Site conditions shift. The budget tightens. A designer rejects yesterday's decision. The model becomes inconsistent. A screenshot reveals a new problem.&lt;/p&gt;

&lt;p&gt;If AI is only a chat interface, it struggles to answer questions like these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What design rules are currently active?&lt;/li&gt;
&lt;li&gt;Which dimensions came from source material, and which ones are inferred?&lt;/li&gt;
&lt;li&gt;Which space did the last client comment actually change?&lt;/li&gt;
&lt;li&gt;Should this rendering issue change the model, material, lighting, or just presentation?&lt;/li&gt;
&lt;li&gt;What changed between the current version and the previous one?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The value of a workbench is that it does not treat conversation as the only container. It turns conversation into project state that can be saved, checked, and repaired.&lt;/p&gt;

&lt;h2&gt;
  
  
  The designer remains the judge
&lt;/h2&gt;

&lt;p&gt;The most dangerous misunderstanding is that AI turns designers into people who merely give commands to a machine.&lt;/p&gt;

&lt;p&gt;The better division of labor is the opposite.&lt;/p&gt;

&lt;p&gt;AI can help with lower-level execution: organizing material, creating a first working model, trying variations, checking rules, preparing screenshots, recording versions, and translating feedback into concrete actions.&lt;/p&gt;

&lt;p&gt;But the designer still owns the important judgment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what the goal is;&lt;/li&gt;
&lt;li&gt;which constraints cannot be broken;&lt;/li&gt;
&lt;li&gt;what counts as a good proposal, not just a busy image;&lt;/li&gt;
&lt;li&gt;which feedback should be accepted and which feedback is temporary noise;&lt;/li&gt;
&lt;li&gt;which rules should be updated and which ones are only local exceptions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A good AI design workbench should not turn the designer into a prompt operator. It should reduce repetitive drafting, searching, organizing, and repair work so the designer can focus on intent, tradeoffs, and acceptance.&lt;/p&gt;

&lt;h2&gt;
  
  
  A workbench needs at least six layers
&lt;/h2&gt;

&lt;p&gt;From the outside, an AI design workbench may look like a natural-language request: "Make this living room better for reading."&lt;/p&gt;

&lt;p&gt;Behind that request, at least six layers should be active.&lt;/p&gt;

&lt;p&gt;The first layer is design intent. The AI needs to understand the problem you are trying to solve, not only the words you typed.&lt;/p&gt;

&lt;p&gt;The second layer is project material. Floor plans, references, components, materials, constraints, client feedback, and site information need provenance.&lt;/p&gt;

&lt;p&gt;The third layer is a structured model. A design cannot live only in screenshots and chat history. Spaces, dimensions, components, rules, assumptions, and versions need an editable fact layer.&lt;/p&gt;

&lt;p&gt;The fourth layer is design rules. Personal preferences, project requirements, session instructions, and product defaults may all exist at the same time. Their priority has to be explicit.&lt;/p&gt;

&lt;p&gt;The fifth layer is professional software execution. AI should not only give advice. It should be able to execute structured design state into tools such as SketchUp.&lt;/p&gt;

&lt;p&gt;The sixth layer is visual review and repair. Screenshots, renderings, and top views can reveal problems, but they should not become the final source of truth. Accepted feedback should return to the structured model, rules, or source evidence.&lt;/p&gt;

&lt;p&gt;When these layers work together, a design project is no longer a loose pile of chat suggestions and images.&lt;/p&gt;

&lt;h2&gt;
  
  
  SketchUp Agent Harness is one example
&lt;/h2&gt;

&lt;p&gt;The core idea behind SketchUp Agent Harness is that natural-language control of SketchUp is only the entry point. The more important question is how to turn a design project into a durable workflow.&lt;/p&gt;

&lt;p&gt;In that direction, Codex or Claude is not the entire product. They are entry points into the workbench. The important pieces are the project workspace, structured design model, runtime skills, SketchUp bridge, component information, import evidence, snapshot records, and repair loop.&lt;/p&gt;

&lt;p&gt;This does not mean the product is already mature enough for every design scenario. Many parts still need iteration: better floor-plan import, more reliable component libraries, richer design rules, and a stronger visual feedback loop.&lt;/p&gt;

&lt;p&gt;But the direction is clear: an AI design tool should not only chase "type one sentence and get a result." It should help designers maintain a design project that remains editable, traceable, and repairable over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this series covers
&lt;/h2&gt;

&lt;p&gt;This series is not a low-level protocol guide, and it is not a developer architecture document. It is about how designers can collaborate with AI.&lt;/p&gt;

&lt;p&gt;The next pieces will discuss:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why a designer's core value is judgment and tradeoff, not faster drafting;&lt;/li&gt;
&lt;li&gt;why chat advice should become a durable design project;&lt;/li&gt;
&lt;li&gt;how visual feedback can move from "this looks wrong" into a structured change;&lt;/li&gt;
&lt;li&gt;which rule should win when personal preferences, project constraints, and current instructions conflict.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My position is simple: AI should not take over the designer's judgment. It should become the designer's workbench, organizing intent, material, rules, model state, feedback, and repair so real projects can move forward more reliably.&lt;/p&gt;




&lt;p&gt;Originally published on my personal site:&lt;br&gt;
&lt;a href="https://marlinbian-site.pages.dev/writing/ai-designers-workbench/" rel="noopener noreferrer"&gt;https://marlinbian-site.pages.dev/writing/ai-designers-workbench/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More links: &lt;a href="https://github.com/marlinBian" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://www.youtube.com/channel/UCDohkzMJ37unYpA78MOl2og" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; · &lt;a href="https://www.linkedin.com/in/xu-bian-0b6404207/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; · &lt;a href="https://bsky.app/profile/marlin-bian.bsky.social" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; · &lt;a href="https://mastodon.social/@marlin_bian" rel="noopener noreferrer"&gt;Mastodon&lt;/a&gt; · &lt;a href="https://discord.gg/jy2N8b3kZR" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>design</category>
      <category>productivity</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
