create-claude-rails 0.4.2 → 0.5.0

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/README.md CHANGED
@@ -1,21 +1,39 @@
1
1
  # Claude on Rails
2
2
 
3
- Opinionated process scaffolding for Claude Code projects.
3
+ Process scaffolding for Claude Code projects, by a guy who'd rather
4
+ talk to Claude than write code.
4
5
 
5
6
  One command gives you a session loop (orient/debrief), work tracking,
6
7
  structured planning, an audit system with expert perspectives, and
7
8
  enforcement hooks — all configured through conversational onboarding.
9
+ Most of it was built by Claude. I just complained until it worked.
8
10
 
9
- ## Quick Start
11
+ ## Install
12
+
13
+ Open a terminal, `cd` into your project folder, and run:
14
+
15
+ ```bash
16
+ curl -fsSL https://raw.githubusercontent.com/orenmagid/claude-on-rails/main/install.sh | bash
17
+ ```
18
+
19
+ That's it. No Node.js, no npm, no git required — just a terminal.
20
+
21
+ Then open [Claude Code](https://claude.ai/code) in the same folder and
22
+ say `/onboard`. It'll interview you about your project and set everything
23
+ up based on your answers.
24
+
25
+ ### For developers
26
+
27
+ If you have Node.js installed and want interactive module selection,
28
+ database setup, or the full install:
10
29
 
11
30
  ```bash
12
31
  npx create-claude-rails
13
32
  ```
14
33
 
15
- That's it. The CLI walks you through module selection, copies skill files,
34
+ The CLI walks you through module selection, copies skill files,
16
35
  sets up hooks, and optionally installs a local SQLite work tracker. When
17
- it's done, open Claude Code and run `/onboard` — it interviews you about
18
- your project and generates the context layer that makes everything work.
36
+ it's done, open Claude Code and run `/onboard`.
19
37
 
20
38
  ## What You Get
21
39
 
@@ -36,9 +54,9 @@ you already use GitHub Issues, Linear, or something else.
36
54
  - **`/execute`** — step-through execution with checkpoints and guardrails.
37
55
 
38
56
  ### Audit System (opt-in)
39
- 15 expert perspectives (security, accessibility, data integrity,
40
- performance, etc.) that analyze your codebase and produce structured
41
- findings. Triage UI for reviewing results.
57
+ 20 expert perspectives (security, accessibility, data integrity,
58
+ performance, architecture, process, etc.) that analyze your codebase and
59
+ produce structured findings. Triage UI for reviewing results.
42
60
 
43
61
  ### Compliance Stack (opt-in)
44
62
  Scoped instructions in `.claude/rules/` that load by file path. An
@@ -102,8 +120,14 @@ scripts/
102
120
 
103
121
  ## Upgrading
104
122
 
123
+ Re-run the installer to pick up new versions:
124
+
105
125
  ```bash
106
- npx create-claude-rails # re-run to add modules
126
+ # Shell installer (re-downloads latest)
127
+ curl -fsSL https://raw.githubusercontent.com/orenmagid/claude-on-rails/main/install.sh | bash
128
+
129
+ # npm installer (if using Node.js)
130
+ npx create-claude-rails
107
131
  ```
108
132
 
109
133
  In Claude Code, run `/cor-upgrade` for conversational merge of upstream
@@ -121,8 +145,14 @@ starts from zero. Orient/debrief creates continuity. Planning with
121
145
  perspectives catches problems before they ship. The enforcement pipeline
122
146
  turns recurring mistakes into permanent fixes.
123
147
 
124
- None of this requires you to be a developer. The onboarding interview
125
- meets you where you are, and the system adapts based on what you tell it.
148
+ None of this requires you to be a developer. I'm barely one myself. The
149
+ onboarding interview meets you where you are, and the system adapts
150
+ based on what you tell it.
151
+
152
+ This is very much a work in progress. Things will break. The session
153
+ loop is solid; everything else is still finding its shape. If you try it
154
+ and something's weird, that's not you — it's probably me. Or Claude.
155
+ We're figuring it out together.
126
156
 
127
157
  ## License
128
158
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-claude-rails",
3
- "version": "0.4.2",
3
+ "version": "0.5.0",
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"
@@ -2,24 +2,22 @@
2
2
  model: opus
3
3
  name: cor-upgrade
4
4
  description: |
5
- Conversational upgrade when new Claude on Rails skeletons arrive. Detects current
6
- adoption state, diffs against upstream, and for each change walks through
7
- an intelligent merge conversation not mechanical copy. Intelligence is
8
- the merge strategy. Use when: "cor-upgrade", "update CoR", "new skeletons",
9
- "/cor-upgrade".
5
+ Conversational upgrade when Claude on Rails updates. Runs the installer to
6
+ mechanically update all upstream-owned files, then walks through what changed
7
+ conversationallyexplaining improvements, handling _context.md updates,
8
+ new phase file opportunities, and schema migrations. Intelligence is the
9
+ merge strategy for the parts that need it. Use when: "cor-upgrade",
10
+ "update CoR", "new skeletons", "/cor-upgrade".
10
11
  related:
11
12
  - type: file
12
- path: .claude/skills/cor-upgrade/phases/detect-current.md
13
- role: "Inventory current adoption state"
13
+ path: .claude/skills/cor-upgrade/phases/pre-upgrade.md
14
+ role: "Pre-upgrade checks and state capture"
14
15
  - type: file
15
- path: .claude/skills/cor-upgrade/phases/diff-upstream.md
16
- role: "Semantic diff against upstream CoR"
16
+ path: .claude/skills/cor-upgrade/phases/explain-changes.md
17
+ role: "How to explain what changed"
17
18
  - type: file
18
- path: .claude/skills/cor-upgrade/phases/merge.md
19
- role: "Intelligent merge strategythe core of the skill"
20
- - type: file
21
- path: .claude/skills/cor-upgrade/phases/apply.md
22
- role: "Apply approved changes"
19
+ path: .claude/skills/cor-upgrade/phases/adapt.md
20
+ role: "Handle non-manifest concerns_context.md, phase files, schema"
23
21
  ---
24
22
 
25
23
  # /cor-upgrade — Conversational Claude on Rails Upgrade
@@ -27,34 +25,30 @@ related:
27
25
  ## Purpose
28
26
 
29
27
  This is the methodology's central claim made operational: **intelligence
30
- is the merge strategy.**
31
-
32
- Traditional frameworks distribute as code. You install a new version,
33
- run a migration script, resolve merge conflicts in config files, and hope
34
- nothing breaks. The upgrade path is mechanical diff, patch, pray. This
35
- works for code because code has precise semantics. It fails for process
36
- because process is always adapted to context.
37
-
38
- AI-native methodology distributes as conversation. The upstream CoR
39
- package publishes new skeletons, updated defaults, additional perspectives,
40
- schema migrations. But the project has already adapted those skeletons —
41
- customized phase files, tuned perspectives, extended workflows. A
42
- mechanical merge would destroy the adaptations. A manual merge would
43
- require the user to understand both what changed upstream and how their
44
- project diverged, then mentally compose the two. Neither works.
45
-
46
- The upgrade skill reads both sides the upstream change and the
47
- downstream context and translates improvements into the project's
48
- idiom. It explains what changed and why, examines how the project
49
- currently handles that area, and proposes an adaptation that preserves
50
- local customizations while incorporating upstream improvements. The
51
- user confirms, modifies, or rejects each proposal. Nothing is applied
52
- silently.
28
+ is the merge strategy** — but only where intelligence is needed.
29
+
30
+ CoR upgrades have two layers:
31
+
32
+ 1. **Mechanical layer.** Skeleton SKILL.md files, hook scripts, utility
33
+ scripts these are upstream-owned and tracked in `.corrc.json`. The
34
+ installer overwrites them deterministically. No conversation needed.
35
+ The upstream guard hook (PreToolUse on Edit|Write) enforces this
36
+ boundary at runtime Claude cannot accidentally modify these files.
37
+
38
+ 2. **Conversational layer.** Everything the installer can't handle:
39
+ explaining what changed and why, updating `_context.md` sections that
40
+ new features reference, identifying new phase file opportunities,
41
+ running schema migrations, adapting project context to upstream
42
+ improvements. This is where intelligence is the merge strategy.
43
+
44
+ The old approach tried to use conversation for everything including
45
+ mechanical file updates. That was fragile. Now the installer handles
46
+ the deterministic parts, and this skill focuses entirely on the parts
47
+ that actually need reasoning.
53
48
 
54
49
  This is a **skeleton skill** using the `phases/` directory pattern. The
55
- orchestration (detect, diff, merge, apply) is generic. Your project
56
- defines specifics — where upstream lives, what's adopted, how to
57
- present changes — in phase files under `phases/`.
50
+ orchestration is generic. Your project defines specifics in phase files
51
+ under `phases/`.
58
52
 
59
53
  ### Phase File Protocol
60
54
 
@@ -70,126 +64,135 @@ The skeleton always does something reasonable when a phase file is absent.
70
64
  Phase files customize, not enable. Use `skip: true` when you actively
71
65
  don't want a phase to run — not even the default.
72
66
 
73
- ### Skeleton/Extension Separation
67
+ ### Write Protection
68
+
69
+ Manifest-tracked files (skeleton SKILL.md files, hooks, scripts) are
70
+ protected by the upstream guard hook. Claude cannot Edit or Write to
71
+ them during normal operation. This is intentional — these files are
72
+ upstream-owned and should only change through the installer.
73
+
74
+ **What this means for upgrades:**
75
+ - The installer (running via Bash as a Node.js/shell process) bypasses
76
+ the hook because it doesn't use Claude's Edit/Write tools
77
+ - After the installer runs, all manifest-tracked files are current
78
+ - This skill then handles everything the installer doesn't touch:
79
+ _context.md, phase files, schema, and explanation
74
80
 
75
- This skill understands a critical boundary: **skeleton SKILL.md files may
76
- update, but phase files are NEVER overwritten by upstream changes.**
81
+ ### Skeleton/Extension Separation
77
82
 
78
- Skeleton files (SKILL.md) contain the generic orchestration — the workflow
79
- steps, the phase protocol, the default behaviors. These are authored by
80
- CoR and may improve over time. When upstream publishes a better skeleton,
81
- the upgrade skill can propose replacing it.
83
+ Skeleton files (SKILL.md, hooks, scripts) are upstream-owned, manifest-
84
+ tracked, and write-protected. They evolve through the installer.
82
85
 
83
- Phase files contain the project's customizations what specific files to
84
- read, what specific APIs to call, what specific checks to run. These are
85
- authored by the project adopter (you and Claude together). Upstream has
86
- no knowledge of them and no authority to change them. Even if upstream
87
- adds a new phase file as an example or default, it never overwrites an
88
- existing project phase file.
86
+ Phase files and _context.md are project-owned. They are NEVER in the
87
+ manifest, NEVER write-protected, and NEVER overwritten by the installer.
88
+ They evolve through conversation this skill, /onboard, or direct
89
+ editing.
89
90
 
90
- This separation is what makes upgrades safe. The skeleton evolves; the
91
- customizations persist. The merge intelligence sits at the boundary
92
- between the two.
91
+ This separation is enforced mechanically (manifest + hook), not just
92
+ by convention. The upgrade is safe because the boundary is real.
93
93
 
94
94
  ## Workflow
95
95
 
96
- ### 1. Detect Current State
96
+ ### 1. Pre-Upgrade Snapshot
97
+
98
+ Read `phases/pre-upgrade.md` for pre-upgrade checks.
97
99
 
98
- Read `phases/detect-current.md` for how to inventory the project's
99
- current CoR adoption.
100
+ **Default (absent/empty):**
101
+ - Read `.corrc.json` to capture the current version and module set
102
+ - Note which phase files exist and have content (these won't be touched)
103
+ - Note any `_context.md` sections that may need updating
104
+ - If the project has a work tracker DB, note the current schema
100
105
 
101
- **Default (absent/empty):** Scan the project for CoR artifacts:
102
- - For each skill in `.claude/skills/`: is it a CoR skeleton? Which
103
- phase files are customized vs using defaults vs explicitly skipped?
104
- - Which perspectives are adopted? Which groups configured?
105
- - What hooks are installed from CoR?
106
- - What pib-db schema version is in use (check for known columns)?
107
- - What's in `memory/patterns/`?
106
+ Output: a snapshot of the project's current state, used to explain
107
+ what changed after the installer runs.
108
108
 
109
- Output: a structured manifest of current adoption state, consumed by
110
- the diff phase.
109
+ ### 2. Run the Installer
111
110
 
112
- ### 2. Diff Against Upstream
111
+ Run the installer via Bash to mechanically update all upstream files:
113
112
 
114
- Read `phases/diff-upstream.md` for how to compare the project's state
115
- against the upstream CoR package.
113
+ ```
114
+ # Shell installer (re-downloads latest from npm registry)
115
+ curl -fsSL https://raw.githubusercontent.com/orenmagid/claude-on-rails/main/install.sh | bash
116
116
 
117
- **Default (absent/empty):** Look for `.pib-upstream/` in the project
118
- root (staged by `npx create-claude-rails upgrade`). For each
119
- adopted skeleton: perform a semantic diff of SKILL.md — section by
120
- section, not line by line. Identify new phases, changed workflows,
121
- updated defaults. For non-adopted skills: list what's new and available.
122
- For perspectives: detect new or updated ones in upstream. For schema:
123
- compare `pib-db-schema.sql` columns against the project's actual DB
124
- tables.
117
+ # Or npm installer (if Node.js available)
118
+ npx create-claude-rails
119
+ ```
125
120
 
126
- Output: a categorized list of changes, each tagged with a change
127
- category (see below).
121
+ The installer:
122
+ - Overwrites all manifest-tracked files (skeletons, hooks, scripts)
123
+ - Preserves files NOT in the manifest (phase files, _context.md)
124
+ - Updates `.corrc.json` with new version, hashes, and any new files
125
+ - Adds new skills/hooks/scripts that didn't exist in the old version
128
126
 
129
- ### 3. Merge The Intelligence
127
+ **This is a Bash command, not an Edit/Write operation.** It bypasses
128
+ the upstream guard hook because it runs as a separate process using
129
+ the filesystem directly. This is by design — the installer is the
130
+ authorized update path for manifest-tracked files.
130
131
 
131
- Read `phases/merge.md` for how to handle each detected change. This is
132
- the core of the skill — where conversation replaces mechanical patching.
132
+ ### 3. Explain What Changed
133
133
 
134
- **Default (absent/empty):** For each change detected in the diff phase:
134
+ Read `phases/explain-changes.md` for how to present changes.
135
135
 
136
- 1. **Explain** what changed and why. Read the upstream change, infer its
137
- purpose from context (commit messages, surrounding documentation,
138
- the change itself). Don't just say "line 47 changed" — say "the
139
- orient skeleton now includes a calendar-check phase because projects
140
- found that missing upcoming deadlines was a recurring failure mode."
136
+ **Default (absent/empty):** Compare the pre-upgrade snapshot against
137
+ the new state:
141
138
 
142
- 2. **Examine** how the project currently handles this area. Read the
143
- relevant phase files, skill definitions, and configuration. Understand
144
- the project's adaptation before proposing anything.
139
+ 1. **Version jump.** What version did we come from? What version are
140
+ we on now?
145
141
 
146
- 3. **Propose** an adaptation. Based on the change category (see below),
147
- recommend one of: adopt as-is, adapt to fit the project's patterns,
148
- or skip with a reason. Explain what each option would mean concretely.
142
+ 2. **Changed skeletons.** For each SKILL.md that the installer updated,
143
+ explain what changed and why not line-by-line diffs, but semantic
144
+ summaries. "The debrief skill now includes an upstream feedback phase
145
+ that surfaces CoR friction during debrief sessions." "The plan skill's
146
+ critique step now pulls from more perspectives by default."
149
147
 
150
- 4. **Dialogue.** The user decides. This is conversation, not mechanical
151
- merge. If the user wants something different from what you proposed,
152
- co-author the adaptation together.
148
+ 3. **New files.** Any skills, hooks, or scripts that were added for the
149
+ first time. Explain what they do and whether they need any setup.
153
150
 
154
- #### Change Categories
151
+ 4. **New phase opportunities.** If new skeletons reference phase files
152
+ that the project doesn't have yet, mention them as opportunities.
153
+ "The orient skeleton now supports a `calendar-check.md` phase — you
154
+ could create one to check upcoming deadlines."
155
155
 
156
- Each detected change falls into one of six categories. The category
157
- determines the default merge strategy:
156
+ 5. **Deprecations or removals.** If anything was removed upstream,
157
+ explain why and what replaces it.
158
158
 
159
- | # | Category | Default Strategy |
160
- |---|----------|-----------------|
161
- | 1 | **New default behavior** — a phase the project uses defaults for gains a new default | Auto-adopt. The project was already trusting upstream defaults; the new default is strictly additive. Mention it but don't require confirmation. |
162
- | 2 | **Changed default behavior** — a phase the project uses defaults for has its default modified | Explain + propose. The project trusted the old default; the new one is different. Show what changed and let the user decide. |
163
- | 3 | **New phase added to skeleton** — upstream added a phase that didn't exist before | Explain what the phase does, propose opt-in. New phases start as "absent" (using default or skipped), so adoption is always explicit. |
164
- | 4 | **Changed skeleton workflow** — the SKILL.md orchestration itself changed | The most sensitive category. Examine the project's phase files and any custom phases. Co-author the adaptation — don't just replace the skeleton. |
165
- | 5 | **New skeleton skill available** — upstream published a skill the project hasn't adopted | Present what the skill does, what problem it solves, what adoption would involve. User decides whether and when to adopt. |
166
- | 6 | **Schema migration** — upstream schema has new columns or tables | Detect the difference, generate ALTER TABLE / CREATE TABLE SQL, present for review, apply only after explicit confirmation. |
159
+ Walk through each category conversationally. The user should understand
160
+ what they're getting, not just that files changed.
167
161
 
168
- **CRITICAL:** Phase files are NEVER overwritten. The merge handles
169
- skeleton SKILL.md updates and new capabilities. Project-specific
170
- customizations in phase files are sacred — they represent the project's
171
- adaptation of the methodology to its own context. If an upstream change
172
- would interact with a phase file's content (e.g., a skeleton now
173
- references a concept the phase file also addresses), the merge proposes
174
- a collaborative edit, not a replacement.
162
+ ### 4. Adapt Non-Manifest Concerns
175
163
 
176
- ### 4. Apply Approved Changes
164
+ Read `phases/adapt.md` for how to handle the conversational layer.
177
165
 
178
- Read `phases/apply.md` for how to apply the changes the user approved
179
- in the merge phase.
166
+ **Default (absent/empty):** After explaining changes, handle anything
167
+ the installer couldn't:
180
168
 
181
- **Default (absent/empty):**
182
- - For skeleton-only changes: copy the updated SKILL.md from upstream,
183
- preserving the project's phase files untouched.
184
- - For changes that interact with phase files: make collaborative edits
185
- as approved in the merge dialogue show the diff before writing.
186
- - For schema migrations: run the approved SQL against the project's DB.
187
- - For new skills: copy the skeleton SKILL.md, create an empty `phases/`
188
- directory. The project customizes from there.
189
- - Commit after each logical group of changes with a clear message
190
- describing what was upgraded and why.
191
- - Present a summary: what was applied, what was skipped (with reasons),
192
- what the user might want to review or customize next.
169
+ #### _context.md Updates
170
+ If new skeletons reference `_context.md § Section` names that the
171
+ project's `_context.md` doesn't have, propose adding them. New features
172
+ often depend on context sections e.g., a new perspective might
173
+ reference Friction Captures` which the project hasn't defined yet.
174
+ Show the section template from `_context-template.md` and help the
175
+ user fill it in.
176
+
177
+ #### Phase File Implications
178
+ If a skeleton's workflow changed in a way that interacts with existing
179
+ phase files, discuss the implications. "The orient skeleton reorganized
180
+ its steps your custom `health-checks.md` phase still works, but it
181
+ now runs earlier in the workflow. Is that okay?"
182
+
183
+ #### Schema Migrations
184
+ If the upstream schema has new columns or tables:
185
+ - Detect the difference between the shipped schema and the project's DB
186
+ - Generate `ALTER TABLE` / `CREATE TABLE` SQL
187
+ - Present for review
188
+ - Apply only after explicit confirmation
189
+
190
+ #### New Module Adoption
191
+ If the upgrade added modules the project hadn't installed before,
192
+ walk through what they do and whether to keep them.
193
+
194
+ Present a summary when done: what was mechanically updated, what was
195
+ adapted conversationally, what the user might want to customize next.
193
196
 
194
197
  ### 5. Discover Custom Phases
195
198
 
@@ -202,23 +205,21 @@ the workflow. Execute them at their declared position.
202
205
 
203
206
  | Phase | Absent = | What it customizes |
204
207
  |-------|----------|-------------------|
205
- | `detect-current.md` | Default: scan .claude/skills/, perspectives, hooks, DB | How to inventory adoption state |
206
- | `diff-upstream.md` | Default: compare against .pib-upstream/ (staged by CLI) | Where upstream lives and how to diff |
207
- | `merge.md` | Default: explain + examine + propose for each change | How to handle each change category |
208
- | `apply.md` | Default: copy skeletons, collaborative edits, SQL migrations | How to apply approved changes |
208
+ | `pre-upgrade.md` | Default: read .corrc.json, note phase files, note _context.md | Pre-upgrade state capture |
209
+ | `explain-changes.md` | Default: semantic summary of version jump, changed skeletons, new files | How to present what changed |
210
+ | `adapt.md` | Default: _context.md sections, phase implications, schema, new modules | How to handle non-manifest concerns |
209
211
 
210
212
  ## Proactive Trigger
211
213
 
212
214
  The upgrade skill doesn't have to wait for the user to invoke it.
213
- Orient can detect when upstream CoR files are newer than the project's
214
- adopted copies and surface "CoR updates available" in the briefing.
215
+ Orient can detect when upstream CoR has a newer version than what's
216
+ in `.corrc.json` and surface "CoR updates available" in the briefing.
215
217
  This is a hint, not a blocker — the user decides when to run /cor-upgrade.
216
218
 
217
- To enable this, a project's orient `phases/health-checks.md` or a
218
- custom orient phase can compare modification times between upstream
219
- skeleton SKILL.md files and their adopted counterparts. When drift is
220
- detected, orient mentions it. When the user is ready, they invoke
221
- /cor-upgrade and the full conversational merge begins.
219
+ The drift check script (`scripts/cor-drift-check.cjs`) can also detect
220
+ if manifest-tracked files have been modified outside the installer,
221
+ though the upstream guard hook should prevent this during normal
222
+ Claude Code operation.
222
223
 
223
224
  ## Extending
224
225
 
@@ -238,29 +239,29 @@ Examples of phases mature projects add:
238
239
  ## Calibration
239
240
 
240
241
  **Core failure this targets:** Process improvements published upstream
241
- never reach adopted projects, or reach them as destructive overwrites
242
- that erase hard-won customizations.
242
+ never reach adopted projects, or reach them but nobody understands
243
+ what changed.
243
244
 
244
245
  ### Without Skill (Bad)
245
246
 
246
- New CoR skeletons arrive. The user manually diffs files, trying to
247
- figure out what changed. Some changes are obviousa new skill directory
248
- appeared. Others are subtle a default behavior in an existing skeleton
249
- shifted. The user copies files they think are updated, accidentally
250
- overwrites a phase file they'd customized, doesn't notice a schema
251
- migration is needed. Three sessions later, a skill fails because it
252
- references a DB column that doesn't exist yet. The customization they
253
- spent two sessions tuning is gone, replaced by the upstream default.
247
+ New CoR version is out. The user re-runs the installer. Files update
248
+ silently. The user has no idea what changedwas it just bug fixes?
249
+ New features? Did a skill they rely on change its workflow? They also
250
+ don't realize the new debrief skill references a Friction Captures`
251
+ section in _context.md that their project doesn't have, so the upstream
252
+ feedback phase silently does nothing. Three weeks later they wonder
253
+ why no friction is being captured.
254
254
 
255
255
  ### With Skill (Good)
256
256
 
257
- New CoR skeletons arrive. The user runs `/cor-upgrade`. Claude inventories
258
- what's adopted, diffs against upstream, and walks through each change:
259
- "The orient skeleton added a calendar-check phase. Your project doesn't
260
- have calendar integration, so this would be a no-op skip it for now?"
261
- "The debrief skeleton's default inventory behavior now includes checking
262
- for uncommitted stash entries. You're using the default here, so this
263
- improvement applies automatically." "There's a new schema column for
264
- deferred trigger conditions. Here's the ALTER TABLE want me to apply
265
- it?" Nothing is lost. Everything is explained. The project gets better
266
- without getting broken.
257
+ New CoR version is out. The user runs `/cor-upgrade`. The installer
258
+ updates all upstream files mechanically fast, deterministic, safe
259
+ (phase files untouched). Then Claude explains: "You went from v0.4.1
260
+ to v0.5.0. The big change: debrief now has an upstream feedback phase
261
+ that captures CoR friction. It references `_context.md § Friction
262
+ Captures` let's add that section to your context file." "The plan
263
+ skill's critique step now uses three perspectives instead of one. Your
264
+ existing phase files are fine this is a default behavior change."
265
+ "There's a new `investigate` skill for deep-dive debugging. Want to
266
+ try it?" Everything is explained. Non-manifest concerns are handled.
267
+ The project gets better without confusion.