use_wsp_cli
Skill0 starsChanged 6 months agoMITView on GitHub
USE this skill any time you are about to perform a workspace-level operation on a Ganemo AWaC workspace — creating one, refreshing it, inspecting drift, or seeding/refreshing a product's `agent-stack`. The `wsp` CLI (`getGanemo/workspace-cli`) is the canonical entry point for these operations and replaces hand-edited `.agents/`, hand-cloned product repos, and hand-curated CLAUDE.md/AGENTS.md headers. Activate when: (a) the user wants to start a new workspace, (b) `awac.yml` of a stack changed and you need to pull it, (c) the user asks "is my workspace clean / what changed", (d) you detect drift in `.agents/`, (e) the user wants to introspect a GitHub org and generate or refresh `<org>/agent-stack`, (f) the user wants to verify that the governance doc and `awac.yml#org_scaffold` are still in sync. Do NOT activate for ordinary code edits inside a workspace — those don't need wsp.
- Deletes or force-pushes
In this repository7 other files it gives its agents.
- create_agent_ruleSkill
- create_deploy_specSkill
- create_repo_readmeSkill
- create_skillSkill
- discover_awac_in_fresh_workspaceSkill
- manage_project_stateSkill
- verify_codeSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 61
Is there a
workspace.ymlat the cwd?: If no → either we're outside a workspace, or the user wants to create one (use wsp init). - Very specific: line 62
Is there a
workspace.lock.yml?: If no but workspace.yml exists → run wsp bootstrap first. - Very specific: line 97
All commands accept --json.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Use the wsp CLI
wsp is the AWaC CLI. It lives at getGanemo/workspace-cli and is installed via pipx install -e <path> (Python ≥ 3.10). Every Ganemo agent workspace was either created by wsp or is meant to be managed by it. Treat it as the only correct way to mutate workspace shape (stacks, product repos, .agents/, CLAUDE.md / AGENTS.md, lockfile).
When to use this skill
| User intent | Command |
"Onboardear un producto Ganemo nuevo" / "vamos a empezar <producto>" | invocar workflow onboard_new_product — 9 pasos: scaffold-stack auto-register → Cat A repos → project_management init → devvault catalog → audit entry en docs-company → primer workspace local. |
| "Creá / setea / iniciá un workspace AWaC" (sin template específico) | invocar workflow init_workspace — conduce el diálogo de elegir template + nombre + bootstrap. |
| "Start a new workspace for an Acme feature." (template ya conocido) | wsp init <name> --template acme-feature && wsp bootstrap |
"¿está bien armado este producto?" / "audit de <producto>" | wsp audit <producto> — read-only check de Cat A + agent-stack assets + registry. |
"I just edited a rule in agent-stack-core, refresh my open workspace." | wsp sync |
| "Are my product repos clean? Is anything drifted?" | wsp status |
"Add delta as a stack shortcut." | edit getGanemo/agent-stack-core/awac.yml (then anyone running wsp sync picks it up) |
| "Create the agent-stack for a new product (lazy org)." | wsp scaffold-stack <org> |
"Refresh <org>/agent-stack's awac.yml#repos from GitHub." | wsp scaffold-stack <org> --update (opens a PR) |
"Did anything diverge between awac.yml#org_scaffold and the governance doc?" | wsp governance check |
| "What's wrong with my environment? Why does bootstrap fail?" | wsp doctor |
"Show me the JSON Schema of workspace.yml / awac.yml / workspace.lock.yml." | wsp schema {workspace,awac,lock} |
"Give me a machine-readable catalog of wsp commands." | wsp --agent-manifest |
"Estoy en un dir sin .agents/ ni workspace.yml — ¿por dónde empiezo?" | wsp guide <topic> (e.g. wsp guide discover, wsp guide init) — imprime el path al doc embebido para <topic>. Es el escape-hatch cuando todavía no hay .agents/ cargado. |
| "Creá un workspace pero quiero que me vaya guiando paso a paso." | wsp init --interactive — diálogo interactivo para elegir template + nombre + path. Equivalente al workflow init_workspace cuando el agente prefiere delegar el prompting al CLI. |
"Mi deploy.yml está en deploy/1. Llevame a deploy/2." | wsp migrate-deploy <product> — migra el deploy.yml del producto en el cache de deploy/1 → deploy/2 y prepara un PR contra el stack repo (no edita el cache de forma persistente; el cache se refresca con wsp sync). Revisar el diff y mergear el PR a mano. |
| "Plan de deploy con mis overrides" / "raw stack defaults" | wsp deploy <product> --plan (con overrides — default) o wsp deploy <product> --plan --no-overrides (raw stack defaults, ignora workspace.yml#deploy_overrides). |
| "Verificar secrets con/sin overrides" | wsp secrets check <product> (con devvault_overrides aplicados — default) o wsp secrets check <product> --no-overrides (sólo catálogo). |
Always prefer the CLI over manually editing:
.agents/{rules,skills,workflows}/content (wsp syncregenerates it).workspace.yml(re-runwsp initagainst a fresh template if the scaffold drifted, or edit outside the auto-generated regions).workspace.lock.yml(auto-managed bywsp bootstrap/wsp sync).- The header of
CLAUDE.md/AGENTS.md(auto-regenerated; only edit between<!-- @awac:editable-start -->and<!-- @awac:editable-end -->). <org>/agent-stack/awac.yml#repos(usewsp scaffold-stack <org> --update).
When to skip this skill
- Pure code edits inside a product repo cloned in the workspace — that's normal git work, not workspace-level.
- Reading workspace files for context — no
wspinvolved. - Running tests, linters, deploys, or anything that's not workspace shape mutation.
- One-off questions about how AWaC works conceptually — read the spec instead of running commands.
Decision flow when starting a task
- Is there a
workspace.ymlat the cwd? If no → either we're outside a workspace, or the user wants to create one (usewsp init). - Is there a
workspace.lock.yml? If no butworkspace.ymlexists → runwsp bootstrapfirst. Anything that needs the cache or the resolved stacks will fail otherwise. - Is the user asking about state?
wsp statusfirst, before assuming anything is in sync. - Is the user asking to refresh stacks (rules / skills / workflows updated upstream)?
wsp sync. It does NOT touch product repos. - Is the user asking to refresh the lockfile (e.g., they want the latest commit of every product repo too)?
wsp bootstrap(idempotent — safe to re-run). - Is the user touching
awac.yml#org_scaffoldorgovernance/product-structure.md? Runwsp governance checkbefore pushing — same-PR rule means both must move together.
Idiomatic invocations
# New workspace from a template
wsp init my-acme-feature --template acme-feature
cd my-acme-feature
wsp bootstrap
# Daily refresh (after pulling stack updates upstream)
wsp sync
# Read-only inspection
wsp status
wsp status --json | jq '.summary'
# Seed a product's agent-stack from scratch (creates the repo on GitHub)
wsp scaffold-stack <org>
# Refresh an existing agent-stack via PR (no direct main push)
wsp scaffold-stack <org> --update
# Dry-run scaffold (no push, just print the seed dir)
wsp scaffold-stack <org> --no-push
# Sanity-check: env + governance mirror
wsp doctor
wsp governance checkAll commands accept --json. Errors carry a stable code/category/cause/remediation shape — wsp --agent-manifest documents the catalog for agent consumption.
Configuration
WSP_REGISTRY_REPO— defaults togetGanemo/agent-stack-core.WSP_REGISTRY_BRANCH— defaults tomain.WSP_CACHE_DIR— defaults to~/.wsp/cache. Stacks and registry get cached here. Read-only from the user's perspective —wspdoesgit reset --hard origin/<ref>on every refresh, so DO NOT edit cached stacks by hand. Edit the upstream stack repo and runwsp sync.
Anti-patterns
- Hand-editing
.agents/and committing the change to the workspace. That edit gets blown away by the nextwsp syncorwsp bootstrap. If the change should propagate to other workspaces, edit the corresponding stack repo (getGanemo/agent-stack-corefor universal,getGanemo/agent-stack-<topic>for transversal-by-topic,<product>/agent-stackfor product-specific). If the change should ONLY apply here, write it inside the<!-- @awac:editable-start -->block of CLAUDE.md. - Cloning product repos into the workspace by hand.
wsp bootstrapdoes it. The lockfile records the exact commits. - Using
git pullon product repos in the workspace to "update". Usewsp bootstrap— it pulls FF-only and doesn't pisa local changes. - Running
wsp scaffold-stackagainst a product org WITHOUT--updateif<org>/agent-stackalready has content. It refuses (by design). Use--updateto open a PR. - Skipping
wsp governance checkwhen changing either side of the mirror. The check is now inwsp doctortoo — you'll catch it accidentally even if you forget. - Believing
wsp syncis a substitute forwsp bootstrap. sync does NOT clone product repos. If a workspace has never been bootstrapped (no lockfile), bootstrap first. - Editing
workspace.lock.ymlby hand. It's auto-generated. Editworkspace.ymland re-runwsp bootstrap. - Inferring the workspace template from the folder name. The folder name is coincidence; templates have semantic impact (they clone real product repos, embed product flows, gate deploys). A folder called
acme-billing/does NOT imply the user wants theacme-featuretemplate — they may wantodoo-moduleinstead. Always ASK the user (see theinit_workspaceworkflow Step 2 and thediscover_awac_in_fresh_workspaceskill Step 4). - Editing
.stack/<product>/{deploy,devvault}.ymlto silence an error. Those files are read-only mirrors materialized bywsp bootstrapfrom the canonical in the stack repo. Your edit is gone on the nextwsp sync. Edit the canonical, or useworkspace.yml#deploy_overrides/workspace.yml#devvault_overrides.
Cross-references
- Source / install:
getGanemo/workspace-cli - Spec: https://gist.github.com/GanemoCorp/fdc1042067615003e8aa4a8406198a61
- Registry of stack shortcuts + templates +
org_scaffold:getGanemo/agent-stack-core/awac.yml - Governance (canonical, atemporal):
getGanemo/docs-company/governance/product-structure.md - Live audit per product:
getGanemo/docs-company/governance/product-structure.audit.md
Discoverability for agents
wsp --agent-manifest returns a JSON catalog of every command, its required args, options, and the JSON keys each emits. Agents that don't already know the CLI can self-discover from that.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

