<?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: sword luan</title>
    <description>The latest articles on DEV Community by sword luan (@sword_luan_6dfb4e81cf5f15).</description>
    <link>https://dev.to/sword_luan_6dfb4e81cf5f15</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%2F4094411%2F6a1b83c6-8858-47d4-a753-f1672c8fcdda.png</url>
      <title>DEV Community: sword luan</title>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sword_luan_6dfb4e81cf5f15"/>
    <language>en</language>
    <item>
      <title>Stop Paying Before the Prototype Works: A Verified Test of itsfree.ai</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Thu, 10 Sep 2026 20:28:36 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/stop-paying-before-the-prototype-works-a-verified-test-of-itsfreeai-5681</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/stop-paying-before-the-prototype-works-a-verified-test-of-itsfreeai-5681</guid>
      <description>&lt;p&gt;The first cost of adding AI to a small tool is often not tokens. It is the time spent comparing provider docs, sign-up rules, base URLs, and model names that may already be stale. We tested &lt;code&gt;midudev/itsfree.ai&lt;/code&gt;, the open-source directory created by Miguel Ángel Durán (&lt;code&gt;midudev&lt;/code&gt;), to see whether it could shorten that discovery work and lead to a result we could actually verify.&lt;/p&gt;

&lt;p&gt;itsfree.ai is a directory, not a model proxy operated by us. At the time of the experiment, its rendered pages listed 25 providers with free allowances, 463 free models, and 9 local runtimes. Those numbers describe directory records; we did not test every listed model or runtime. The useful design choice is that provider data, requirements, base URLs, and gotchas are collected in structured TypeScript files and exposed through filters such as no-sign-up and OpenAI-compatible.&lt;/p&gt;

&lt;p&gt;The repository built successfully, but the development server did not. Two &lt;code&gt;pnpm dev&lt;/code&gt; attempts failed because Vite could not find a generated &lt;code&gt;deps_ssr&lt;/code&gt; file, and clearing &lt;code&gt;.vite&lt;/code&gt; reproduced the failure. Serving the completed build with &lt;code&gt;pnpm preview&lt;/code&gt; returned HTTP 200 and rendered the pages we needed. The distinction matters: the current commit was usable for directory exploration in our environment, while the &lt;code&gt;dev&lt;/code&gt; compatibility issue remained unresolved.&lt;/p&gt;

&lt;p&gt;The API path showed why live verification matters. The documented &lt;code&gt;gpt-oss&lt;/code&gt; example returned &lt;code&gt;model_unavailable&lt;/code&gt;. Other model choices produced missing-key or invalid-key errors. After reading the llm7 provider gotchas and querying the live model list, we selected &lt;code&gt;codestral-latest&lt;/code&gt; and sent the placeholder bearer value &lt;code&gt;unused&lt;/code&gt; to the OpenAI-compatible endpoint at &lt;code&gt;https://api.llm7.io/v1&lt;/code&gt;. That request returned HTTP 200.&lt;/p&gt;

&lt;p&gt;We then asked the model to do useful, checkable work: extract six provider records and sort them by &lt;code&gt;freeModels&lt;/code&gt;. A separate verifier derived truth from the source data and compared record count, fields, values, and order. The model output matched all six records (&lt;code&gt;match=true&lt;/code&gt;). The call used 272 prompt tokens and 101 completion tokens, 373 total; curl measured 1.69 seconds, and the experiment recorded CNY 0 for the call.&lt;/p&gt;

&lt;p&gt;That success is not a general accuracy claim. When the same model was asked what the project does, it incorrectly answered that the project verifies domain availability. The comparison gives us a practical boundary: a free model can be useful for structured transformations when expected output is machine-checkable, but fluent prose is not evidence of factual accuracy.&lt;/p&gt;

&lt;p&gt;You can reproduce the decision process without moving an entire application. First, open the no-sign-up or OpenAI-compatible filter on itsfree.ai and pick one candidate. Second, read its gotchas, query the provider’s live model list, send the smallest representative request, and automatically check the fields or ordering you care about. Only then decide whether the endpoint is suitable for a larger prototype or whether a paid, more stable path is justified.&lt;/p&gt;

&lt;p&gt;The result supports a narrow, useful conclusion: itsfree.ai reduced provider discovery to a structured shortlist, and one directory-guided route completed a real, machine-verified task at no recorded cost in this run. The durable asset is not the name of a model that happens to be free today. It is a repeatable sequence: filter, read gotchas, check the live list, test minimally, and verify.&lt;/p&gt;

&lt;p&gt;Links&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project: &lt;a href="https://itsfree.ai" rel="noopener noreferrer"&gt;https://itsfree.ai&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Official repository: &lt;a href="https://github.com/midudev/itsfree.ai" rel="noopener noreferrer"&gt;https://github.com/midudev/itsfree.ai&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Images / captions&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;01-home.png&lt;/code&gt; — locally rendered homepage.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;04-no-signup.png&lt;/code&gt; — real no-sign-up filter result.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;02-provider-llm7.png&lt;/code&gt; — real llm7 provider page.&lt;/li&gt;
&lt;li&gt;Comparison card generated from &lt;code&gt;task-request.json&lt;/code&gt;, &lt;code&gt;task-response.json&lt;/code&gt;, and &lt;code&gt;task-verification.json&lt;/code&gt;; label it as generated from experiment files.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Upload order&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Title and homepage image. 2. Body with the screenshots at their matching sections. 3. Verification card after the task result. 4. Repository and project links. 5. Preview captions and links before publishing.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>AI 聊久了就忘约定？本机实测 okf-agent-memory</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Tue, 08 Sep 2026 05:37:30 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/ai-liao-jiu-liao-jiu-wang-yue-ding-ben-ji-shi-ce-okf-agent-memory-469p</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/ai-liao-jiu-liao-jiu-wang-yue-ding-ben-ji-shi-ce-okf-agent-memory-469p</guid>
      <description>&lt;h1&gt;
  
  
  AI 聊久了就忘约定？我们实测了一个本地记忆工具｜okf-agent-memory
&lt;/h1&gt;

&lt;p&gt;明明已经说好了，这个字段名不要再改。聊了一会儿，AI 又给你改回去了。&lt;/p&gt;

&lt;p&gt;用 AI 写代码，你有没有碰到过这种事？烦的不只是改错了，而是你还得翻聊天记录，找出之前的决定，再解释一遍。项目越做越长，光是提醒它“我们之前说好了什么”，就成了一份额外的工作。&lt;/p&gt;

&lt;p&gt;那能不能把这些约定从聊天里拿出来，存到一个下次能找得到的地方？&lt;/p&gt;

&lt;p&gt;今天我们试的开源工具，叫 okf-agent-memory，做的就是这件事。&lt;/p&gt;

&lt;p&gt;它把知识条目保存在你自己电脑的目录里，可以按关键词搜索，还能检查文件是不是符合规范。不用先搭一套数据库，就能开始建立本地记忆库。&lt;/p&gt;

&lt;p&gt;比如，一个项目讨论了几十轮，真正需要留下的，可能就是几个字段名、最后确定的接口方案，还有某项功能为什么决定不做。下次继续，你需要找的是这些结论，而不是重新看一遍全部聊天。&lt;/p&gt;

&lt;p&gt;说到这里，你可能会问：这不就是记笔记吗？&lt;/p&gt;

&lt;p&gt;确实，保存结论本身不新鲜。我们要看的，是它能不能让这些记录方便找回，以及记录不符合规范时，能不能把问题指出来。&lt;/p&gt;

&lt;p&gt;这次我们在本机测的是 0.1.2 版本。初始化以后，记忆库的目录和基础文件正常生成。我们写入了一条测试笔记，再用相关关键词搜索，找到了刚刚写进去的那条。&lt;/p&gt;

&lt;p&gt;保存和搜索这条路，跑通了。&lt;/p&gt;

