create-claude-rails 0.5.4 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cli.js CHANGED
@@ -579,22 +579,7 @@ async function run() {
579
579
  entry.description = registry.projects[existingIdx].description || '';
580
580
  registry.projects[existingIdx] = entry;
581
581
  } else {
582
- // New project ask for name/description if interactive
583
- if (!flags.yes && !flags.lean) {
584
- const { projName } = await prompts({
585
- type: 'text',
586
- name: 'projName',
587
- message: `Project name?`,
588
- initial: entry.name,
589
- });
590
- if (projName) entry.name = projName;
591
- const { projDesc } = await prompts({
592
- type: 'text',
593
- name: 'projDesc',
594
- message: 'One line about what it is:',
595
- });
596
- if (projDesc) entry.description = projDesc;
597
- }
582
+ // Register with folder name. /onboard fills in name and description later.
598
583
  registry.projects.push(entry);
599
584
  }
600
585
  fs.writeFileSync(registryPath, JSON.stringify(registry, null, 2) + '\n');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-claude-rails",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "Claude on Rails — opinionated process scaffolding for Claude Code projects",
5
5
  "bin": {
6
6
  "create-claude-rails": "bin/create-claude-rails.js"
@@ -88,17 +88,44 @@ points to a local path rather than a `node_modules` path):
88
88
  - Add frontmatter: `type: field-feedback`, `source: [project]`,
89
89
  `date: [ISO date]`, `component: [skill/phase name]`
90
90
 
91
- **If not linked** (CoR is installed from npm):
92
-
93
- - Open a GitHub issue on the CoR repo
94
- - Title: `Field feedback: [short title]`
95
- - Label: `field-feedback` (create if needed)
96
- - Body: the feedback markdown
97
-
98
- **If neither works** (no link, no gh access):
99
-
100
- - Output the feedback to the terminal and tell the user to file
101
- it manually or copy it to the CoR repo
91
+ **If not linked**, check whether `gh` is available and authenticated
92
+ (`gh auth status` exits 0). Then present the user with their options:
93
+
94
+ - **If `gh` works**, offer two choices:
95
+ > "I can send this as a GitHub issue so the developer sees it
96
+ > directly, or save it locally. Which do you prefer?"
97
+ >
98
+ > 1. Send as GitHub issue
99
+ > 2. Save locally (I'll send it later or pass it along myself)
100
+
101
+ If they choose GitHub:
102
+ - Open a GitHub issue on `orenmagid/claude-on-rails`
103
+ - Title: `Field feedback: [short title]`
104
+ - Label: `field-feedback` (create if needed)
105
+ - Body: the feedback markdown
106
+
107
+ - **If `gh` is not available** (most common for non-developers):
108
+ > "I'll save this feedback locally for now. If you want, you can
109
+ > pass it along to the developer yourself, or set up a free GitHub
110
+ > account so future feedback goes directly to them. Here's a guide
111
+ > if you're interested:
112
+ > https://github.com/orenmagid/claude-on-rails/blob/main/GITHUB-SETUP.md
113
+ > — totally optional. Your feedback is saved either way."
114
+
115
+ Only show the GitHub setup suggestion the first time. Track whether
116
+ it's been shown by checking for a `cor-feedback-gh-prompted` key
117
+ in `.corrc.json`. After the first time, just say "Saved locally."
118
+
119
+ **For either local save path:**
120
+
121
+ - Append the feedback to `~/.claude/cor-feedback-outbox.json` as a
122
+ JSON array entry with fields: `source` (project name), `date`,
123
+ `component`, `title`, `body`, `status: "pending"`
124
+ - Create the file if it doesn't exist (initialize with `[]`)
125
+
126
+ **Flushing the outbox:** If a user later sets up `gh` and asks to
127
+ send saved feedback, read the outbox, post each `pending` entry as
128
+ a GitHub issue, and update its status to `"sent"` with the issue URL.
102
129
 
103
130
  ### 5. Done
104
131
 
@@ -69,6 +69,21 @@ Common re-run updates:
69
69
  - Updating work tracking configuration after switching tools
70
70
  - Removing stale information that no longer applies
71
71
 
72
+ ## Update Project Registry
73
+
74
+ After generating the context layer, update `~/.claude/cor-registry.json`
75
+ with what you learned from the interview. The installer registers the
76
+ project with just its folder name and an empty description — onboard
77
+ is where the real name and description get filled in.
78
+
79
+ Find this project's entry by path and update:
80
+ - **`name`** — the project's actual name (from the interview, not the
81
+ folder name, unless they match)
82
+ - **`description`** — one line about what the project does
83
+
84
+ This is a silent update — don't ask the user to confirm registry changes
85
+ separately. The information already came from the interview.
86
+
72
87
  ## Quality Standards
73
88
 
74
89
  - **Populated, not padded.** Every section should contain real project
@@ -23,12 +23,15 @@ If **first time**, give a brief walkthrough before the interview:
23
23
  > Claude on Rails gives your Claude Code sessions a **session loop** —
24
24
  > a start and end routine that creates continuity between sessions.
25
25
  >
26
- > - **`/orient`** runs at the start. It reads where things stand — what
27
- > you were working on, what's due, what broke. Instead of starting
28
- > blind, Claude starts informed.
29
- > - **`/debrief`** runs at the end. It records what happened — what got
30
- > done, what's still open, what you learned. That's what orient reads
31
- > next time.
26
+ > - **`/orient`** you type this at the start of a session. It reads
27
+ > where things stand — what you were working on, what's due, what
28
+ > broke. Instead of starting blind, Claude starts informed.
29
+ > - **`/debrief`** you type this at the end of a session. It records
30
+ > what happened — what got done, what's still open, what you learned.
31
+ > That's what orient reads next time.
32
+ >
33
+ > Neither runs automatically — you invoke them when you're ready. If
34
+ > you forget `/debrief`, Claude will nudge you before the session ends.
32
35
  >
33
36
  > Beyond the session loop, there are optional modules: **work tracking**
34
37
  > (a local task database), **planning** (structured plans with critique
@@ -55,10 +58,13 @@ Before asking any questions, read two global files if they exist:
55
58
  project fits into that."
56
59
 
57
60
  2. **`~/.claude/cor-registry.json`** — a list of all their CoR projects.
58
- If they have other projects, ask how this one relates to them: "You
59
- also have [project X] and [project Y]. Does this project connect to
60
- either of those?" The answer goes into `_context.md` so orient and
61
- debrief can reference sibling projects when relevant.
61
+ If they have other projects registered, explain what that means and
62
+ ask how this project relates: "I see you're also using Claude on
63
+ Rails in [project X] that's a separate project you've set up with
64
+ the same session loop. Does this project connect to that one in any
65
+ way? For example, does one feed data to the other, or do they share
66
+ code?" The answer goes into `_context.md` so orient and debrief can
67
+ flag when work in one project might affect the other.
62
68
 
63
69
  If neither file exists, that's fine — the installer may not have created
64
70
  them (npm install path, or the user skipped the identity questions).