| name | visual-automation-designer-maintainer |
| description | Use this skill whenever the user is working on `visual-automation-designer`, mentions `F:\projects\visual-automation-designer`, asks about the Tauri desktop app, release installers, flow execution bugs, block config issues, condition branches, loop behavior, entry block behavior, or any mismatch between what the canvas shows and what the app actually executes. Be aggressive about using this skill for bug fixing, release work, runtime validation, frontend-backend data-shape mismatches, and iterative maintenance on this repository. |
Visual Automation Designer Maintainer
Use this skill for all meaningful maintenance work on this repository.
The project is a React + TypeScript + Tauri + Rust visual automation editor. The most important maintenance principle is that real desktop runtime behavior matters more than browser-only behavior. This repository has a history of bugs where the canvas looked correct but execution semantics or Tauri command payloads were wrong.
Primary Standard
Treat this project as an execution-sensitive editor, not just a CRUD UI.
When you make changes, optimize for these priorities in order:
- Runtime correctness in the desktop app
- Frontend/backend data-shape consistency
- Execution semantics matching the visible canvas
- Release correctness and asset/version consistency
- Code cleanup and refactoring
Default Workflow
When this skill triggers, follow this workflow unless the user explicitly narrows scope:
- Inspect the full chain involved in the issue
- Prefer finding the true runtime source of truth before editing
- Make the smallest correct fix
- Add or update regression tests when the bug is reproducible
- Run
npm run test, npm run lint, and npm run build
- If release work is involved, run
npm run tauri build
- If the user wants GitHub updates, commit and push after verification
Investigation Rules
Always inspect both sides of the boundary when a feature crosses frontend and Tauri:
- Frontend UI/editor components
- Frontend flow serialization and hooks
- Tauri TypeScript command wrappers
- Rust command handlers and models
- Rust executor behavior if execution is involved
Do not assume the browser mock path proves desktop correctness.
High-Risk Areas
Pay extra attention to these areas because they have repeatedly caused real usage problems:
- Tauri command payload field naming
condition branch semantics
loop and loop_infinite child execution semantics
- execution using stale unsaved state
entryBlock stability
- release version synchronization
- generated assets polluting lint or test workflows
Frontend/Backend Data Rules
If a Tauri command fails with missing fields or invalid args, suspect serialization mismatch first.
Common risk patterns:
- frontend camelCase vs Rust snake_case
- editor state using one representation while executor uses another
- browser mock saving raw objects that the real Tauri command would reject
Prefer centralizing any field conversion at the Tauri TypeScript wrapper boundary instead of scattering conversion logic across UI components.
Execution Semantics Rules
The canvas should not lie.
If the UI lets users connect or configure something visually, make sure execution derives from the same effective source of truth. If multiple representations exist, normalize them before save and execution.
Prefer save-time or execute-time canonicalization over trusting partially synchronized editor state.
Release Rules
When building or publishing a release, always verify version consistency across:
package.json
src-tauri/Cargo.toml
src-tauri/tauri.conf.json
If release assets have the wrong version in filenames, check tauri.conf.json immediately.
Before creating a GitHub release:
- check whether the tag already exists
- check whether the release already exists
- verify the generated asset filenames match the intended version
- check GitHub Actions run status before manually uploading missing assets
Git Rules
Do not touch unrelated worktree noise unless the user asks.
Examples of things to leave alone by default:
auto-iterate/
- pure line-ending noise
- generated output not required for the current task
If the user asks for commits or release publication, verify first, then commit only the intended files.
Validation Standard
Minimum validation for normal code changes:
npm run test
npm run lint
npm run build
Add npm run tauri build when:
- release artifacts are requested
- a desktop-only runtime bug was fixed
- Tauri config/version/package behavior changed
Response Standard
When reporting results, always include:
- what problem was fixed
- the root cause
- what changed
- how it was validated
- Git or release status if relevant
- the next most natural follow-up risk
Project References
Read these project-local references when relevant:
references/runtime-risks.md for repository-specific failure patterns
references/release-checklist.md for release/version workflow