plugins/agent-agentic-os/skills/os-environment-probe/SKILL.md
Discovers and persists the user's available AI environments (Claude, Copilot CLI, Gemini CLI, Cursor, etc.) to context/memory/environment.md. Run once after OS setup or whenever the environment changes. os-architect and os-evolution-planner read this file to select the right delegation backend and cheapest brainstorm model automatically. Invoked by os-architect on first run if environment.md is absent.
npx skillsauth add richfrem/agent-plugins-skills os-environment-probeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
os-environment-probe asks the user which AI environments they have access to, then
verifies each claimed environment by running a lightweight probe command. Results are
written to context/memory/environment.md — a single source of truth that downstream
skills read to make delegation decisions without asking the user again.
Ask the user these questions (one prompt, multiple-choice, keep it brief):
Which of these AI tools do you currently have active on this machine? (Select all that apply)
A. Claude Code only B. Claude Code + GitHub Copilot CLI (Pro or Business plan) C. Claude Code + Gemini CLI (Google One AI or Workspace) D. Cursor (Claude or GPT backend) E. Other (describe)
Wait for their answer before probing.
For each claimed environment, verify it is actually callable:
| Environment | Probe command | Pass condition |
|-------------|---------------|----------------|
| Copilot CLI | gh copilot explain "test" 2>&1 \| head -3 | No "not authenticated" or "command not found" |
| Gemini CLI | gemini --version 2>&1 \| head -1 | Outputs a version string |
| Cursor | cursor --version 2>&1 \| head -1 | Outputs a version string |
| Claude Code | always present | — |
Report each probe result to the user:
Only write environments that pass to the profile.
Write context/memory/environment.md:
# AI Environment Profile
_Last updated: YYYY-MM-DD_
## Available Environments
| Environment | Status | Free model | Premium model |
|-------------|--------|-----------|---------------|
| Claude Code | active | claude-haiku-4-5-20251001 | claude-sonnet-4-6 |
| Copilot CLI | active | gpt-4o-mini (free tier) | claude-sonnet-4.6 (via --model) |
| Gemini CLI | active | gemini-flash-2.0 (free) | gemini-pro (paid) |
## Delegation Strategy
**Cheapest brainstorm model**: <first available in priority order below>
1. Copilot CLI free tier (gpt-4o-mini) — zero token cost
2. Gemini CLI free tier (gemini-flash-2.0) — zero token cost
3. Claude Haiku subagent — low cost, in-session
**Primary dispatch model**: claude-sonnet-4-6 (via Copilot CLI if available, else Claude subagent)
## Capability Matrix
| Task | Best tool | Fallback |
|------|-----------|---------|
| Brainstorm options (cheap) | <cheapest model> | claude-haiku-4-5-20251001 |
| Single-file delegation | Copilot CLI | Claude subagent |
| Multi-workstream delegation | Copilot CLI claude-sonnet-4-6 | Claude subagent (sonnet) |
| Overnight unattended loop | os-improvement-loop | — |
os-evolution-planner reads environment.md at the start of every run:
gh copilot (zero cost)gemini --model flashos-architect reads environment.md to choose the dispatch backend for Path B/C executions.
If environment.md is missing, both skills default to Claude-only mode and offer to run
os-environment-probe before proceeding.
If the user adds a new environment later, they can run this skill again. It overwrites
context/memory/environment.md with fresh probe results.
context/memory/environment.md exists and contains a
populated ## Delegation Strategy section with at least one "Cheapest brainstorm model" line.--version, explain "test", or
similar read-only flags — never trigger billing or start sessions.gh extension install github/gh-copilot. Confirm CLI specifically, not just Copilot.This skill now includes two convenience support files to make repro and re-probing easier. Inspect or run them from the skill directory (the agent may invoke them when safe):
scripts/probe_environments.sh — a small, non-interactive shell probe that runs the same read-only commands listed above (gemini --version, cursor --version, gh copilot explain "test") and prints a short summary. It is safe (non-billing) and tolerant of missing commands.
references/gemini-detection-example.md — a short session-specific note showing an observed gemini probe result (example output captured during an interactive session). Use this as an example snippet when building or testing environment.md content.
Write any additional probe outputs to the references/ directory so downstream skills (os-architect, os-evolution-planner) can read concrete examples when deciding delegation.
tools
Ingests repository files into the ChromaDB vector store. Builds or updates the vector index from a manifest or directory scan using ingest.py. Use when new files need to be indexed or the vector store is out of date. <example> user: "Index these new plugin files into the vector database" assistant: "I'll use vector-db-ingest to add them to the vector store." </example> <example> user: "The vector store is missing recent files -- update it" assistant: "I'll use vector-db-ingest to re-index the changes." </example>
data-ai
Removes stale and orphaned chunks from the ChromaDB vector store for files that have been deleted or renamed. Use after files are removed or moved to keep the vector index in sync with the filesystem. <example> user: "Clean up the vector store after I deleted some files" assistant: "I'll use vector-db-cleanup to remove orphaned chunks." </example> <example> user: "The vector database has chunks for files that no longer exist" assistant: "I'll run vector-db-cleanup to prune them." </example>
testing
Audit Vector DB coverage -- compares the live filesystem manifest against the ChromaDB index to identify coverage gaps.
development
3-Phase Knowledge Search strategy for the RLM Factory ecosystem. Auto-invoked when tasks involve finding code, documentation, or architecture context in the repository. Enforces the optimal search order: RLM Summary Scan (O(1)) -> Vector DB Semantic Search -> Grep/Exact Match. Never skip phases.