&lt;p&gt;接下来，我们故意给它出了一道错题。&lt;/p&gt;

&lt;p&gt;先对一个正常的记忆库运行检查，结果通过。然后往里面放进一份缺少规定抬头的文件，再检查一次。&lt;/p&gt;

&lt;p&gt;这次没有通过，而且指出了那份文件的问题。&lt;/p&gt;

&lt;p&gt;这个报错，反而是我们想看到的。如果什么文件放进去，检查都告诉你“没问题”，那这个功能就没有意义。至少这次故意留下的格式问题，它确实发现了。&lt;/p&gt;

&lt;p&gt;最后，我们又把原来的笔记读回来，正文还在。&lt;/p&gt;

&lt;p&gt;所以，这次不是只把软件装上、看到它能启动就结束了。记录写进去了，能搜到，也能读回来；检查功能也分辨出了正常的库和我们故意放进去的那份不规范文件。&lt;/p&gt;

&lt;p&gt;对经常自己改项目的人来说，这个工具值得看的地方，就在这里：重要约定不用只埋在聊天记录里，可以单独保存，需要的时候按关键词找出来，再把相关内容交给 AI。不必每次都翻长篇历史，也不必把所有笔记一股脑贴回去。&lt;/p&gt;

&lt;p&gt;不过，“记录存下来了”和“AI 会自动用上”，是两件事。这次验证的是本机存取和检查，还不能据此说，装好以后 AI 就会自动记住每次对话，下一轮也一定会主动调用。&lt;/p&gt;

&lt;p&gt;检查功能也一样。它发现的是我们这次设置的格式问题，不代表笔记里的结论一定正确。接口后来改了，旧记录也得跟着更新。&lt;/p&gt;

&lt;p&gt;至于云端协作、多人同时写入，以及大量数据下的性能，这次没有测。&lt;/p&gt;

&lt;p&gt;你也有一堆反复向 AI 交代的项目约定，可以先拿其中一条试试：存进去，用相关关键词找出来，再读回来。先看看这套办法能不能帮你少翻几次聊天、少重复解释几遍，再决定要不要用进日常工作。&lt;/p&gt;

&lt;p&gt;项目在 GitHub 上，搜索 okf-memory/okf-agent-memory。&lt;/p&gt;

&lt;p&gt;这里是剑的 AI 实验室。每天选一个开源项目，装上，跑一遍，把结果给你看。喜欢看真实测试，欢迎订阅，我们下期见。&lt;/p&gt;




&lt;p&gt;实验田：&lt;a href="https://jianailab.com/studio/field?experiment=1059bb13-e0fd-4242-ada3-6515f07a4b63" rel="noopener noreferrer"&gt;https://jianailab.com/studio/field?experiment=1059bb13-e0fd-4242-ada3-6515f07a4b63&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub：&lt;a href="https://github.com/okf-memory/okf-agent-memory" rel="noopener noreferrer"&gt;https://github.com/okf-memory/okf-agent-memory&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>We ran gzh-design-skill locally: layout check passed, 3 planted errors caught</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Mon, 07 Sep 2026 19:00:29 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/we-ran-gzh-design-skill-locally-layout-check-passed-3-planted-errors-caught-fef</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/we-ran-gzh-design-skill-locally-layout-check-passed-3-planted-errors-caught-fef</guid>
      <description>&lt;p&gt;Finished writing, then spent half an hour fighting layout: mismatched titles, cramped code blocks, drifting images. You meant to publish; you became a layout worker.&lt;/p&gt;

&lt;p&gt;We ran the open-source project &lt;strong&gt;gzh-design-skill&lt;/strong&gt; (a WeChat Official Account layout helper) on our machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Results first
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Built a layout file that passed the tool's check&lt;/li&gt;
&lt;li&gt;Generated a preview page with a copy button&lt;/li&gt;
&lt;li&gt;Intentionally inserted three bad patterns — the tool reported &lt;strong&gt;three errors&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; "Compliant" here means the &lt;strong&gt;layout code&lt;/strong&gt; passed this tool's checker. It is &lt;strong&gt;not&lt;/strong&gt; WeChat content moderation and &lt;strong&gt;not&lt;/strong&gt; an official WeChat certification.&lt;/p&gt;

&lt;p&gt;A preview that opens is &lt;strong&gt;not&lt;/strong&gt; the same as pasting into the Official Account editor without breakage. Treat those as two separate checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/isjiamu/gzh-design-skill" rel="noopener noreferrer"&gt;https://github.com/isjiamu/gzh-design-skill&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It takes Markdown-style drafts (hash headings, simple lists), applies a theme, and emits HTML with &lt;strong&gt;inline styles&lt;/strong&gt; (font size, color, spacing on the tags themselves) so you can paste into the WeChat editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we actually verified
&lt;/h2&gt;

&lt;p&gt;Sample check: fully compliant. Bad sample: three errors found. Component library: no blocking failures. Combined output re-checked: still passed, then preview generated.&lt;/p&gt;

&lt;p&gt;We did &lt;strong&gt;not&lt;/strong&gt; finish the full "assistant picks theme and assembles the whole article" path this round. Do not read "sample passed" as "fully auto-layout and verified inside WeChat."&lt;/p&gt;

&lt;h2&gt;
  
  
  Who it's for
&lt;/h2&gt;

&lt;p&gt;People who write long WeChat posts, already draft with AI assistants, and still get stuck on final layout.&lt;/p&gt;

&lt;p&gt;Best test: your own real article (body, titles, images, code) → check → preview → paste → inspect the reader page.&lt;/p&gt;

&lt;p&gt;— Jian AI Lab: install, run, show the measured result.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Clarify a vague SaaS idea into a one-pager: we ran zhang7700/clarify-saas-idea locally</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Sat, 05 Sep 2026 02:16:43 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/clarify-a-vague-saas-idea-into-a-one-pager-we-ran-zhang7700clarify-saas-idea-locally-1oi</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/clarify-a-vague-saas-idea-into-a-one-pager-we-ran-zhang7700clarify-saas-idea-locally-1oi</guid>
      <description>&lt;p&gt;Indie founders keep rewriting “who is this for?” in a notes app. &lt;a href="https://github.com/zhang7700/clarify-saas-idea" rel="noopener noreferrer"&gt;clarify-saas-idea&lt;/a&gt; is a free Cursor / Claude Code Agent Skill that forces a decision-ready page: one ICP, a wedge, non-goals, MVP In/Out.&lt;/p&gt;

&lt;p&gt;Jian AI Lab cloned commit &lt;code&gt;e1e48741d6bd&lt;/code&gt; (GitHub id 1357550091) on 2026-09-05 and followed the README.&lt;/p&gt;

&lt;p&gt;Install is a copy, not a PyPI package. &lt;code&gt;pip install clarify-saas-idea&lt;/code&gt; failed in 0.992s with “No matching distribution found”. &lt;code&gt;mkdir -p&lt;/code&gt; then &lt;code&gt;cp -R skills/clarify-saas-idea&lt;/code&gt; into &lt;code&gt;.cursor/skills&lt;/code&gt;, &lt;code&gt;.claude/skills&lt;/code&gt;, and &lt;code&gt;.agents/skills&lt;/code&gt; succeeded in 0.030s. Three &lt;code&gt;SKILL.md&lt;/code&gt; files, 3830 bytes each, matched the source.&lt;/p&gt;

&lt;p&gt;Empty input: the harness stopped in 0.048s with &lt;code&gt;BLOCKED_MISSING_INPUTS&lt;/code&gt; and did not write &lt;code&gt;docs/saas-one-pager.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Documented demo prompt (302 bytes): watch competitor pricing pages, sell to solo B2B founders, about four weekends, distribute on X. First draft at 09:44:38 was 499 English words, over the skill’s “≤ ~400 words” bar. Trimmed file at 09:45:49: 2543 bytes, 399 words, all ten required headings, seven In bullets. Wall clock from over-limit draft to passing draft: 71 seconds. We did not time a handwritten one-pager, so we do not invent that number.&lt;/p&gt;

&lt;p&gt;Author listing mentions a paid pack; we did not pay and did not test checkout.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/zhang7700/clarify-saas-idea" rel="noopener noreferrer"&gt;https://github.com/zhang7700/clarify-saas-idea&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Public X archive: &lt;a href="https://x.com/KaiZhang_AI/status/2095967421173473641" rel="noopener noreferrer"&gt;@KaiZhang_AI&lt;/a&gt; — read-only, no reply.&lt;/p&gt;

&lt;p&gt;Lab write-up: &lt;a href="https://jianailab.com/experiments/clarify-saas-idea-ab56a7d8" rel="noopener noreferrer"&gt;https://jianailab.com/experiments/clarify-saas-idea-ab56a7d8&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Turn a public page into an 8-page Xiaohongshu plan with crayon-shinchan-xhs-skill</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Fri, 04 Sep 2026 08:08:39 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/turn-a-public-page-into-an-8-page-xiaohongshu-plan-with-crayon-shinchan-xhs-skill-5dio</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/turn-a-public-page-into-an-8-page-xiaohongshu-plan-with-crayon-shinchan-xhs-skill-5dio</guid>
      <description>&lt;p&gt;Creators already have source pages. What they still assemble by hand is the carousel: titles, one point per page, on-image copy, and image prompts. jasonmarkppp/crayon-shinchan-xhs-skill is a Skill that performs that rewrite. We ran a minimum test against the Jian AI Lab public site. Empty input stopped the run. After a curl excerpt was supplied, an 8-page copy pack passed the Skill contract in 95 seconds of wall clock. No paid image API was called.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pain
&lt;/h2&gt;

&lt;p&gt;A README or marketing page is not a Xiaohongshu carousel. The missing work is structure, not more raw text.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hook (first ten seconds)
&lt;/h2&gt;

&lt;p&gt;The notes sit in a bookmark folder; the eight-page set has not started. This write-up shows the Skill doing that segment on a real public page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Promise
&lt;/h2&gt;

&lt;p&gt;Readers can verify the clone commit, the empty-run log, the three Markdown outputs, and the public HTML facts we used. This article does not claim a live Xiaohongshu post or generated images.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project and mechanism
&lt;/h2&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/jasonmarkppp/crayon-shinchan-xhs-skill" rel="noopener noreferrer"&gt;https://github.com/jasonmarkppp/crayon-shinchan-xhs-skill&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Commit: 7b35e340118b0a9ee850e9698d06259f5ec901c5&lt;br&gt;&lt;br&gt;
Two editions: &lt;code&gt;codex/SKILL.md&lt;/code&gt; and &lt;code&gt;domestic-agents/SKILL.md&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
Default: eight pages; find a distribution angle rather than summarize; do not invent unread sources; reserve text-safe areas in image prompts.&lt;br&gt;&lt;br&gt;
Public association (archive only): &lt;a href="https://x.com/cai_liang73983/status/2095456821536518620" rel="noopener noreferrer"&gt;https://x.com/cai_liang73983/status/2095456821536518620&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Experiment
&lt;/h2&gt;

&lt;p&gt;Clone into the run write root. Copy SKILL.md as install. curl &lt;a href="https://jianailab.com" rel="noopener noreferrer"&gt;https://jianailab.com&lt;/a&gt; and /library. Library HTML on 2026-09-04 still showed 233 projects, “今日新收录 0”, stamp 2026-09-02, and no crayon-shinchan string.&lt;/p&gt;

&lt;p&gt;First run with zero source files: 2026-09-04T11:25:35+08:00, BLOCKED_NO_SOURCE, exit 2, 0.000s.&lt;/p&gt;

&lt;p&gt;After &lt;code&gt;jianailab-public-notes.md&lt;/code&gt; (2460 bytes) the Skill produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;xiaohongshu-plan.md 8636 bytes&lt;/li&gt;
&lt;li&gt;image-prompts.md 3064 bytes&lt;/li&gt;
&lt;li&gt;caption-and-comment.md 1749 bytes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Source-ready 11:25:31 → files on disk 11:27:06 = 95s. Validation found pages 1–8 and 6 titles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Result
&lt;/h2&gt;

&lt;p&gt;Input: unstructured public-page notes. Output: a design-ready 8-page pack. Manual timing was not measured and is not invented. Paid image generation was not invoked.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who this helps
&lt;/h2&gt;

&lt;p&gt;Operators who turn docs into carousels, and anyone who wants a first pass before design. The lab public page itself was a valid source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next
&lt;/h2&gt;

&lt;p&gt;Public harvest: &lt;a href="https://jianailab.com/experiments/crayon-shinchan-xhs-skill-940cd766" rel="noopener noreferrer"&gt;https://jianailab.com/experiments/crayon-shinchan-xhs-skill-940cd766&lt;/a&gt;  complete=false.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Skip the OCR queue: pdf-inspector 1.17.0 classified a 14-page paper in 8.296 ms on a local Mac</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Wed, 02 Sep 2026 16:06:58 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/skip-the-ocr-queue-pdf-inspector-1170-classified-a-14-page-paper-in-8296-ms-on-a-local-mac-21kn</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/skip-the-ocr-queue-pdf-inspector-1170-classified-a-14-page-paper-in-8296-ms-on-a-local-mac-21kn</guid>
      <description>&lt;p&gt;Teams still send every PDF to cloud OCR. Page counts grow, the pipeline waits, and the bill follows. Firecrawl's open-source &lt;a href="https://github.com/firecrawl/pdf-inspector" rel="noopener noreferrer"&gt;pdf-inspector&lt;/a&gt; classifies a file first: if it is already text-based, it writes Markdown locally. Jian AI Lab ran version &lt;strong&gt;1.17.0&lt;/strong&gt; today on a Mac with &lt;strong&gt;zero API keys and zero spend&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This article uses the same facts as the public report. It does not treat the author's 200-document README benchmark as today's measurement. OCR was &lt;strong&gt;not&lt;/strong&gt; executed.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the author already stated
&lt;/h2&gt;

&lt;p&gt;The README describes a local classify-and-extract engine for text PDFs. Default path skips OCR. The public post by Nicolas Camara (&lt;a href="https://x.com/nickscamara_/status/2083295265793212827" rel="noopener noreferrer"&gt;status/2083295265793212827&lt;/a&gt;) points the same way: do not stall an agent on OCR before you know the file needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually ran on this Mac
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uv venv &lt;span class="nt"&gt;--python&lt;/span&gt; 3.11 .venv
uv pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--python&lt;/span&gt; .venv/bin/python pdf-inspector
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The environment contained &lt;code&gt;pdf-inspector==1.17.0&lt;/code&gt; only.&lt;/p&gt;

&lt;p&gt;File 1 — a one-page text PDF generated for an invoice-like layout:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;classify_pdf&lt;/code&gt;: &lt;strong&gt;0.901 ms&lt;/strong&gt;, &lt;code&gt;text_based&lt;/code&gt;, confidence 1.0, &lt;code&gt;pages_needing_ocr = []&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;process_pdf&lt;/code&gt;: &lt;strong&gt;5.671 ms&lt;/strong&gt; → 181 characters of Markdown, including &lt;code&gt;Amount: 0 CNY&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;File 2 — public TraceMonkey paper PDF, 1,016,315 bytes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classify: &lt;strong&gt;8.296 ms&lt;/strong&gt;, still &lt;code&gt;text_based&lt;/code&gt;, confidence 1.0, 0 OCR pages&lt;/li&gt;
&lt;li&gt;extract: &lt;strong&gt;51.342 ms&lt;/strong&gt; → &lt;strong&gt;83,804&lt;/strong&gt; characters of Markdown&lt;/li&gt;
&lt;li&gt;library &lt;code&gt;page_count=14&lt;/code&gt;; system &lt;code&gt;file&lt;/code&gt; reported 6 pages. Public number used: &lt;strong&gt;14&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Limits we actually hit
&lt;/h2&gt;

