feat: /gpr-settings + cross-platform discoverability#4
Merged
Conversation
After Plan.json is written, unconditionally run `gpr render` and print the absolute `.gpr/Plan.html` path on its own line prefixed with `file://`. Modern terminals (iTerm2, Warp, VS Code, Ghostty, Kitty) auto-linkify bare file:// URLs — wrapping in markdown link syntax breaks linkification in some terminals, so keep it raw. Also nudge the user toward both modes after grill: `/gpr` for single-step or `/gpr loop` for the hands-off CLI driver.
`/gpr loop` (also `/gpr run`, `/gpr auto`) now hands off to the existing `gpr run` binary instead of self-driving iterations from inside Claude. Model-driven loops drift across agents — `gpr run` is deterministic and identical for Claude/Codex/OpenCode/Gemini. Changes: - install/commands/gpr.md: decision tree branches on `$ARGUMENTS` starting with loop|run|auto. Extra words forward as `gpr run` flags. - install/skill/SKILL.md: new "Autonomous loop" section. Preflight renders Plan + prints clickable file:// link, surfaces budget caps, requires explicit yes before launch. Hard rule forbids `while true; do gpr next-intent` style self-loops. Single-iteration (`/gpr`, `/gpr next`, `/gpr ratchet`) stays the default — only the explicit loop subform delegates.
Wraps `gpr config` deterministically. Surfaces three settings layers the user often conflates: - user/project `gpr config` keys (run defaults, viewer style/theme) - runtime env vars (GPR_AGENT_EXTRA_ARGS, GPR_NO_NOTIFY, GPR_BUDGET_MAX_COST_USD, GPR_HOME) - .gpr/Plan.json fields (budget, qualityGates, persona) — pointed at /gpr-grill, NOT edited from this skill Routing on $ARGUMENTS: empty → full menu; `list`/`show` → dump and exit; `<key>` → jump to set; `reset` → reset branch; `env` → env examples. Validates enum values against `gpr config keys` before calling set so the user sees a useful error instead of a CLI reject. install.sh learns to copy the new skill dir and the new command file; the post-install hint now lists /gpr-settings alongside the others.
gpr already runs on macOS / Linux / Windows (CI exercises all three on
every PR), but the platform section was buried in a <details> block,
so users assumed Mac-only. Promote it:
- new "Platforms" badge in the header row
- one-line summary above the quickstart so it's visible without a
click ("Runs on macOS, Linux, and Windows. CI exercises all three.")
- the Windows section now lists only the two supported paths (WSL +
Git Bash) instead of three; the dead "native PowerShell / cmd is
not supported" item is folded into a single line under the
supported paths, with a pointer to the issue tracker for anyone
who wants native PowerShell
Also mentions /gpr-settings in the slash-commands line below the
quickstart so the new command is discoverable.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two follow-ups to PR #3 (stacked on top of it):
1.
/gpr-settings— interactive config editorNew slash command + skill. Wraps
gpr configdeterministically (never edits Plan.json from this skill). Surfaces the three layers users conflate:gpr configkeys (user/projectscope) — run defaults, viewer style/themeGPR_AGENT_EXTRA_ARGS,GPR_NO_NOTIFY,GPR_BUDGET_MAX_COST_USD,GPR_HOME.gpr/Plan.jsonfields — budget, qualityGates, persona; points at/gpr-grill, doesn't touch themRouting on
$ARGUMENTS:list/show→ dump and exit<key>likerun.agent→ jump straight to setreset→ destructive-reset branch with explicit confirmenv→ env-var examples2. Cross-platform discoverability
gpr already supports macOS + Linux + Windows — CI matrix exercises
ubuntu-latest,macos-latest,windows-lateston every PR. README buried this in a<details>block, so users assumed Mac-only. Fixes:No code changes to cross-platform behaviour — it works today, this just makes it findable.
Commits
feat(skill,cmd,install): add /gpr-settings interactive config editordocs(readme): surface cross-platform support + /gpr-settingsFiles
install/commands/gpr-settings.md— new slash commandinstall/skill/gpr-settings/SKILL.md— new skillinstall/install.sh— copies new skill dir + lists/gpr-settingsin the post-install hintREADME.md— Platforms badge, cross-platform one-liner,/gpr-settingsin the slash-commands lineTest plan
bash install/install.shcopies new skill and command; post-install hint lists/gpr-settings/gpr-settings(empty args) shows the merged user/project config table with env-var hints/gpr-settings run.agentjumps to the set-key flow withrun.agentpreselected/gpr-settings listdumps and yields without entering the menugpr config set viewer.theme dark --scope user(via skill) →gpr renderreflects the new themeStacking note
Base is
feat/plan-link-and-gpr-loop(PR #3). Will auto-rebase againstmainwhen that merges.