fix: cover both Codex global skill dirs; make Formulir/Berkasna discoverable - #99
Merged
Merged
Conversation
…na discoverable
--target codex --global wrote only ~/.agents/skills. Codex's docs name that
path but installs in the wild use ~/.codex/skills, and we could not verify
which is live — so write both. A wrong single choice installs into a directory
nothing reads, which fails silently. Project-level is unchanged.
sawala-cli absorbed Formulir and Berkasna but its description named them only
as products, so task vocabulary ('list my files', 'read the form submissions')
matched no skill. Adds that vocabulary to the description.
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.
Two fixes found by actually running the skills after release
1.
--target codex --globalcould install where nothing readsresolveTargetDirssentcodex --globalto~/.agents/skillsonly. Codex's own documentation names that path, but real installs put personal skills in~/.codex/skills($CODEX_HOME/skills) — this machine has a populated~/.codex/skillsand no~/.agents/skillsat all.We could not verify which is live (no working Codex install to test against). Picking one and being wrong means a
--globalinstall lands in a directory nothing reads and fails silently, which is the worst outcome available. So it now writes both. Costs two directories; cannot be wrong.Project-level is unchanged —
.agents/skillsis well attested there, and Copilot reads it too.2. Formulir and Berkasna were only reachable by product name
sawala-cliabsorbs both surfaces (they're read-onlylist/getwith no traps, so they didn't earn their own skills). But its description named them only in a list of products, with no file, asset, upload, form, or submission vocabulary anywhere. A user asking "list my files" or "read the form submissions" matched no skill at all unless they happened to say "Berkasna" or "Formulir".The description now carries that vocabulary. No new skill, no content change.
Verification
packages/sawala/test/skills.test.ts(2 new, covering both Codex global paths and that project-levelalldoes not get a.codexdirectory)npm run typecheck,npm run check:skills— cleanContext: what the post-release checks found
Copilot: confirmed pass. Asked "what skills do you have available?" in a directory with
.agents/skills/— it enumerated all eight by name and description alongside its own built-ins (pylance-docs,create-pull-request), with no file reads. Native skill registry, not a lucky file discovery. A separate question produced an accurate answer covering the PATCH-vs-PUT split, theSAWALA_PROJECTdesync, and the read-only nature of Formulir/Berkasna.Claude Code: confirmed pass, including discovery through the double symlink hop (
.claude/skills→.agents/skills→packages/sawala/skills).Codex: unverified, no install available — hence fix 1 being defensive rather than tested.
Published tarball: verified —
@sawala/cli@0.14.0installed fresh from npm carries all 10 skill files andskills listresolves correctly from the bundleddist/cli.js.