&lt;p&gt;A planted &lt;code&gt;not-a-pdf.txt&lt;/code&gt; raised &lt;code&gt;ValueError: Not a PDF: file appears to be plain text&lt;/code&gt; on three calls, each under 1 ms. Switching back to a real PDF restored classify and extract. We did not measure scanned pages.&lt;/p&gt;

&lt;p&gt;Project: &lt;a href="https://github.com/firecrawl/pdf-inspector" rel="noopener noreferrer"&gt;firecrawl/pdf-inspector&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Measured report: &lt;a href="https://jianailab.com/experiments/pdf-inspector-cf28f675" rel="noopener noreferrer"&gt;https://jianailab.com/experiments/pdf-inspector-cf28f675&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>performance</category>
      <category>tools</category>
    </item>
    <item>
      <title>OpenMAIC Offline Test: 7,039 Passed, 45 Failed, and a Real Editable PPTX</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Mon, 31 Aug 2026 11:28:46 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/openmaic-offline-test-7039-passed-45-failed-and-a-real-editable-pptx-gd0</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/openmaic-offline-test-7039-passed-45-failed-and-a-real-editable-pptx-gd0</guid>
      <description>&lt;p&gt;OpenMAIC reached the top of GitHub Trending, so I tested it as today's single main experiment instead of writing a feature summary.&lt;/p&gt;

&lt;p&gt;The scope was deliberately narrow and reproducible:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;install the pinned source,&lt;/li&gt;
&lt;li&gt;run the full test suite,&lt;/li&gt;
&lt;li&gt;run a production build,&lt;/li&gt;
&lt;li&gt;call the project's own PPTX export path,&lt;/li&gt;
&lt;li&gt;keep every failure and limitation in the record.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The first install failed
&lt;/h2&gt;

&lt;p&gt;The first installation exited with code 1. The workspace compiled, but pnpm 11 stopped third-party build scripts that had not been explicitly approved. I kept that failure.&lt;/p&gt;

&lt;p&gt;In a second isolated run, I allowed only the esbuild step required by the export path. The installation then exited with code 0.&lt;/p&gt;

&lt;h2&gt;
  
  
  The full test suite was not green
&lt;/h2&gt;

&lt;p&gt;The complete test run produced:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;7,039 passed&lt;/li&gt;
&lt;li&gt;45 failed&lt;/li&gt;
&lt;li&gt;79 skipped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most failures came from five-second timeouts in concurrent browser-storage tests, with another timeout in a remote-image export test. This is not a “fully green” result.&lt;/p&gt;

&lt;h2&gt;
  
  
  The export path worked
&lt;/h2&gt;

&lt;p&gt;The focused PPTX export checks were stronger: three files and five tests all passed.&lt;/p&gt;

&lt;p&gt;The Next.js production build also exited with code 0 and generated 52 static pages.&lt;/p&gt;

&lt;p&gt;For the harvest artifact, I called OpenMAIC's production &lt;code&gt;buildPptxBlob&lt;/code&gt; function directly. It produced a four-slide, 79,985-byte editable Chinese PPTX. I unpacked the file and verified that all four slide XML files and the expected preset text were present.&lt;/p&gt;

&lt;p&gt;No paid model API was used.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this experiment verified
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;installation after a documented permission adjustment,&lt;/li&gt;
&lt;li&gt;production build,&lt;/li&gt;
&lt;li&gt;focused PPTX export,&lt;/li&gt;
&lt;li&gt;a real downloadable and editable output file.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it did not verify
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;multi-agent course generation,&lt;/li&gt;
&lt;li&gt;TTS,&lt;/li&gt;
&lt;li&gt;video generation,&lt;/li&gt;
&lt;li&gt;real-time classroom interaction,&lt;/li&gt;
&lt;li&gt;end-to-end course quality using a live model.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full report: &lt;a href="https://jianailab.com/reports/openmaic-offline-classroom-export-test" rel="noopener noreferrer"&gt;https://jianailab.com/reports/openmaic-offline-classroom-export-test&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Harvest package: &lt;a href="https://jianailab.com/experiments/openmaic/openmaic-harvest-pack.zip" rel="noopener noreferrer"&gt;https://jianailab.com/experiments/openmaic/openmaic-harvest-pack.zip&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/THU-MAIC/OpenMAIC" rel="noopener noreferrer"&gt;https://github.com/THU-MAIC/OpenMAIC&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub is the land. We are the experimental field.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Tested Two Open-Source Projects to Narrow Down an AI Side-Hustle Direction</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Sun, 30 Aug 2026 15:07:49 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/i-tested-two-open-source-projects-to-narrow-down-an-ai-side-hustle-direction-33na</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/i-tested-two-open-source-projects-to-narrow-down-an-ai-side-hustle-direction-33na</guid>
      <description>&lt;p&gt;I started with a practical question: if someone has no customers, product, audience, or stable traffic, cannot code, does not want to appear on camera, has two hours a day, and can spend about RMB 1,000, which AI-enabled business direction should they test first?&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 1: a map of possible directions
&lt;/h2&gt;

&lt;p&gt;The first repository was &lt;a href="https://github.com/XiaomingX/ai-money-maker-handbook" rel="noopener noreferrer"&gt;XiaomingX's AI Money Maker Handbook&lt;/a&gt;. It collects four side-hustle principles, one starting strategy, ten technical monetization ideas, six technical business models, and twenty-five AI content directions.&lt;/p&gt;

&lt;p&gt;I used it as a map. A beginner does not need to start with model training, a SaaS product, or a large investment. The more realistic path is to find a small demand, test it through public content, and keep reusable assets such as templates, scripts, images, and workflows.&lt;/p&gt;

&lt;p&gt;The problem is that a map still contains too many roads. I needed a second project to compare those directions against one specific profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project 2: a fit check based on real constraints
&lt;/h2&gt;

&lt;p&gt;The second repository was &lt;a href="https://github.com/muzhi-888/ai-side-hustle-checker" rel="noopener noreferrer"&gt;muzhi-888's AI Side Hustle Checker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I installed the Skill and entered the complete test profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;basic computer, search, AI chat, image, and editing skills;&lt;/li&gt;
&lt;li&gt;no programming experience;&lt;/li&gt;
&lt;li&gt;two hours available per day;&lt;/li&gt;
&lt;li&gt;RMB 1,000 in starting capital;&lt;/li&gt;
&lt;li&gt;no customer base, product, audience, private community, or stable traffic;&lt;/li&gt;
&lt;li&gt;no on-camera appearance;&lt;/li&gt;
&lt;li&gt;a preference for selling through public platforms instead of finding service clients first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first recording only showed the installation and did not capture all three outputs. I rejected it as incomplete evidence. A second uninterrupted 112-second recording captured installation, input, scoring, and the complete result.&lt;/p&gt;

&lt;h2&gt;
  
  
  The result
&lt;/h2&gt;

&lt;p&gt;The project scored each route on cash-flow speed, repeatability, and payback period. Each category had a maximum of ten points, for a total of thirty.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Niche digital products — 27/30&lt;/li&gt;
&lt;li&gt;Small, lightweight physical products — 24/30&lt;/li&gt;
&lt;li&gt;Content-assisted product sales — 22/30&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The score measures fit with this test profile. It is not a success probability or revenue forecast.&lt;/p&gt;

&lt;p&gt;The strongest route was a niche digital product: templates, checklists, spreadsheets, asset packs, printable files, or a focused information package for one concrete situation. These products are inexpensive to test, easy to revise, and can be sold repeatedly without inventory.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this experiment actually proved
&lt;/h2&gt;

&lt;p&gt;The test did not select a final product, and I will not pretend that it did. It narrowed a long list of industries into three product routes that match the stated constraints.&lt;/p&gt;

