Files
pbakaus_impeccable/tests/oracle/golden/pin-opencode-then-unpin.json
T
Paul BakausandClaude Fable 5.1 50684ececb Port: OpenCode slash command bridge (#483)
Upstream sha 9736a9f6e9.

OpenCode does not honor `user-invocable: true` on SKILL.md frontmatter, so a
pinned skill never reaches its slash menu. `pin` now writes
`commands/impeccable-<cmd>.md` on the OpenCode command schema instead, and
skips `.opencode` in the SKILL.md loop so no unreachable
`.opencode/skills/<cmd>` is left behind. `unpin` mirrors it, marker-guarded,
and reaches both scopes even when the skill itself is gone.

`find_opencode_commands_dirs` covers the project-local dir when the project
has the skill and the user config dir when Impeccable is installed globally,
resolving that dir the way the CLI does (`OPENCODE_CONFIG_DIR` ->
`XDG_CONFIG_HOME/opencode` -> `~/.config/opencode`).

The build-tooling half of the upstream change (transformers, the OpenCode
command the build generates, `root-commands-sync`) came in with the merge and
needed no port.

Verified against origin/main's pin.mjs across seven scenarios (no harness,
project scope, user scope, a foreign command file, pin then unpin, unpin over
a foreign file, unpin with nothing pinned): identical stdout, identical file
sets, identical file contents apart from the one deliberate difference.

Oracle: five `pin-opencode-*` cases, with a DELTAS entry for the bridge body
naming the launcher rather than `node .../context.mjs`.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vau2X53xGTjjTCXWMVBoNY
2026-09-03 13:07:22 -07:00

26 lines
734 B
JSON

{
"steps": [
{
"stdout": " + <WS>/.opencode/commands/impeccable-polish.md\n\nPinned 'polish' as a standalone shortcut in 1 location(s).\nUse the pinned command directly in each harness.\n",
"stderr": "",
"exit": 0,
"signal": null
},
{
"stdout": " - <WS>/.opencode/commands/impeccable-polish.md\n\nUnpinned 'polish' from 1 location(s).\nUse Impeccable's 'polish' workflow directly to access it.\n",
"stderr": "",
"exit": 0,
"signal": null
},
{
"stdout": "No pinned 'polish' shortcut found.\n",
"stderr": "",
"exit": 0,
"signal": null
}
],
"files": {
".opencode/skills/impeccable/SKILL.md": "---\nname: impeccable\n---\n"
}
}