create-claude-rails 0.1.2 → 0.3.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.
Files changed (37) hide show
  1. package/README.md +3 -3
  2. package/lib/cli.js +103 -17
  3. package/lib/copy.js +16 -2
  4. package/lib/metadata.js +3 -2
  5. package/lib/reset.js +193 -0
  6. package/package.json +1 -1
  7. package/templates/EXTENSIONS.md +32 -32
  8. package/templates/README.md +3 -3
  9. package/templates/skills/{upgrade → cor-upgrade}/SKILL.md +23 -23
  10. package/templates/skills/{upgrade → cor-upgrade}/phases/apply.md +3 -3
  11. package/templates/skills/{upgrade → cor-upgrade}/phases/detect-current.md +14 -14
  12. package/templates/skills/{upgrade → cor-upgrade}/phases/diff-upstream.md +3 -3
  13. package/templates/skills/extract/SKILL.md +168 -0
  14. package/templates/skills/link/SKILL.md +52 -0
  15. package/templates/skills/onboard/SKILL.md +55 -22
  16. package/templates/skills/onboard/phases/detect-state.md +21 -39
  17. package/templates/skills/onboard/phases/generate-context.md +1 -1
  18. package/templates/skills/onboard/phases/interview.md +86 -72
  19. package/templates/skills/onboard/phases/modularity-menu.md +21 -18
  20. package/templates/skills/onboard/phases/options.md +98 -0
  21. package/templates/skills/onboard/phases/post-onboard-audit.md +20 -2
  22. package/templates/skills/onboard/phases/summary.md +1 -1
  23. package/templates/skills/onboard/phases/work-tracking.md +231 -0
  24. package/templates/skills/perspectives/_groups-template.yaml +1 -1
  25. package/templates/skills/perspectives/architecture/SKILL.md +275 -0
  26. package/templates/skills/perspectives/box-health/SKILL.md +8 -8
  27. package/templates/skills/perspectives/data-integrity/SKILL.md +2 -2
  28. package/templates/skills/perspectives/documentation/SKILL.md +4 -5
  29. package/templates/skills/perspectives/historian/SKILL.md +250 -0
  30. package/templates/skills/perspectives/process/SKILL.md +3 -3
  31. package/templates/skills/perspectives/skills-coverage/SKILL.md +294 -0
  32. package/templates/skills/perspectives/system-advocate/SKILL.md +191 -0
  33. package/templates/skills/perspectives/usability/SKILL.md +186 -0
  34. package/templates/skills/publish/SKILL.md +72 -0
  35. package/templates/skills/seed/phases/scan-signals.md +7 -3
  36. package/templates/skills/unlink/SKILL.md +35 -0
  37. /package/templates/skills/{upgrade → cor-upgrade}/phases/merge.md +0 -0
@@ -1,18 +1,18 @@
1
1
  # Modularity Menu — Present Opt-In Modules
2
2
 
3
- Present the PIB module hierarchy so the user can decide what to adopt now
3
+ Present the Claude on Rails module hierarchy so the user can decide what to adopt now
4
4
  and what to defer. The session loop is mandatory; everything else is
5
5
  opt-in. Progressive adoption means starting with what you need and adding
6
6
  modules as the project matures.
7
7
 
8
8
  When this file is absent or empty, the default behavior is: read
9
- `.pibrc.json` for module selections made during CLI install, then present
9
+ `.corrc.json` for module selections made during CLI install, then present
10
10
  the module hierarchy with that context. To explicitly skip the menu,
11
11
  write only `skip: true`.
12
12
 
13
- ## Reading CLI Selections (.pibrc.json)
13
+ ## Reading CLI Selections (.corrc.json)
14
14
 
15
- If `.pibrc.json` exists in the project root, the CLI has already asked
15
+ If `.corrc.json` exists in the project root, the CLI has already asked
16
16
  about module selections. Read the `modules` and `skipped` fields:
17
17
 
