<?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: Leo Liu</title>
    <description>The latest articles on DEV Community by Leo Liu (@leoautomotiveai).</description>
    <link>https://dev.to/leoautomotiveai</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4108523%2F11523107-81ac-4948-8dd6-5ecb049d55ad.jpg</url>
      <title>DEV Community: Leo Liu</title>
      <link>https://dev.to/leoautomotiveai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/leoautomotiveai"/>
    <language>en</language>
    <item>
      <title>3,026 Queries to 16: What We Checked Before Calling a Dashboard Faster</title>
      <dc:creator>Leo Liu</dc:creator>
      <pubDate>Tue, 15 Sep 2026 05:04:37 +0000</pubDate>
      <link>https://dev.to/leoautomotiveai/3026-queries-to-16-what-we-checked-before-calling-a-dashboard-faster-a5k</link>
      <guid>https://dev.to/leoautomotiveai/3026-queries-to-16-what-we-checked-before-calling-a-dashboard-faster-a5k</guid>
      <description>&lt;p&gt;Our internal operations dashboard had become slow. Before buying more server capacity, we looked at what one list request was doing.&lt;/p&gt;

&lt;p&gt;The September 11 engineering report from our project recorded 3,026 database queries in an isolated test using a copy of real data. Related records were being fetched one row at a time, and the initial response carried roughly 1.5 MB before anyone opened a detail view.&lt;/p&gt;

&lt;h2&gt;
  
  
  Change what the page asks for
&lt;/h2&gt;

&lt;p&gt;The changes were straightforward to describe, but not trivial to validate:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Return paginated summaries, not complete records, in the list.&lt;/li&gt;
&lt;li&gt;Batch related-record lookups instead of repeating them for each row.&lt;/li&gt;
&lt;li&gt;Fetch details when a user opens them.&lt;/li&gt;
&lt;li&gt;Keep ordering deterministic and measure both response size and latency.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Under the reported test conditions, the main list query count fell to 16, plus two read-only transaction-control statements. Median request time fell from 343 ms to 13 ms; at ten concurrent requests, p95 fell from 3,303 ms to 230 ms. The response fell to roughly 60 KB before compression, or 10.6 KB compressed.&lt;/p&gt;

&lt;p&gt;These are figures from our isolated comparison, not a promise of the same improvement on every dataset or a measurement of long-term production reliability.&lt;/p&gt;

&lt;h2&gt;
  
  
  A faster response can still be the wrong response
&lt;/h2&gt;

&lt;p&gt;For our team, speed was only half the acceptance question. The other half was whether the same people could still see and act on the same records.&lt;/p&gt;

&lt;p&gt;The comparison needed to cover permissions, filters, recent-activity rules, pagination, cross-page selection, bulk assignment, and login behavior. A changed sort order or a missing permission check would make a fast dashboard worse, not better.&lt;/p&gt;

&lt;p&gt;That is the part I would bring to another team: write down the behavior that must remain unchanged before asking an AI coding agent to optimize the implementation. Then compare the old and new versions against that checklist, alongside the timing results.&lt;/p&gt;

&lt;p&gt;A benchmark supports a performance claim within its test conditions. Production operation needs its own checks. Keeping those two conclusions separate makes the result much more useful than a single impressive speedup number.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>database</category>
      <category>performance</category>
    </item>
    <item>
      <title>From Prompt to WeChat Dev Build in One Day: Tests and Evidence Boundaries</title>
      <dc:creator>Leo Liu</dc:creator>
      <pubDate>Mon, 07 Sep 2026 10:16:57 +0000</pubDate>
      <link>https://dev.to/leoautomotiveai/from-prompt-to-wechat-dev-build-in-one-day-tests-and-evidence-boundaries-1kf3</link>
      <guid>https://dev.to/leoautomotiveai/from-prompt-to-wechat-dev-build-in-one-day-tests-and-evidence-boundaries-1kf3</guid>
      <description>&lt;p&gt;I recently used AI as the primary development interface for a small WeChat mini game called &lt;strong&gt;Weiguang Xinyu&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The one-day result was a working ten-level Canvas2D puzzle, an original background track, a passing local test suite, and a successfully uploaded development build. The public release followed later.&lt;/p&gt;

