Skip to content

fix: cover both Codex global skill dirs; make Formulir/Berkasna discoverable - #99

Merged
sutisnamulyana merged 1 commit into
mainfrom
fix/skills-codex-global-and-discovery
Aug 4, 2026
Merged

fix: cover both Codex global skill dirs; make Formulir/Berkasna discoverable#99
sutisnamulyana merged 1 commit into
mainfrom
fix/skills-codex-global-and-discovery

Conversation

@sutisnamulyana

Copy link
Copy Markdown
Member

Two fixes found by actually running the skills after release

1. --target codex --global could install where nothing reads

resolveTargetDirs sent codex --global to ~/.agents/skills only. 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/skills and no ~/.agents/skills at all.

We could not verify which is live (no working Codex install to test against). Picking one and being wrong means a --global install 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/skills is well attested there, and Copilot reads it too.

2. Formulir and Berkasna were only reachable by product name

sawala-cli absorbs both surfaces (they're read-only list/get with 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

  • 18 tests in packages/sawala/test/skills.test.ts (2 new, covering both Codex global paths and that project-level all does not get a .codex directory)
  • npm run typecheck, npm run check:skills — clean

Context: 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, the SAWALA_PROJECT desync, and the read-only nature of Formulir/Berkasna.

Claude Code: confirmed pass, including discovery through the double symlink hop (.claude/skills.agents/skillspackages/sawala/skills).

Codex: unverified, no install available — hence fix 1 being defensive rather than tested.

Published tarball: verified@sawala/cli@0.14.0 installed fresh from npm carries all 10 skill files and skills list resolves correctly from the bundled dist/cli.js.

…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.
@sutisnamulyana
sutisnamulyana merged commit f53683c into main Aug 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant