specrails-core 3.2.0 → 3.3.1
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 +35 -22
- package/VERSION +1 -1
- package/bin/perf-check.sh +21 -0
- package/bin/specrails-core.js +7 -4
- package/commands/setup.md +51 -33
- package/docs/agents.md +43 -1
- package/docs/deployment.md +4 -4
- package/docs/getting-started.md +22 -8
- package/docs/installation.md +41 -25
- package/docs/local-tickets.md +192 -0
- package/docs/migration-guide.md +140 -0
- package/docs/testing/test-matrix-codex.md +0 -1
- package/docs/user-docs/cli-reference.md +0 -12
- package/docs/user-docs/codex-vs-claude-code.md +0 -1
- package/docs/user-docs/faq.md +6 -3
- package/docs/user-docs/installation.md +6 -3
- package/docs/user-docs/quick-start.md +8 -6
- package/docs/workflows.md +2 -14
- package/package.json +1 -1
- package/update.sh +0 -1
- package/docs/api-reference.md +0 -266
- package/integration-contract.json +0 -45
- package/templates/local-tickets-schema.json +0 -7
- package/templates/skills/sr-health-check/SKILL.md +0 -531
- package/templates/web-manager/package-lock.json +0 -3740
- package/templates/web-manager/server/queue-manager.test.ts +0 -607
- package/templates/web-manager/server/queue-manager.ts +0 -565
package/docs/installation.md
CHANGED
|
@@ -8,6 +8,7 @@ This guide covers the complete installation process in detail. For the quick ver
|
|
|
8
8
|
|
|
9
9
|
| Tool | Why | Install |
|
|
10
10
|
|------|-----|---------|
|
|
11
|
+
| **Node.js 18+** | Required for the installer | [nodejs.org](https://nodejs.org/) or via [nvm](https://github.com/nvm-sh/nvm) |
|
|
11
12
|
| **Git** | SpecRails operates on git repositories | [git-scm.com](https://git-scm.com/) |
|
|
12
13
|
| **Claude Code** | The AI CLI that runs the agents | `npm install -g @anthropic-ai/claude-code` |
|
|
13
14
|
|
|
@@ -15,9 +16,7 @@ This guide covers the complete installation process in detail. For the quick ver
|
|
|
15
16
|
|
|
16
17
|
| Tool | Why | Install |
|
|
17
18
|
|------|-----|---------|
|
|
18
|
-
| **npm** | Pipeline Monitor dashboard, OpenSpec CLI | Via [nvm](https://github.com/nvm-sh/nvm) |
|
|
19
19
|
| **GitHub CLI** | Auto-create PRs, manage issues | `brew install gh` or [cli.github.com](https://cli.github.com/) |
|
|
20
|
-
| **OpenSpec CLI** | Structured spec workflow | `npm install -g @openspec/cli` |
|
|
21
20
|
|
|
22
21
|
### Optional
|
|
23
22
|
|
|
@@ -42,8 +41,8 @@ No cloning required. Downloads the latest version and runs the installer automat
|
|
|
42
41
|
If you prefer to clone the repo first:
|
|
43
42
|
|
|
44
43
|
```bash
|
|
45
|
-
git clone https://github.com/fjpulidop/specrails.git
|
|
46
|
-
./specrails/install.sh --root-dir <your-project>
|
|
44
|
+
git clone https://github.com/fjpulidop/specrails-core.git
|
|
45
|
+
./specrails-core/install.sh --root-dir <your-project>
|
|
47
46
|
```
|
|
48
47
|
|
|
49
48
|
### From curl
|
|
@@ -51,7 +50,7 @@ git clone https://github.com/fjpulidop/specrails.git
|
|
|
51
50
|
Alternatively, pipe the installer directly:
|
|
52
51
|
|
|
53
52
|
```bash
|
|
54
|
-
curl -sL https://raw.githubusercontent.com/fjpulidop/specrails/main/install.sh | bash
|
|
53
|
+
curl -sL https://raw.githubusercontent.com/fjpulidop/specrails-core/main/install.sh | bash
|
|
55
54
|
```
|
|
56
55
|
|
|
57
56
|
> **Important:** Always run the installer from the **target repository** — the project where you want SpecRails installed. If you run it from inside the SpecRails source repo, the installer will detect this and prompt you for the correct target path.
|
|
@@ -62,8 +61,7 @@ curl -sL https://raw.githubusercontent.com/fjpulidop/specrails/main/install.sh |
|
|
|
62
61
|
2. **Detects existing setup** — warns if `.claude/agents/`, `.claude/commands/`, or `openspec/` already exist
|
|
63
62
|
3. **Installs artifacts:**
|
|
64
63
|
- `.claude/commands/setup.md` — the `/setup` wizard
|
|
65
|
-
- `.claude/setup-templates/` —
|
|
66
|
-
- `.claude/web-manager/` — Pipeline Monitor dashboard
|
|
64
|
+
- `.claude/setup-templates/` — agent and command templates (temporary, removed after `/setup`)
|
|
67
65
|
- `.claude/security-exemptions.yaml` — security scanner config
|
|
68
66
|
- OpenSpec initialization (if CLI available)
|
|
69
67
|
4. **Tracks version** — writes `.specrails-version` and `.specrails-manifest.json`
|
|
@@ -75,7 +73,6 @@ The installer only copies files. It does not:
|
|
|
75
73
|
- Modify your existing code
|
|
76
74
|
- Create commits
|
|
77
75
|
- Push to any remote
|
|
78
|
-
- Install npm dependencies (you do this manually for the web manager)
|
|
79
76
|
|
|
80
77
|
---
|
|
81
78
|
|
|
@@ -87,6 +84,19 @@ After installation, open Claude Code in your project and run:
|
|
|
87
84
|
/setup
|
|
88
85
|
```
|
|
89
86
|
|
|
87
|
+
There are two modes:
|
|
88
|
+
|
|
89
|
+
| Mode | Command | When to use |
|
|
90
|
+
|------|---------|-------------|
|
|
91
|
+
| **Full wizard** (default) | `/setup` | Deep stack analysis, researched personas, fully adapted agents — takes 5–10 min |
|
|
92
|
+
| **Lite** | `/setup --lite` | Fastest path — 3 questions, sensible defaults, done in under a minute |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Full Wizard (default)
|
|
97
|
+
|
|
98
|
+
The full 5-phase wizard — takes 5–10 minutes and produces deeply adapted agents.
|
|
99
|
+
|
|
90
100
|
### Phase 1: Codebase Analysis
|
|
91
101
|
|
|
92
102
|
The wizard scans your project to detect:
|
|
@@ -116,10 +126,10 @@ Interactive prompts for:
|
|
|
116
126
|
|
|
117
127
|
| Setting | Options |
|
|
118
128
|
|---------|---------|
|
|
119
|
-
| **Backlog provider** | GitHub Issues, JIRA, or none |
|
|
129
|
+
| **Backlog provider** | Local tickets (default), GitHub Issues, JIRA, or none |
|
|
120
130
|
| **Access mode** | Read-write or read-only |
|
|
121
131
|
| **Git workflow** | Trunk-based, Git Flow, or custom |
|
|
122
|
-
| **Agents** | Which agents to enable |
|
|
132
|
+
| **Agents** | Which agents to enable (up to 14) |
|
|
123
133
|
| **Commands** | Which commands to install |
|
|
124
134
|
|
|
125
135
|
### Phase 4: File Generation
|
|
@@ -132,7 +142,7 @@ The wizard fills all templates with your project-specific context:
|
|
|
132
142
|
- `{{BACKEND_TECH_LIST}}` → your backend technologies
|
|
133
143
|
- Every `{{PLACEHOLDER}}` resolved with real data
|
|
134
144
|
|
|
135
|
-
**Generated files:**
|
|
145
|
+
**Generated files (full set):**
|
|
136
146
|
|
|
137
147
|
```
|
|
138
148
|
.claude/
|
|
@@ -145,13 +155,19 @@ The wizard fills all templates with your project-specific context:
|
|
|
145
155
|
│ ├── sr-test-writer.md # Uses your test framework
|
|
146
156
|
│ ├── sr-security-reviewer.md # Scans your patterns
|
|
147
157
|
│ ├── sr-doc-sync.md # Updates your doc format
|
|
158
|
+
│ ├── sr-backend-developer.md # Backend-specialized
|
|
159
|
+
│ ├── sr-frontend-developer.md # Frontend-specialized
|
|
160
|
+
│ ├── sr-backend-reviewer.md # Backend quality audit
|
|
161
|
+
│ ├── sr-frontend-reviewer.md # Frontend quality audit
|
|
162
|
+
│ ├── sr-merge-resolver.md # AI-powered conflict resolution
|
|
163
|
+
│ ├── sr-performance-reviewer.md # Performance regression detection
|
|
148
164
|
│ └── [personas].md # Your user personas
|
|
149
165
|
├── commands/
|
|
150
166
|
│ └── sr/
|
|
151
167
|
│ ├── implement.md
|
|
152
168
|
│ ├── product-backlog.md
|
|
153
169
|
│ ├── batch-implement.md
|
|
154
|
-
│ └── ...
|
|
170
|
+
│ └── ... # 17 commands total
|
|
155
171
|
├── rules/
|
|
156
172
|
│ ├── backend.md
|
|
157
173
|
│ ├── frontend.md
|
|
@@ -171,24 +187,24 @@ After this phase, `/setup` is no longer available — your workflow is ready.
|
|
|
171
187
|
|
|
172
188
|
---
|
|
173
189
|
|
|
174
|
-
|
|
190
|
+
### Lite Mode (`/setup --lite`)
|
|
175
191
|
|
|
176
|
-
|
|
192
|
+
The quick path — three questions, sensible defaults, done in under a minute.
|
|
177
193
|
|
|
178
|
-
|
|
194
|
+
1. What is this project? (one sentence)
|
|
195
|
+
2. Who are the target users?
|
|
196
|
+
3. Git access for agents — read-only or read-write?
|
|
179
197
|
|
|
180
|
-
|
|
181
|
-
cd .claude/web-manager && npm install
|
|
182
|
-
cd client && npm install
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### Run
|
|
198
|
+
**What gets installed:**
|
|
186
199
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
200
|
+
| Item | Detail |
|
|
201
|
+
|------|--------|
|
|
202
|
+
| Core agents | sr-architect, sr-developer, sr-reviewer, sr-product-manager |
|
|
203
|
+
| All workflow commands | `/sr:implement`, `/sr:product-backlog`, and 14 more |
|
|
204
|
+
| Backlog storage | Local tickets (`.claude/local-tickets.json`) — no GitHub or JIRA required |
|
|
205
|
+
| CLAUDE.md | Project-level context for agents |
|
|
190
206
|
|
|
191
|
-
|
|
207
|
+
You can run the full wizard later to deepen configuration: personas, stack analysis, layer-specific conventions.
|
|
192
208
|
|
|
193
209
|
---
|
|
194
210
|
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Local Ticket Management
|
|
2
|
+
|
|
3
|
+
specrails-core ships with a built-in, file-based ticket management system. It is the **default backlog provider** — no GitHub account, CLI tool, or external service required.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Tickets live in `.claude/local-tickets.json` at your project root. Because it's a plain JSON file, tickets are:
|
|
10
|
+
|
|
11
|
+
- **Version-controlled** — tracked by git, diffable in PRs
|
|
12
|
+
- **Offline-first** — no network calls, no rate limits
|
|
13
|
+
- **Tool-agnostic** — readable by any script or editor
|
|
14
|
+
|
|
15
|
+
The file is read and written by specrails-core during command execution.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Storage format
|
|
20
|
+
|
|
21
|
+
`.claude/local-tickets.json`:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"schema_version": "1.0",
|
|
26
|
+
"revision": 7,
|
|
27
|
+
"last_updated": "2026-03-23T10:00:00.000Z",
|
|
28
|
+
"next_id": 8,
|
|
29
|
+
"tickets": {
|
|
30
|
+
"1": {
|
|
31
|
+
"id": 1,
|
|
32
|
+
"title": "Add dark mode",
|
|
33
|
+
"description": "Support system-level dark mode preference via CSS variables.",
|
|
34
|
+
"status": "todo",
|
|
35
|
+
"priority": "medium",
|
|
36
|
+
"labels": ["area:frontend", "effort:medium"],
|
|
37
|
+
"assignee": null,
|
|
38
|
+
"prerequisites": [],
|
|
39
|
+
"metadata": {
|
|
40
|
+
"vpc_scores": { "persona-a": 4, "persona-b": 3 },
|
|
41
|
+
"effort_level": "Medium",
|
|
42
|
+
"user_story": "As a user working at night, I want dark mode...",
|
|
43
|
+
"area": "frontend"
|
|
44
|
+
},
|
|
45
|
+
"comments": [],
|
|
46
|
+
"created_at": "2026-03-20T09:00:00.000Z",
|
|
47
|
+
"updated_at": "2026-03-20T09:00:00.000Z",
|
|
48
|
+
"created_by": "sr-product-manager",
|
|
49
|
+
"source": "product-backlog"
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Field reference
|
|
56
|
+
|
|
57
|
+
**Root fields**
|
|
58
|
+
|
|
59
|
+
| Field | Type | Description |
|
|
60
|
+
|-------|------|-------------|
|
|
61
|
+
| `schema_version` | string | Always `"1.0"` for the current format |
|
|
62
|
+
| `revision` | number | Incremented on every write — used for optimistic concurrency control |
|
|
63
|
+
| `last_updated` | ISO-8601 | Timestamp of the most recent mutation |
|
|
64
|
+
| `next_id` | number | Auto-increment counter for new ticket IDs |
|
|
65
|
+
| `tickets` | object | Map of ticket ID (as string) → ticket object |
|
|
66
|
+
|
|
67
|
+
**Ticket fields**
|
|
68
|
+
|
|
69
|
+
| Field | Type | Values | Description |
|
|
70
|
+
|-------|------|--------|-------------|
|
|
71
|
+
| `id` | number | Auto-assigned | Numeric ID, referenced as `#<id>` |
|
|
72
|
+
| `title` | string | — | Short title |
|
|
73
|
+
| `description` | string | Markdown | Full description |
|
|
74
|
+
| `status` | string | `todo`, `in_progress`, `done`, `cancelled` | Current state |
|
|
75
|
+
| `priority` | string | `critical`, `high`, `medium`, `low` | Priority level |
|
|
76
|
+
| `labels` | string[] | Freeform | Tag strings; convention: `area:*`, `effort:*` |
|
|
77
|
+
| `assignee` | string\|null | — | Agent name or user, if assigned |
|
|
78
|
+
| `prerequisites` | number[] | — | IDs of tickets that must be done first |
|
|
79
|
+
| `metadata` | object | — | VPC scores, effort level, user story, area (set by agents) |
|
|
80
|
+
| `comments` | array | — | Progress notes appended during implementation |
|
|
81
|
+
| `created_at` | ISO-8601 | — | Creation timestamp |
|
|
82
|
+
| `updated_at` | ISO-8601 | — | Last mutation timestamp |
|
|
83
|
+
| `created_by` | string | — | Agent name or `"user"` |
|
|
84
|
+
| `source` | string | `manual`, `product-backlog`, `propose-spec` | How the ticket was created |
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Setup
|
|
89
|
+
|
|
90
|
+
Local tickets become the default during `/setup`. The wizard prompts:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
## Backlog Provider
|
|
94
|
+
|
|
95
|
+
Use local ticket management or connect an external provider?
|
|
96
|
+
|
|
97
|
+
1. Local tickets (default, recommended) — lightweight JSON-based ticket management.
|
|
98
|
+
No external tools or accounts required.
|
|
99
|
+
2. External provider — connect GitHub Issues, JIRA, or disable backlog commands
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Pressing **Enter** or selecting **1** initializes `.claude/local-tickets.json` with an empty ticket store and writes `.claude/backlog-config.json`:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"provider": "local",
|
|
107
|
+
"write_access": true,
|
|
108
|
+
"git_auto": true
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
To switch providers later, re-run the setup wizard:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
npx specrails-core@latest init --root-dir .
|
|
116
|
+
> /setup
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Concurrency model
|
|
122
|
+
|
|
123
|
+
Multiple agents can modify `local-tickets.json` simultaneously. The system uses two complementary mechanisms:
|
|
124
|
+
|
|
125
|
+
### Advisory file lock
|
|
126
|
+
|
|
127
|
+
Before every write, the agent creates `.claude/local-tickets.json.lock`:
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"agent": "sr-product-manager",
|
|
132
|
+
"timestamp": "2026-03-23T10:00:00.000Z"
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
If the lock file already exists:
|
|
137
|
+
- **Fresh lock** (< 30 seconds old): wait 500 ms and retry, up to 5 attempts
|
|
138
|
+
- **Stale lock** (≥ 30 seconds old): treat as orphaned, delete it, proceed
|
|
139
|
+
|
|
140
|
+
The lock is deleted immediately after the write completes. The window is minimal: read → modify in memory → write → release.
|
|
141
|
+
|
|
142
|
+
### Revision counter
|
|
143
|
+
|
|
144
|
+
Every write increments `revision`. Readers that want to detect external changes compare the `revision` they last saw against the current value.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Command integration
|
|
149
|
+
|
|
150
|
+
### `/sr:implement`
|
|
151
|
+
|
|
152
|
+
Pass local ticket IDs the same way you would GitHub issue numbers:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
/sr:implement #1, #4, #7
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The command reads each ticket from `local-tickets.json`, extracts metadata (area, effort, description), and tracks the ticket through the pipeline — updating status to `in_progress` on start and `done` on successful completion.
|
|
159
|
+
|
|
160
|
+
### `/sr:product-backlog`
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
/sr:product-backlog # all areas
|
|
164
|
+
/sr:product-backlog UI, Backend # filter by area
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Reads all `todo` and `in_progress` tickets, scores them by VPC match, respects the `prerequisites` dependency graph, and recommends the top 3 for your next sprint.
|
|
168
|
+
|
|
169
|
+
### `/sr:update-product-driven-backlog`
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
/sr:update-product-driven-backlog # explore all areas
|
|
173
|
+
/sr:update-product-driven-backlog Analytics # focus on one area
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Runs product discovery using your VPC personas. Creates new local tickets for discovered feature ideas, tagged with `source: "product-backlog"` and `labels: ["product-driven-backlog", "area:<area>"]`. Existing tickets are checked for duplicates before creating new ones.
|
|
177
|
+
|
|
178
|
+
### `/sr:propose-spec`
|
|
179
|
+
|
|
180
|
+
When a proposal is finalized, a local ticket is created automatically:
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
Created local ticket #12: Add analytics export
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
The ticket captures the full proposal as its description and is tagged `source: "propose-spec"` with the label `spec-proposal`.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Migrating from GitHub Issues or JIRA
|
|
191
|
+
|
|
192
|
+
See the [Migration Guide](./migration-guide.md).
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Migration Guide: Switching to Local Tickets
|
|
2
|
+
|
|
3
|
+
This guide is for teams currently using GitHub Issues or JIRA as their specrails backlog provider who want to switch to the built-in local ticket system.
|
|
4
|
+
|
|
5
|
+
Switching is optional. GitHub Issues and JIRA remain fully supported. Local tickets are the recommended default for new projects.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Should you switch?
|
|
10
|
+
|
|
11
|
+
**Switch to local tickets if:**
|
|
12
|
+
- Your team prefers a simple, zero-dependency setup
|
|
13
|
+
- You want tickets version-controlled alongside your code
|
|
14
|
+
- You don't need GitHub/JIRA for other workflows (project boards, external stakeholders)
|
|
15
|
+
|
|
16
|
+
**Stay on GitHub Issues / JIRA if:**
|
|
17
|
+
- Other teams or stakeholders manage tickets in those tools
|
|
18
|
+
- You rely on GitHub Projects, Milestones, or JIRA sprints
|
|
19
|
+
- You want PR auto-close on issue merge (requires GitHub Issues)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Step 1: Switch the provider
|
|
24
|
+
|
|
25
|
+
Edit `.claude/backlog-config.json` in your project root:
|
|
26
|
+
|
|
27
|
+
```json
|
|
28
|
+
{
|
|
29
|
+
"provider": "local",
|
|
30
|
+
"write_access": true,
|
|
31
|
+
"git_auto": true
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Then initialize the ticket store if it doesn't exist yet:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Inside Claude Code or Codex
|
|
39
|
+
/sr:implement --setup-local-tickets
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Or create the file manually:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
cat > .claude/local-tickets.json << 'EOF'
|
|
46
|
+
{
|
|
47
|
+
"schema_version": "1.0",
|
|
48
|
+
"revision": 0,
|
|
49
|
+
"last_updated": null,
|
|
50
|
+
"next_id": 1,
|
|
51
|
+
"tickets": {}
|
|
52
|
+
}
|
|
53
|
+
EOF
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Step 2: Import existing issues (one-time migration)
|
|
59
|
+
|
|
60
|
+
### From GitHub Issues
|
|
61
|
+
|
|
62
|
+
Use the `sr:migrate-from-github` command (requires `gh` CLI):
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Inside Claude Code
|
|
66
|
+
/sr:migrate-from-github
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
This command:
|
|
70
|
+
1. Fetches all open issues labeled `product-driven-backlog` (the label specrails uses)
|
|
71
|
+
2. Maps GitHub issue fields to local ticket schema:
|
|
72
|
+
- `number` → `id` (uses next available local ID)
|
|
73
|
+
- `title` → `title`
|
|
74
|
+
- `body` → `description`
|
|
75
|
+
- `labels` → `labels`
|
|
76
|
+
- `state: open` → `status: todo`
|
|
77
|
+
3. Writes each ticket to `local-tickets.json`
|
|
78
|
+
4. Prints a summary: `Imported 14 tickets from GitHub Issues`
|
|
79
|
+
|
|
80
|
+
To import all open issues regardless of label:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
/sr:migrate-from-github --all
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
To do a dry run (preview without writing):
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
/sr:migrate-from-github --dry-run
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**After import:** Your GitHub Issues are unchanged. The migration is additive — it only creates local tickets. You can continue using GitHub Issues in parallel until you're ready to stop.
|
|
93
|
+
|
|
94
|
+
### From JIRA
|
|
95
|
+
|
|
96
|
+
Use the `sr:migrate-from-jira` command (requires `jira` CLI or REST API credentials in `.claude/backlog-config.json`):
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
# Inside Claude Code
|
|
100
|
+
/sr:migrate-from-jira
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
This command:
|
|
104
|
+
1. Fetches all open issues from the configured JIRA project
|
|
105
|
+
2. Maps JIRA fields to local ticket schema:
|
|
106
|
+
- Issue key (`PROJECT-123`) → stored in `metadata.jira_key`
|
|
107
|
+
- `summary` → `title`
|
|
108
|
+
- `description` → `description`
|
|
109
|
+
- `priority` → `priority` (Critical/High/Medium/Low mapped directly)
|
|
110
|
+
- `status: To Do / Backlog` → `status: todo`
|
|
111
|
+
- `status: In Progress` → `status: in_progress`
|
|
112
|
+
- `labels` → `labels`
|
|
113
|
+
3. Writes each ticket to `local-tickets.json`
|
|
114
|
+
|
|
115
|
+
The original JIRA key is preserved in `metadata.jira_key` so you can cross-reference during the transition.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Step 3: Regenerate commands (optional but recommended)
|
|
120
|
+
|
|
121
|
+
Command templates are generated at `/setup` time with provider-specific instructions baked in. After switching providers, regenerate them so commands use the local file operations instead of GitHub/JIRA CLI calls:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
npx specrails-core@latest init --root-dir .
|
|
125
|
+
> /setup --update
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The `--update` flag regenerates only the backlog commands (`product-backlog`, `update-product-driven-backlog`, `implement`) without re-running the full stack analysis.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Rollback
|
|
133
|
+
|
|
134
|
+
To revert to GitHub Issues:
|
|
135
|
+
|
|
136
|
+
1. Edit `.claude/backlog-config.json` and set `"provider": "github"`
|
|
137
|
+
2. Re-run `/setup --update` to regenerate commands
|
|
138
|
+
3. Your `local-tickets.json` is preserved — switch back any time
|
|
139
|
+
|
|
140
|
+
Local tickets and external provider data are independent. Switching providers does not delete tickets from either system.
|
|
@@ -40,7 +40,6 @@ Epic: [SPEA-505](/SPEA/issues/SPEA-505) — Codex Compatibility Approach B
|
|
|
40
40
|
| SKILL.md format `.claude/skills/sr-*/` | ✅ | ✅ |
|
|
41
41
|
| `sr:implement` skill | ✅ | ✅ |
|
|
42
42
|
| `sr:product-backlog` skill | ✅ | ✅ |
|
|
43
|
-
| `sr:health-check` skill | ✅ | ✅ |
|
|
44
43
|
| `sr:compat-check` skill | ✅ | ✅ |
|
|
45
44
|
| `sr:why` skill | ✅ | ✅ |
|
|
46
45
|
| `sr:refactor-recommender` skill | ✅ | ✅ |
|
|
@@ -174,18 +174,6 @@ The Product Manager researches your competitive landscape, generates 2–4 featu
|
|
|
174
174
|
|
|
175
175
|
## Analysis and inspection
|
|
176
176
|
|
|
177
|
-
### `/sr:health-check` ✅ Both
|
|
178
|
-
|
|
179
|
-
Run a comprehensive codebase quality analysis.
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
/sr:health-check
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Analyzes code quality, test coverage, technical debt, complexity, and dependency health. Compares with previous runs to detect regressions.
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
177
|
### `/sr:refactor-recommender` ✅ Both
|
|
190
178
|
|
|
191
179
|
Scan the codebase for refactoring opportunities, ranked by impact/effort ratio.
|
|
@@ -31,7 +31,6 @@ SpecRails Skills use `SKILL.md` format, which is shared between Codex and Claude
|
|
|
31
31
|
|
|
32
32
|
- `/sr:implement` — full pipeline (design → code → review → PR)
|
|
33
33
|
- `/sr:product-backlog` — VPC-ranked backlog view
|
|
34
|
-
- `/sr:health-check` — codebase quality analysis
|
|
35
34
|
- `/opsx:ff` — OpenSpec fast-forward
|
|
36
35
|
- All other workflow skills
|
|
37
36
|
|
package/docs/user-docs/faq.md
CHANGED
|
@@ -14,17 +14,20 @@ It creates a `.claude/` directory with agent templates, commands, and configurat
|
|
|
14
14
|
|
|
15
15
|
Yes. Node 18+ is required to run `npx specrails-core@latest`. Once installed, SpecRails works with any language or framework — the agents adapt to whatever stack your project uses.
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**Do I need GitHub Issues?**
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
No. SpecRails ships with a built-in local ticket system — no GitHub account required. Local tickets are the default. Commands like `/sr:implement` accept ticket IDs or plain text:
|
|
20
20
|
|
|
21
21
|
```
|
|
22
|
+
/sr:implement #1, #4
|
|
22
23
|
/sr:implement "add rate limiting to the API"
|
|
23
24
|
```
|
|
24
25
|
|
|
26
|
+
You can switch to GitHub Issues or JIRA during `/setup` (Phase 3) if you prefer.
|
|
27
|
+
|
|
25
28
|
**How long does /setup take?**
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
The full wizard takes about 5 minutes — most of the time is Phase 2 (persona research via web search). For a faster start, use `/setup --lite`: three questions, under a minute, no web research.
|
|
28
31
|
|
|
29
32
|
---
|
|
30
33
|
|
|
@@ -4,6 +4,8 @@ Install SpecRails into any git repository in two steps: run the installer, then
|
|
|
4
4
|
|
|
5
5
|
SpecRails supports both **Claude Code** and **OpenAI Codex**. The installer detects which CLI you have and configures accordingly. See [Codex vs Claude Code](codex-vs-claude-code.md) for a feature comparison.
|
|
6
6
|
|
|
7
|
+
> **Looking for the comprehensive reference?** See [Installation & Setup](../installation.md) for full wizard phase details and advanced configuration.
|
|
8
|
+
|
|
7
9
|
## Requirements
|
|
8
10
|
|
|
9
11
|
| Tool | Version | Notes |
|
|
@@ -63,7 +65,6 @@ your-project/
|
|
|
63
65
|
├── skills/ # Workflow skills (/sr:*, /opsx:*)
|
|
64
66
|
├── agents/ # Agent definitions
|
|
65
67
|
├── rules/ # Per-layer coding conventions
|
|
66
|
-
├── web-manager/ # Pipeline Monitor dashboard (optional)
|
|
67
68
|
└── settings.json # Permissions
|
|
68
69
|
```
|
|
69
70
|
|
|
@@ -95,7 +96,7 @@ codex # Codex
|
|
|
95
96
|
/setup
|
|
96
97
|
```
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
By default, `/setup` runs the full 5-phase wizard:
|
|
99
100
|
|
|
100
101
|
| Phase | What happens |
|
|
101
102
|
|-------|-------------|
|
|
@@ -105,6 +106,8 @@ The wizard runs 5 phases:
|
|
|
105
106
|
| **4. Generate** | Fills all templates with your project-specific context |
|
|
106
107
|
| **5. Cleanup** | Removes setup files, leaving only your tailored workflow |
|
|
107
108
|
|
|
109
|
+
**In a hurry?** Run `/setup --lite` instead — three questions, sensible defaults, done in under a minute.
|
|
110
|
+
|
|
108
111
|
After setup, `.claude/` contains fully configured agents and commands ready to use. The `/setup` command removes itself — it only runs once.
|
|
109
112
|
|
|
110
113
|
## Verify
|
|
@@ -181,4 +184,4 @@ npx specrails-core@latest init --root-dir . --provider codex
|
|
|
181
184
|
|
|
182
185
|
---
|
|
183
186
|
|
|
184
|
-
[Quick Start →](quick-start.md) · [Getting Started (Codex) →](getting-started-codex.md) · [CLI Reference →](cli-reference.md)
|
|
187
|
+
[← Getting Started](../getting-started.md) · [Quick Start →](quick-start.md) · [Getting Started (Codex) →](getting-started-codex.md) · [CLI Reference →](cli-reference.md)
|
|
@@ -46,7 +46,7 @@ Then run:
|
|
|
46
46
|
/setup
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
The wizard runs
|
|
49
|
+
The wizard runs the full 5-phase setup (about 5 minutes). It analyzes your codebase and configures SpecRails for your specific project:
|
|
50
50
|
|
|
51
51
|
```
|
|
52
52
|
Phase 1/5 Analyzing codebase...
|
|
@@ -59,14 +59,14 @@ Phase 2/5 Generating user personas...
|
|
|
59
59
|
→ Created 3 VPC profiles
|
|
60
60
|
|
|
61
61
|
Phase 3/5 Configuration...
|
|
62
|
-
→ Backlog provider:
|
|
62
|
+
→ Backlog provider: local
|
|
63
63
|
→ Git workflow: trunk-based
|
|
64
64
|
|
|
65
65
|
Phase 4/5 Generating files...
|
|
66
66
|
→ sr-architect.md (adapted to your stack)
|
|
67
67
|
→ sr-developer.md (knows your CI commands)
|
|
68
68
|
→ sr-reviewer.md (runs your specific checks)
|
|
69
|
-
→
|
|
69
|
+
→ 11 more agents
|
|
70
70
|
|
|
71
71
|
Phase 5/5 Cleanup complete. /setup removed.
|
|
72
72
|
|
|
@@ -75,6 +75,8 @@ Phase 5/5 Cleanup complete. /setup removed.
|
|
|
75
75
|
|
|
76
76
|
After setup, the `/setup` command is gone — it's a one-time wizard.
|
|
77
77
|
|
|
78
|
+
**In a hurry?** Use `/setup --lite` for a 3-question quick setup (under a minute). You can always run the full wizard later.
|
|
79
|
+
|
|
78
80
|
## Step 3: Implement your first feature
|
|
79
81
|
|
|
80
82
|
Pick something small. Either reference a GitHub Issue or describe it in plain text:
|
|
@@ -129,7 +131,7 @@ One command. The PR is ready for human review.
|
|
|
129
131
|
/sr:product-backlog
|
|
130
132
|
```
|
|
131
133
|
|
|
132
|
-
See your
|
|
134
|
+
See your tickets ranked by persona fit and effort. The top 3 are safe to implement next. Uses local tickets by default.
|
|
133
135
|
|
|
134
136
|
**Generate new feature ideas:**
|
|
135
137
|
|
|
@@ -137,7 +139,7 @@ See your GitHub Issues ranked by persona fit and effort. The top 3 are safe to i
|
|
|
137
139
|
/sr:update-product-driven-backlog
|
|
138
140
|
```
|
|
139
141
|
|
|
140
|
-
The Product Manager researches your competitive landscape and creates
|
|
142
|
+
The Product Manager researches your competitive landscape and creates new tickets (local by default, or GitHub Issues if configured).
|
|
141
143
|
|
|
142
144
|
**Run multiple features in parallel:**
|
|
143
145
|
|
|
@@ -157,4 +159,4 @@ Agents record their reasoning as they work. `/sr:why` searches those records in
|
|
|
157
159
|
|
|
158
160
|
---
|
|
159
161
|
|
|
160
|
-
[← Installation](installation.md) · [CLI Reference →](cli-reference.md) · [FAQ →](faq.md)
|
|
162
|
+
[← Getting Started](../getting-started.md) · [← Installation](installation.md) · [CLI Reference →](cli-reference.md) · [FAQ →](faq.md)
|
package/docs/workflows.md
CHANGED
|
@@ -126,7 +126,7 @@ View your prioritized product backlog, ranked by VPC fit and effort.
|
|
|
126
126
|
|
|
127
127
|
### What it shows
|
|
128
128
|
|
|
129
|
-
The Product Analyst reads your GitHub Issues
|
|
129
|
+
The Product Analyst reads your backlog (local tickets in `.claude/local-tickets.json` by default, or GitHub Issues labeled `product-driven-backlog` if configured) and produces:
|
|
130
130
|
|
|
131
131
|
- **Backlog table** per area — sorted by Total Persona Score
|
|
132
132
|
- **Top 3 recommendations** — ranked by VPC score / effort ratio, filtered to Wave 1 of the safe implementation order
|
|
@@ -166,19 +166,7 @@ Generate new feature ideas through product discovery. The Product Manager (Opus)
|
|
|
166
166
|
2. Researches competitors via web search
|
|
167
167
|
3. Generates 2–4 feature ideas per area
|
|
168
168
|
4. Scores each against every persona (0–5)
|
|
169
|
-
5. Creates GitHub Issues
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## `/sr:health-check`
|
|
174
|
-
|
|
175
|
-
Run a comprehensive codebase quality analysis.
|
|
176
|
-
|
|
177
|
-
```
|
|
178
|
-
/sr:health-check
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
Analyzes code quality, test coverage, technical debt, and dependency health. Compares with previous runs to detect regressions.
|
|
169
|
+
5. Creates tickets in your active backlog provider (local tickets by default; GitHub Issues or JIRA if configured) or displays for manual creation
|
|
182
170
|
|
|
183
171
|
---
|
|
184
172
|
|