18
18
  - **Installed modules** (`modules` map, value `true`): These are already
@@ -29,7 +29,7 @@ For skipped modules with alternatives, the interview (previous phase)
29
29
  should have already asked about the alternative system. Use those answers
30
30
  here to confirm the wiring plan.
31
31
 
32
- If `.pibrc.json` doesn't exist (manual install or pre-npm adoption),
32
+ If `.corrc.json` doesn't exist (manual install or pre-npm adoption),
33
33
  fall back to presenting the full menu as described below.
34
34
 
35
35
  ## Module Hierarchy
@@ -38,7 +38,7 @@ Present these in order from most fundamental to most specialized:
38
38
 
39
39
  ### 1. Session Loop (orient + debrief) — MANDATORY
40
40
 
41
- Always set up. This is the minimum viable PIB adoption. Orient reads
41
+ Always set up. This is the minimum viable CoR adoption. Orient reads
42
42
  state at session start; debrief writes state at session end. Without
43
43
  this, nothing else has a foundation.
44
44
 
@@ -49,21 +49,24 @@ with each session instead of resetting to zero.
49
49
  **Cost:** Two phase directories with a few files each. Runs at the
50
50
  start and end of every session (adds 30-60 seconds each).
51
51
 
52
- ### 2. Work Tracking (pib-db) — RECOMMENDED
52
+ ### 2. Work Tracking — RECOMMENDED
53
53
 
54
- A lightweight SQLite-based task and project tracker. Gives orient
55
- something to scan and debrief something to close.
54
+ How work items are tracked. The work-tracking onboard phase presents the
55
+ options in detail; this is the module-level view.
56
56
 
57
- **What you get:** Open actions, due dates, project containers, flagged
58
- items. Orient surfaces what's overdue or due today. Debrief marks
59
- things done. Plan creates work items.
57
+ **Options (chosen during onboard work-tracking phase):**
58
+ - **pib-db (SQLite):** Structured, queryable, local-only. CLI interface.
59
+ Integrates with plan/execute and audit findings. Requires `better-sqlite3`.
60
+ - **Markdown (tasks.md):** Simple, git-friendly, zero dependencies. Open
61
+ items are checkbox lines in a file. Good for solo/quick-start projects.
62
+ - **External:** Wire orient/debrief to GitHub Issues, Linear, Jira, etc.
63
+ You customize phase files after onboard.
60
64
 
61
- **Cost:** One SQLite database, CLI interface via `node scripts/pib-db.js`.
62
- No external service dependency.
65
+ **What you get:** Open actions, due dates, flagged items. Orient surfaces
66
+ what needs attention. Debrief marks things done. Plan creates work items.
63
67
 
64
- **Skip if:** You already have a work tracker you're happy with (GitHub
65
- Issues, Linear, Jira, a markdown file). You can wire the session loop to
66
- your existing tracker instead.
68
+ **Skip if:** You don't need work tracking in the session loop. You can
69
+ always add it later by re-running `/onboard`.
67
70
 
68
71
  ### 3. Planning (plan + execute) — OPT-IN
69
72
 
@@ -115,7 +118,7 @@ head.
115
118
 
116
119
  ### 6. Capability Seeding (seed) — OPT-IN
117
120
 
118
- Bootstrap new skills, perspectives, or process components from PIB
121
+ Bootstrap new skills, perspectives, or process components from CoR
119
122
  skeleton templates.
120
123
 
121
124
  **What you get:** Quick scaffolding of new capabilities with all required
@@ -0,0 +1,98 @@
1
+ # Options — Structured Decision Points Before Generation
2
+
3
+ After the interview and before generating context files, surface the key
4
+ decisions that shape how the project and process layer get set up. Present
5
+ options with trade-offs so the user makes informed choices — not Claude
6
+ making choices for them.
7
+
8
+ When this file is absent or empty, the default behavior is: identify
9
+ decisions implied by the interview, present options, let the user choose.
10
+ To explicitly skip (e.g., the user already has strong opinions from the
11
+ interview), write only `skip: true`.
12
+
13
+ ## When This Phase Activates
14
+
15
+ Not every onboard needs this. Skip it when:
16
+ - The user described a clear tech stack and workflow (nothing to decide)
17
+ - This is a re-run (decisions were already made)
18
+ - The project is already built and this is process-layer-only
19
+
20
+ Run it when the interview revealed **open decisions** — things the user
21
+ hasn't settled yet that will affect what context files contain:
22
+
23
+ - "I'm not sure what database to use"
24
+ - "I don't know if I need a backend"
25
+ - "What would you recommend?" (redirected here from the interview)
26
+ - Greenfield project where the user described *what* but not *how*
27
+
28
+ ## How to Present Options
29
+
30
+ For each open decision, present 2-3 concrete options with trade-offs.
31
+ Use two expert perspectives internally (do not spawn agents — just
32
+ reason from these viewpoints):
33
+
34
+ ### Architecture Perspective
35
+ Evaluates each option for: complexity, maintenance burden, whether it
36
+ matches the user's described skill level and project scope. Flags when
37
+ an option is overkill for a weekend project or too lightweight for
38
+ something ambitious.
39
+
40
+ ### Boundary Conditions Perspective
41
+ Evaluates each option for: what breaks first, what's hard to change
42
+ later, what locks you in. Flags irreversible decisions that deserve
43
+ extra thought.
44
+
45
+ ### Format
46
+
47
+ ```
48
+ ## [Decision: e.g., "How to store data"]
49
+
50
+ Based on what you described — [reference specific things from interview] —
51
+ here are your options:
52
+
53
+ **Option A: [name]**
54
+ - What it is: [1 sentence]
55
+ - Good for: [when this is the right choice]
56
+ - Trade-off: [what you give up]
57
+
58
+ **Option B: [name]**
59
+ - What it is: [1 sentence]
60
+ - Good for: [when this is the right choice]
61
+ - Trade-off: [what you give up]
62
+
63
+ **Option C: [name]** (if applicable)
64
+ - ...
65
+
66
+ What sounds right for your situation?
67
+ ```
68
+
69
+ ### Tone
70
+
71
+ - **Present, don't prescribe.** "Here are your options" not "I recommend X."
72
+ - **Reference the interview.** "You mentioned it's just you and this is a
73
+ side project, so..." — ground options in their specific situation.
74
+ - **Be honest about complexity.** If one option is simpler but limited,
75
+ say so. If another is powerful but requires more setup, say so.
76
+ - **Respect "I don't know."** If the user can't decide, suggest starting
77
+ with the simplest option and note that it can be changed later. Don't
78
+ pressure decisions.
79
+
80
+ ## What This Is NOT
81
+
82
+ - **Not architecture consulting.** You present options the interview
83
+ surfaced, not a comprehensive technology evaluation. If the user wants
84
+ deep architecture advice, that's a working session topic, not onboard.
85
+ - **Not prescriptive.** Never say "you should use X." Always frame as
86
+ options with trade-offs.
87
+ - **Not exhaustive.** 2-3 options per decision. Not every possible
88
+ approach.
89
+
90
+ ## Output
91
+
92
+ The user's choices feed into generate-context. Each decision becomes
93
+ concrete content in `_context.md` (architecture section), CLAUDE.md
94
+ (conventions), and potentially orient phase files (what to check).
95
+
96
+ If the user defers a decision ("I'll figure that out later"), note it
97
+ in `_context.md` as an open question — don't leave the section empty
98
+ without explanation.
@@ -39,7 +39,7 @@ Compare what the interview revealed against what was generated:
39
39
 
40
40
  ### 2. Module–Phase Alignment
41
41
 
42
- Cross-reference `.pibrc.json` (installed vs skipped modules) against the
42
+ Cross-reference `.corrc.json` (installed vs skipped modules) against the
43
43
  generated phase files:
44
44
 
45
45
  - **Skipped modules:** No phase file should reference a skipped module's
@@ -61,7 +61,25 @@ Quick filesystem checks:
61
61
  - `system-status.md` exists and has initial content
62
62
  - Hook scripts in `.claude/hooks/` are executable (if hooks module adopted)
63
63
 
64
- ### 4. First-Session Readiness
64
+ ### 4. Technology-Implied Perspectives
65
+
66
+ Check whether the project's technology signals suggest perspectives that
67
+ aren't activated. Cross-reference the interview answers and detected
68
+ technologies against the perspective catalog:
69
+
70
+ - **UI framework detected** → usability, accessibility, mobile-responsiveness
71
+ - **Database detected** → data-integrity
72
+ - **API server detected** → security, performance
73
+ - **Complex architecture (3+ layers/services)** → architecture
74
+ - **Long-running project** → historian
75
+ - **Many skills (5+)** → skills-coverage
76
+ - **Features shipping regularly** → system-advocate
77
+
78
+ If implied perspectives aren't in `_groups.yaml` (or equivalent), note
79
+ it as a recommendation — not a blocker. The user may have good reasons
80
+ to skip them, or may want to add them later via `/seed`.
81
+
82
+ ### 5. First-Session Readiness
65
83
 
66
84
  Simulate what `/orient` will do on its first run:
67
85
 
@@ -51,7 +51,7 @@ Deferred:
51
51
  ### What to Do Next
52
52
 
53
53
  Concrete next steps, not abstract advice:
54
- - "Run `/orient` to start your first PIB session. It will read the
54
+ - "Run `/orient` to start your first CoR session. It will read the
55
55
  context files we just generated."
56
56
  - "After your first working session, run `/debrief` to close the loop."
57
57
  - "The context files are rough. After 3-5 sessions, run `/onboard` again
@@ -0,0 +1,231 @@
1
+ # Work Tracking — Choose How to Track Work
2
+
3
+ After the interview and before generating context, surface how the project
4
+ tracks work — or start tracking if nothing exists yet. This phase presents
5
+ two built-in options plus bring-your-own. The user chooses one, the other,
6
+ or neither.
7
+
8
+ When this file is absent or empty, the default behavior is: detect existing
9
+ work tracking, present options, record the choice in `.corrc.json`. To skip
10
+ work-tracking decisions entirely, write only `skip: true`.
11
+
12
+ ## When This Phase Activates
13
+
14
+ This phase runs in all onboard modes (first-run, early re-run, mature re-run).
15
+
16
+ - **First-run:** Present the two default options, ask user to choose
17
+ - **Early re-run:** Show what's currently set up, ask if it's working well
18
+ - **Mature re-run:** Review what's being used, surface if it's time to switch
19
+
20
+ ## Detection: What Already Exists
21
+
22
+ Before presenting options, scan for signs of existing work tracking:
23
+
24
+ 1. **pib.db** — SQLite database from a previous CoR install or work-tracking
25
+ module selection
26
+ 2. **Markdown task files** — `tasks.md`, `TODO.md`, `backlog.md`, `work.md`
27
+ in the project root or `docs/`
28
+ 3. **GitHub Issues** — `gh issue list` returns results (if `gh` CLI is available)
29
+ 4. **Custom work-scan phase** — `.claude/skills/orient/phases/work-scan.md`
30
+ with non-default content
31
+ 5. **`.corrc.json` workTracking field** — Previous choice already recorded
32
+
33
+ If something is already set up and working, acknowledge it: "I see you're
34
+ using [X]. Is that working well, or would you like to try something
35
+ different?" Don't re-present the full menu unless the user wants to switch.
36
+
37
+ ## Detecting Prior Interview Context
38
+
39
+ If the interview already revealed how work is tracked ("I use GitHub Issues",
40
+ "I keep a list in Notion"), reference that answer here. Don't re-ask.
41
+ Instead: "You mentioned using [system]. Should we wire the session loop to
42
+ that, or would you like to try one of these built-in options?"
43
+
44
+ ## The Two Built-In Options
45
+
46
+ ### Option A: SQLite Database (pib-db)
47
+
48
+ **What it is:** A lightweight, local SQLite database with semantic IDs,
49
+ status tracking, project containers, and tagging. The reference data layer
50
+ that CoR skills (orient, debrief, plan) use by default.
51
+
52
+ **Good for:**
53
+ - Projects that want zero external dependencies (no API keys, no service)
54
+ - Projects where work is created from plans (plan → action in pib-db)
55
+ - Projects with multiple active workstreams that need querying
56
+ - Projects that also use the audit loop (findings can link to actions)
57
+
58
+ **What gets set up:**
59
+ - `pib.db` — SQLite database (created by `node scripts/pib-db.js init`)
60
+ - `scripts/pib-db.js` — CLI for create/query/close operations
61
+ - `scripts/pib-db-schema.sql` — Schema definition
62
+ - Orient `work-scan.md` phase — queries pib-db for open items
63
+ - Plan `work-tracker.md` phase — creates actions from plans
64
+ - Debrief `close-work.md` phase — marks items done
65
+
66
+ **Trade-offs:**
67
+ - Requires `better-sqlite3` npm dependency
68
+ - Work must be created via CoR skills or the CLI
69
+ - No native web UI (though custom dashboards are possible)
70
+
71
+ **Cost:** 2-3 minutes to `npm install better-sqlite3` and initialize.
72
+
73
+ ### Option B: Markdown File (tasks.md)
74
+
75
+ **What it is:** A single markdown file with checkbox task items and optional
76
+ metadata tags. No database, no schema, no dependencies. Work items are
77
+ lines in a file, checked off when done:
78
+
79
+ ```markdown
80
+ ## Active
81
+
82
+ - [ ] Build auth API <!-- area: backend -->
83
+ - [ ] Write docs for onboarding <!-- area: docs -->
84
+
85
+ ## Done
86
+
87
+ - [x] Set up CI pipeline <!-- area: infra, completed: 2025-04-01 -->
88
+ ```
89
+
90
+ Orient and debrief read and write by parsing the markdown file. Plans
91
+ append new items. Everything lives in git.
92
+
93
+ **Good for:**
94
+ - Projects that want all work in git (history, blame, review)
95
+ - Solo projects that want minimal tooling
96
+ - Projects that prefer reading work as a flat file
97
+ - Quick-start projects that might upgrade to pib-db later
98
+
99
+ **What gets set up:**
100
+ - `tasks.md` (or user-chosen name) — The task file
101
+ - Orient `work-scan.md` phase — parses tasks.md for open items
102
+ - Plan `work-tracker.md` phase — appends to tasks.md
103
+ - Debrief `close-work.md` phase — checks off completed items
104
+
105
+ **Trade-offs:**
106
+ - No semantic queries (orient must parse and sort in markdown)
107
+ - Concurrency issues if multiple agents write simultaneously
108
+ - Manual cleanup of old items (no soft-delete)
109
+ - Can't correlate work items with audit findings
110
+
111
+ **Cost:** Zero dependencies, instant setup.
112
+
113
+ ### Option C: Bring Your Own
114
+
115
+ **What it is:** You already have a work tracker (GitHub Issues, Linear,
116
+ Jira, Notion, a spreadsheet). This phase doesn't create anything — it
117
+ records what system you use and wires orient/debrief/plan to reference it.
118
+
119
+ **Good for:**
120
+ - Teams with established tracking workflows
121
+ - Projects with complex workflows needing tool-specific integrations
122
+ - Systems that already have API access set up
123
+
124
+ **What gets set up:**
125
+ - Interview notes about the external system
126
+ - Placeholder phase files that reference your system:
127
+ - Orient `work-scan.md` — example queries for your tracker
128
+ - Plan `work-tracker.md` — example creation commands
129
+ - Debrief `close-work.md` — example completion commands
130
+ - You customize the phase files to fit your specific system
131
+
132
+ ## Presentation Format
133
+
134
+ Present options concisely, grounded in what the interview revealed:
135
+
136
+ ```
137
+ ## Work Tracking
138
+
139
+ Based on our conversation: [quote or reference from interview, or "you
140
+ haven't mentioned how you track work yet"]
141
+
142
+ I can set up one of three approaches:
143
+
144
+ **Option A: SQLite Database (pib-db)**
145
+ - Structured, queryable, local-only, no external services
146
+ - Best for: Multiple workstreams, plan→action pipeline, audit integration
147
+ - Cost: npm install + init (~2 min)
148
+
149
+ **Option B: Markdown File (tasks.md)**
150
+ - Simple, git-friendly, zero dependencies
151
+ - Best for: Solo projects, quick start, everything-in-git preference
152
+ - Cost: Zero, instant
153
+
154
+ **Option C: Your Existing System**
155
+ - Wire orient/debrief to GitHub Issues, Linear, Jira, etc.
156
+ - Best for: Teams with established workflows
157
+ - Cost: Customize phase files after onboard
158
+
159
+ Which approach fits your project? You can also skip work tracking for now.
160
+ ```
161
+
162
+ ## Recording the Choice
163
+
164
+ Record the choice in `.corrc.json` under a `workTracking` field:
165
+
166
+ ```json
167
+ {
168
+ "workTracking": {
169
+ "choice": "pib-db"
170
+ }
171
+ }
172
+ ```
173
+
174
+ Or for markdown:
175
+ ```json
176
+ {
177
+ "workTracking": {
178
+ "choice": "markdown",
179
+ "file": "tasks.md"
180
+ }
181
+ }
182
+ ```
183
+
184
+ Or for external:
185
+ ```json
186
+ {
187
+ "workTracking": {
188
+ "choice": "external",
189
+ "system": "github-issues"
190
+ }
191
+ }
192
+ ```
193
+
194
+ Or if skipped:
195
+ ```json
196
+ {
197
+ "workTracking": {
198
+ "choice": "none"
199
+ }
200
+ }
201
+ ```
202
+
203
+ ## What Downstream Phases Do With This
204
+
205
+ ### generate-context.md
206
+ Uses the choice to populate `_context.md`:
207
+ - pib-db: Documents CLI commands, DB location, query patterns
208
+ - markdown: Documents file location, format conventions
209
+ - external: Documents system name, access patterns
210
+ - none: Notes that work tracking is not configured
211
+
212
+ ### generate-session-loop.md
213
+ Creates phase files appropriate to the choice:
214
+ - pib-db: work-scan queries the DB, close-work marks actions done
215
+ - markdown: work-scan parses the file, close-work checks off items
216
+ - external: scaffolds placeholder phases the user customizes
217
+ - none: no work-related phase files created
218
+
219
+ ### modularity-menu.md
220
+ Reflects the choice in the module status table. If the user chose markdown,
221
+ the "Work Tracking" module shows as "ACTIVE (markdown)" not "NOT ADOPTED."
222
+
223
+ ## Migration Path
224
+
225
+ If a user chose markdown initially and later wants to switch to pib-db:
226
+
227
+ 1. Run `/onboard` again
228
+ 2. Early re-run detects markdown tracking
229
+ 3. Work-tracking phase asks: "Still using tasks.md? Anything missing?"
230
+ 4. If user wants to upgrade: offer to import from markdown into pib-db
231
+ 5. Update `.corrc.json` and regenerate phase files
@@ -46,4 +46,4 @@ groups:
46
46
  # - process
47
47
  # - documentation
48
48
  # - meta-process
49
- # - box-health # PIB adoption health, configuration drift, anti-bloat
49
+ # - box-health # CoR adoption health, configuration drift, anti-bloat