Skip to content

Align create-app AI prompt with Pro default - #4232

Merged
justin808 merged 5 commits into
mainfrom
jg-codex/fix/pro-first-create-app-prompt
Jun 27, 2026
Merged

Align create-app AI prompt with Pro default#4232
justin808 merged 5 commits into
mainfrom
jg-codex/fix/pro-first-create-app-prompt

Conversation

@justin808

@justin808 justin808 commented Jun 27, 2026

Copy link
Copy Markdown
Member

Summary

  • Updates the canonical create-app AI prompt in prompts.yml to match the merged Pro-first docs from Make Pro the default create-app path #4217.
  • Tells agents that the default npx create-react-on-rails-app my-app path is React on Rails Pro for React 19.2 feature support.
  • Calls out --standard only as the explicit open-source-only scaffold escape hatch.

Downstream site context: this unblocks shakacode/reactonrails.com#132 because reactonrails.com now generates prompts.ts, prompts.json, and prompts/llms.txt from this upstream source instead of hand-editing generated artifacts.

Validation

  • .agents/bin/agent-workflow-seam-doctor
  • git diff --check
  • script/ci-changes-detector origin/main (routes prompts.yml as uncategorized, so it recommends the broad suite)
  • From the downstream site checkout: REACT_ON_RAILS_REPO=/Users/justin/.codex/worktrees/b187/react_on_rails-upstream npm run sync:docs && npm run prepare:prompts
  • bin/ci-local --changed --fast attempted; it installed dependencies and passed docs-sidebar, then failed during RuboCop on pre-existing offenses in react_on_rails/spike/3313_prism_gemfile_rewriter/*, outside this one-line prompt change.

Notes

  • No generated llms-full*.txt update is included here; this PR changes the prompt catalog source consumed by the docs site.

Summary by CodeRabbit

  • Documentation
    • Updated the app creation guidance to default to the React on Rails Pro path.
    • Tightened rules so the open-source-only scaffold is used only when the request explicitly asks for it.
    • Ensures instructions follow the official guide exactly, including commands/versions.
  • Bug Fixes
    • Reduced setup deviations by preventing improvisation of commands or versions and aligning output more strictly with the guide.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1adbc2d0-d323-408a-92ea-d7f9c6f755d1

📥 Commits

Reviewing files that changed from the base of the PR and between 1e0dee6 and 7e6b4dd.

📒 Files selected for processing (1)
  • prompts.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • prompts.yml

Walkthrough

prompts.yml updates the create-app prompt to use the Pro default path and tighter instructions for commands, versions, and --standard usage.

Changes

Create-app prompt text

Layer / File(s) Summary
Prompt wording update
prompts.yml
The create-app prompt now points to the default Pro path, requires following {{doc_url}} exactly without improvising commands or versions, and allows --standard only for explicit open-source-only requests.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related issues

Possibly related PRs

Suggested labels

documentation

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: updating the create-app prompt to default to the Pro path.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jg-codex/fix/pro-first-create-app-prompt

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@justin808

Copy link
Copy Markdown
Member Author

+ci-run-hosted

@greptile-apps

greptile-apps Bot commented Jun 27, 2026

Copy link
Copy Markdown

Greptile Summary

This PR updates the canonical create-app prompt.

  • Points the default new-app path at React on Rails Pro.
  • Mentions React 19.2 feature support in the prompt text.
  • Keeps --standard as the explicit open-source-only scaffold option.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
prompts.yml Updates the start-new-app prompt text without changing the prompt catalog shape.

Reviews (1): Last reviewed commit: "Align create-app prompt with Pro default" | Re-trigger Greptile

@github-actions github-actions Bot added the ready-for-hosted-ci Run optimized hosted GitHub CI for this PR label Jun 27, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Hosted CI Requested

Triggered 8 workflow(s) for 8750e1ade0d3.
Mode: optimized hosted CI (path-selected by script/ci-changes-detector).
Added ready-for-hosted-ci, so future commits will keep running optimized hosted CI until +ci-stop-hosted is used.

View progress in the Actions tab.

Failed:

  • React on Rails Pro - Package Tests: Server Error

@claude

claude Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Review: Align create-app AI prompt with Pro default

This PR updates the create-app prompt in prompts.yml from an OSS-first framing (TypeScript + SSR, follow the guide) to a Pro-first framing (default Pro path, --standard as the escape hatch). The change is small but the prompt text ships as a machine-readable artifact consumed by AI agents, so precision matters. Three confirmed issues found.

Findings

Finding 1: Backtick characters in a plain-text artifact - prompts.yml line 70

No other prompt body in the file uses markdown formatting. The artifact contract generates a plain-text llms.txt, and these prompts are pasted verbatim into AI tools - so backtick characters appear literally rather than as rendered code. The flag name should appear without backtick formatting, consistent with all adjacent prompts.

Finding 2: Unresolvable conditional "if I explicitly need" - prompts.yml line 70

"use --standard only if I explicitly need an open-source-only scaffold" is a conditional the AI cannot evaluate. When a user pastes this into Cursor/Claude Code/Copilot, the AI reads "I" ambiguously (user vs. self-reference) and has no way to know whether the user needs the OSS scaffold from within the prompt alone. Every other prompt in the file uses unconditional imperatives or defers entirely to the doc. This clause either becomes dead weight (AI always picks Pro) or provokes a clarifying question (breaking the paste-and-run UX).

Finding 3: Hardcoded "React 19.2" creates a version drift vector - prompts.yml line 70

The old prompt delegated version authority entirely to the guide with "use the exact commands and versions it specifies." The new prompt bakes in "React 19.2" directly, creating a second version source independent of the doc URL. When the doc updates to 19.3+ or React 20, the prompt body will contradict the guide - and the AI will encounter two conflicting signals with the prompt text winning as the proximate instruction. No other prompt hardcodes a version. Prefer dropping the version number and keeping the "don't improvise commands or versions" constraint, which delegates authority back to the doc.


Suggested revision:

prompt: "Set up a new Rails app using the React on Rails Pro path for React 19+ features and server-side rendering with TypeScript. Follow the official guide at {{doc_url}} exactly and don't improvise commands or versions."

This keeps the Pro-first intent, restores TypeScript/SSR as explicit user goals, removes the unresolvable conditional, and uses "19+" instead of the pinned "19.2" to avoid future drift.

Comment thread prompts.yml Outdated
category: get-started
doc_route: /docs/getting-started/create-react-on-rails-app
prompt: "Set up a new Rails app with React on Rails, using TypeScript and server-side rendering. Follow the official guide at {{doc_url}} and use the exact commands and versions it specifies — don't improvise."
prompt: "Set up a new Rails app with the default React on Rails Pro path for React 19.2 feature support. Follow the official guide at {{doc_url}} exactly, use `--standard` only if I explicitly need an open-source-only scaffold, and don't improvise commands or versions."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three issues with this prompt body:

1. Backtick formatting — No other prompt in this file uses inline code formatting. In the plain-text llms.txt artifact and when pasted into AI tools, the backticks around --standard appear as literal characters. Drop them for consistency.

2. Unresolvable conditional"only if I explicitly need" is a conditional an AI agent cannot evaluate from within the pasted prompt. "I" is ambiguous (the user, or the AI reading the prompt?), and the AI has no way to know the user's preference at paste time. Every adjacent prompt is unconditional. This clause either becomes dead weight (AI always picks Pro) or prompts a clarifying question, breaking the paste-and-run UX.

3. Hardcoded version "React 19.2" — The old prompt delegated version authority entirely to the doc ("use the exact commands and versions it specifies"). Baking in "19.2" creates a second version source that can drift when the doc is updated to 19.3+ or 20. No other prompt in the file hardcodes a version number.

Suggested change
prompt: "Set up a new Rails app with the default React on Rails Pro path for React 19.2 feature support. Follow the official guide at {{doc_url}} exactly, use `--standard` only if I explicitly need an open-source-only scaffold, and don't improvise commands or versions."
prompt: "Set up a new Rails app using the React on Rails Pro path for React 19+ features and server-side rendering with TypeScript. Follow the official guide at {{doc_url}} exactly and don't improvise commands or versions."

@claude

claude Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Code Review

This is a narrow, well-scoped one-liner change with a clear rationale — making the Pro path the canonical default while documenting --standard as the explicit open-source escape hatch. The downstream motivation (unblocking reactonrails.com#132) is clear.

Observations

Removed context: TypeScript and server-side rendering

The old prompt explicitly stated the intended stack (using TypeScript and server-side rendering). The new prompt removes this in favor of trusting the linked doc entirely. The risk is that AI agents given a short prompt often anchor on the stated goals; if the guide has branching paths or optional steps, the agent may skip TypeScript or SSR without that explicit pull. This is low-risk if the guide's Pro path leads unambiguously to TypeScript+SSR, but worth confirming.

--standard flag without command syntax context

The phrase "Use --standard only when…" tells an AI agent when to use the flag but not exactly where it appears in the command (npx create-react-on-rails-app my-app --standard). Agents that aren't already familiar with the CLI might misplace it. Since {{doc_url}} covers the exact command, this is low-risk, but a brief inline anchor (…scaffold (pass \--standard` to the `create-react-on-rails-app` CLI)`) would remove all ambiguity.

Minor: slight redundancy in "exactly … don't improvise"

"Follow the official guide … exactly and don't improvise commands or versions"exactly and don't improvise overlap. The old phrasing ("use the exact commands and versions it specifies — don't improvise") was tighter. Not a blocker, but worth a quick pass.

Verdict

Approve with the optional suggestion above (TypeScript/SSR or clearer --standard anchor). The change is directionally correct and the downstream sync benefit is real.

Comment thread prompts.yml Outdated
category: get-started
doc_route: /docs/getting-started/create-react-on-rails-app
prompt: "Set up a new Rails app with React on Rails, using TypeScript and server-side rendering. Follow the official guide at {{doc_url}} and use the exact commands and versions it specifies — don't improvise."
prompt: "Set up a new Rails app using the default React on Rails Pro path. Follow the official guide at {{doc_url}} exactly and don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The old prompt's explicit "using TypeScript and server-side rendering" served as an in-prompt goal anchor for AI agents. Removing it means agents now rely entirely on the linked guide to infer the intended stack. That's fine if the Pro path in the guide leads unambiguously to TypeScript + SSR, but consider re-adding a brief goal clause so the prompt is self-contained even if the doc changes:

Suggested change
prompt: "Set up a new Rails app using the default React on Rails Pro path. Follow the official guide at {{doc_url}} exactly and don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."
prompt: "Set up a new Rails app using the default React on Rails Pro path with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."

Also: "exactly" + "don't improvise" are slightly redundant in the current wording — the suggestion above keeps both but separates them with a dash to match the old prompt's rhythm.

Comment thread prompts.yml Outdated
category: get-started
doc_route: /docs/getting-started/create-react-on-rails-app
prompt: "Set up a new Rails app with React on Rails, using TypeScript and server-side rendering. Follow the official guide at {{doc_url}} and use the exact commands and versions it specifies — don't improvise."
prompt: "Set up a new Rails app using the default React on Rails Pro path with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prompt now defaults to the Pro path but carries no license signal, while the sibling turn-on-rsc prompt in the same file explicitly annotates (no license required) for that reason.

create-app is the primary new-user entry point. Without a disclaimer, a first-time reader who sees "React on Rails Pro path" may assume they need a paid license before they can even run npx create-react-on-rails-app, and abandon setup. The docs say development/CI/staging require no token; only production deployments need a paid license.

Consider mirroring the turn-on-rsc pattern:

Suggested change
prompt: "Set up a new Rails app using the default React on Rails Pro path with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."
prompt: "Set up a new Rails app using the default React on Rails Pro path (no license required for development) with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."

@claude

claude Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Review: Align create-app AI prompt with Pro default

This is a one-line text change to a YAML prompt catalog — the content is accurate and the YAML syntax is valid. The new wording correctly reflects the CLI's actual default behavior (Pro scaffold, TypeScript, SSR) and the --standard flag's purpose as the OSS-only escape hatch, consistent with the docs merged in #4217.

One finding worth addressing: the prompt now routes new users to the Pro path but includes no license signal, creating an asymmetry with the sibling turn-on-rsc prompt (same file, line 83) which explicitly says (no license required). Since create-app is the primary new-user entry point, a first-time reader who sees "React on Rails Pro path" may assume they need a paid license before running npx create-react-on-rails-app and abandon setup. The actual rule (no token needed for development/CI/staging; production requires a license) should be surfaced here the same way it is in turn-on-rsc. See the inline suggestion on line 70.

Everything else — YAML validity, {{doc_url}} placeholder usage, voice/length consistency with peer prompts — looks good.

@claude

claude Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Review: Align create-app AI prompt with Pro default

This PR is a single-line change to the create-app prompt in prompts.yml, steering AI agents toward the React on Rails Pro scaffold by default and introducing --standard as the explicit OSS-only escape hatch. The intent is sound and matches the merged Pro-first docs.

Three issues found, all on the changed line:

1. License claim is incomplete (high)
"no license required for development" drops the critical second half of the official policy. The linked doc (create-react-on-rails-app.md lines 28–29) says: "no token is required for development, test, CI/CD, or staging. Production Pro deployments require a paid license." An agent summarising the setup without reading the full guide could tell a user Pro is free with no production caveat. Suggestion: (no token required for development, test, CI/CD, or staging).

2. Voice inconsistency with every other prompt (medium)
All 8 other prompts are first-person user voice (my app, my existing Rails app, my React on Rails setup). The new sentence "Use --standard only when the user's request explicitly requires…" switches to third-person agent-addressing meta-language. When a user pastes this into Claude or Copilot, "the user's request" is self-referentially odd. Aligning to the pattern: "Use --standard only when you explicitly need an open-source-only scaffold."

3. --standard condition diverges from the CLI's own copy (low)
packages/create-react-on-rails-app/src/index.ts:88 says: "Use --standard only when you intentionally want an open-source-only setup." The new prompt raises the bar to "the user's request explicitly requires…" — an agent interpreting this literally may default to Pro even when context makes OSS obviously appropriate, simply because the user didn't use the word "require". Using the CLI's own wording ("intentionally want") keeps the two in sync.

Comment thread prompts.yml Outdated
category: get-started
doc_route: /docs/getting-started/create-react-on-rails-app
prompt: "Set up a new Rails app with React on Rails, using TypeScript and server-side rendering. Follow the official guide at {{doc_url}} and use the exact commands and versions it specifies — don't improvise."
prompt: "Set up a new Rails app using the default React on Rails Pro path (no license required for development) with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The parenthetical (no license required for development) drops the production half of the official policy. The linked doc (lines 28–29 of create-react-on-rails-app.md) says:

no token is required for development, test, CI/CD, or staging. Production Pro deployments require a paid license.

An agent that summarises the setup without reading the full guide can tell a user Pro is completely free. Suggest matching the doc's exact scope:

Suggested change
prompt: "Set up a new Rails app using the default React on Rails Pro path (no license required for development) with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when the user's request explicitly requires an open-source-only scaffold."
prompt: "Set up a new Rails app using the default React on Rails Pro path (no token required for development, test, CI/CD, or staging — production requires a paid license) with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when you intentionally want an open-source-only scaffold."

This also fixes the two other issues on this line:

  • "the user's request explicitly requires""you intentionally want" — matches the CLI's own wording (index.ts:88) and restores the first-person voice every other prompt uses.
  • "explicitly requires" raised the bar above the CLI's "intentionally want", which could cause an agent to default to Pro even when OSS is obviously the right choice.

@claude

claude Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Review: Align create-app AI prompt with Pro default

This PR makes a single-line edit to the create-app prompt in prompts.yml, shifting the default framing from generic React on Rails to the Pro-first scaffold path. All factual claims in the new text are verified against the source docs — the license model (no token for dev/test/CI/staging, paid for production) and the --standard flag description both match docs/oss/getting-started/create-react-on-rails-app.md exactly.

One observation worth a look:

The new prompt body is ~372 characters — roughly 2–3× longer than every other entry in the file (range: 93–191 chars). The extra length comes almost entirely from the license parenthetical (no token required for development, test, CI/CD, or staging; production requires a paid license). Since {{doc_url}} already points to a page that covers the license model in full, this inline disclosure is somewhat redundant with the guide. If the reactonrails.com Quick Start widget or /prompts card has any display or copy-paste ergonomics that depend on prompt length, the extra 180 chars could matter.

A tighter alternative that still calls out the key behavior:

Set up a new Rails app using the default React on Rails Pro path (free for dev/test/CI/staging; production requires a license) with TypeScript and server-side rendering. Follow the official guide at {{doc_url}} exactly; don't improvise commands or versions. Use --standard only when you intentionally want an open-source-only scaffold.

That trims ~50 chars with no loss of substance. Totally a judgment call though — the current wording is not wrong.

Everything else looks clean: YAML is valid, doc_route resolves correctly, the --standard escape clause is present, and the Pro-first default aligns with the docs/oss/introduction.md AI-agent summary.

Comment thread prompts.yml
@justin808
justin808 merged commit cfcd685 into main Jun 27, 2026
48 checks passed
@justin808
justin808 deleted the jg-codex/fix/pro-first-create-app-prompt branch June 27, 2026 22:02
justin808 added a commit to shakacode/reactonrails.com that referenced this pull request Jun 28, 2026
CI's prepare:prompts guard was red on every reactonrails.com PR because the
committed prompt artifacts lagged react_on_rails main (prompts.yml updated in
shakacode/react_on_rails#4232). Regenerated with `npm run prepare:prompts`
against main; verified `npm run build` passes (prepare:prompts:check + docusaurus build).
justin808 added a commit to shakacode/reactonrails.com that referenced this pull request Jun 28, 2026
* docs: add a TanStack Query value card to the home page

* chore: refresh generated prompt artifacts from upstream prompts.yml

CI's prepare:prompts guard was red on every reactonrails.com PR because the
committed prompt artifacts lagged react_on_rails main (prompts.yml updated in
shakacode/react_on_rails#4232). Regenerated with `npm run prepare:prompts`
against main; verified `npm run build` passes (prepare:prompts:check + docusaurus build).
@justin808 justin808 mentioned this pull request Jul 7, 2026
4 tasks
justin808 added a commit that referenced this pull request Jul 7, 2026
## Summary

Stamps the `17.0.0.rc.7` changelog header and adds the user-visible
entries merged into `release/17.0.0` since `v17.0.0.rc.6` that were not
yet reflected in `CHANGELOG.md`:

- **Fixed**: OSS renders no longer compute/emit Pro-only
generated-stylesheet metadata (#4395)
- **Fixed**: `create_render_options` no longer mutates the caller's
options hash (#4396)
- **Fixed**: locale-file regeneration check no longer reads the whole
file and correctly detects a legacy import after custom content (#4398)
- **Changed**: `[Pro]` removed unused `addressable`/`rainbow` runtime
gem dependencies (#4422)
- **Fixed**: `[Pro]` static RSC payload script stripping is robust to
generated body-shape changes (#4477)
- Updated the existing `create-react-on-rails-app` chalk→picocolors
entry to also credit the color-fallback-parity follow-up (#4473)
- Updated the existing Pro-by-default `create-react-on-rails-app` entry
to also credit the matching `prompts.yml` AI-agent prompt update (#4232)

Ran the classification-sweep helper over
`v17.0.0.rc.6..origin/release/17.0.0` (175 merged PRs, no `UNKNOWN`
rows) and cross-checked every PR number against the current changelog to
find the gaps above; everything else in range was either already
documented or is internal/docs/CI/release-process and intentionally
excluded per the changelog policy.

## Test plan

- [x] `bundle exec rake "update_changelog[rc]"` computed and stamped
`17.0.0.rc.7` from git tags, updated compare links
- [x] Verified `[unreleased]` and `[17.0.0.rc.7]` compare links anchor
correctly
- [x] Verified `CHANGELOG.md` ends with a trailing newline
- [x] Pre-commit/pre-push hooks (prettier, trailing-newlines,
markdown-links) passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-hosted-ci Run optimized hosted GitHub CI for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant