gen-rustlisted
Install: claude install-skill Pythoughts-labs/pythinker-code
# gen-rust
Use this skill when the user wants Rust (kagent/pythinker-core/pythinker-host) to stay logically identical to Python (pythinker_code/pythinker_core/pythinker_host), excluding UI and login/auth. This includes code and tests: Rust behavior and tests must be fully synchronized with Python changes.
Note: The Rust binary is named `kagent`. User-facing CLI/output text in Rust must use `kagent`
instead of `pythinker` to match the Rust command name.
## Quick workflow
1) **Build a complete change inventory**
Review recent changes to understand what needs syncing:
```sh
# Check staged changes
git diff --cached --name-only
git diff --cached -- src packages
# Check recent commits
git log --oneline -20 -- src packages
git diff HEAD~20..HEAD -- src packages
# Review CHANGELOG.md for context
head -50 CHANGELOG.md
```
2) **Classify changes**
- Exclude UI and login/auth changes (Shell/Print/ACP UI, login/logout commands).
- Everything else must be mirrored in Rust.
- Keep a small checklist: file -> change summary -> Rust target -> status.
3) **Map Python -> Rust**
Common mappings:
- `src/pythinker_code/llm.py` -> `rust/kagent/src/llm.rs`
- `src/pythinker_code/soul/*` -> `rust/kagent/src/soul/*`
- `src/pythinker_code/tools/*` -> `rust/kagent/src/tools/*`
- `src/pythinker_code/utils/*` -> `rust/kagent/src/utils/*`
- `src/pythinker_code/wire/*` -> `rust/kagent/src/wire/*`
- `packages/pythinker-core/*` -> `rust/pythinker-core/*`
- `packages/pythinker-host/*` -> `rust/pythin