- name
- env-abstraction
- description
- Handles abstraction of environment-specific commands between Jetski and Gemini-CLI. Use when switching execution context between local terminal environments. Do not use for debugging logic issues.
# Environment Abstraction Skill
This skill provides a layer of abstraction over environment-specific tools and
commands, allowing skills to be reused across different platforms like `jetski`
and `gemini-cli`.
## Core Principles
1. **Decoupling**: Keep tool calls independent from platform specific
implementations inside general workflow skills.
2. **Detection**: Determine the environment at startup (e.g., via environment
variables or tool availability).
3. **Mapping**: Map abstract actions to concrete commands or tool calls based on
the environment.
## Environment Definitions
### Jetski Environment
- **Characteristics**: Rich set of specialized tools (e.g., `code_search`,
`moma_search`, `gdb-mcp`, `v8-utils`).
- **Usage**: Prefer specialized tools over generic shell commands to maximize
efficiency and respect workspace constraints (e.g., avoid heavy searches in
large workspaces).
### Gemini-CLI Environment
- **Characteristics**: May rely more on standard shell commands or a different
set of MCP servers.
- **Usage**: Fall back to standard tools like `grep`, `find`, or standard `gdb`
via `run_command` if specialized Jetski tools are unavailable.
## Abstract Action Mapping
When performing common actions, refer to this mapping to choose the correct
tool:
| Abstract Action | Jetski Implementation | Gemini-CLI Implementation (Fallback)
| | :--- | :--- | :--- | | **Code Search** | `code_search` | `grep_search` (if
outside Google3) or standard `grep` | | **File Search** | `find_by_name` (if
safe) | Standard `find` or `fd` | | **Debugging** | `gdb-mcp` | Standard `gdb`
via `run_command` | | **Building** | `tools/dev/gm.py` (use
`use_remoteexec=true`) | `tools/dev/gm.py` | | **Testing** |
`tools/run-tests.py` | `tools/run-tests.py` | | **Starting Agents** |
`invoke_subagent` (tool) | `agentapi new-conversation` (CLI) |
## Implementation Guidelines
- When writing or updating skills, refer to actions by their abstract names.
- Check for the existence of specialized tools before falling back to generic
commands.
- Document any environment-specific assumptions in the skill file.
GitHubで見る