Basin
cloudflare/skills
Build and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL.
Wavelet 项目专用:当新增或修改启动时设置、数据库系统设置、业务设置、公共可见配置、/admin/system 参数配置、/admin/settings 图形化设置界面,或前端公共配置消费逻辑时必须使用。本技能指导设置类型判定、SystemConfig 字段与 visibility、goose SQL 初始化/升级、热更新读取、公共配置暴露、shadcn 图形组件和验证流程。
$ npx skills add Rain-kl/OpenFlare --skill new-setting -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Rain-kl/OpenFlare new-setting --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Rain-kl/OpenFlare.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/new-setting .claude/skills/new-setting && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "new-setting" agent skill from https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-setting into .claude/skills/new-setting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-setting", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-settingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Rain-kl/OpenFlare --skill new-setting -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Rain-kl/OpenFlare new-setting --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rain-kl/OpenFlare.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/new-setting .agents/skills/new-setting && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "new-setting" agent skill from https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-setting into .agents/skills/new-setting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-setting", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Rain-kl/OpenFlare --skill new-setting -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Rain-kl/OpenFlare new-setting --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rain-kl/OpenFlare.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/new-setting .cursor/skills/new-setting && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "new-setting" agent skill from https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-setting into .cursor/skills/new-setting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-setting", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Rain-kl/OpenFlare.git --path .agents/skills/new-setting--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Rain-kl/OpenFlare --skill new-setting -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Rain-kl/OpenFlare new-setting --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rain-kl/OpenFlare.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/new-setting .gemini/skills/new-setting && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "new-setting" agent skill from https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-setting into .gemini/skills/new-setting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-setting", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Rain-kl/OpenFlare new-settingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Rain-kl/OpenFlare --skill new-setting -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Rain-kl/OpenFlare.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/new-setting .github/skills/new-setting && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "new-setting" agent skill from https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-setting into .github/skills/new-setting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-setting", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Rain-kl/OpenFlare --skill new-setting -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Rain-kl/OpenFlare new-setting --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Rain-kl/OpenFlare.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/new-setting .opencode/skills/new-setting && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "new-setting" agent skill from https://github.com/Rain-kl/OpenFlare/tree/main/.agents/skills/new-setting into .opencode/skills/new-setting/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-setting", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
new-settingWavelet 项目专用:当新增或修改启动时设置、数据库系统设置、业务设置、公共可见配置、/admin/system 参数配置、/admin/settings 图形化设置界面,或前端公共配置消费逻辑时必须使用。本技能指导设置类型判定、SystemConfig 字段与 visibility、goose SQL 初始化/升级、热更新读取、公共配置暴露、shadcn 图形组件和验证流程。
New Setting is an agent skill from Rain-kl/OpenFlare. Wavelet 项目专用:当新增或修改启动时设置、数据库系统设置、业务设置、公共可见配置、/admin/system 参数配置、/admin/settings 图形化设置界面,或前端公共配置消费逻辑时必须使用。本技能指导设置类型判定、SystemConfig 字段与 visibility、goose SQL 初始化/升级、热更新读取、公共配置暴露、shadcn 图形组件和验证流程。
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases, covering Design systems and SQL. It works with SQL, shadcn/ui and Cloudflare. The repository describes itself as: OpenFlare is an open-source CDN orchestration and edge security platform. It supports reverse proxy, centralized configuration synchronization, in-network tunneling (Tunnels)… The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 7c2304d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
makepnpmgoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
New Setting loads about 1.7k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 453 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Rain-kl/OpenFlare at commit 7c2304d, republished under its Apache-2.0 licence (© Rain-kl). 453 words, ~1,746 tokens.
.claude/skills/new-setting/SKILL.md (or your agent's skills folder).本技能覆盖 Wavelet 的设置体系。开始前先读仓库根目录 AGENTS.md,遵守项目级规则:HTTP 路由只在 internal/router/router.go 注册、API 变更后运行 make swagger、提交前运行 make code-check、不要删除 frontend/node_modules、internal/util/ 不引入框架依赖。
如果需要在 /admin/settings 增加或调整图形化设置组件,同时阅读 shadcn。如果只是新增 Go 读取逻辑、测试或错误处理,再按需阅读对应 go-* skill。
Wavelet 当前有两套设置入口:
config.yaml 或环境变量,适合进程启动前必须确定、通常不热更新的基础配置。system_configs,经 model.SystemConfig 实体(key 常量在 model)与 repository 读取层(含 Redis hash 缓存)访问,支持运行时热更新。管理入口是 /admin/system 和 /admin/settings。系统设置分三种使用语义:
type=business,由管理员配置,影响业务规则,例如用户额度、业务限制。type=system,由管理员配置,影响平台能力、基础开关、外部服务参数。visibility=1 控制是否通过公开接口返回给前端使用。它不是第三种数据库 type,不要把 type 写成 public。业务设置和系统设置互斥:一个配置项只能选择 business 或 system。是否公开给前端由 visibility 决定:0 表示隐藏,1 表示 /api/v1/config/public 可见。
特殊设置组件不一定需要新增 SystemConfig 参数项。例如认证源设置、模板管理这类有独立模型和 API 的功能,应沿用对应领域模型,不要为了出现在 /admin/settings 强行创建参数配置。
修改前快速查看这些文件,确认当前实现没有漂移:
internal/model/system_configs.go: 配置 key 常量(ConfigKey*)、SystemConfig 实体与字段语义;不含持久化读取 API。internal/repository/system_config.go: 配置读取与缓存(GetSystemConfigByKey、GetBoolByKey、GetIntByKey、GetDecimalByKey、ListVisibleSystemConfigs 等)。internal/infra/persistence/migrator/goose/postgres/*.sql 和 internal/infra/persistence/migrator/goose/sqlite/*.sql: system_configs 表结构、初始化 seed、后续升级迁移。internal/infra/persistence/migrator/migrator.go: goose 迁移入口和 PostgreSQL/SQLite 方言选择。internal/testhelper/test_helper.go: Go 测试用默认系统配置 seed。internal/apps/admin/system_config/routers.go: /api/v1/admin/system-configs 参数表 API。internal/apps/config/routers.go: /api/v1/config/public 公共配置响应。frontend/components/common/admin/system.tsx: /admin/system 参数表管理界面,展示所有参数配置项。frontend/components/common/settings/system-settings.tsx: /admin/settings 图形化设置页入口。frontend/components/common/settings/*-tab.tsx: /admin/settings 各图形化设置分组。frontend/lib/services/admin/*: Admin 系统配置 service 类型和 API 封装。frontend/lib/services/config/*、frontend/hooks/use-public-config、frontend/components/layout/*: 前端公共配置消费链路。按影响面选择步骤,不要只改 UI 或只改默认值。
定义配置 key。
internal/model/system_configs.go 添加 ConfigKey... 常量。search_engine_indexing_enabled。"true" / "false",数值用十进制字符串,复杂结构用 JSON 字符串。初始化默认配置。
internal/infra/persistence/migrator/goose/postgres/ 和 internal/infra/persistence/migrator/goose/sqlite/ 中的 goose SQL。202606090001_initial_schema.sql 的 INSERT INTO system_configs (...) VALUES ... ON CONFLICT (key) DO NOTHING。Type:只能是 "system" 或 "business"。Visibility:公共可见填 1,内部配置填 0。internal/testhelper/test_helper.go 的 seedDefaultConfigs 和公共 key 列表。读取配置。
internal/repository 读取:repository.GetBoolByKey、repository.GetIntByKey、repository.GetDecimalByKey 或 repository.GetSystemConfigByKey;key 常量仍用 model.ConfigKey*。model.Get*ByKey / model.ListVisibleSystemConfigs 等数据访问 API(model 无 CRUD)。config.Config;启动时设置才走 internal/infra/config/model.go 和 config.example.yaml。os.Getenv()。如果前端需要未登录或全局消费,暴露为公共可见配置。
visibility 设为 1,GetPublicConfig 会通过 repository.ListVisibleSystemConfigs 返回所有可见 key/value。/api/v1/config/public 的 data 是动态对象:后端返回 map[string]string,前端类型是 Record<string, string | undefined>。["public-config"]。visibility=1 的 key 通常不需要改 PublicConfigResponse 类型。如果管理员需要图形化配置,更新 /admin/settings。
security-tab.tsx,运营类进 operation-tab.tsx,系统基础参数进 system-tab.tsx,其它菜单或杂项进 other-tab.tsx。SystemSettingsMain 当前通过 AdminService.listSystemConfigs("system") 只加载 type=system 的配置;type=business 的配置若也需要图形化入口,先确认是否要调整查询范围或放到其它 Admin 页面。frontend/components/common/settings/,使用现有 AdminService.updateSystemConfig。["admin", "system-configs"];公共可见配置还要 invalidate ["public-config"]。any,不要硬编码页面级 max-w-*,页面根容器保持 w-full。/admin/system 参数表通常不需要新代码。
SystemConfig 默认数据存在,参数表会展示配置项。/admin/system 偏向所有参数配置项的键值管理,不替代 /admin/settings 的友好图形界面。只有在配置必须随进程启动确定、不能或不应热更新时,才走启动时设置。
internal/infra/config/model.go 添加配置字段。config.example.yaml 添加示例值和说明。config.Config.<Section>.<Field> 读取。SystemConfig,除非产品明确需要运行时覆盖。ConfigKeyFeatureEnabled = "feature_enabled"(定义在 internal/model)value='false',type 按语义选 "system" 或 "business",visibility=1。repository.GetBoolByKey(ctx, model.ConfigKeyFeatureEnabled)。/api/v1/config/public 的 data.feature_enabled 为字符串 "true" 或 "false"。Switch,保存时写 "true" / "false"。ConfigKeyMaxSomething = "max_something"。"5",type 通常为 "business",只有前端公共消费时才设 visibility=1。repository.GetIntByKey 或 repository.GetDecimalByKey。Input type="number" 或合适的 shadcn 数值控件;保存前做最小必要校验,错误用 toast。"{}" 或 "[]"。repository.GetMenuDisplayConfig 一样把 JSON 解析错误包装成清晰错误;不要在 model 中做 IO。JSON.stringify 写入,用类型化对象在组件中操作。根据改动范围运行最小有效验证,最后提交前必须运行项目门禁。
go test ./internal/repository ./internal/apps/config ./internal/apps/admin/system_config新增 goose 迁移后,至少用当前数据库方言跑一次迁移;如果 SQL 同时改了 PostgreSQL 和 SQLite,尽量覆盖两种方言。涉及 schema/seed 的任务还应遵循 database-migration skill。
公共配置 API 注释或 handler 签名改动后:
make swaggercd frontend && pnpm typecheck && pnpm lintmake code-check如涉及前端页面体验,启动本地服务并用浏览器验证 /admin/settings 和 /admin/system:配置能显示、保存、toast 反馈正常、刷新后值保持、公共配置消费方能即时或刷新后生效。
/admin/settings 图形化设置组件时使用。system_configs schema、默认 seed 或 goose SQL 迁移时使用。© Rain-kl, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/new-setting of Rain-kl/OpenFlare.
Open the folder on GitHubat commit 7c2304d
New Setting next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| New Setting this skillRain-kl/OpenFlare | 288 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Basincloudflare/skills | 3k | 1 repos | ~684 | Automated safety check: Pass | Apache-2.0 | |
| Sqlc Gen Moonbit Safetymizchi/skills | 356 | — | ~995 | Automated safety check: Pass | None | |
| Lunora Setup Hyperdriveanolilab/lunora | 283 | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Lunora Setup Hyperdrive Globalanolilab/lunora | 283 | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Drizzle Orm D1secondsky/claude-skills | 227 | — | ~2.4k | Automated safety check: Pass | MIT |
cloudflare/skills
Build and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL.
mizchi/skills
Post-generation safety checks for sqlc-gen-moonbit + Cloudflare D1.
anolilab/lunora
Connects an existing, externally owned Postgres/MySQL database to a Lunora app through Cloudflare Hyperdrive.
anolilab/lunora
Stores a Lunora app's own .global() tables in Postgres or MySQL (PlanetScale, Neon, RDS, or any Hyperdrive-reachable database) through Cloudflare Hyperdrive instead of D1.
secondsky/claude-skills
| Type-safe ORM for Cloudflare D1 databases using Drizzle. An agent skill from secondsky/claude-skills.
secondsky/claude-skills
Nuxt Content v3 Git-based CMS for Markdown/MDC content sites.
Rain-kl/OpenFlare
Provides comprehensive code review guidance for React 19, Vue 3, Angular 17+, Svelte 5, Rust, TypeScript, Java, PHP, Python, Django, Go, C/.NET, Kotlin, Swift, NestJS, C/C++, and more.
Rain-kl/OpenFlare
在选择日志方案、配置 slog、编写结构化日志语句或决定日志级别时使用。也适用于设置生产日志、为日志添加请求作用域上下文或从 log 迁移到 slog 的场景,即使用户未明确提及日志。不涵盖错误处理策略(参见 go-error-handling)。
Rain-kl/OpenFlare
Wavelet 项目专用:当新增或修改自定义业务 API、新增业务路由、新增 service 层核心逻辑时必须使用。本技能指导包职责划分、推荐文件结构、路由解耦、Swagger 文档生成与质量门禁验证。
Rain-kl/OpenFlare
Wavelet 项目专用:当新增或修改业务缓存(RAM/Redis/DB 三层读路径)、缓存失效、多节点 pub/sub 同步、或评估高频读是否应接入缓存时必须使用。本技能说明系统标准缓存框架、参考实现、禁止写法与分布式一致性要求。
Rain-kl/OpenFlare
Wavelet 项目专用:当新增或修改 ClickHouse 批量写入、接入 internal/infra/persistence/batchwriter、将业务域异步 flush 到分析表、迁移 riskcontrol/节点访问日志/可观测时序写入、或评估 asyncinsert 与背压策略时必须使用。本技能指导分层职责、各域独立 Writer 实例、repository 批量 API…
Rain-kl/OpenFlare
Wavelet 项目专用:当新增或修改数据库表结构、索引、初始化数据、系统配置 seed、模板 seed、默认管理员、goose SQL 迁移、internal/infra/persistence/migrator、ClickHouse 分析库 DDL 或数据库升级流程时必须使用。本技能指导在 internal/infra/persistence/migrator/goose 下编写…
Works with
Categories
Wavelet 项目专用:当新增或修改启动时设置、数据库系统设置、业务设置、公共可见配置、/admin/system 参数配置、/admin/settings 图形化设置界面,或前端公共配置消费逻辑时必须使用。本技能指导设置类型判定、SystemConfig 字段与 visibility、goose SQL 初始化/升级、热更新读取、公共配置暴露、shadcn 图形组件和验证流程。. New Setting is an agent skill from Rain-kl/OpenFlare.
New Setting fits situations like: tasks that involve Design systems; tasks that involve SQL.
Run `npx skills add Rain-kl/OpenFlare --skill new-setting -a claude-code`. Or copy the skill folder (.agents/skills/new-setting in Rain-kl/OpenFlare) into .claude/skills/new-setting in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Rain-kl/OpenFlare --skill new-setting -a codex`. Or copy the skill folder (.agents/skills/new-setting in Rain-kl/OpenFlare) into .agents/skills/new-setting in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Rain-kl/OpenFlare --skill new-setting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/new-setting, .gemini/skills/new-setting, .github/skills/new-setting and .opencode/skills/new-setting in your project.
Going by SKILL.md and its folder, New Setting needs the command-line tools its instructions call (make, pnpm and go).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
New Setting is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with New Setting: Basin (cloudflare/skills, 3k stars), Sqlc Gen Moonbit Safety (mizchi/skills, 356 stars), Lunora Setup Hyperdrive (anolilab/lunora, 283 stars) and Lunora Setup Hyperdrive Global (anolilab/lunora, 283 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Rain-kl (a GitHub user) maintains it in Rain-kl/OpenFlare, which has 288 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 8, 2026.
Source: Rain-kl/OpenFlare on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.