Google Bigquery
LeoYeAI/openclaw-master-skills
Google BigQuery API integration with managed OAuth. An agent skill from LeoYeAI/openclaw-master-skills.
TRIGGER when user asks to add fields, properties, or columns to a SQL CRUD microservice's object.
$ npx skills add microbus-io/fabric --skill add-sql-fields -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microbus-io/fabric add-sql-fields --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/microbus-io/fabric.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/sequel/add-sql-fields .claude/skills/add-sql-fields && 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 "add-sql-fields" agent skill from https://github.com/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fields into .claude/skills/add-sql-fields/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sql-fields", 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/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fieldsType 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 microbus-io/fabric --skill add-sql-fields -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microbus-io/fabric add-sql-fields --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/sequel/add-sql-fields .agents/skills/add-sql-fields && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-sql-fields" agent skill from https://github.com/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fields into .agents/skills/add-sql-fields/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sql-fields", 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 microbus-io/fabric --skill add-sql-fields -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microbus-io/fabric add-sql-fields --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/sequel/add-sql-fields .cursor/skills/add-sql-fields && 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 "add-sql-fields" agent skill from https://github.com/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fields into .cursor/skills/add-sql-fields/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sql-fields", 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/microbus-io/fabric.git --path .claude/skills/sequel/add-sql-fields--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 microbus-io/fabric --skill add-sql-fields -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microbus-io/fabric add-sql-fields --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/sequel/add-sql-fields .gemini/skills/add-sql-fields && 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 "add-sql-fields" agent skill from https://github.com/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fields into .gemini/skills/add-sql-fields/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sql-fields", 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 microbus-io/fabric add-sql-fieldsInstalls 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 microbus-io/fabric --skill add-sql-fields -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/sequel/add-sql-fields .github/skills/add-sql-fields && 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 "add-sql-fields" agent skill from https://github.com/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fields into .github/skills/add-sql-fields/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sql-fields", 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 microbus-io/fabric --skill add-sql-fields -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microbus-io/fabric add-sql-fields --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microbus-io/fabric.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/sequel/add-sql-fields .opencode/skills/add-sql-fields && 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 "add-sql-fields" agent skill from https://github.com/microbus-io/fabric/tree/main/.claude/skills/sequel/add-sql-fields into .opencode/skills/add-sql-fields/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-sql-fields", 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.
add-sql-fieldsTRIGGER when user asks to add fields, properties, or columns to a SQL CRUD microservice's object.
Add SQL Fields is an agent skill from microbus-io/fabric. TRIGGER when user asks to add fields, properties, or columns to a SQL CRUD microservice's object.
Its SKILL.md is about 3.5k 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 Backend & APIs, covering Microservices and SQL. It works with SQL. The repository describes itself as: Microbus is the only fabric where every agentic workflow runs on a true microservice substrate - giving your workflows security, scale, observability, and prompt-driven authoring. The licence is Apache-2.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fb98098. 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:
goFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Add SQL Fields loads about 3.5k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 1,045 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 microbus-io/fabric at commit fb98098, republished under its Apache-2.0 licence (© microbus-io). 1,045 words, ~3,473 tokens.
.claude/skills/add-sql-fields/SKILL.md (or your agent's skills folder).CRITICAL: Read and analyze this microservice before starting. Do NOT explore or analyze other microservices unless explicitly instructed to do so. The instructions in this skill are self-contained to this microservice.
IMPORTANT: MyNoun, MyNounKey, mynoun, and mynounapi are placeholders for the actual object, its key, directory, and API package of the microservice.
IMPORTANT: Do not remove the Example field or code related to it from the code since it is required by various tests.
Copy this checklist and track your progress:
Adding fields to the object:
- [ ] Step 1: Read Local CLAUDE.md File
- [ ] Step 2: Update the Type Definition of the Object
- [ ] Step 3: Update the Type Definition of the Query
- [ ] Step 4: Update Database Schema
- [ ] Step 5: Map Column Names to Object Fields
- [ ] Step 6: Add Query Conditions
- [ ] Step 7: Update Integration Tests
- [ ] Step 8: HousekeepingCLAUDE.md FileRead the local CLAUDE.md file in the microservice's directory. It contains microservice-specific instructions that should take precedence over global instructions.
Find the type definition of the object in mynounapi/object.go.
Add the new fields to the type definition of the struct.
Fields can be primitive or complex types that serialize to JSON.
Be sure to include a JSON tag. Use camelCase for the JSON name, and specify to omitzero.
When referring to an object persisted by another microservices, use its respective key.
Express field-level constraints (trimming, length limits, value ranges, required values) as dv8 tags on the
fields; they are enforced automatically when the object is validated (see the add-type skill).
type MyNoun struct {
Key MyNounKey `json:"key,omitzero"`
// HINT: Define the fields of the object here, with dv8 tags for field-level constraints
MyFieldString string `json:"myFieldString,omitzero" dv8:"trim,len<=256"`
MyFieldInteger int `json:"myFieldInteger,omitzero" dv8:"val>=0"`
MyFieldNullable string `json:"myFieldNullable,omitzero" dv8:"trim,len<=256"`
MyFieldTime time.Time `json:"myFieldTime,omitzero"`
MyFieldTags map[string]string `json:"myFieldTags,omitzero" dv8:"each len<=256"`
MyOtherObjectKey otherobjectapi.OtherObjectKey `json:"myOtherObjectKey,omitzero" dv8:"notzero"`
}Constraints that the dv8 tag grammar cannot express - comparisons against the current time, invariants that span
multiple fields - go in the object's Validate method, which is called automatically after the tags are enforced.
// Validate validates invariants that span multiple fields of the object.
// It is called automatically when the object is validated, after the dv8 field tags are enforced.
func (obj *MyNoun) Validate(ctx context.Context) error {
// ...
// HINT: Validate invariants that span multiple fields here as required
if obj.MyFieldTime.After(time.Now()) {
return errors.New("MyFieldTime must not be in the future")
}
return nil
}Find the type definition of the Query in mynounapi/query.go.
To allow filtering by the new fields, add them to the type definition of the struct.
Fields can be primitive or complex types that serialize to JSON.
Be sure to include a JSON tag. Use camelCase for the JSON name, and specify to omitzero.
When referring to a parent object that is persisted by another SQL CRUD microservices, use its respective key as the field type.
Express field-level constraints as dv8 tags on the fields, matching the constraints of the object fields they
filter by (e.g. the same length limit).
type Query struct {
Key MyNounKey `json:"key,omitzero"`
// HINT: Define the fields of the object here, with dv8 tags for field-level constraints
MyFieldInteger int `json:"myFieldInteger,omitzero" dv8:"val>=0"`
MyFieldNullable string `json:"myFieldNullable,omitzero" dv8:"trim,len<=256"`
MyFieldTimeGTE time.Time `json:"myFieldTimeStart,omitzero"`
MyFieldTimeLT time.Time `json:"myFieldTimeEnd,omitzero"`
ParentKey parentapi.ParentKey `json:"parentKey,omitzero" dv8:"notzero"`
}Constraints that the dv8 tag grammar cannot express go in the Query's Validate method, which is called
automatically after the tags are enforced.
// Validate validates the filtering options of the query that cannot be expressed as dv8 field tags.
// It is called automatically when the query is validated, after the dv8 field tags are enforced.
func (q *Query) Validate(ctx context.Context) error {
// ...
// HINT: Validate filtering options that cannot be expressed as dv8 tags here as required
if q.MyFieldTimeGTE.After(time.Now()) {
return errors.New("MyFieldTimeGTE must not be in the future")
}
if q.MyFieldTimeLT.After(time.Now()) {
return errors.New("MyFieldTimeLT must not be in the future")
}
if q.MyFieldTimeGTE.After(q.MyFieldTimeLT) {
return errors.New("MyFieldTimeGTE must not be after MyFieldTimeLT")
}
return nil
}Create a new migration script file in resources/sql with an incremental file name. IMPORTANT: Do not edit an existing migration file.
Append ALTER TABLE statements to define the schema of the new columns. Define a DEFAULT value for all new columns that are NOT NULL in order to avoid the migration from failing on tables already populated with data. Columns holding IDs of parent objects should be named after the table they refer to with an _id suffix, e.g. parent_table_id.
-- DRIVER: mysql
ALTER TABLE my_noun
ADD my_field_integer BIGINT NOT NULL DEFAULT 0,
ADD my_field_nullable TEXT NULL,
ADD my_field_time DATETIME NULL,
ADD my_field_tags MEDIUMBLOB NULL,
ADD parent_table_id BIGINT NOT NULL DEFAULT 0;
-- DRIVER: pgx
ALTER TABLE my_noun
ADD COLUMN my_field_integer BIGINT NOT NULL DEFAULT 0,
ADD COLUMN my_field_nullable TEXT NULL,
ADD COLUMN my_field_time TIMESTAMP WITH TIME ZONE NULL,
ADD COLUMN my_field_tags BYTEA NULL,
ADD COLUMN parent_table_id BIGINT NOT NULL DEFAULT 0;
-- DRIVER: mssql
ALTER TABLE my_noun ADD
my_field_integer BIGINT NOT NULL DEFAULT 0,
my_field_nullable NVARCHAR(MAX) NULL,
my_field_time DATETIME2 NULL,
my_field_tags VARBINARY(MAX) NULL,
parent_table_id BIGINT NOT NULL DEFAULT 0;
-- DRIVER: sqlite
ALTER TABLE my_noun ADD COLUMN my_field_integer INTEGER NOT NULL DEFAULT 0;
-- DRIVER: sqlite
ALTER TABLE my_noun ADD COLUMN my_field_nullable TEXT;
-- DRIVER: sqlite
ALTER TABLE my_noun ADD COLUMN my_field_time DATETIME;
-- DRIVER: sqlite
ALTER TABLE my_noun ADD COLUMN my_field_tags BLOB;
-- DRIVER: sqlite
ALTER TABLE my_noun ADD COLUMN parent_table_id INTEGER NOT NULL DEFAULT 0;IMPORTANT: SQLite only supports adding one column per ALTER TABLE statement. Each column must be a separate statement prefixed with -- DRIVER: sqlite.
Append CREATE INDEX or CREATE UNIQUE INDEX statements to add indices for columns that will be heavily searchable. Always include the tenant_id as the first column in a composite index. Name the index by concatenating the name of the table, followed by idx and the columns it includes (excluding the tenant_id column). For example, my_noun_idx_my_field_integer is a composite index of (tenant_id, my_field_integer) in the my_noun table. If you are not sure what columns are worth indexing, ask the user for guidance.
-- DRIVER: mysql
CREATE INDEX my_noun_idx_my_field_integer ON my_noun (tenant_id, my_field_integer);
-- DRIVER: pgx
CREATE INDEX my_noun_idx_my_field_integer ON my_noun (tenant_id, my_field_integer);
-- DRIVER: mssql
CREATE INDEX my_noun_idx_my_field_integer ON my_noun (tenant_id, my_field_integer);
-- DRIVER: sqlite
CREATE INDEX my_noun_idx_my_field_integer ON my_noun (tenant_id, my_field_integer);Production tables on Postgres: plain CREATE INDEX takes an ACCESS EXCLUSIVE lock that blocks writes for the duration of the build - fine for small tables, painful for large hot ones. If the target pgx table has significant production write traffic, ask the user whether to use CREATE INDEX CONCURRENTLY IF NOT EXISTS instead. It builds without blocking writes (sequel runs each migration statement outside a transaction, so CONCURRENTLY is allowed), at the cost of: (a) two table scans instead of one, and (b) non-atomic failure mode - if interrupted, Postgres leaves an INVALID index that must be DROP-ed manually before the migration can be retried. Plain CREATE INDEX is the safer default for prototyping and for tables that are still small.
Update the mapping of the database column names to their corresponding object fields in service.go.
IMPORTANT : Do not remove the mappings of the example column to the Example field since they are required by various tests.
In mapColumnsOnInsert, map the column names that can be set during the initial insertion of the object.
For nullable columns, wrap the value in sequel.Nullify to store the Go zero value as NULL in the database. To use a SQL statement as value, wrap a string in sequel.UnsafeSQL.
func (svc *Service) mapColumnsOnInsert(ctx context.Context, obj *serviceapi.Obj) (columnMapping map[string]any, err error) {
tags, err := json.Marshal(obj.Tags)
if err != nil {
return errors.Trace(err)
}
columnMapping := map[string]any{
"my_field_integer": obj.MyFieldInteger,
"my_field_nullable": sequel.Nullify(obj.MyFieldNullable),
"my_field_time": sequel.UnsafeSQL(svc.db.NowUTC()),
"my_field_tags": tags,
"parent_table_id": obj.ParentKey.ID,
}
return columnMapping, nil
}In mapColumnsOnUpdate, map the columns that can be modified after the initial insertion of the object.
For nullable columns, wrap the value in sequel.Nullify to store the Go zero value as NULL in the database. To use a SQL statement as value, wrap a string in sequel.UnsafeSQL.
func (svc *Service) mapColumnsOnUpdate(ctx context.Context, obj *serviceapi.Obj) (columnMapping map[string]any, err error) {
tags, err := json.Marshal(obj.Tags)
if err != nil {
return errors.Trace(err)
}
columnMapping := map[string]any{
"my_field_integer": obj.MyFieldInteger,
"my_field_nullable": sequel.Nullify(obj.MyFieldNullable),
"my_field_time": sequel.UnsafeSQL(svc.db.NowUTC()),
"my_field_tags": tags,
"parent_table_id": obj.ParentKey.ID,
}
return columnMapping, nil
}In mapColumnsOnSelect, map the columns that can be read.
For nullable columns, wrap the reference to the variable in sequel.Nullable in order to interpret a database NULL value as the zero value of the Go data type. Use sequel.Bind to transform and apply the value manually to the object.
func (svc *Service) mapColumnsOnSelect(ctx context.Context, obj *serviceapi.Obj) (columnMapping map[string]any, err error) {
columnMapping := map[string]any{
"my_field_integer": &obj.MyFieldInteger,
"my_field_nullable": sequel.Nullable(&obj.MyFieldNullable),
"my_field_time": &obj.MyFieldTime,
"my_field_tags": sequel.Bind(func(value []byte) (err error) {
return json.Unmarshal(value, &obj.Tags)
}),
"parent_table_id": &obj.ParentKey.ID,
}
return columnMapping, nil
}Prepare appropriate query conditions in prepareWhereClauses in service.go for new Query fields. Only add a condition if the Query field is not its zero value. Add the names of any textual and searchable columns to the searchableColumns array.
func (svc *Service) prepareWhereClauses(ctx context.Context, query serviceapi.Query) (conditions []string, args []any, err error) {
if strings.TrimSpace(query.Q) != "" {
searchableColumns := []string{
"my_field_nullable",
}
// ...
}
// ...
if query.MyFieldInteger != 0 {
conditions = append(conditions,"my_field_integer=?")
args = append(args, query.MyFieldInteger)
}
query.MyFieldNullable = strings.TrimSpace(query.MyFieldNullable)
if query.MyFieldNullable != "" {
conditions = append(conditions,"my_field_nullable=?")
args = append(args, query.MyFieldNullable)
}
if !query.MyFieldTimeGTE.IsZero() {
conditions = append(conditions,"my_field_time>=?")
args = append(args, query.MyFieldTimeGTE)
}
if !query.MyFieldTimeLT.IsZero() {
conditions = append(conditions,"my_field_time<?")
args = append(args, query.MyFieldTimeLT)
}
if !query.ParentKey.IsZero() {
conditions = append(conditions,"parent_table_id=?")
args = append(args, query.ParentKey.ID)
}
return conditions, args, nil
}The NewObject function in service_test.go is used by tests to construct a new object to pass to Create. Adjust the constructor function to initialize all required fields so that they pass validation. You may introduce a measure of randomness.
Extend the integration tests to take into account the schema changes. Look for the HINTs to guide you. In particular:
TestMyNoun_ColumnMappings in service_test.goTestMyNoun_ValidateObject in mynounapi/object_test.goTestMyNoun_ValidateQuery in mynounapi/query_test.goFollow the housekeeping skill. Adding fields changes only the hand-written domain code (object.go, query.go, service.go, resources/sql), not definition.go, so the boilerplate regeneration is a no-op; the Version bump and go vet still apply.
© microbus-io, 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 .claude/skills/sequel/add-sql-fields of microbus-io/fabric.
Open the folder on GitHubat commit fb98098
Add SQL Fields 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 |
|---|---|---|---|---|---|---|
| Add SQL Fields this skillmicrobus-io/fabric | 172 | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Google BigqueryLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Debug Using Debugbarhexlet-volunteers/hexlet-sicp | 114 | 1 repos | ~1.5k | Automated safety check: Pass | AGPL-3.0 | |
| Databricksrocky-data/rocky | 304 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Datajunction QueryDataJunction/dj | 161 | — | ~2k | Automated safety check: Pass | MIT | |
| Aurora Dsqlaws/agent-toolkit-for-aws | 2.8k | — | ~9.6k | Automated safety check: Pass | Apache-2.0 |
LeoYeAI/openclaw-master-skills
Google BigQuery API integration with managed OAuth. An agent skill from LeoYeAI/openclaw-master-skills.
hexlet-volunteers/hexlet-sicp
Inspect what a Laravel request actually did — queries, exceptions, timing, cache, auth, views — by reading the profiling data Laravel Debugbar already captured, via Artisan commands.
rocky-data/rocky
Databricks REST API and SQL reference for Rocky's warehouse adapter.
DataJunction/dj
Activate this skill for querying DataJunction (DJ) — finding nodes, generating SQL, fetching metric data, exploring lineage, visualizing results — via the DJ UI, MCP tools, or REST/GraphQL APIs.
aws/agent-toolkit-for-aws
Provisions and manages Aurora DSQL clusters, connects via psql or DSQL Connectors, manages schemas, runs queries, migrates from MySQL, diagnoses query plans, and develops apps on serverless…
mvanhorn/printing-press-library
Read-only Jobber CLI for offline analysis — every GraphQL surface synced to SQLite, every relationship queryable.
microbus-io/fabric
TRIGGER when user asks to add or modify a configuration property or setting, or to make a value configurable.
microbus-io/fabric
TRIGGER when user asks to add, create, or modify an API endpoint, function, or RPC, or a route that accepts typed arguments and returns typed results.
microbus-io/fabric
TRIGGER when user asks to listen for, subscribe to, or handle an event emitted by another microservice.
microbus-io/fabric
TRIGGER when user asks to add or modify a metric, counter, gauge, or histogram, or to track/measure an operation.
microbus-io/fabric
TRIGGER when user asks to fire, emit, or publish an event that other microservices can subscribe to.
microbus-io/fabric
TRIGGER when user asks to add a Python-backed function endpoint to an existing Python-backed microservice.
Works with
Categories
TRIGGER when user asks to add fields, properties, or columns to a SQL CRUD microservice's object. Add SQL Fields is an agent skill from microbus-io/fabric. TRIGGER when user asks to add fields, properties, or columns to a SQL CRUD microservice's object.
Add SQL Fields fits situations like: user asks to add fields; columns to a SQL CRUD microservices object.
Run `npx skills add microbus-io/fabric --skill add-sql-fields -a claude-code`. Or copy the skill folder (.claude/skills/sequel/add-sql-fields in microbus-io/fabric) into .claude/skills/add-sql-fields in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microbus-io/fabric --skill add-sql-fields -a codex`. Or copy the skill folder (.claude/skills/sequel/add-sql-fields in microbus-io/fabric) into .agents/skills/add-sql-fields 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 microbus-io/fabric --skill add-sql-fields -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-sql-fields, .gemini/skills/add-sql-fields, .github/skills/add-sql-fields and .opencode/skills/add-sql-fields in your project.
Going by SKILL.md and its folder, Add SQL Fields needs the command-line tools its instructions call (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.
Add SQL Fields 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 3.5k tokens (SKILL.md is roughly 14k 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 Add SQL Fields: Google Bigquery (LeoYeAI/openclaw-master-skills, 2.2k stars), Debug Using Debugbar (hexlet-volunteers/hexlet-sicp, 114 stars), Databricks (rocky-data/rocky, 304 stars) and Datajunction Query (DataJunction/dj, 161 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microbus-io (a GitHub organization) maintains it in microbus-io/fabric, which has 172 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on September 28, 2026.
Source: microbus-io/fabric on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.