&lt;p&gt;The next experiment will move from industry selection to product selection. I will use open-source projects to compare public demand, competing offers, keywords, production cost, and after-sales effort before choosing one specific digital or lightweight physical product.&lt;/p&gt;

&lt;p&gt;Repositories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/XiaomingX/ai-money-maker-handbook" rel="noopener noreferrer"&gt;https://github.com/XiaomingX/ai-money-maker-handbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/muzhi-888/ai-side-hustle-checker" rel="noopener noreferrer"&gt;https://github.com/muzhi-888/ai-side-hustle-checker&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Full experiment report and uninterrupted screen recording:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jianailab.com/reports/ai-side-hustle-checker-industry-selection" rel="noopener noreferrer"&gt;https://jianailab.com/reports/ai-side-hustle-checker-industry-selection&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>github</category>
      <category>opensource</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I Ran AI-Trader Through a Paper-Trading Cycle. It Passed Locally, Not in the Real Market.</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Sat, 29 Aug 2026 13:05:02 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/i-ran-ai-trader-through-a-paper-trading-cycle-it-passed-locally-not-in-the-real-market-5e04</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/i-ran-ai-trader-through-a-paper-trading-cycle-it-passed-locally-not-in-the-real-market-5e04</guid>
      <description>&lt;p&gt;Can an AI agent actually participate in a trading workflow, or does it only produce a confident-looking buy/sell sentence?&lt;/p&gt;

&lt;p&gt;I tested &lt;a href="https://github.com/HKUDS/AI-Trader" rel="noopener noreferrer"&gt;HKUDS/AI-Trader&lt;/a&gt; as today's only experiment for &lt;a href="https://jianailab.com" rel="noopener noreferrer"&gt;Jian AI Lab&lt;/a&gt;. The project is designed to give AI agents a place to register, publish strategies and signals, join challenges, keep records, and be followed or copied by other users.&lt;/p&gt;

&lt;p&gt;The short result is clear: the local paper-trading path completed successfully. That does not prove real-market profitability, exchange connectivity, or fund safety.&lt;/p&gt;

&lt;h2&gt;
  
  
  What AI-Trader is trying to build
&lt;/h2&gt;

&lt;p&gt;AI-Trader brings several pieces into one workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI agents can register and participate in trading challenges.&lt;/li&gt;
&lt;li&gt;Strategies can publish signals and leave a history of activity.&lt;/li&gt;
&lt;li&gt;Users can compare strategies through challenge results and rankings.&lt;/li&gt;
&lt;li&gt;A paper-trading route lets a user follow the data flow before considering a real account.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical idea is not “ask an LLM for a prediction.” It is to make the agent's action part of a trackable system: signal, position, valuation, exit, settlement, and comparison.&lt;/p&gt;

&lt;h2&gt;
  
  
  Test environment
&lt;/h2&gt;

&lt;p&gt;The run used a temporary SQLite database and mock prices. No exchange account, API key, real order, or real market feed was used.&lt;/p&gt;

&lt;p&gt;Environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.12.13&lt;/li&gt;
&lt;li&gt;pytest 9.1.1&lt;/li&gt;
&lt;li&gt;Temporary SQLite database&lt;/li&gt;
&lt;li&gt;Background tasks disabled for the controlled run&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The local service health check was also available during the test.&lt;/p&gt;

&lt;h2&gt;
  
  
  What passed
&lt;/h2&gt;

&lt;p&gt;The test groups produced these results:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Price-fetching tests: &lt;strong&gt;8 passed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Experiment assignment, event records, agent recovery, and real-time price guards: &lt;strong&gt;12 passed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Other local backend tests: &lt;strong&gt;103 passed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;One dependency deprecation warning was reported&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These results show that the tested local paths can run in the selected environment. They are not evidence that live market data or a real exchange is connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  The paper-trading cycle
&lt;/h2&gt;

&lt;p&gt;I created a challenge and a simulated account, then ran this sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set the mock BTC price to 100.&lt;/li&gt;
&lt;li&gt;Bought 2 BTC.&lt;/li&gt;
&lt;li&gt;The account cash balance became 800.&lt;/li&gt;
&lt;li&gt;Moved the mock price to 110.&lt;/li&gt;
&lt;li&gt;The position value became 1020 and the displayed return was 2%.&lt;/li&gt;
&lt;li&gt;Sold at 110.&lt;/li&gt;
&lt;li&gt;Confirmed that the position was empty and cash was 1020.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The final record showed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Status: &lt;code&gt;settled&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Trades: 2 simulated trades&lt;/li&gt;
&lt;li&gt;Ranking: 1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faujk06qwho7hwd0dpjz8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faujk06qwho7hwd0dpjz8.png" alt="Paper-trading receipt: buy, mark-to-market, sell, and settlement" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The result is also recorded in the &lt;a href="https://jianailab.com/experiments/ai-trader-paper-trading-full-cycle" rel="noopener noreferrer"&gt;Jian AI Lab experiment report&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The important caveat about the 2%
&lt;/h2&gt;

&lt;p&gt;The 2% figure is a reproducible calculation under fixed mock prices. It is not investment income and it cannot show that AI-Trader can make money in a live market.&lt;/p&gt;

&lt;p&gt;What the run actually demonstrated is narrower and more useful: the records for joining a challenge, opening a position, marking its value, closing the position, and settling the challenge can line up in one controlled local flow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51m7jc58n4ulkpopkzt5.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F51m7jc58n4ulkpopkzt5.png" alt="Experiment result: settled paper trade with no real funds" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did not claim
&lt;/h2&gt;

&lt;p&gt;I did not run &lt;code&gt;test_challenges.py&lt;/code&gt; because it may exercise external Hyperliquid or Polymarket paths. I also did not verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;live market data;&lt;/li&gt;
&lt;li&gt;a real exchange connection;&lt;/li&gt;
&lt;li&gt;a real user account;&lt;/li&gt;
&lt;li&gt;token or API-key handling in production;&lt;/li&gt;
&lt;li&gt;live signal writing;&lt;/li&gt;
&lt;li&gt;long-running background workers;&lt;/li&gt;
&lt;li&gt;real order execution or withdrawal safety.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copy trading adds its own risks: stale signals, slippage, service outages, leaked credentials, bad position sizing, and uncontrolled exposure. These risks remain even when a local paper-trading test passes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this project is worth testing
&lt;/h2&gt;

&lt;p&gt;The interesting part is the workflow boundary. AI-Trader tries to connect agent behavior to a stateful trading system instead of leaving the output as untracked text. That could make experiments, comparisons, and failure analysis more concrete for developers building financial agents.&lt;/p&gt;

&lt;p&gt;The threshold is also higher than installing a Python package. A serious deployment would need a safe account model, reliable market data, clear authorization boundaries, operational monitoring, and a strong separation between simulation and real funds.&lt;/p&gt;

&lt;h2&gt;
  
  
  What should be tested next?
&lt;/h2&gt;

&lt;p&gt;This is a public record from Jian AI Lab, not an endorsement. If you maintain AI-Trader, please tell us:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which real-environment path should be tested first?&lt;/li&gt;
&lt;li&gt;What user scenario best represents the intended product?&lt;/li&gt;
&lt;li&gt;Which setup or safety requirements are missing from this report?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are welcome to correct, supplement, respond to, or claim the project page. The full experiment, evidence, and boundary notes are available at &lt;a href="https://jianailab.com/experiments/ai-trader-paper-trading-full-cycle" rel="noopener noreferrer"&gt;jianailab.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproduction notes
&lt;/h2&gt;

&lt;p&gt;The authoritative commands and full run record are maintained with the experiment materials. Reproduce the local path only with mock data or a disposable environment. Do not connect real funds while using this report as a starting point.&lt;/p&gt;

&lt;p&gt;—&lt;/p&gt;

&lt;p&gt;This article is part of the daily open-source testing workflow at &lt;a href="https://jianailab.com" rel="noopener noreferrer"&gt;剑的 AI 实验室 / Jian AI Lab&lt;/a&gt;, where projects are explained in Chinese, tested with evidence, and published with failures and limits included.&lt;/p&gt;

</description>
      <category>trading</category>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
    </item>
    <item>
      <title>GitHub Trending #1 Installed Cleanly, but the Main UI Still Would Not Start</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Fri, 28 Aug 2026 13:30:21 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/github-trending-1-installed-cleanly-but-the-main-ui-still-would-not-start-3p05</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/github-trending-1-installed-cleanly-but-the-main-ui-still-would-not-start-3p05</guid>
      <description>&lt;p&gt;Yesterday I tested &lt;code&gt;bilawalsidhu/gods-eye-view&lt;/code&gt;, the repository that reached the top of GitHub Trending for the global Today view. The project presents a 3D globe with aircraft, ships, satellites, earthquakes, fires, traffic, and public cameras. The demo is visually convincing. The useful question is whether a new user can install it, verify it, and reach the main experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test was pinned to one commit
&lt;/h2&gt;

&lt;p&gt;I pinned commit &lt;code&gt;b22573a9db28e47c324821ebdd4c67bdb241c0e1&lt;/code&gt; and used Linux, Node.js &lt;code&gt;24.19.0&lt;/code&gt;, and npm &lt;code&gt;11.9.0&lt;/code&gt;. The package requirement accepts Node 24.14.x through 24.x or Node 26.x.&lt;/p&gt;

&lt;p&gt;The repository is a real application rather than a static demo. The source tree contains 315 files, the scripts directory contains 51 testing and QA files, Vite provides the browser and local proxy layer, and Cesium provides the globe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation and build
&lt;/h2&gt;

&lt;p&gt;I first ran &lt;code&gt;npm ci --ignore-scripts&lt;/code&gt; to inspect the dependency installation boundary. After that completed successfully, I ran the official &lt;code&gt;npm ci&lt;/code&gt;. Both runs installed 201 packages successfully.&lt;/p&gt;

&lt;p&gt;The root project does not define &lt;code&gt;preinstall&lt;/code&gt;, &lt;code&gt;install&lt;/code&gt;, or &lt;code&gt;postinstall&lt;/code&gt;. Several transitive packages still run installation scripts for platform binaries, browser support, or image components. That is normal for this dependency set, but it means the install should not be described as script-free.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm audit --omit=dev --json&lt;/code&gt; reported zero known production-dependency vulnerabilities. A scan for common Google, OpenAI, GitHub, AWS, and private-key patterns found no hard-coded real credentials. These checks reduce obvious risk; they are not a complete security audit.&lt;/p&gt;

&lt;p&gt;The production build exited with code 0. Vite finished in 6.67 seconds and generated about 31 MB across 419 files. A few bundles were larger than the configured warning threshold, including the Earth gravity model. The warnings did not block the build.&lt;/p&gt;

&lt;h2&gt;
  
  
  The test count needs an honest sentence
&lt;/h2&gt;

&lt;p&gt;The official test command reported 2,587 passing assertions. A separate focus-allocation check also passed, bringing the visible total to 2,588 with zero failures.&lt;/p&gt;

&lt;p&gt;The process then stayed alive for more than 90 seconds. I had to interrupt it manually, producing exit code 130. The accurate statement is that all visible assertions passed, while the official command did not exit cleanly in this environment. Those two facts belong together in a report.&lt;/p&gt;

&lt;h2&gt;
  
  
  The main UI is gated by a billable key
&lt;/h2&gt;

&lt;p&gt;With Google, OpenAI, AISStream, Cesium, TomTom, and FIRMS credentials removed, the HTML shell still returned HTTP 200. Several endpoints returned explicit missing-key responses. FIRMS and TomTom status endpoints remained available, and TomTom can fall back to simulated traffic.&lt;/p&gt;

&lt;p&gt;The main application follows a different path. Its initialization checks &lt;code&gt;GOOGLE_MAPS_API_KEY&lt;/code&gt; and throws when the key is missing. The core 3D globe therefore cannot start without a Google Maps key. The key requires billing and is exposed to the browser bundle, so a real deployment should restrict its referrers, APIs, budget, and quota.&lt;/p&gt;

&lt;p&gt;The repository README makes zero-key operation sound broader than the fixed commit actually allows. Zero keys are enough for installation, logical tests, the production build, and selected endpoint checks. They are not enough to enter the main 3D experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser QA was blocked by the environment
&lt;/h2&gt;

&lt;p&gt;I also ran the track regression command. It found the Puppeteer Chrome binary, but Chrome could not create its process singleton socket in the container and exited with code 2. That is an environment permission failure, not evidence that the map is broken.&lt;/p&gt;

&lt;p&gt;It does mean this run did not verify WebGL rendering, map tiles, drag behavior, target focus, or real-data overlays. Those checks remain open until the same application is run in a desktop environment where Chrome and WebGL can start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdict
&lt;/h2&gt;

&lt;p&gt;God’s Eye View is installable and buildable. Its visible test assertions passed, its production dependencies had no known audit findings, and its documentation makes several useful distinctions between live, modeled, reconstructed, and simulated data.&lt;/p&gt;

&lt;p&gt;The core user experience still has a hard first-run condition. Without a Google Maps key with billing enabled, the main globe does not initialize. The browser regression is also still pending because of the test container’s socket restriction.&lt;/p&gt;

&lt;p&gt;The complete Chinese experiment record, evidence, and author-claim invitation are collected at &lt;a href="https://jianailab.com/experiments/gods-eye-view" rel="noopener noreferrer"&gt;Jian AI Lab&lt;/a&gt;. The source repository is &lt;a href="https://github.com/bilawalsidhu/gods-eye-view" rel="noopener noreferrer"&gt;bilawalsidhu/gods-eye-view&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is a stage-blocked result, not a failure to collect evidence. A useful open-source project can be worth studying even when the first real test ends with a missing credential and an uncompleted browser check.&lt;/p&gt;

</description>
      <category>github</category>
      <category>javascript</category>
      <category>node</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built GitHub Trending #1. The Code Passed, but the Main UI Still Would Not Start</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Fri, 28 Aug 2026 00:32:00 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/i-built-github-trending-1-the-code-passed-but-the-main-ui-still-would-not-start-4f8o</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/i-built-github-trending-1-the-code-passed-but-the-main-ui-still-would-not-start-4f8o</guid>
      <description>&lt;p&gt;God’s Eye View was the top project on GitHub Trending when we selected it for Jian AI Lab’s daily experiment.&lt;/p&gt;

&lt;p&gt;The pitch is immediately compelling. It brings aircraft, vessels, satellites, earthquakes, wildfire data, traffic, CCTV sources, and other feeds into one 3D globe. The repository also makes a serious effort to label data as live, modeled, reconstructed, or simulated.&lt;/p&gt;

&lt;p&gt;We tested commit &lt;code&gt;b22573a9db28e47c324821ebdd4c67bdb241c0e1&lt;/code&gt; on Linux with Node.js 24.19.0 and npm 11.9.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation and security checks
&lt;/h2&gt;

&lt;p&gt;We first ran &lt;code&gt;npm ci --ignore-scripts&lt;/code&gt;, reviewed the install-script sources, and then ran the normal &lt;code&gt;npm ci&lt;/code&gt;. Both installations succeeded with 201 packages.&lt;/p&gt;

&lt;p&gt;The root project has no preinstall, install, or postinstall hook. Transitive install scripts come from esbuild, fsevents, Puppeteer, and sharp.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm audit --omit=dev&lt;/code&gt; reported no known vulnerabilities in production dependencies. A common secret-pattern scan did not find hard-coded live credentials. This is a limited check, not a full source audit.&lt;/p&gt;

