SkillBound Skills is a collection of reusable skills for SkillBound Agent. Each skill defines an agent capability and its execution boundary through skill-owned instructions, commands, scripts, references, and safety rules.
A skill sits between an agent's reasoning loop and the external systems it can operate. It turns domain SOPs and executable tools into a controlled capability package: the agent can do more than generic chat, but it must act inside the boundary declared by the skill.
The repository starts with Apache Flink operations and is structured to add more domains later. Data is one domain category, not the repository boundary.
Skills define capabilities and boundaries.
SkillBound Agent enforces them.
Memory is the agent's context asset, tools are executable devices, and skills are the operating process that tells the agent when and how to use those devices.
Each skill should provide two things at the same time:
- Extension: add domain capabilities the base agent does not have, such as Flink diagnostics, deployment workflows, SQL review, or data analysis routines.
- Constraint: narrow the agent's behavior with declared commands, parameter validation, confirmation gates, target boundaries, and verification rules.
This is different from letting an agent directly call arbitrary APIs or shell commands. Direct tool access can execute work, but it does not provide enough operating boundary for production systems. A skill packages the safe path.
A production skill should be designed as a controlled execution layer:
User request
-> Agent reasoning
-> Skill trigger and instructions
-> Declared command/script + validated parameters
-> External system
-> Read-back verification
-> Agent response
The important boundary is between agent reasoning and execution. The agent may choose and explain, but execution should go through skill-owned commands or scripts described in SKILL.md.
Recommended safety model:
| Mechanism | Purpose |
|---|---|
| Confirm gate | Require explicit user confirmation before mutation commands. |
| Target lock | Keep operations scoped to the selected resource, cluster, workspace, namespace, or dataset. |
| Read-back verification | Treat command/API success as provisional and verify the actual resulting state before claiming success. |
| Declared tool surface | Allow only commands/scripts declared by the skill, with explicit parameter validation. |
| Progressive references | Keep SKILL.md concise and load detailed playbooks only when needed. |
skills/
flink-ops/ # Apache Flink operations, diagnostics, and deployment workflows
sql-development/ # Reserved for SQL authoring, review, optimization, and execution skills
data-analysis/ # Reserved for data analysis and insight-generation skills
The layout is intentionally flat: each directory under skills/ is one uploadable skill package. Use directory names and documentation tables to describe domains instead of adding deep category folders.
| Skill | Status | Purpose |
|---|---|---|
flink-ops |
Initial | Inspect, diagnose, start, stop, and operate Apache Flink jobs through a bundled CLI and declared command surface. |
sql-development |
Reserved | Future skill for SQL development, validation, optimization, and execution workflows. |
data-analysis |
Initial | Data AI-style requirement clarification, business data exploration, read-only SQL analysis, uploaded table analysis, and result interpretation workflows. |
skillbound-agent: the runtime that loads selected skills and enforces skill-defined execution.skillbound-skills: this repository, containing reusable skills that define agent capabilities and safety boundaries.
Each skill directory should be self-contained:
skill-name/
SKILL.md # Agent-facing operating instructions
references/ # Longer playbooks and reference material
scripts/ # Optional deterministic tools owned by the skill
assets/ # Optional dependency manifests, templates, static resources
Only SKILL.md is required. Put name, description, and optional envs in SKILL.md frontmatter. Keep command usage, safety rules, and operating procedures in the Markdown body. Production skills should prefer command-specific validation and references over long inline instructions. Do not commit credentials, generated build output, machine-specific paths, or local environment files.
Production skills should follow the method used by high-boundary operations skills such as alibabacloud-flink-workspace-ops: the skill must make it hard for the host agent to improvise outside the declared execution path.
SKILL.md should contain these sections when the skill operates external systems or executes commands:
- Mandatory execution rule: name the only allowed script/CLI entry and explicitly forbid substitute CLIs, ad hoc scripts, notebooks, shell one-offs, mocked output, or pure explanation when execution is required.
- Scope & Boundaries: state what is in scope and what is out of scope. Include exact boundary responses for common out-of-scope requests so the host agent does not silently switch domains.
- Trigger Conditions: list operation keywords and resource ID patterns that should trigger the skill. Also list hard non-trigger cues.
- Execution Protocol: define execute-first behavior, parameter strategy, approval gates, credential safety, read-back verification, failure flow, and completion criteria.
- Command Quick Reference: map high-frequency user intents to exact subcommands and operation type (
Read,Mutation,Destructive). - Resources: split references into "Load After Trigger" and "Load On Demand" so
SKILL.mdstays concise and agents know what to read next. - Assets: list the main CLI/script entry and dependency manifest.
Required reference files for command-oriented production skills:
references/
command-map.md # Intent-to-command routing, disambiguation, first-call rules
agent-operating-protocol.md # Execution entry, parameter strategy, safety gates, completion criteria
command-catalog.md # Full command syntax, payload examples, environment/config notes
error-handling.md # Error-code recovery matrix and retry/stop rules
Use additional references only when needed:
references/
resource-disclosure.md # What may be disclosed vs hidden
verification-method.md # Read-back verification for mutations
playbooks/*.md # Multi-step workflows
*-product-model.md # Domain model and entity relationships
cli-installation-guide.md # Runtime/dependency setup
For Python-based skills, put dependencies in assets/requirements.txt when they are packaged resources, or in requirement.txt only when this repository's local workflow already expects that file. Do not commit venv/; keep it ignored and rebuild it from the dependency manifest.
Every executable skill must declare a single approved execution surface:
- Prefer one main CLI under
scripts/, for examplepython scripts/<skill>_ops.py <command> [args]. - All real external-system interaction must go through that CLI or explicitly declared scripts.
- The host agent may reason, choose commands, and summarize results, but it must not bypass the skill CLI with direct SDK calls, database clients, cloud CLIs, notebooks, or generated helper scripts.
- If the CLI lacks a capability, the agent must report the missing capability instead of switching tools.
- For command-specific required parameters, validate at the command boundary and return stable error codes. Do not apply unrelated parameter checks to other commands.
- For Python scripts, never assume the caller's current working directory. Resolve resources from
SKILL_DIRor from the script path, and resolve relative configured paths against the skill directory.
Classify every command as one of:
| Type | Rule |
|---|---|
| Read | Execute directly after required parameters are available. |
| Mutation | Require clear user intent or explicit confirmation; use the skill's canonical confirmation flag when applicable. |
| Destructive | Require explicit destructive intent, confirmation, impact warning, and read-back verification. |
Mutation/destructive skills must implement read-back verification before claiming success. If read-back cannot be performed, the final response must say that verification is incomplete.
SKILL.md starts with YAML frontmatter:
---
name: flink-intelligent-ops
description: Use when the user asks to start, stop, operate, inspect, or diagnose Apache Flink jobs, including deployment-target-specific starts and Flink REST status, exception, and checkpoint checks.
license: Apache-2.0
compatibility: Requires Java 8+. Provider operations may require provider runtime libraries on the classpath and credentials usable by the bundled CLI.
envs:
- env: JAVA_HOME
description: Java runtime used to execute the bundled FlinkOps CLI.
---name: required stable skill identifier. Use lowercase letters, digits, and hyphens.description: required trigger description used by compatible agents to decide when the skill applies.license: optional human-facing license label.compatibility: optional runtime and dependency notes for users and administrators.envs: optional required runtime environment variable declarations. Compatible runtimes can show these in Admin configuration, store configured values, validate them before execution, and inject them into the subprocess environment.
Skills that need runtime environment variables must declare them in SKILL.md frontmatter under envs:
---
name: flink-ops
description: Use when ...
envs:
- env: JAVA_HOME
description: Java runtime used to execute bundled CLI commands.
---The env field is the required variable name. The description field is optional and is shown by compatible runtimes when administrators configure the skill. Do not put real values, DSNs, passwords, tokens, .env files, or machine-local credentials in this repository.
In SkillBound Agent, every frontmatter envs item is treated as required for command execution. The loading flow is:
- The runtime parses
SKILL.mdfrontmatterenvswhen the skill zip is uploaded. - The runtime stores the env declarations and shows them in the Admin page.
- An administrator configures plaintext values after upload.
- When a selected skill executes a command, the runtime reloads the selected skill manifest, verifies every declared env has a non-empty configured value, and injects those values into that one subprocess call.
- If a value is missing, command execution stops with
Skill env is not configured: <ENV_NAME>. - Command audit records store the injected values in
tool_calls.env_jsonas plaintext.
SKILL.md frontmatter is the source of truth for env declarations. The Markdown body should explain how the agent should reason about runtime prerequisites.
- Review the target skill directory under
skills/. - Build any required runtime assets described by the skill; for example,
flink-opsuses Maven underscripts/. - Zip exactly one top-level skill directory.
- Upload the zip to SkillBound Agent or another compatible skill runtime.
- Grant permissions and select the skill in a chat session.
Example packaging command:
cd skills
zip -r flink-ops.zip flink-ops -x '*/target/*' '*/.DS_Store'- Create a new directory directly under
skills/. - Add
SKILL.mdwith clear trigger conditions, operating rules, input collection rules, safety gates, and result interpretation guidance. - Add
name,description, and optionalenvstoSKILL.mdfrontmatter; describe command usage in the Markdown body. - Put detailed playbooks or compatibility notes under
references/. - Keep executable assets under
scripts/, and keep generated outputs ignored.
Before publishing a skill, check that it answers these questions:
- What new capability does this skill add to the agent?
- Which commands or scripts are the only approved execution path?
- Which operations are read-only and which require confirmation?
- How is the target resource locked so the agent cannot drift to another resource?
- How does the skill verify actual state after a mutation?
- What should the agent do when the bundled command cannot complete the task?
Use Conventional Commits for all changes. See docs/git-convention.md.
Apache License 2.0.