Skip to content

feat: clickable Plan link + /gpr loop autonomous mode#3

Merged
AdityaVG13 merged 3 commits into
mainfrom
feat/plan-link-and-gpr-loop
May 11, 2026
Merged

feat: clickable Plan link + /gpr loop autonomous mode#3
AdityaVG13 merged 3 commits into
mainfrom
feat/plan-link-and-gpr-loop

Conversation

@AdityaVG13
Copy link
Copy Markdown
Owner

Summary

Two small UX upgrades surfaced from real usage of the gpr loop:

  • Clickable PRD link after grill. Once gpr-grill writes .gpr/Plan.json, it now unconditionally runs gpr render and prints the absolute .gpr/Plan.html path on its own line as file:///.... Modern terminals auto-linkify bare file:// URLs, so the user can open the rendered PRD in one click instead of copy-pasting gpr render --open.
  • /gpr loop — hands-off mode. New routing in install/commands/gpr.md: /gpr loop, /gpr run, /gpr auto (and trailing flags) hand off to the existing gpr run CLI driver. The driver is a single deterministic binary that picks the next intent, spawns the build agent, parses the signal, runs the audit, persists, and repeats — identical for Claude/Codex/OpenCode/Gemini. The user's observation that "some AIs' loop function is not great" is exactly why this delegates to the CLI rather than asking Claude to self-loop.

Single-iteration (/gpr, /gpr next, /gpr ratchet) stays the default. Only the explicit loop/run/auto subform delegates.

Commits

  1. feat(grill): print clickable file:// link to rendered Plan
  2. feat(skill,cmd): route /gpr loop to autonomous gpr run CLI driver

Files

  • install/commands/gpr.md — decision tree expanded with loop branch
  • install/skill/SKILL.md — new "Autonomous loop — /gpr loop" section; routing block at top
  • install/skill/gpr-grill/SKILL.md — final-write step now renders + prints clickable link

Test plan

  • bash install/install.sh copies all three updated files to ~/.claude/{skills,commands}/
  • In a project with .gpr/Plan.json: /gpr loop walks the new branch — preflight, budget surface, explicit yes, then gpr run --agent claude
  • In a project without .gpr/Plan.json: /gpr-grill runs the nine beats, writes Plan.json, prints Plan ready: file:///.../Plan.html on its own line (clickable in iTerm2/Warp/VS Code)
  • /gpr (no args) still runs exactly one iteration and yields
  • Frontmatter parses on all three files (verified locally)

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.
@AdityaVG13 AdityaVG13 merged commit 8a5f99c 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