&lt;p&gt;The project talks to many external services, including Google Maps, OpenAI, OpenSky, AISStream, NASA FIRMS, TomTom, CelesTrak, OSM, Open-Meteo, GDELT, and Radio Browser. It is local-first, but it is not offline.&lt;/p&gt;

&lt;p&gt;Server-side keys such as OpenAI and AISStream are read by the local Vite proxy. Google Maps and Cesium tokens are intentionally delivered to the browser. Users must restrict referrers and APIs and set provider budgets and quotas.&lt;/p&gt;

&lt;h2&gt;
  
  
  2,588 visible assertions passed
&lt;/h2&gt;

&lt;p&gt;The main test suite reported 2,587 passing assertions and zero failures. A separate focus-allocation check added one more passing assertion.&lt;/p&gt;

&lt;p&gt;The visible total was 2,588 passes and zero failures.&lt;/p&gt;

&lt;p&gt;The process did not exit after the summary. We waited more than 90 seconds and interrupted it manually. The final exit code was 130.&lt;/p&gt;

&lt;p&gt;The precise result is that all visible assertions passed, while the official test command did not complete with a clean exit in this environment. This may indicate an open handle, connection, or child process that remains alive after the tests finish.&lt;/p&gt;

&lt;h2&gt;
  
  
  The production build succeeded
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;npm run build&lt;/code&gt; completed with exit code 0 in 6.67 seconds.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;dist&lt;/code&gt; directory contained 419 files and was about 31 MB. Vite reported browser externalization warnings for two Node modules and warned about several bundles larger than 1.5 MB. The warnings did not block the build, but initial-load performance deserves a separate measurement.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core 3D interface requires a Google Maps key
&lt;/h2&gt;

&lt;p&gt;We cleared the Google, OpenAI, AIS, Cesium, TomTom, and FIRMS environment variables before starting the local server.&lt;/p&gt;

&lt;p&gt;The HTML shell returned HTTP 200. Missing-key API routes behaved clearly. OpenAI, Google Places, and AISStream returned explicit 503 responses. FIRMS and TomTom status routes remained available, and traffic can fall back to a simulation without a TomTom key.&lt;/p&gt;

&lt;p&gt;The main UI is different. &lt;code&gt;src/main.js&lt;/code&gt; checks &lt;code&gt;GOOGLE_MAPS_API_KEY&lt;/code&gt; during initialization and throws when it is absent. The interactive globe never becomes available.&lt;/p&gt;

&lt;p&gt;The key must have the required Google Maps service enabled and billing turned on. Because it is visible in the browser, it also needs strict referrer and API restrictions plus a budget and quota policy.&lt;/p&gt;

&lt;p&gt;Without that key, a user can install the repository, run logic tests, build the production bundle, and inspect several status endpoints. They cannot enter the core photorealistic 3D experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Browser and WebGL QA remain incomplete
&lt;/h2&gt;

&lt;p&gt;The repository includes a &lt;code&gt;test:track&lt;/code&gt; regression command. After starting the server, the script found Puppeteer’s downloaded Chrome. Chrome then crashed because the current container could not create its process-singleton socket.&lt;/p&gt;

&lt;p&gt;The command exited with code 2. This is an execution-environment restriction, not an application assertion failure. It also means we did not verify WebGL, real map tiles, dragging, target focus, or live data accuracy.&lt;/p&gt;

&lt;p&gt;Completing that stage requires a desktop environment that can run Chrome and WebGL, plus a billing-enabled Google Maps key with strict restrictions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verdict
&lt;/h2&gt;

&lt;p&gt;God’s Eye View has a substantial engineering foundation. Installation and production build succeeded, and 2,588 visible assertions passed with zero failures. The repository is unusually explicit about live, modeled, reconstructed, and simulated data.&lt;/p&gt;

&lt;p&gt;The first-run experience still has a significant barrier. A user must configure a billable browser-visible Google Maps key before the core interface appears. A functional OSM first-run mode would let people explore the basic globe and data layers before deciding whether they need photorealistic 3D tiles.&lt;/p&gt;

&lt;p&gt;Our status for this experiment is a staged result blocked by external conditions. The code-level evidence is complete. End-to-end visual and live-data validation is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/bilawalsidhu/gods-eye-view" rel="noopener noreferrer"&gt;God’s Eye View repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bilawalsidhu/gods-eye-view/blob/main/TESTING.md" rel="noopener noreferrer"&gt;Testing documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bilawalsidhu/gods-eye-view/blob/main/SECURITY.md" rel="noopener noreferrer"&gt;Security documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/bilawalsidhu/gods-eye-view/blob/main/DATA_SOURCES.md" rel="noopener noreferrer"&gt;Data source documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>github</category>
      <category>testing</category>
    </item>
    <item>
      <title>I Put GitHub Trending #1 Through a Real Architecture-Test Workflow</title>
      <dc:creator>sword luan</dc:creator>
      <pubDate>Thu, 27 Aug 2026 19:54:08 +0000</pubDate>
      <link>https://dev.to/sword_luan_6dfb4e81cf5f15/i-put-github-trending-1-through-a-real-architecture-test-workflow-4ob8</link>
      <guid>https://dev.to/sword_luan_6dfb4e81cf5f15/i-put-github-trending-1-through-a-real-architecture-test-workflow-4ob8</guid>
      <description>&lt;p&gt;GitHub Trending is useful for discovery. It tells you where attention is moving today. It does not tell you whether a project installs cleanly, survives a real task, diagnoses its own failures, or produces an artifact another person can inspect.&lt;/p&gt;

&lt;p&gt;That distinction matters because many open-source recommendations stop at the same point. Someone finds a fast-growing repository, repeats the README, runs the official demo, and calls the project “tested.” A demo proves that the happy path exists. It does not prove that the tool can handle your system.&lt;/p&gt;

&lt;p&gt;So I took Archify, which ranked first on GitHub Trending's global Today list that day, and put it through the full workflow at &lt;a href="https://jianailab.com" rel="noopener noreferrer"&gt;Jian AI Lab&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The task was not invented for the test. Archify had to map the real architecture of Jian AI Lab, pass its own validation gates, and deliver an interactive result that a reader could open without an online diagramming service.&lt;/p&gt;

&lt;p&gt;The final result passed 9 of 9 showcase checks with zero errors and zero warnings. It took four validation rounds to get there.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Archify actually does
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/tt-a1i/archify" rel="noopener noreferrer"&gt;Archify&lt;/a&gt; is a Node.js rendering and validation system designed for coding agents including Codex CLI, Claude Code, Cursor, and OpenCode. An agent produces a typed JSON intermediate representation. Archify then compiles that structured source into deterministic HTML and SVG.&lt;/p&gt;

&lt;p&gt;It supports five diagram families.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecture diagrams&lt;/li&gt;
&lt;li&gt;Workflow diagrams&lt;/li&gt;
&lt;li&gt;Sequence diagrams&lt;/li&gt;
&lt;li&gt;Data-flow diagrams&lt;/li&gt;
&lt;li&gt;Lifecycle diagrams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The output can be a self-contained HTML file with light and dark themes, search, node focus, route tracing, guided views, and export controls. The repository is published under the MIT license.&lt;/p&gt;

&lt;p&gt;The important part is the delivery gate. Archify does not treat “an HTML file was generated” as success. Its validators inspect schema, layout, routes, labels, projected text size, and other measurable conditions. A failing candidate returns structured diagnostics instead of silently replacing the last valid artifact.&lt;/p&gt;

&lt;p&gt;That was the part I wanted to test.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real task
&lt;/h2&gt;

&lt;p&gt;Jian AI Lab is a Chinese platform built around a simple workflow. We discover open-source projects, verify their claims, test one project against a real problem, preserve failures and fixes, and turn the result into reusable public material.&lt;/p&gt;

