Skip to content

feat: /gpr-settings + cross-platform discoverability#4

Merged
AdityaVG13 merged 5 commits into
mainfrom
feat/gpr-settings-and-discoverability
May 11, 2026
Merged

feat: /gpr-settings + cross-platform discoverability#4
AdityaVG13 merged 5 commits into
mainfrom
feat/gpr-settings-and-discoverability

Conversation

@AdityaVG13
Copy link
Copy Markdown
Owner

Summary

Two follow-ups to PR #3 (stacked on top of it):

1. /gpr-settings — interactive config editor

New slash command + skill. Wraps gpr config deterministically (never edits Plan.json from this skill). Surfaces the three layers users conflate:

  • gpr config keys (user / project scope) — run defaults, viewer style/theme
  • Env varsGPR_AGENT_EXTRA_ARGS, GPR_NO_NOTIFY, GPR_BUDGET_MAX_COST_USD, GPR_HOME
  • .gpr/Plan.json fields — budget, qualityGates, persona; points at /gpr-grill, doesn't touch them

Routing on $ARGUMENTS:

  • empty → full menu
  • list / show → dump and exit
  • <key> like run.agent → jump straight to set
  • reset → destructive-reset branch with explicit confirm
  • env → env-var examples

2. Cross-platform discoverability

gpr already supports macOS + Linux + Windows — CI matrix exercises ubuntu-latest, macos-latest, windows-latest on every PR. README buried this in a <details> block, so users assumed Mac-only. Fixes:

  • New Platforms badge in the header
  • One-line "Runs on macOS, Linux, and Windows" sentence above the quickstart
  • Windows section now lists the two supported paths (WSL + Git Bash) cleanly; native PowerShell pointed at the issue tracker

No code changes to cross-platform behaviour — it works today, this just makes it findable.

Commits

  1. feat(skill,cmd,install): add /gpr-settings interactive config editor
  2. docs(readme): surface cross-platform support + /gpr-settings

Files

  • install/commands/gpr-settings.md — new slash command
  • install/skill/gpr-settings/SKILL.md — new skill
  • install/install.sh — copies new skill dir + lists /gpr-settings in the post-install hint
  • README.md — Platforms badge, cross-platform one-liner, /gpr-settings in the slash-commands line

Test plan

  • bash install/install.sh copies 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.agent jumps to the set-key flow with run.agent preselected
  • /gpr-settings list dumps and yields without entering the menu
  • gpr config set viewer.theme dark --scope user (via skill) → gpr render reflects the new theme
  • README "Platforms" badge renders; "Runs on macOS, Linux, and Windows" line is visible without expanding the details block
  • CI green on ubuntu-latest, macos-latest, windows-latest (existing matrix)

Stacking note

Base is feat/plan-link-and-gpr-loop (PR #3). Will auto-rebase against main when that merges.

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.
@AdityaVG13 AdityaVG13 changed the base branch from feat/plan-link-and-gpr-loop to main May 11, 2026 03:41
@AdityaVG13 AdityaVG13 merged commit a8efbc5 into main May 11, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant