gsd-omp
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- spawnSync — Synchronous process spawning in bin/gsd-omp.cjs
- fs.rmSync — Destructive file system operation in bin/gsd-omp.cjs
- os.homedir — User home directory access in bin/gsd-omp.cjs
- process.env — Environment variable access in bin/gsd-omp.cjs
- fs module — File system access in bin/gsd-omp.cjs
- network request — Outbound network request in bin/gsd-omp.cjs
- fs module — File system access in scripts/bump-version.cjs
- exec() — Shell command execution in scripts/host-smoke.cjs
- spawnSync — Synchronous process spawning in scripts/host-smoke.cjs
- fs.rmSync — Destructive file system operation in scripts/host-smoke.cjs
- process.env — Environment variable access in scripts/host-smoke.cjs
- fs module — File system access in scripts/host-smoke.cjs
- spawnSync — Synchronous process spawning in src/gsd-graphify-worker.cjs
- fs.rmSync — Destructive file system operation in src/gsd-graphify-worker.cjs
- fs module — File system access in src/gsd-graphify-worker.cjs
- process.env — Environment variable access in src/locale.cjs
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Oh My Pi host plugin for the GSD Embeddable Orchestration System — extension bindings, slash-command surface, and Host-Integration SDK adapter for AI coding agents
GSD for Oh My Pi
English · 简体中文
gsd-omp is an independently maintained Oh My Pi host plugin for the GSD Embeddable Orchestration System. It binds OMP's native extension, command, event, task, and filesystem surfaces to GSD through protocol version 1 of the public Host-Integration SDK.
This project is third-party software. It is not endorsed, reviewed, or maintained by OpenGSD.
Requirements
- Node.js 22 or newer
- Oh My Pi with native ExtensionAPI support
- GSD Core 1.8.0 or newer; installed automatically as this package's dependency
Install
Install the released plugin globally, then project its managed extension, agents, and skills into OMP:
npm install --global https://github.com/tchivs/gsd-omp/archive/refs/tags/v1.0.11.tar.gz
gsd-omp install
PI_CODING_AGENT_DIR is honored. Without it, files are installed under ~/.omp/agent.
Agents directory
The in-session extension exports GSD_AGENTS_DIR (defaulting to <runtimeRoot>/agents, i.e. ~/.omp/agent/agents) and passes it to every gsd-tools invocation together with GSD_RUNTIME=omp.
This is the sanctioned mechanism, not a shim: GSD_AGENTS_DIR is the highest-priority override in gsd-core's getAgentsDir contract — it is consulted before any runtime lookup, for any runtime. OMP's config root is not a registered gsd-core runtime (the registry ships pi, not omp), so without this variable the init.progress / init.new-project agent check would fall back to ~/.claude/agents and report every GSD agent as missing.
The variable is only set when the environment does not already define it. If you manage the agents projection yourself, set GSD_AGENTS_DIR before starting OMP and the plugin uses your location as-is. (PI_CODING_AGENT_DIR controls where the installer writes files; GSD_AGENTS_DIR controls where gsd-core looks for them.)
Restart OMP after installation, then use:
/gsd-next
/gsd-progress
/gsd-plan-phase 1
/gsd <gsd-tools family> <subcommand> [args]
The plugin also registers the gsd_invoke tool for structured access to the public gsd-tools CLI.
Commands
The plugin registers 38 slash commands and the gsd_invoke tool. Commands are grouped by project lifecycle; descriptions are taken verbatim from the registered command metadata.
Entry & status
| Command | Description |
|---|---|
/gsd-next |
Show or prepare the next localized GSD action |
/gsd-progress |
Show GSD progress or advance through its gated next-step workflow |
/gsd-status |
Show a localized GSD project summary |
/gsd <family> <subcommand> [args] |
Invoke the public gsd-tools CLI directly |
Project lifecycle
| Command | Description |
|---|---|
/gsd-new-project |
Initialize a GSD project with native OMP questions |
/gsd-new-milestone |
Start a GSD milestone with native OMP questions |
/gsd-resume-work |
Restore a GSD project through native OMP controls |
/gsd-pause-work |
Create context handoff when pausing work mid-phase |
/gsd-complete-milestone |
Archive completed milestone and prepare for next version |
Phase planning
| Command | Description |
|---|---|
/gsd-spec-phase <n> |
Clarify WHAT a phase delivers; produces SPEC.md |
/gsd-discuss-phase <n> |
Gather phase context through adaptive questioning |
/gsd-plan-phase <n> |
Create PLAN.md with verification loop |
/gsd-mvp-phase <n> |
Plan a phase as a vertical MVP slice |
/gsd-ai-integration-phase <n> |
Generate AI-SPEC.md design contract for AI phases |
/gsd-ui-phase <n> |
Generate UI-SPEC.md design contract for frontend phases |
Execution & verification
| Command | Description |
|---|---|
/gsd-execute-phase <n> |
Execute a phase through OMP native task waves |
/gsd-verify-work <n> |
Verify a completed phase through conversational UAT |
/gsd-code-review <n> |
Review a phase through native OMP task dispatch |
/gsd-add-tests <n> |
Generate phase tests through native OMP approvals |
/gsd-validate-phase <n> |
Audit Nyquist validation coverage for a phase |
/gsd-secure-phase <n> |
Verify phase threat mitigations |
Quality audits
| Command | Description |
|---|---|
/gsd-ui-review |
Retroactive 6-pillar visual audit of frontend code |
/gsd-eval-review |
Audit an executed AI phase's evaluation coverage |
/gsd-audit-uat |
Cross-phase audit of outstanding UAT and verification items |
/gsd-audit-milestone |
Audit milestone completion against original intent |
/gsd-debug |
Run GSD debugging through native OMP questions and tasks |
/gsd-audit-fix |
Autonomous audit-to-fix pipeline — find, classify, fix, test, commit |
Ship & git
| Command | Description |
|---|---|
/gsd-ship <n> |
Ship verified work; create PR and prepare for merge |
/gsd-update |
Update GSD through native preflight and approval gates |
/gsd-undo |
Revert GSD commits through native dependency and approval gates |
/gsd-pr-branch |
Build a filtered PR branch through native preview and approval gates |
Fast paths & admin
| Command | Description |
|---|---|
/gsd-quick |
Run a quick task with GSD guarantees (atomic commits, state tracking) |
/gsd-fast |
Run a trivial task inline — no subagents, no planning overhead |
/gsd-import |
Ingest external plans with conflict detection |
/gsd-autonomous |
Run all remaining phases autonomously — discuss→plan→execute |
/gsd-phase |
CRUD for phases in ROADMAP.md — add, insert, remove, edit |
/gsd-settings |
Configure workflow toggles and model profile |
/gsd-workspace |
Manage isolated workspace environments |
/gsd-workstreams |
Manage parallel workstreams |
For the full gsd-tools CLI surface behind /gsd, run /gsd <family> help or call the gsd_invoke tool with subcommand: "help".
Verify
gsd-omp doctor
A healthy install reports "ok": true, EoS profile programmatic-cli, and protocol version 1.
To inspect the exact EoS declaration:
gsd-omp descriptor
Upgrade
gsd-omp update
Checks GitHub for the latest release, installs it (npm global tarball install), and re-projects the managed extension, agents, and skills in one step. Restart OMP afterwards.
GSD core version:
gsd-omp updateupgrades the bundled gsd-core (it is this package's dependency). OMP's own~/.omp/agent/gsd-core/engine tree (currently 1.7.0-rc.6) is outside this plugin's management — the plugin resolves gsd-core from its ownnode_modules. To align the OMP-side engine with the plugin, use OMP's own update path (e.g.omp update).
If the update check fails (offline, GitHub unreachable), fall back to the manual steps:
gsd-omp uninstall
npm install --global https://github.com/tchivs/gsd-omp/archive/refs/tags/v1.0.11.tar.gz
gsd-omp install
The installer refuses to overwrite unmanaged or locally modified projections. Use --force only when intentionally replacing earlier GSD-owned OMP files:
gsd-omp install --force
Uninstall
Remove managed OMP artifacts before removing the package that owns the installer:
gsd-omp uninstall
npm uninstall --global gsd-omp
Modified managed files are preserved and reported. Pass --force only when they should be deleted.
Model routing
OMP and GSD both have model concepts, but they operate at different granularity and the plugin deliberately does not bridge them:
| OMP | GSD | |
|---|---|---|
| Switch surface | /model <id> --provider <p> |
.planning/config.json model_profile + per-agent tier |
| Granularity | session-global | per-agent (gsd-planner → heavy, gsd-executor → standard, …) |
| When resolved | any time at runtime | install / config time |
The plugin declares modelMode: 'passive', meaning OMP is the model authority and GSD defers. This is intentional, not a gap:
model-catalog.jsonshipsruntimeTierDefaults['omp'] = {}(empty), soresolveTierEntry({runtime:'omp',…})returnsnulland the request-level override path fails open.- Projected agent frontmatter does not write a
model:field, letting OMP's native task dispatch use the current session model. buildBeforeProviderRequestHandler(request-level model swap) is registered only for the legacypiruntime, not OMP.
What actually controls the model in OMP
- To change the model: use OMP's
/model. This is the only effective lever — every GSD agent in the session runs on it. - To change the GSD profile:
/gsd-settings. This affects GSD's internal agent → tier mapping, but has no observable effect under OMP because the omp tier map is empty. model_profile_overrides.ompin.planning/config.jsonis a silent no-op under OMP. Setting it will not change behavior; do not rely on it.
Why no deeper bridging
True per-agent routing (planner on a strong model, executor on a fast one) would require OMP's task-dispatch protocol to carry a per-agent model field, which is outside this plugin's scope. Filling the omp tier map with fixed IDs would also go stale the moment the user runs /model. passive is the honest contract.
Locale
The host CLI (gsd-omp install|uninstall|doctor|descriptor) and EoS bootstrap messages localize through the POSIX environment, resolved in this order:
GSD_OMP_LOCALE— explicit override, takes precedenceLC_ALLLC_MESSAGESLANG
Any value whose lowercased form starts with zh (e.g. zh_CN.UTF-8, zh_TW) selects Simplified Chinese; everything else falls back to English. Unknown keys fall back to English, and unknown placeholders are left intact.
# force Chinese output regardless of shell locale
GSD_OMP_LOCALE=zh_CN.UTF-8 gsd-omp doctor
Messages from the in-session OMP extension (/gsd-* commands, status widgets, continuations) are localized separately through the project's response_language field in .planning/config.json. The first time the extension loads in a GSD project without that field set, it offers a one-time 简体中文 / English picker.
Supported locales: en (default), zh-CN.
EoS contract
| Field | Value |
|---|---|
| Protocol | 1 |
| Profile | programmatic-cli |
| Interface points | command, dispatch, model, hooks, state, artifact |
embeddingMode |
imperative |
commandSurface |
slash-programmatic |
dispatch |
named, nested to depth 2, background, full subagent toolkit; isolation: none — GSD's worktree scheduler is not OMP's isolation primitive (native task isolated: true is) |
effortSurface |
none — OMP owns model/effort routing; GSD never pushes reasoning effort into OMP dispatch |
modelMode |
passive — OMP owns model routing |
hookBus |
host — OMP owns lifecycle events |
stateIO |
filesystem |
transport |
native-extension |
runtime |
bun |
The plugin imports GSD's versioned Host-Integration SDK entry, negotiates the EoS handshake at load time, and invokes GSD through the package's public gsd-tools executable. It does not patch or modify gsd-core source.
Managed files
The installer writes:
extensions/gsd-omp.ts- projected
agents/gsd-*.md - projected
skills/gsd-*/SKILL.md .gsd-omp-manifest.jsonwith ownership hashes
The manifest makes upgrades and uninstalls ownership-aware. Files changed after installation are not overwritten or removed without --force.
Development
npm install
npm run lint
npm test
A local isolated install can be exercised without touching the user's OMP profile:
PI_CODING_AGENT_DIR="$(mktemp -d)" node bin/gsd-omp.cjs install
Attribution
The OMP extension began from the MIT-licensed pi reference host in open-gsd/gsd-core and was adapted into this independently maintained EoS plugin. The upstream Open GSD copyright notice is retained in LICENSE.
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found