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
|
-
//
|
|
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
|
@@ -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
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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`**
|
|
27
|
-
> you were working on, what's due, what
|
|
28
|
-
> blind, Claude starts informed.
|
|
29
|
-
> - **`/debrief`**
|
|
30
|
-
> done, what's still open, what you learned.
|
|
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,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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).
|