summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2026-01-20 12:37:23 -0600
committerAiden Cline <[email protected]>2026-01-20 12:37:23 -0600
commit1bc919dc74771e7a839a5d44ddd6d6afde4f190e (patch)
tree06fd03b7bd9028bd2aefa37ba94579a6c927cc3d
parent17438a2e90346f1ed51f0f5c104deba999923b3a (diff)
downloadopencode-1bc919dc74771e7a839a5d44ddd6d6afde4f190e.tar.gz
opencode-1bc919dc74771e7a839a5d44ddd6d6afde4f190e.zip
ignore: add bun/file io skill just for our repo
-rw-r--r--.opencode/skill/bun-file-io/SKILL.md39
-rw-r--r--.opencode/skill/test-skill/SKILL.md6
2 files changed, 39 insertions, 6 deletions
diff --git a/.opencode/skill/bun-file-io/SKILL.md b/.opencode/skill/bun-file-io/SKILL.md
new file mode 100644
index 000000000..ea39507d2
--- /dev/null
+++ b/.opencode/skill/bun-file-io/SKILL.md
@@ -0,0 +1,39 @@
+---
+name: bun-file-io
+description: Use this when you are working on file operations like reading, writing, scanning, or deleting files. It summarizes the preferred file APIs and patterns used in this repo. It also notes when to use filesystem helpers for directories.
+---
+
+## Use this when
+
+- Editing file I/O or scans in `packages/opencode`
+- Handling directory operations or external tools
+
+## Bun file APIs (from Bun docs)
+
+- `Bun.file(path)` is lazy; call `text`, `json`, `stream`, `arrayBuffer`, `bytes`, `exists` to read.
+- Metadata: `file.size`, `file.type`, `file.name`.
+- `Bun.write(dest, input)` writes strings, buffers, Blobs, Responses, or files.
+- `Bun.file(...).delete()` deletes a file.
+- `file.writer()` returns a FileSink for incremental writes.
+- `Bun.Glob` + `Array.fromAsync(glob.scan({ cwd, absolute, onlyFiles, dot }))` for scans.
+- Use `Bun.which` to find a binary, then `Bun.spawn` to run it.
+- `Bun.readableStreamToText/Bytes/JSON` for stream output.
+
+## When to use node:fs
+
+- Use `node:fs/promises` for directories (`mkdir`, `readdir`, recursive operations).
+
+## Repo patterns
+
+- Prefer Bun APIs over Node `fs` for file access.
+- Check `Bun.file(...).exists()` before reading.
+- For binary/large files use `arrayBuffer()` and MIME checks via `file.type`.
+- Use `Bun.Glob` + `Array.fromAsync` for scans.
+- Decode tool stderr with `Bun.readableStreamToText`.
+- For large writes, use `Bun.write(Bun.file(path), text)`.
+
+## Quick checklist
+
+- Use Bun APIs first.
+- Use `path.join`/`path.resolve` for paths.
+- Prefer promise `.catch(...)` over `try/catch` when possible.
diff --git a/.opencode/skill/test-skill/SKILL.md b/.opencode/skill/test-skill/SKILL.md
deleted file mode 100644
index 3fef059f2..000000000
--- a/.opencode/skill/test-skill/SKILL.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-name: test-skill
-description: use this when asked to test skill
----
-
-woah this is a test skill