&lt;p&gt;This post focuses on the technical workflow and the evidence boundary between those two stages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Product scope
&lt;/h2&gt;

&lt;p&gt;The mechanic is compact: rotate path segments to connect a light source to a destination.&lt;/p&gt;

&lt;p&gt;The build includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ten puzzle levels&lt;/li&gt;
&lt;li&gt;level selection and unlocking&lt;/li&gt;
&lt;li&gt;undo and restart&lt;/li&gt;
&lt;li&gt;one free hint per level&lt;/li&gt;
&lt;li&gt;local progress persistence&lt;/li&gt;
&lt;li&gt;an original looping background track&lt;/li&gt;
&lt;li&gt;a music toggle with stored preference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first version did not depend on a cloud environment, external server, personal-data API, advertising, or payments. That kept the test surface controlled enough for a one-day experiment.&lt;/p&gt;

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

&lt;p&gt;I used voice as the primary interface and treated AI as a coordinated implementation system rather than a one-shot code generator.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;requirement
  -&amp;gt; implementation
  -&amp;gt; local test
  -&amp;gt; visual inspection
  -&amp;gt; packaging check
  -&amp;gt; development upload
  -&amp;gt; remote source readback
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each loop ended with an observable artifact. A plausible answer in a chat window did not count as completion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;The game uses Canvas2D for rendering and separates the core puzzle state from platform-specific behavior.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;game state + level data
        |
        +-- input and rotation logic
        +-- path connectivity checks
        +-- progress persistence
        +-- renderer
        +-- audio controller
                |
                +-- browser adapter
                +-- WeChat adapter
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separation mattered because local browser previews and the WeChat runtime do not expose identical audio APIs or lifecycle behavior.&lt;/p&gt;

&lt;p&gt;The music starts only after the first user interaction, loops when enabled, pauses in the background or during interruptions, and stores the user's preference. Audio failure does not block gameplay.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing and readback
&lt;/h2&gt;

&lt;p&gt;The final local suite reported &lt;strong&gt;13/13 tests passing&lt;/strong&gt;. The checks covered the original puzzle behavior together with the music controller and platform adapters.&lt;/p&gt;

&lt;p&gt;The upload alone was not treated as proof that the intended source had reached the platform. After the official development-build upload succeeded, the remote source map was read back. Thirteen remote source files matched the local source files.&lt;/p&gt;

&lt;p&gt;That is useful evidence, but it has limits. It does not replace real-device testing, prove every binary asset is byte-identical, or mean the build is already public at that moment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four-state model
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;th&gt;Evidence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Local prototype&lt;/td&gt;
&lt;td&gt;The project runs locally and the core interaction works&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tested build&lt;/td&gt;
&lt;td&gt;Defined tests pass and the relevant UI is inspected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uploaded development build&lt;/td&gt;
&lt;td&gt;The platform accepts the build and the result is read back where possible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Public release&lt;/td&gt;
&lt;td&gt;Review is approved and ordinary users can access the production version&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The process screenshot captured the tested-and-uploaded stage. The project later reached public release.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI was good at
&lt;/h2&gt;

&lt;p&gt;AI was especially effective at keeping related changes synchronized:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;updating implementation and tests together&lt;/li&gt;
&lt;li&gt;aligning the product name across the UI, project metadata, and review copy&lt;/li&gt;
&lt;li&gt;generating repeatable checks instead of relying only on manual inspection&lt;/li&gt;
&lt;li&gt;documenting the current state after each meaningful transition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The speed came from many small verified loops, not from a single giant prompt.&lt;/p&gt;

&lt;h2&gt;
  
  
  What still required human judgment
&lt;/h2&gt;

&lt;p&gt;The hardest decisions were not syntax decisions. They were questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the mechanic understandable without explanation?&lt;/li&gt;
&lt;li&gt;Is a level difficult for the right reason?&lt;/li&gt;
&lt;li&gt;Does the visual and audio mood support the product idea?&lt;/li&gt;
&lt;li&gt;What evidence is strong enough for the next claim?&lt;/li&gt;
&lt;li&gt;Which platform step changes the truthful status of the project?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI reduced implementation cost. It did not remove product judgment or release responsibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;Yes, AI can help one person build a small game in a day.&lt;/p&gt;

&lt;p&gt;The more useful claim is narrower: AI can compress the path from idea to a tested, uploaded development build when the scope is controlled and every stage ends with evidence. The release can then follow through its own verified steps.&lt;/p&gt;

&lt;p&gt;That is already a major change. Just do not call the development upload a launch before the later launch is actually complete.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>testing</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A Versioned Evidence Schema for Agent Skills: Provenance, Permissions, Task Fit, and Test Status</title>
      <dc:creator>Leo Liu</dc:creator>
      <pubDate>Sat, 05 Sep 2026 04:18:27 +0000</pubDate>
      <link>https://dev.to/leoautomotiveai/a-versioned-evidence-schema-for-agent-skills-provenance-permissions-task-fit-and-test-status-3o04</link>
      <guid>https://dev.to/leoautomotiveai/a-versioned-evidence-schema-for-agent-skills-provenance-permissions-task-fit-and-test-status-3o04</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI-assistance disclosure:&lt;/strong&gt; I used AI to help draft and edit this article. I checked the technical claims and remain responsible for the final text. I also maintain the open-source repository described here, so this is not an independent review.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agent capabilities are becoming easier to package and discover. But cataloging a Skill, MCP server, or plugin is not the same as proving that it works for a specific task.&lt;/p&gt;

&lt;p&gt;I have been exploring a small open-source project called &lt;a href="https://github.com/leo2026888/agent-catalog-seed" rel="noopener noreferrer"&gt;Agent Catalog Seed&lt;/a&gt;. Its purpose is not to create another popularity leaderboard. The experiment is to make missing evidence explicit and versioned.&lt;/p&gt;

&lt;h2&gt;
  
  
  The state machine matters
&lt;/h2&gt;

&lt;p&gt;For an agent capability, these states are different:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cataloged
  -&amp;gt; statically checked
  -&amp;gt; installation observed
  -&amp;gt; runtime observed
  -&amp;gt; task acceptance recorded
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each arrow requires new evidence. A parser accepting &lt;code&gt;SKILL.md&lt;/code&gt; does not prove that a host can install it. A tool call returning &lt;code&gt;200 OK&lt;/code&gt; does not prove that the business task is correct. A successful run on one host does not prove compatibility on another.&lt;/p&gt;

&lt;p&gt;The catalog should therefore store evidence types rather than flattening them into one score.&lt;/p&gt;

&lt;h2&gt;
  
  
  A minimal versioned record
&lt;/h2&gt;

&lt;p&gt;The seed currently uses a strict JSON Schema. The example below is simplified, but it shows the separation of concerns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"schema_version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"0.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"urn:agent-catalog-seed:entry:release-note-checklist-demo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"kind"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"skill"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"installable"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"provenance"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"origin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ai-assisted-original"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"synthetic"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Synthetic catalog example; not a third-party package"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"requested_permissions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"filesystem_read"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"filesystem_write"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"network"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"network_destinations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"data_destinations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"compatibility"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"host"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unverified-host"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"unknown"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"evaluation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"not_evaluated"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"independent_review"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"evidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"conflicts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"maintainer_is_author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"disclosure"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Maintainer-authored synthetic example"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The current seed deliberately makes entries non-installable and unevaluated. It is safer to publish an honest &lt;code&gt;unknown&lt;/code&gt; than to convert a roadmap or author claim into a result.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Provenance before recommendation
&lt;/h2&gt;

&lt;p&gt;A useful record should identify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;source URL and maintainer;&lt;/li&gt;
&lt;li&gt;release, revision, or content digest;&lt;/li&gt;
&lt;li&gt;artifacts actually inspected or tested;&lt;/li&gt;
&lt;li&gt;license and redistribution basis;&lt;/li&gt;
&lt;li&gt;relationship between evaluator and author.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The version identity is essential. When a dependency changes, we need to know which evidence is still applicable.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Requested permissions are not enforced permissions
&lt;/h2&gt;

