Conversation
This was referenced Sep 7, 2026
Run once switched the editor to the generated skill program and only switched back on success, so a failed or stopped run left the skill program active while the recording program was still recording and could not be re-selected; the next recorded action landed in the skill program's text. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…hon-skill-library
…clock Three ways the Skills panel misreported what a user had to do. With no setup saved it loaded the empty name and surfaced the store's name-format complaint; with a setup that has no poses it resolved None and aborted the form build half-way with an AttributeError. Both now say what to save or teach. Two plugins can each provide a skill whose trailing name is the same -- waldo.retract and acme.retract -- and the dropdown and the editor completions showed two identical entries, so the user could not tell which one they were inserting. Labels are qualified where they would collide. Inserting a call is an action in the recording, so it stamps the action clock like a captured pose does. Otherwise the next recorded action carried the time the operator spent composing the call, and the program waited it out on every run. SKIP=ty: pre-existing DryRunRobotClient.skill_capabilities diagnostic. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…hon-skill-library # Conflicts: # waldo_commander/services/path_preview_client.py
Skills declare typed requirements checked against the backend's Robot, so the library marks a skill unavailable by what that Robot reports, and a gripper skill checks its tool at run time rather than having a tool selection prepended to its call. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N8zt66KjkzgZLtQuSfJd9r
The panel's program opens a fresh client, and a client knows no tool until it selects one, so a gripper skill run from the panel refused even with the right gripper fitted. The run now binds the arm's current tool first; inserted calls are unchanged. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N8zt66KjkzgZLtQuSfJd9r
select_tool is a system command: it answers 1, 0 or a negative code, never a queue index, so waiting on that answer as a command index fails in the preview and means nothing on the arm. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N8zt66KjkzgZLtQuSfJd9r
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Users can discover installed Python skills, configure their arguments, insert explicit calls, and run them through the normal program controls. The starter library includes retract, approach, named park, tool-axis alignment, and supported gripper open/close operations. Skills remain importable without starting the GUI.
Saved poses and setups become fixed values in inserted calls. Run once opens inspectable Python in a program tab; a successful run adds one semantic call to an active recording, while cancellation or failure leaves it unchanged. Gripper calls confirm tool selection before actuation. Plugin diagnostics and import-aware editor completions support extensions, and long forms scroll while keeping their action buttons visible.
Stacked on #50. Validation includes native preview, UI insertion/execution/recording, duplicate-click and cancellation checks, an async skill launched through FastMCP, PAROL6 simulated valve changes, and native PAR6 TCP/jaw observations. All six affected setup/skill checks passed after verifying mixed-axis transforms against native robot math. The broader 51-check editor/MCP/setup/I/O/browser suite also passed; CI is rerunning on the updated dependencies. The populated browser layout check passed on Raspberry Pi hardware WebGL. Lint and source type checks passed. Full CI remains the final verification across supported platforms.
Gripper completion confirms the command, not a sensed grasp. Approach uses normal collision-checked motion and does not search for a detour. Existing freedrive controls remain available.
Companion PRs: waldoctl #28, PAROL6 #42, PAR6 #68, Commander #51. These use the same feature branch for dependency matching in CI.
Skill forms use readable labels, a shared setup selector with optional overrides, two-column fields, and a collapsed Python preview. Run once reveals Program controls. Preview tool selection returns a valid completion index for generated gripper calls.
Screenshots — revised interface, PAROL6 and PAR6
Captured in Chromium on September 10 from the combined feature stack; shared panels may include later PRs. PAROL6 uses fake serial; PAR6 uses
par6d --sim.PAROL6 — populated Approach skill form with actions visible.
PAR6 — populated Approach skill form with actions visible.