跪拜 Guibai
← Back to the summary

WorkTrace: A Desktop Work Logger Built Entirely by Describing It to an AI


theme: z-blue

Unfolds along the line: real pain points → hands-on process (demand-driven AI iterative development) → delivered outcome → reusable experience.

Every Friday writing a weekly report is my personal ordeal: digging through chat logs, commits, emails, piecing together a week's work from fragments, and still missing those "little things done on the side." I wanted a tool — jot something down casually, and the rest — organizing, reviewing, writing the report — all happens automatically.

I have no systematic background in desktop development. Getting this tool built in the end didn't rely on handwriting hundreds of lines of code, but on "talking" it out step by step with Trae.

1. Real Pain Points

First, nail down the problems to solve — this is also the starting point for the whole development:

  1. Scattered records, memory gaps: Daily tasks are scattered across chat windows, sticky notes, and my head. Writing the Friday report becomes "archaeology," with over 30% of trivial work missed.
  2. Padding the report: When I can't recall, I end up writing empty phrases like "completed several tasks."
  3. To-dos and done items mixed together: Things I want to do, things I'm doing, and things already done are all stirred into one pot — no way to tell priority.
  4. No data guarantee: Records live in some local corner; switching computers means worrying about losing them.

2. Hands-on Process: Driving Iterative Development with Natural Language in Trae

trae_ide.png

The whole process involved no handwriting of large code blocks. The core was: "I describe what I want in one sentence → Trae makes a plan, breaks it into concrete changes → run it and verify → spot problems, keep giving feedback → revise version by version." Below are a few real iteration snippets.

① Kickoff: From a one-sentence requirement to a runnable app

I first set the direction with one sentence: "Make a local-first work log tool that can casually record, AI auto-structure, visualize for review, and generate a weekly report in one click." Trae didn't send me off to read piles of framework docs; instead it first laid out a technical plan (Tauri 2 + React + Rust), broke out a data model (record structure stored as JSON per day), and scaffolded a runnable skeleton. I got a prototype that could open and accept input first, then started round after round of refinement.

image.png

② Adding the "To-do" feature: A typical demand → plan → implement → fix cycle

I raised the requirement (verbatim): "Add to-do content, separate from work record entries, add a 'Record / To-do' toggle button, mark with different colors in the calendar."

Trae's plan had four layers: add a kind field to records to distinguish types → backend new to-do storage command → frontend toggle button → calendar blue/orange dual-color badges.

After running it, a bug surfaced — the calendar's orange to-do markers never showed up. I fed the symptom back, and Trae pinpointed the root cause: the backend struct was missing camelCase field name conversion, so todo_count didn't match the todoCount the frontend was reading. One line change fixed it. This is the norm for iteration: get the feature working first, then polish the details round by round.

③ Fixing Tech Cloud Drive sync: A complete chain of error → locate → fix

I reported the error (verbatim): "When the app syncs, choosing Tech Cloud Drive sync gives error Read-only file system (os error 30)."

Trae didn't patch blindly; it reproduced first: directly hitting Tech Cloud's WebDAV interface, it found the returned file paths were full URLs with double slashes (.../worktrace//records/...), and the parsed relative path carried a leading slash, which got treated as an absolute path and written to the system root directory (read-only). Root cause found, trimming the slash fixed it. This "reproduce first, locate, then fix" approach is far more efficient than blind patching.

④ Fixing the kimi-k3 model: Two root causes in one fix

I reported: "Error using the kimi-k3 model." After direct connection testing, Trae found two layers to the problem: this reasoning model only allows temperature=1 (the code hardcoded 0.3, giving a straight 400); and the JSON structure it returned was non-compliant (task fields came back as an array of objects). So a two-pronged fix: on encountering a 400, automatically drop temperature and retry; simultaneously strengthen the prompt + when parsing fails, feed the error back to the model for one retry. After the fix, kimi-k3 could structure records normally.

⑤ Fixing "Delete does nothing": A hidden platform pitfall

I reported: "The delete function for records/to-dos is unusable." Investigation revealed a subtle root cause: the pre-delete confirmation used window.confirm, but Tauri's WebView does not implement native confirm by default — it directly returns false, so the delete logic exited immediately. Switching to an in-interface inline secondary confirmation (click "Delete" → changes to "Confirm Delete") made it actually work.

⑥ Image recognition via OCR, built-in PaddleOCR

I raised the requirement: "Image content recognition can just use OCR." Later added: "Hope PaddleOCR is built-in directly, no manual configuration needed." Based on this, Trae changed image recognition from "user must configure a vision model themselves" to "built-in PaddleOCR, works out of the box," with consistent behavior on macOS / Windows.

⑦ Packaging and release: One sentence triggers dual-platform installers

Finally I wanted "Generate macOS dmg and Windows exe, put them on GitHub Releases for download." Trae set up a GitHub Actions dual-platform build pipeline, and midway fixed a pitfall: the release was created but no installers appeared — because the publish script's file glob didn't cover subdirectories. After flattening the installer placement, pushing a version tag triggered automatic build and release of dmg and exe.

3. Delivered Outcome

The final deliverable is a fully usable desktop app "WorkTrace" and reproducible engineering artifacts:

Workspace.png

Settings.png

4. Reusable Experience (Efficiency-boosting methods for AI programming)

If you also want to use AI programming tools to turn ideas into products, these are the most valuable lessons from this real-world battle:

1. State requirements with "one sentence + clear boundaries"

2. When reporting errors, don't just say "it's broken," bring full info "Tech Cloud sync reports Read-only file system (os error 30)" is far more valuable than "sync error." Let the AI reproduce first, then locate — more reliable than asking it to fix directly.

3. Accept the "get it running first, then polish" rhythm The first version often has bugs (like the calendar to-do markers not showing) — this is normal. The key is to give fast feedback and fast fixes once it's running, converging version by version, rather than chasing a one-shot perfect result.

4. Let the AI accumulate engineering docs After each pitfall is fixed, have the AI record "symptom → root cause → solution" into docs. The 11 pitfall entries accumulated this time are the biggest asset for subsequent iteration and reuse.

5. Reusable architecture pattern The main thread of "zero-friction entry (one sentence / paste), one-click delivery exit (weekly report / export), and hand the middle to AI" applies equally to meeting minutes, reading notes, and client follow-up tools.


This is the full process of how I used Trae to iterate from a single requirement into "WorkTrace": no grinding against code, but clearly articulating "what I want," letting the tool plan, implement, and fix bugs, while I only verified and gave feedback. If you have an idea but are stuck at "can't write code," give this path a try.

Project Repo and Installer Downloads

Latest version v0.1.1:

Platform File Download
macOS (Apple Silicon) workTrace_0.1.1_aarch64.dmg Download
Windows (x64) workTrace_0.1.1_x64-setup.exe Download

The macOS installer is currently unsigned; on first open you may see a prompt saying "Cannot be opened because the developer cannot be verified." Two solutions:

Method 1 (GUI): Open "System Settings → Privacy & Security," find the blocked app at the bottom, and click "Open Anyway."

Method 2 (Command line, recommended): Run the following command in Terminal to remove the quarantine attribute, then open normally:

xattr -cr /Applications/workTrace.app
Comments

Top 1 from juejin.cn, machine-translated. The original thread is authoritative.

努力的小Qin

Software feature introduction: https://juejin.cn/post/7674856970832347163