&lt;p&gt;The website includes a project library, a live activity arena, personal experiment fields, a harvest area for completed artifacts, member profiles, authentication, community APIs, a database, and media storage.&lt;/p&gt;

&lt;p&gt;For this experiment, the architecture model contained 12 components and 11 relationships. The diagram had to communicate the main path through the product without turning into a wall of boxes and crossing lines.&lt;/p&gt;

&lt;p&gt;The expected deliverables were also explicit.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A typed architecture JSON file&lt;/li&gt;
&lt;li&gt;A machine-readable validation receipt&lt;/li&gt;
&lt;li&gt;A self-contained interactive HTML diagram&lt;/li&gt;
&lt;li&gt;A repeatable record of every failed and successful run&lt;/li&gt;
&lt;li&gt;A public experiment report linked to the final artifact&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Environment and first checks
&lt;/h2&gt;

&lt;p&gt;The experiment ran with Node.js v24.19.0.&lt;/p&gt;

&lt;p&gt;I began with Archify's environment diagnostic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node bin/archify.mjs doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All 16 checks passed. The official demo also generated successfully.&lt;/p&gt;

&lt;p&gt;Those results established that the tool and runtime were available. They did not count as completion because neither command tested the Jian AI Lab architecture.&lt;/p&gt;

&lt;p&gt;The real work started when the actual components and relationships were written into the architecture model and validated with the showcase quality profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation round one — only 5 of 9 checks passed
&lt;/h2&gt;

&lt;p&gt;The first real candidate looked plausible at a glance. The validator rejected it.&lt;/p&gt;

&lt;p&gt;Only five of the nine showcase checks passed. Four concrete problems remained.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A route crossed through a node.&lt;/li&gt;
&lt;li&gt;One route segment was only 7 pixels long.&lt;/li&gt;
&lt;li&gt;A label overlapped another visual element.&lt;/li&gt;
&lt;li&gt;Another label had no safe clearance from its route.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This was the most useful moment in the experiment. A conventional image generator could have delivered that diagram because it looked approximately correct. Archify identified the exact local failures and refused to release it as a showcase artifact.&lt;/p&gt;

&lt;p&gt;The distinction is practical. If a diagram is used in a product page, architecture review, onboarding document, or technical presentation, a crossing line can imply the wrong dependency. A label placed against the wrong route can change the reader's interpretation. Visual defects can become factual defects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rounds two and three — local repairs, not a full rewrite
&lt;/h2&gt;

&lt;p&gt;The next two rounds focused on the diagnosed subjects. I adjusted route geometry, endpoint direction, and label clearance while preserving the rest of the model.&lt;/p&gt;

&lt;p&gt;That matters because uncontrolled regeneration is a poor repair strategy. If an agent rebuilds the entire diagram after every warning, unrelated nodes move, valid relationships change, and reviewers lose the ability to compare versions.&lt;/p&gt;

&lt;p&gt;Archify's diagnostics made narrower correction possible. Each run reduced the remaining failures without discarding the valid structure.&lt;/p&gt;

&lt;p&gt;After the routing and label problems were repaired, one issue remained. The projected minimum font size measured 5.8125 pixels. The showcase threshold was 6 pixels.&lt;/p&gt;

&lt;p&gt;The difference was less than two-tenths of a pixel, but the candidate still failed. The validator did not round the result up or quietly treat it as acceptable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Round four — 9 of 9
&lt;/h2&gt;

&lt;p&gt;The final repair widened the canvas to 1380 pixels. That gave the labels enough projected space without shrinking the content below the readability threshold.&lt;/p&gt;

&lt;p&gt;The fourth validation completed with the result we needed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;9 of 9 checks passed&lt;/li&gt;
&lt;li&gt;0 errors&lt;/li&gt;
&lt;li&gt;0 warnings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final self-contained HTML file was 713,036 bytes. The JSON source and validation receipt were preserved beside it.&lt;/p&gt;

&lt;p&gt;The diagram can be opened locally or from the experiment page. It supports node search, focus, route inspection, view changes, and both light and dark presentation themes.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://jianailab.com/experiments/archify/jian-ai-lab.architecture.html" rel="noopener noreferrer"&gt;open the interactive Jian AI Lab architecture diagram here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  One check was skipped, and it stayed skipped
&lt;/h2&gt;

&lt;p&gt;Archify also provides an automated visual-check path that requires Chrome or Chromium. That browser was not available in the test environment, so the automatic visual check did not run.&lt;/p&gt;

&lt;p&gt;I recorded it as &lt;code&gt;skipped&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I did not convert “could not run” into “passed.” A separate manual browser review checked the light theme, dark theme, labels, controls, and basic interaction. The manual review passed, but it remained separate from the unavailable automated check.&lt;/p&gt;

&lt;p&gt;This sounds like a minor reporting choice. It is one of the easiest places for an AI-assisted experiment to become dishonest. If skipped, inferred, and manually inspected results are all displayed with the same green check mark, the report stops being evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The tool test also tested our own website
&lt;/h2&gt;

&lt;p&gt;Running Archify through a real experiment exposed six weaknesses in the Jian AI Lab workflow.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Project states were too vague. A saved project could look similar to a verified or tested project.&lt;/li&gt;
&lt;li&gt;Completed artifact files did not have a strong, permanent entry from the experiment record.&lt;/li&gt;
&lt;li&gt;Command evidence and validation results were stored too loosely.&lt;/li&gt;
&lt;li&gt;The harvest area did not summarize the experiment records automatically enough.&lt;/li&gt;
&lt;li&gt;The long-form article could drift away from the evidence collected during the test.&lt;/li&gt;
&lt;li&gt;The video package could become detached from the same experiment and repeat unverified claims.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We repaired the workflow so that a project now moves through explicit states.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Discovered → Verified → Tested → Produced&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The artifact, report, commands, failures, screenshots, and publication package remain connected to the same experiment. A failed attempt stays in the timeline instead of disappearing after the successful run.&lt;/p&gt;

&lt;p&gt;This is why the Archify test became more than a software review. The project revealed defects in the system used to review it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I learned from Archify
&lt;/h2&gt;

&lt;p&gt;Archify's main value is not that it can draw a diagram quickly. Many tools can generate a polished diagram from a prompt.&lt;/p&gt;

&lt;p&gt;Its stronger idea is validation before delivery.&lt;/p&gt;

&lt;p&gt;The typed JSON source makes the diagram reproducible. Deterministic checks make failures measurable. Local diagnostics allow focused repairs. Atomic delivery prevents a broken candidate from replacing the last valid result. The final HTML keeps the artifact portable.&lt;/p&gt;

&lt;p&gt;There are still limits.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The agent must model the real system accurately. Validation cannot prove facts that were never supplied.&lt;/li&gt;
&lt;li&gt;Automated layout checks do not replace human judgment about emphasis and clarity.&lt;/li&gt;
&lt;li&gt;The visual-check feature needs Chrome or Chromium.&lt;/li&gt;
&lt;li&gt;Archify is not a WYSIWYG editor or a hosted sharing platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For architecture reviews, technical documentation, product explanations, and agent-generated system maps, those limits are reasonable. The project is especially useful when “looks good” is not an acceptable definition of done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Reproducible outcome
&lt;/h2&gt;

&lt;p&gt;The public experiment includes the failed rounds, repair history, final result, and links back to the original repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://jianailab.com/experiments/archify-jian-ai-lab-full-cycle" rel="noopener noreferrer"&gt;Full Archify experiment report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jianailab.com/experiments/archify/jian-ai-lab.architecture.html" rel="noopener noreferrer"&gt;Interactive architecture result&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jianailab.com/projects/archify" rel="noopener noreferrer"&gt;Archify project record in Chinese&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tt-a1i/archify" rel="noopener noreferrer"&gt;Archify on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jianailab.com" rel="noopener noreferrer"&gt;Jian AI Lab&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GitHub Trending helped us find the project. The experiment determined what it could actually do.&lt;/p&gt;

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