&lt;p&gt;The catalog can record filesystem, network, command execution, credential, and data-destination requirements. But it should not pretend that metadata enforces a sandbox.&lt;/p&gt;

&lt;p&gt;The host, user, identity provider, and remote service still control authorization. Static documentation can be wrong or incomplete. Runtime observation may reveal behavior, but it remains scoped to the tested environment.&lt;/p&gt;

&lt;p&gt;This is why “security” should not be one Boolean field. At minimum, separate provenance and integrity, requested and granted permissions, static findings, runtime observations, and unresolved risks.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Task evidence needs an acceptance contract
&lt;/h2&gt;

&lt;p&gt;Before testing, define the scenario and acceptance criteria. Then record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;host, model, adapter, dependency, and configuration versions;&lt;/li&gt;
&lt;li&gt;input boundary and whether the data is synthetic or authorized;&lt;/li&gt;
&lt;li&gt;planned attempts, retries, human interventions, and timeouts;&lt;/li&gt;
&lt;li&gt;every pass, failure, interruption, and indeterminate result;&lt;/li&gt;
&lt;li&gt;time and cost basis;&lt;/li&gt;
&lt;li&gt;who accepted the output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not remove a failed run because a retry succeeded. Do not change the acceptance criteria after seeing the output without recording the change.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Evidence should expire
&lt;/h2&gt;

&lt;p&gt;A test result needs an invalidation policy. A new release, host update, model snapshot, permission change, or task revision may move a record from &lt;code&gt;observed&lt;/code&gt; back to &lt;code&gt;retest_required&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This is where version monitoring becomes more than a notification feed. The useful question is not only “what changed?” but “which prior task evidence may no longer apply?”&lt;/p&gt;

&lt;h2&gt;
  
  
  What the repository proves today
&lt;/h2&gt;

&lt;p&gt;The public seed contains a versioned Schema, a synthetic example, a validator, boundary tests, evaluation and governance templates, and a real public &lt;a href="https://github.com/leo2026888/agent-catalog-seed/blob/main/skills/narrated-video-review/SKILL.md" rel="noopener noreferrer"&gt;&lt;code&gt;narrated-video-review&lt;/code&gt; Skill&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The Skill passed static format validation. It has not been independently tested in a real video edit or verified across multiple hosts. There is no live marketplace, no automatic evaluation service, no independent certification, no real user rating, and no paying customer.&lt;/p&gt;

&lt;p&gt;The repository is useful today as an inspectable proposal, not as a trust badge.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reproducible feedback request
&lt;/h2&gt;

&lt;p&gt;If your team has a recurring failure caused by a Skill, MCP server, plugin, or dependency update, open a &lt;a href="https://github.com/leo2026888/agent-catalog-seed/issues" rel="noopener noreferrer"&gt;GitHub Issue&lt;/a&gt; with a non-sensitive test case:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;task and acceptance condition;&lt;/li&gt;
&lt;li&gt;capability and version;&lt;/li&gt;
&lt;li&gt;host or integration context;&lt;/li&gt;
&lt;li&gt;observed failure or maintenance burden.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not post secrets, customer data, production credentials, or private files. Synthetic and redacted cases are welcome.&lt;/p&gt;

&lt;p&gt;The goal is to learn whether version monitoring, customer-task regression evidence, and team allowlists solve a repeated engineering problem—not to manufacture a large catalog before that problem is validated.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Author disclosure:&lt;/strong&gt; Leo Liu initiated and maintains Agent Catalog Seed. This article is an AI-assisted, human-reviewed technical note. It is not sponsored and does not represent an independent security assessment.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>mcp</category>
    </item>
    <item>
      <title>The AI Products We Build Today Are Not the Endgame</title>
      <dc:creator>Leo Liu</dc:creator>
      <pubDate>Fri, 04 Sep 2026 06:06:29 +0000</pubDate>
      <link>https://dev.to/leoautomotiveai/the-ai-products-we-build-today-are-not-the-endgame-5ba3</link>
      <guid>https://dev.to/leoautomotiveai/the-ai-products-we-build-today-are-not-the-endgame-5ba3</guid>
      <description></description>
    </item>
  </channel>
</rss>
