specrails-core 3.4.1 → 3.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 +10 -10
- package/bin/doctor.sh +1 -1
- package/commands/doctor.md +1 -1
- package/commands/setup.md +32 -32
- package/docs/README.md +1 -1
- package/docs/agents.md +2 -2
- package/docs/changelog.md +2 -2
- package/docs/concepts.md +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/installation.md +2 -2
- package/docs/local-tickets.md +9 -9
- package/docs/migration-guide.md +1 -1
- package/docs/playbook-parallel-dev.md +5 -5
- package/docs/playbook-product-discovery.md +1 -1
- package/docs/research/codex-compatibility-analysis.md +1 -1
- package/docs/research/mcp-feasibility-analysis.md +1 -1
- package/docs/testing/test-matrix-codex.md +2 -2
- package/docs/user-docs/cli-reference.md +6 -6
- package/docs/user-docs/codex-vs-claude-code.md +1 -1
- package/docs/user-docs/quick-start.md +2 -2
- package/docs/workflows.md +6 -6
- package/package.json +1 -1
- package/templates/agents/sr-product-analyst.md +1 -1
- package/templates/claude-md/CLAUDE-quickstart.md +1 -1
- package/templates/commands/specrails/{update-product-driven-backlog.md → auto-propose-backlog-specs.md} +6 -6
- package/templates/commands/specrails/doctor.md +1 -1
- package/templates/commands/specrails/{product-backlog.md → get-backlog-specs.md} +4 -4
- package/templates/commands/specrails/propose-spec.md +1 -1
- package/templates/commands/specrails/setup.md +32 -32
- package/templates/commands/specrails/vpc-drift.md +2 -2
- package/templates/skills/{sr-update-backlog → sr-auto-propose-backlog-specs}/SKILL.md +7 -7
- package/templates/skills/{sr-product-backlog → sr-get-backlog-specs}/SKILL.md +5 -5
- package/update.sh +2 -2
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ npx specrails-core@latest init --root-dir . # copy project files
|
|
|
57
57
|
> /specrails:implement "add user authentication"
|
|
58
58
|
> /specrails:implement #1, #2 # from local tickets (default)
|
|
59
59
|
> /specrails:implement #42, #43 # from GitHub Issues (if configured)
|
|
60
|
-
> /specrails:
|
|
60
|
+
> /specrails:auto-propose-backlog-specs # discover new features with AI
|
|
61
61
|
```
|
|
62
62
|
|
|
63
63
|
That's it. The pipeline takes over.
|
|
@@ -85,7 +85,7 @@ The plugin contains the logic (agent prompts, skills, commands). Running `/specr
|
|
|
85
85
|
| Category | Location | Purpose |
|
|
86
86
|
|----------|----------|---------|
|
|
87
87
|
| **Agents** | Plugin | 14 specialized AI agents |
|
|
88
|
-
| **Commands** | Plugin | 17 workflow commands: `/specrails:implement`, `/specrails:
|
|
88
|
+
| **Commands** | Plugin | 17 workflow commands: `/specrails:implement`, `/specrails:get-backlog-specs`, `/specrails:why`, and more |
|
|
89
89
|
| **Skills** | Plugin | OpenSpec skills (`/opsx:*`) included |
|
|
90
90
|
| **Hooks & References** | Plugin | Agent hooks, reference docs |
|
|
91
91
|
|
|
@@ -172,20 +172,20 @@ To discard without applying:
|
|
|
172
172
|
rm -rf .claude/.dry-run/add-dark-mode/
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
### `/specrails:
|
|
175
|
+
### `/specrails:get-backlog-specs` — View prioritized backlog
|
|
176
176
|
|
|
177
177
|
```bash
|
|
178
|
-
/specrails:
|
|
179
|
-
/specrails:
|
|
178
|
+
/specrails:get-backlog-specs # show all areas
|
|
179
|
+
/specrails:get-backlog-specs UI, Decks # filter by area
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
Reads your tickets (local or GitHub Issues), scores by VPC persona match, recommends top 3 for next sprint.
|
|
183
183
|
|
|
184
|
-
### `/specrails:
|
|
184
|
+
### `/specrails:auto-propose-backlog-specs` — Discover features
|
|
185
185
|
|
|
186
186
|
```bash
|
|
187
|
-
/specrails:
|
|
188
|
-
/specrails:
|
|
187
|
+
/specrails:auto-propose-backlog-specs # explore all areas
|
|
188
|
+
/specrails:auto-propose-backlog-specs Analytics # focus on one area
|
|
189
189
|
```
|
|
190
190
|
|
|
191
191
|
AI product discovery using your personas. Evaluates ideas, creates tickets (local or GitHub Issues) for the best ones.
|
|
@@ -202,8 +202,8 @@ Tickets live in `.claude/local-tickets.json` alongside your code. They're plain
|
|
|
202
202
|
|
|
203
203
|
```bash
|
|
204
204
|
/specrails:implement #1, #4 # implement by ticket ID
|
|
205
|
-
/specrails:
|
|
206
|
-
/specrails:
|
|
205
|
+
/specrails:get-backlog-specs # view prioritized backlog
|
|
206
|
+
/specrails:auto-propose-backlog-specs # discover and create tickets with AI
|
|
207
207
|
/specrails:propose-spec # create a ticket from a spec proposal
|
|
208
208
|
```
|
|
209
209
|
|
package/bin/doctor.sh
CHANGED
|
@@ -108,7 +108,7 @@ echo ""
|
|
|
108
108
|
|
|
109
109
|
if [[ "${FAIL}" -eq 0 ]]; then
|
|
110
110
|
TOTAL=$((PASS + FAIL))
|
|
111
|
-
echo -e "All ${TOTAL} checks passed. Run ${BOLD}/specrails:
|
|
111
|
+
echo -e "All ${TOTAL} checks passed. Run ${BOLD}/specrails:get-backlog-specs${NC} to get started."
|
|
112
112
|
else
|
|
113
113
|
echo "${FAIL} check(s) failed."
|
|
114
114
|
fi
|
package/commands/doctor.md
CHANGED
|
@@ -35,7 +35,7 @@ Each check is displayed as ✅ (pass) or ❌ (fail with fix instruction).
|
|
|
35
35
|
|
|
36
36
|
On all checks passed:
|
|
37
37
|
```
|
|
38
|
-
All 6 checks passed. Run /specrails:
|
|
38
|
+
All 6 checks passed. Run /specrails:get-backlog-specs to get started.
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
On failure:
|
package/commands/setup.md
CHANGED
|
@@ -56,7 +56,7 @@ Read the following files to understand the current installation state:
|
|
|
56
56
|
```bash
|
|
57
57
|
ls $SPECRAILS_DIR/setup-templates/commands/specrails/
|
|
58
58
|
```
|
|
59
|
-
Command template files include `implement.md`, `batch-implement.md`, `compat-check.md`, `refactor-recommender.md`, `why.md`, `
|
|
59
|
+
Command template files include `implement.md`, `batch-implement.md`, `compat-check.md`, `refactor-recommender.md`, `why.md`, `get-backlog-specs.md`, `auto-propose-backlog-specs.md`.
|
|
60
60
|
If this directory does not exist, skip command template checking for this update.
|
|
61
61
|
|
|
62
62
|
6. Read `$SPECRAILS_DIR/backlog-config.json` if it exists — contains stored provider configuration needed for command placeholder substitution.
|
|
@@ -420,8 +420,8 @@ Core commands (always install if missing):
|
|
|
420
420
|
- `propose-spec.md`
|
|
421
421
|
- `compat-check.md`
|
|
422
422
|
- `why.md`
|
|
423
|
-
- `
|
|
424
|
-
- `
|
|
423
|
+
- `get-backlog-specs.md`
|
|
424
|
+
- `auto-propose-backlog-specs.md`
|
|
425
425
|
|
|
426
426
|
**Initialize local ticket storage** (backlog provider defaults to `local`):
|
|
427
427
|
1. Copy `templates/local-tickets-schema.json` to `$SPECRAILS_DIR/local-tickets.json` and set `last_updated` to the current ISO-8601 timestamp. Skip if the file already exists.
|
|
@@ -462,16 +462,16 @@ After generating all files, display the setup complete message.
|
|
|
462
462
|
|
|
463
463
|
Then, based on `QS_IS_EXISTING_CODEBASE`:
|
|
464
464
|
- **Existing codebase** (`true`): recommend `/specrails:refactor-recommender`
|
|
465
|
-
- **New project** (`false`): recommend `/specrails:
|
|
465
|
+
- **New project** (`false`): recommend `/specrails:get-backlog-specs`
|
|
466
466
|
|
|
467
467
|
If `QS_IS_RERUN=false`, display:
|
|
468
468
|
```
|
|
469
469
|
✅ Setup complete.
|
|
470
470
|
|
|
471
471
|
Try your first command:
|
|
472
|
-
> /specrails:
|
|
472
|
+
> /specrails:get-backlog-specs
|
|
473
473
|
```
|
|
474
|
-
(Replace `/specrails:
|
|
474
|
+
(Replace `/specrails:get-backlog-specs` with `/specrails:refactor-recommender` for existing codebases.)
|
|
475
475
|
|
|
476
476
|
If `QS_IS_RERUN=true`, display the gap-fill summary and stop:
|
|
477
477
|
```
|
|
@@ -768,7 +768,7 @@ Local tickets are always read-write — there is no "read only" mode since the f
|
|
|
768
768
|
**Status values:** `todo`, `in_progress`, `done`, `cancelled`
|
|
769
769
|
**Priority values:** `critical`, `high`, `medium`, `low`
|
|
770
770
|
**Labels:** Freeform strings following the `area:*` and `effort:*` convention
|
|
771
|
-
**Source values:** `manual`, `
|
|
771
|
+
**Source values:** `manual`, `get-backlog-specs`, `propose-spec`
|
|
772
772
|
|
|
773
773
|
**Advisory file locking protocol** (CLI agents and hub server must both follow this):
|
|
774
774
|
|
|
@@ -913,7 +913,7 @@ Store the full configuration in `.claude/backlog-config.json`:
|
|
|
913
913
|
|
|
914
914
|
#### If None
|
|
915
915
|
|
|
916
|
-
- Skip `/specrails:
|
|
916
|
+
- Skip `/specrails:get-backlog-specs` and `/specrails:auto-propose-backlog-specs` commands.
|
|
917
917
|
- The `/specrails:implement` command will still work with text descriptions.
|
|
918
918
|
|
|
919
919
|
### 3.3 Git & shipping workflow
|
|
@@ -946,8 +946,8 @@ If automatic, also check if `gh` is authenticated (for PR creation). If not, war
|
|
|
946
946
|
| /specrails:implement | Full pipeline: sr-architect → sr-developer → sr-reviewer → ship | sr-architect + sr-developer + sr-reviewer |
|
|
947
947
|
| /specrails:batch-implement | Orchestrate multiple features in dependency-aware waves | sr-architect + sr-developer + sr-reviewer |
|
|
948
948
|
| /specrails:propose-spec | Interactively propose and refine a feature spec, then create a GitHub issue | GitHub CLI |
|
|
949
|
-
| /specrails:
|
|
950
|
-
| /specrails:
|
|
949
|
+
| /specrails:get-backlog-specs | View prioritized backlog with VPC scores | sr-product-analyst + Backlog provider |
|
|
950
|
+
| /specrails:auto-propose-backlog-specs | Generate new feature ideas via product discovery | sr-product-manager + Backlog provider |
|
|
951
951
|
| /specrails:compat-check | Snapshot API surface and detect breaking changes | None |
|
|
952
952
|
| /specrails:refactor-recommender | Scan for refactoring opportunities ranked by impact/effort | None |
|
|
953
953
|
| /specrails:why | Search past architectural decisions from agent memory | None |
|
|
@@ -1081,8 +1081,8 @@ For each selected command, read the template and adapt.
|
|
|
1081
1081
|
- `setup-templates/commands/specrails/implement.md` → `.claude/commands/specrails/implement.md`
|
|
1082
1082
|
- `setup-templates/commands/specrails/batch-implement.md` → `.claude/commands/specrails/batch-implement.md`
|
|
1083
1083
|
- `setup-templates/commands/specrails/propose-spec.md` → `.claude/commands/specrails/propose-spec.md`
|
|
1084
|
-
- `setup-templates/commands/specrails/
|
|
1085
|
-
- `setup-templates/commands/specrails/
|
|
1084
|
+
- `setup-templates/commands/specrails/get-backlog-specs.md` → `.claude/commands/specrails/get-backlog-specs.md` (if `BACKLOG_PROVIDER != none`)
|
|
1085
|
+
- `setup-templates/commands/specrails/auto-propose-backlog-specs.md` → `.claude/commands/specrails/auto-propose-backlog-specs.md` (if `BACKLOG_PROVIDER != none`)
|
|
1086
1086
|
- `setup-templates/commands/specrails/compat-check.md` → `.claude/commands/specrails/compat-check.md`
|
|
1087
1087
|
- `setup-templates/commands/specrails/refactor-recommender.md` → `.claude/commands/specrails/refactor-recommender.md`
|
|
1088
1088
|
- `setup-templates/commands/specrails/why.md` → `.claude/commands/specrails/why.md`
|
|
@@ -1091,8 +1091,8 @@ For each selected command, read the template and adapt.
|
|
|
1091
1091
|
- `setup-templates/skills/sr-implement/SKILL.md` → `.agents/skills/sr-implement/SKILL.md`
|
|
1092
1092
|
- `setup-templates/skills/sr-batch-implement/SKILL.md` → `.agents/skills/sr-batch-implement/SKILL.md`
|
|
1093
1093
|
- `setup-templates/commands/specrails/propose-spec.md` → `.agents/skills/sr-propose-spec/SKILL.md` (wrap with YAML frontmatter if no skill template exists)
|
|
1094
|
-
- `setup-templates/commands/specrails/
|
|
1095
|
-
- `setup-templates/commands/specrails/
|
|
1094
|
+
- `setup-templates/commands/specrails/get-backlog-specs.md` → `.agents/skills/sr-get-backlog-specs/SKILL.md` (if `BACKLOG_PROVIDER != none`; wrap with frontmatter)
|
|
1095
|
+
- `setup-templates/commands/specrails/auto-propose-backlog-specs.md` → `.agents/skills/sr-auto-propose-backlog-specs/SKILL.md` (if `BACKLOG_PROVIDER != none`; wrap with frontmatter)
|
|
1096
1096
|
- `setup-templates/skills/sr-compat-check/SKILL.md` → `.agents/skills/sr-compat-check/SKILL.md`
|
|
1097
1097
|
- `setup-templates/skills/sr-refactor-recommender/SKILL.md` → `.agents/skills/sr-refactor-recommender/SKILL.md`
|
|
1098
1098
|
- `setup-templates/skills/sr-why/SKILL.md` → `.agents/skills/sr-why/SKILL.md`
|
|
@@ -1121,7 +1121,7 @@ Adapt:
|
|
|
1121
1121
|
|
|
1122
1122
|
#### Backlog command persona placeholder substitution
|
|
1123
1123
|
|
|
1124
|
-
When adapting `
|
|
1124
|
+
When adapting `auto-propose-backlog-specs.md` and `get-backlog-specs.md`, substitute the persona placeholders based on the full persona set (user-generated personas + Maintainer if `IS_OSS=true`):
|
|
1125
1125
|
|
|
1126
1126
|
| Placeholder | Substitution rule |
|
|
1127
1127
|
|-------------|------------------|
|
|
@@ -1174,12 +1174,12 @@ All write operations must follow the **advisory file locking protocol** defined
|
|
|
1174
1174
|
- Pre-flight check: `gh auth status`
|
|
1175
1175
|
|
|
1176
1176
|
#### JIRA (`BACKLOG_PROVIDER=jira`)
|
|
1177
|
-
- Issue fetch: `jira issue list --project {{JIRA_PROJECT_KEY}} --type Story --label
|
|
1177
|
+
- Issue fetch: `jira issue list --project {{JIRA_PROJECT_KEY}} --type Story --label get-backlog-specs --status "To Do" --plain` or equivalent JIRA REST API call via curl:
|
|
1178
1178
|
```bash
|
|
1179
1179
|
curl -s -u "$JIRA_USER_EMAIL:$JIRA_API_TOKEN" \
|
|
1180
|
-
"{{JIRA_BASE_URL}}/rest/api/3/search?jql=project={{JIRA_PROJECT_KEY}} AND labels=
|
|
1180
|
+
"{{JIRA_BASE_URL}}/rest/api/3/search?jql=project={{JIRA_PROJECT_KEY}} AND labels=get-backlog-specs AND status='To Do'&fields=summary,description,labels,priority"
|
|
1181
1181
|
```
|
|
1182
|
-
- Issue create: `jira issue create --project {{JIRA_PROJECT_KEY}} --type Story --summary "..." --label
|
|
1182
|
+
- Issue create: `jira issue create --project {{JIRA_PROJECT_KEY}} --type Story --summary "..." --label get-backlog-specs --description "..."` or equivalent REST API call
|
|
1183
1183
|
- Issue view: `jira issue view {key}` or REST API
|
|
1184
1184
|
- VPC scores stored in the issue description body (same markdown format, parsed from description)
|
|
1185
1185
|
- Pre-flight check: `jira me` or test API connectivity
|
|
@@ -1374,8 +1374,8 @@ Display the complete installation summary:
|
|
|
1374
1374
|
| /specrails:implement | .claude/commands/specrails/implement.md |
|
|
1375
1375
|
| /specrails:batch-implement | .claude/commands/specrails/batch-implement.md |
|
|
1376
1376
|
| /specrails:propose-spec | .claude/commands/specrails/propose-spec.md |
|
|
1377
|
-
| /specrails:
|
|
1378
|
-
| /specrails:
|
|
1377
|
+
| /specrails:get-backlog-specs | .claude/commands/specrails/get-backlog-specs.md |
|
|
1378
|
+
| /specrails:auto-propose-backlog-specs | .claude/commands/specrails/auto-propose-backlog-specs.md |
|
|
1379
1379
|
| /specrails:compat-check | .claude/commands/specrails/compat-check.md |
|
|
1380
1380
|
| /specrails:refactor-recommender | .claude/commands/specrails/refactor-recommender.md |
|
|
1381
1381
|
| /specrails:why | .claude/commands/specrails/why.md |
|
|
@@ -1385,8 +1385,8 @@ Display the complete installation summary:
|
|
|
1385
1385
|
| $sr-implement | .agents/skills/sr-implement/SKILL.md |
|
|
1386
1386
|
| $sr-batch-implement | .agents/skills/sr-batch-implement/SKILL.md |
|
|
1387
1387
|
| $sr-propose-spec | .agents/skills/sr-propose-spec/SKILL.md |
|
|
1388
|
-
| $sr-
|
|
1389
|
-
| $sr-
|
|
1388
|
+
| $sr-get-backlog-specs | .agents/skills/sr-get-backlog-specs/SKILL.md |
|
|
1389
|
+
| $sr-auto-propose-backlog-specs | .agents/skills/sr-auto-propose-backlog-specs/SKILL.md |
|
|
1390
1390
|
| $sr-compat-check | .agents/skills/sr-compat-check/SKILL.md |
|
|
1391
1391
|
| $sr-refactor-recommender | .agents/skills/sr-refactor-recommender/SKILL.md |
|
|
1392
1392
|
| $sr-why | .agents/skills/sr-why/SKILL.md |
|
|
@@ -1410,26 +1410,26 @@ Note: Only commands/skills selected during setup are shown. Backlog commands are
|
|
|
1410
1410
|
### Next Steps
|
|
1411
1411
|
[If cli_provider == "claude":]
|
|
1412
1412
|
1. Review the generated files in .claude/
|
|
1413
|
-
2. Run `/specrails:
|
|
1414
|
-
3. Run `/specrails:
|
|
1413
|
+
2. Run `/specrails:get-backlog-specs` to see your backlog (if GitHub Issues exist)
|
|
1414
|
+
3. Run `/specrails:auto-propose-backlog-specs` to generate feature ideas
|
|
1415
1415
|
4. Run `/specrails:implement #issue-number` to implement a feature
|
|
1416
1416
|
5. Commit the .claude/ directory to version control
|
|
1417
1417
|
[If cli_provider == "codex":]
|
|
1418
1418
|
1. Review the generated files in .codex/ and .agents/skills/
|
|
1419
|
-
2. Run `$sr-
|
|
1420
|
-
3. Run `$sr-
|
|
1419
|
+
2. Run `$sr-get-backlog-specs` to see your backlog (if GitHub Issues exist)
|
|
1420
|
+
3. Run `$sr-auto-propose-backlog-specs` to generate feature ideas
|
|
1421
1421
|
4. Run `$sr-implement #issue-number` to implement a feature
|
|
1422
1422
|
5. Commit the .codex/ and .agents/ directories to version control
|
|
1423
1423
|
|
|
1424
1424
|
### Quick Start
|
|
1425
1425
|
[If cli_provider == "claude":]
|
|
1426
1426
|
- `/specrails:implement "describe a feature"` — implement something right now
|
|
1427
|
-
- `/specrails:
|
|
1428
|
-
- `/specrails:
|
|
1427
|
+
- `/specrails:get-backlog-specs` — see prioritized feature ideas
|
|
1428
|
+
- `/specrails:auto-propose-backlog-specs` — discover new features using VPC
|
|
1429
1429
|
[If cli_provider == "codex":]
|
|
1430
1430
|
- `$sr-implement "describe a feature"` — implement something right now
|
|
1431
|
-
- `$sr-
|
|
1432
|
-
- `$sr-
|
|
1431
|
+
- `$sr-get-backlog-specs` — see prioritized feature ideas
|
|
1432
|
+
- `$sr-auto-propose-backlog-specs` — discover new features using VPC
|
|
1433
1433
|
```
|
|
1434
1434
|
|
|
1435
1435
|
## First Task Prompt (Full Wizard)
|
|
@@ -1442,9 +1442,9 @@ After displaying the setup complete summary above, detect the project type and o
|
|
|
1442
1442
|
|
|
1443
1443
|
Try your first spec:
|
|
1444
1444
|
[If cli_provider == "claude":]
|
|
1445
|
-
> /specrails:
|
|
1445
|
+
> /specrails:get-backlog-specs
|
|
1446
1446
|
[If cli_provider == "codex":]
|
|
1447
|
-
> $sr-
|
|
1447
|
+
> $sr-get-backlog-specs
|
|
1448
1448
|
```
|
|
1449
1449
|
|
|
1450
1450
|
**Existing codebase** (one or more of the above files found in root):
|
package/docs/README.md
CHANGED
|
@@ -16,7 +16,7 @@ Welcome to the SpecRails docs. This guide will take you from zero to a fully aut
|
|
|
16
16
|
| [Installation & Setup](installation.md) | Detailed setup, prerequisites, the `/specrails:setup` wizard |
|
|
17
17
|
| [Plugin Architecture](plugin-architecture.md) | Plugin vs scaffold, what lives where, how updates work |
|
|
18
18
|
| [Agents](agents.md) | Every agent explained — role, when it runs, why it exists |
|
|
19
|
-
| [Workflows & Commands](workflows.md) | How to use `/specrails:implement`, `/specrails:
|
|
19
|
+
| [Workflows & Commands](workflows.md) | How to use `/specrails:implement`, `/specrails:get-backlog-specs`, and more |
|
|
20
20
|
| [Customization](customization.md) | Adapt agents, rules, personas, and conventions to your project |
|
|
21
21
|
| [Updating](updating.md) | Keep SpecRails up to date without losing your customizations |
|
|
22
22
|
|
package/docs/agents.md
CHANGED
|
@@ -21,7 +21,7 @@ The result: better quality at every stage, with clear accountability.
|
|
|
21
21
|
|-|-|
|
|
22
22
|
| **Color** | Blue |
|
|
23
23
|
| **Model** | Opus (creative reasoning) |
|
|
24
|
-
| **Trigger** | `/opsx:explore`, `/specrails:
|
|
24
|
+
| **Trigger** | `/opsx:explore`, `/specrails:auto-propose-backlog-specs` |
|
|
25
25
|
| **Role** | Feature ideation and product strategy |
|
|
26
26
|
|
|
27
27
|
The Product Manager is the **starting point** of the pipeline. It researches your competitive landscape (via web search), evaluates ideas against your user personas using the VPC framework, and produces prioritized feature recommendations.
|
|
@@ -42,7 +42,7 @@ The Product Manager is the **starting point** of the pipeline. It researches you
|
|
|
42
42
|
|-|-|
|
|
43
43
|
| **Color** | Cyan |
|
|
44
44
|
| **Model** | Haiku (fast, read-only) |
|
|
45
|
-
| **Trigger** | `/specrails:
|
|
45
|
+
| **Trigger** | `/specrails:get-backlog-specs` |
|
|
46
46
|
| **Role** | Backlog analysis and reporting |
|
|
47
47
|
|
|
48
48
|
The Product Analyst is a **read-only** agent. It reads your backlog, specs, and archived changes to produce structured reports. It never writes code or makes decisions — it just gives you the data.
|
package/docs/changelog.md
CHANGED
|
@@ -121,8 +121,8 @@ All commands renamed from `/<name>` to `/specrails:<name>`. All agent files rena
|
|
|
121
121
|
- `/specrails:batch-implement` — parallel multi-feature orchestrator using git worktrees
|
|
122
122
|
- `/specrails:health-check` — codebase quality dashboard with regression detection
|
|
123
123
|
- `/specrails:compat-check` — backwards compatibility analyzer and migration guide generator
|
|
124
|
-
- `/specrails:
|
|
125
|
-
- `/specrails:
|
|
124
|
+
- `/specrails:get-backlog-specs` — VPC-scored backlog view with safe implementation ordering
|
|
125
|
+
- `/specrails:auto-propose-backlog-specs` — AI-powered product discovery via personas
|
|
126
126
|
- `/specrails:refactor-recommender` — tech debt scanner ranked by impact/effort
|
|
127
127
|
- `/specrails:why` — semantic search over agent decision records
|
|
128
128
|
- `/specrails:retry` — smart failure recovery (added in 1.3)
|
package/docs/concepts.md
CHANGED
|
@@ -163,7 +163,7 @@ This gives you an audit trail from product decision to implementation choice, wi
|
|
|
163
163
|
|
|
164
164
|
## Dependency-Aware Ordering
|
|
165
165
|
|
|
166
|
-
When `/specrails:
|
|
166
|
+
When `/specrails:get-backlog-specs` is run, the Product Analyst parses `Prerequisites:` fields from GitHub Issue bodies and builds a **dependency DAG** (directed acyclic graph). It then:
|
|
167
167
|
|
|
168
168
|
1. Detects cycles and reports them as errors (circular dependencies block ordering)
|
|
169
169
|
2. Computes a safe implementation order via topological sort
|
package/docs/getting-started.md
CHANGED
|
@@ -92,7 +92,7 @@ That's it. One command, full pipeline.
|
|
|
92
92
|
Once you have a feature running, a few commands help you understand what's happening and why:
|
|
93
93
|
|
|
94
94
|
- `/specrails:why "question"` — search agent explanation records in plain language. Ask why a design decision was made, why a library was chosen, or why a particular pattern is used. Agents record their reasoning as they work.
|
|
95
|
-
- `/specrails:
|
|
95
|
+
- `/specrails:get-backlog-specs` — see your prioritized backlog with safe implementation ordering. Good first stop before picking what to build next.
|
|
96
96
|
- `/specrails:compat-check #N` — check whether an issue's implementation would break existing API consumers before you commit to it.
|
|
97
97
|
|
|
98
98
|
## What's next?
|
package/docs/installation.md
CHANGED
|
@@ -195,7 +195,7 @@ The wizard fills all templates with your project-specific context:
|
|
|
195
195
|
├── commands/
|
|
196
196
|
│ └── sr/
|
|
197
197
|
│ ├── implement.md
|
|
198
|
-
│ ├──
|
|
198
|
+
│ ├── get-backlog-specs.md
|
|
199
199
|
│ ├── batch-implement.md
|
|
200
200
|
│ └── ... # 17 commands total
|
|
201
201
|
├── rules/
|
|
@@ -230,7 +230,7 @@ The quick path — three questions, sensible defaults, done in under a minute.
|
|
|
230
230
|
| Item | Detail |
|
|
231
231
|
|------|--------|
|
|
232
232
|
| Core agents | sr-architect, sr-developer, sr-reviewer, sr-product-manager |
|
|
233
|
-
| All workflow commands | `/specrails:implement`, `/specrails:
|
|
233
|
+
| All workflow commands | `/specrails:implement`, `/specrails:get-backlog-specs`, and 14 more |
|
|
234
234
|
| Backlog storage | Local tickets (`.claude/local-tickets.json`) — no GitHub or JIRA required |
|
|
235
235
|
| CLAUDE.md | Project-level context for agents |
|
|
236
236
|
|
package/docs/local-tickets.md
CHANGED
|
@@ -46,7 +46,7 @@ The file is read and written by specrails-core during command execution.
|
|
|
46
46
|
"created_at": "2026-03-20T09:00:00.000Z",
|
|
47
47
|
"updated_at": "2026-03-20T09:00:00.000Z",
|
|
48
48
|
"created_by": "sr-product-manager",
|
|
49
|
-
"source": "
|
|
49
|
+
"source": "get-backlog-specs"
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -81,7 +81,7 @@ The file is read and written by specrails-core during command execution.
|
|
|
81
81
|
| `created_at` | ISO-8601 | — | Creation timestamp |
|
|
82
82
|
| `updated_at` | ISO-8601 | — | Last mutation timestamp |
|
|
83
83
|
| `created_by` | string | — | Agent name or `"user"` |
|
|
84
|
-
| `source` | string | `manual`, `
|
|
84
|
+
| `source` | string | `manual`, `get-backlog-specs`, `propose-spec` | How the ticket was created |
|
|
85
85
|
|
|
86
86
|
---
|
|
87
87
|
|
|
@@ -156,23 +156,23 @@ Pass local ticket IDs the same way you would GitHub issue numbers:
|
|
|
156
156
|
|
|
157
157
|
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.
|
|
158
158
|
|
|
159
|
-
### `/specrails:
|
|
159
|
+
### `/specrails:get-backlog-specs`
|
|
160
160
|
|
|
161
161
|
```bash
|
|
162
|
-
/specrails:
|
|
163
|
-
/specrails:
|
|
162
|
+
/specrails:get-backlog-specs # all areas
|
|
163
|
+
/specrails:get-backlog-specs UI, Backend # filter by area
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
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.
|
|
167
167
|
|
|
168
|
-
### `/specrails:
|
|
168
|
+
### `/specrails:auto-propose-backlog-specs`
|
|
169
169
|
|
|
170
170
|
```bash
|
|
171
|
-
/specrails:
|
|
172
|
-
/specrails:
|
|
171
|
+
/specrails:auto-propose-backlog-specs # explore all areas
|
|
172
|
+
/specrails:auto-propose-backlog-specs Analytics # focus on one area
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
Runs product discovery using your VPC personas. Creates new local tickets for discovered feature ideas, tagged with `source: "
|
|
175
|
+
Runs product discovery using your VPC personas. Creates new local tickets for discovered feature ideas, tagged with `source: "get-backlog-specs"` and `labels: ["product-driven-backlog", "area:<area>"]`. Existing tickets are checked for duplicates before creating new ones.
|
|
176
176
|
|
|
177
177
|
### `/specrails:propose-spec`
|
|
178
178
|
|
package/docs/migration-guide.md
CHANGED
|
@@ -125,7 +125,7 @@ npx specrails-core@latest init --root-dir .
|
|
|
125
125
|
> /specrails:setup --update
|
|
126
126
|
```
|
|
127
127
|
|
|
128
|
-
The `--update` flag regenerates only the backlog commands (`
|
|
128
|
+
The `--update` flag regenerates only the backlog commands (`get-backlog-specs`, `auto-propose-backlog-specs`, `implement`) without re-running the full stack analysis.
|
|
129
129
|
|
|
130
130
|
---
|
|
131
131
|
|
|
@@ -22,7 +22,7 @@ Not every combination of features is safe to run in parallel. A feature is safe
|
|
|
22
22
|
|
|
23
23
|
4. **Wave 1 in the dependency DAG**: the feature has no unimplemented prerequisites. A feature with `Prerequisites: #71` cannot run in the same batch as #71 — it must wait for #71 to ship first.
|
|
24
24
|
|
|
25
|
-
When in doubt, run `/specrails:
|
|
25
|
+
When in doubt, run `/specrails:get-backlog-specs` to see the dependency ordering before composing your batch.
|
|
26
26
|
|
|
27
27
|
## What's not safe
|
|
28
28
|
|
|
@@ -38,10 +38,10 @@ Some combinations look independent but are not:
|
|
|
38
38
|
|
|
39
39
|
## Reading the dependency DAG
|
|
40
40
|
|
|
41
|
-
Run `/specrails:
|
|
41
|
+
Run `/specrails:get-backlog-specs` before composing any parallel batch. The output includes a prioritized backlog table with dependency metadata. Wave 1 features — those with no unimplemented prerequisites — are your safe parallel batch candidates.
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
/specrails:
|
|
44
|
+
/specrails:get-backlog-specs
|
|
45
45
|
|
|
46
46
|
┌─ API ──────────────────────────────────────────┐
|
|
47
47
|
│ # Issue Score Effort Description │
|
|
@@ -103,7 +103,7 @@ After all worktree pipelines complete, specrails attempts to merge each feature
|
|
|
103
103
|
|
|
104
104
|
| Pattern | Why it works |
|
|
105
105
|
|---------|-------------|
|
|
106
|
-
| Run `/specrails:
|
|
106
|
+
| Run `/specrails:get-backlog-specs` before composing a batch | Surfaces the dependency DAG so you batch only Wave 1 features |
|
|
107
107
|
| Keep batches to 2–4 features | Smaller batches reduce conflict surface area and keep the merge step fast |
|
|
108
108
|
| Ensure all specs are approved before starting the batch | Prevents mid-batch spec revisions that invalidate a running pipeline |
|
|
109
109
|
| Sequence database migration features before features that consume the schema | Eliminates the most common class of parallel dev failures |
|
|
@@ -117,7 +117,7 @@ After all worktree pipelines complete, specrails attempts to merge each feature
|
|
|
117
117
|
|
|
118
118
|
## What's next?
|
|
119
119
|
|
|
120
|
-
- [Workflows & Commands](workflows.md) — full reference for `/specrails:batch-implement`, `/specrails:implement`, and `/specrails:
|
|
120
|
+
- [Workflows & Commands](workflows.md) — full reference for `/specrails:batch-implement`, `/specrails:implement`, and `/specrails:get-backlog-specs`
|
|
121
121
|
|
|
122
122
|
---
|
|
123
123
|
|
|
@@ -45,7 +45,7 @@ The difference is not length — it is specificity. The Architect can produce a
|
|
|
45
45
|
|
|
46
46
|
The Product Analyst reads your GitHub Issues labeled `product-driven-backlog` to build the dependency DAG and score your backlog. The issue body structure matters.
|
|
47
47
|
|
|
48
|
-
**The `Prerequisites:` field** is how you tell the Product Analyst that one issue depends on another. When you run `/specrails:
|
|
48
|
+
**The `Prerequisites:` field** is how you tell the Product Analyst that one issue depends on another. When you run `/specrails:get-backlog-specs`, the dependency DAG is built from these declarations. Issues without prerequisites are Wave 1 candidates — safe to implement in parallel. Issues with prerequisites are scheduled after their dependencies complete.
|
|
49
49
|
|
|
50
50
|
```
|
|
51
51
|
Prerequisites: #71 (rate limiting middleware must exist before we can display rate limit status)
|
|
@@ -336,7 +336,7 @@ Si el board aprueba proceder:
|
|
|
336
336
|
| specrails (actual) | Claude Code invocation | Codex invocation |
|
|
337
337
|
|-------------------|----------------------|-----------------|
|
|
338
338
|
| `/specrails:implement` | Slash command | Skill (mismo `SKILL.md`) |
|
|
339
|
-
| `/specrails:
|
|
339
|
+
| `/specrails:get-backlog-specs` | Slash command | Skill |
|
|
340
340
|
| `/opsx:ff` | Slash command | Skill |
|
|
341
341
|
| `/specrails:setup` | Slash command | `codex exec "run setup"` |
|
|
342
342
|
| Agent `sr-architect` | `.claude/agents/sr-architect.md` | `.codex/agents/sr-architect.toml` |
|
|
@@ -45,7 +45,7 @@ npx specrails-core@latest init → install.sh (bash) → /specrails:se
|
|
|
45
45
|
|
|
46
46
|
```
|
|
47
47
|
Claude Code
|
|
48
|
-
├── Commands (/specrails:implement, /specrails:
|
|
48
|
+
├── Commands (/specrails:implement, /specrails:get-backlog-specs, ...)
|
|
49
49
|
├── Skills (/opsx:new, /opsx:apply, /opsx:ff, ...)
|
|
50
50
|
├── Agents (sr-architect, sr-developer, sr-reviewer, ...)
|
|
51
51
|
├── Rules (.claude/rules/ — layer-specific conventions)
|
|
@@ -39,12 +39,12 @@ Epic: [SPEA-505](/SPEA/issues/SPEA-505) — Codex Compatibility Approach B
|
|
|
39
39
|
| Legacy slash commands `.claude/commands/specrails/` | ✅ | ❌ |
|
|
40
40
|
| SKILL.md format `.claude/skills/sr-*/` | ✅ | ✅ |
|
|
41
41
|
| `sr:implement` skill | ✅ | ✅ |
|
|
42
|
-
| `sr:
|
|
42
|
+
| `sr:get-backlog-specs` skill | ✅ | ✅ |
|
|
43
43
|
| `sr:compat-check` skill | ✅ | ✅ |
|
|
44
44
|
| `sr:why` skill | ✅ | ✅ |
|
|
45
45
|
| `sr:refactor-recommender` skill | ✅ | ✅ |
|
|
46
46
|
| `sr:batch-implement` skill | ✅ | ✅ |
|
|
47
|
-
| `sr:
|
|
47
|
+
| `sr:auto-propose-backlog-specs` skill | ✅ | ✅ |
|
|
48
48
|
| Backward compat: slash commands still invoke correctly | ✅ | — |
|
|
49
49
|
|
|
50
50
|
### Permissions Configuration (SPEA-508)
|
|
@@ -146,26 +146,26 @@ Each feature gets its own worktree, its own agent pipeline, and its own PR. Use
|
|
|
146
146
|
|
|
147
147
|
## Product and backlog
|
|
148
148
|
|
|
149
|
-
### `/specrails:
|
|
149
|
+
### `/specrails:get-backlog-specs` ✅ Both
|
|
150
150
|
|
|
151
151
|
View your prioritized product backlog, ranked by VPC persona fit and estimated effort.
|
|
152
152
|
|
|
153
153
|
```
|
|
154
|
-
/specrails:
|
|
155
|
-
/specrails:
|
|
154
|
+
/specrails:get-backlog-specs
|
|
155
|
+
/specrails:get-backlog-specs UI, API
|
|
156
156
|
```
|
|
157
157
|
|
|
158
158
|
Reads GitHub Issues labeled `product-driven-backlog`. Produces a ranked table per area, top 3 recommendations, and a safe implementation order based on issue dependencies.
|
|
159
159
|
|
|
160
160
|
---
|
|
161
161
|
|
|
162
|
-
### `/specrails:
|
|
162
|
+
### `/specrails:auto-propose-backlog-specs` ✅ Both
|
|
163
163
|
|
|
164
164
|
Generate new feature ideas through product discovery and create GitHub Issues.
|
|
165
165
|
|
|
166
166
|
```
|
|
167
|
-
/specrails:
|
|
168
|
-
/specrails:
|
|
167
|
+
/specrails:auto-propose-backlog-specs
|
|
168
|
+
/specrails:auto-propose-backlog-specs UI, API
|
|
169
169
|
```
|
|
170
170
|
|
|
171
171
|
The Product Manager researches your competitive landscape, generates 2–4 feature ideas per area, and scores each against your user personas. Creates GitHub Issues with full VPC evaluation if write access is available.
|
|
@@ -30,7 +30,7 @@ SpecRails supports both **OpenAI Codex** and **Anthropic Claude Code** as AI age
|
|
|
30
30
|
SpecRails Skills use `SKILL.md` format, which is shared between Codex and Claude Code. All `/specrails:*` and `/opsx:*` skills run identically on both platforms:
|
|
31
31
|
|
|
32
32
|
- `/specrails:implement` — full pipeline (design → code → review → PR)
|
|
33
|
-
- `/specrails:
|
|
33
|
+
- `/specrails:get-backlog-specs` — VPC-ranked backlog view
|
|
34
34
|
- `/opsx:ff` — OpenSpec fast-forward
|
|
35
35
|
- All other workflow skills
|
|
36
36
|
|
|
@@ -122,7 +122,7 @@ One command. The PR is ready for human review.
|
|
|
122
122
|
**Explore the backlog:**
|
|
123
123
|
|
|
124
124
|
```
|
|
125
|
-
/specrails:
|
|
125
|
+
/specrails:get-backlog-specs
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
See your tickets ranked by persona fit and effort. The top 3 are safe to implement next. Uses local tickets by default.
|
|
@@ -130,7 +130,7 @@ See your tickets ranked by persona fit and effort. The top 3 are safe to impleme
|
|
|
130
130
|
**Generate new feature ideas:**
|
|
131
131
|
|
|
132
132
|
```
|
|
133
|
-
/specrails:
|
|
133
|
+
/specrails:auto-propose-backlog-specs
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
The Product Manager researches your competitive landscape and creates new tickets (local by default, or GitHub Issues if configured).
|
package/docs/workflows.md
CHANGED
|
@@ -115,13 +115,13 @@ Each feature gets its own worktree, its own agent pipeline, and its own PR. Feat
|
|
|
115
115
|
|
|
116
116
|
---
|
|
117
117
|
|
|
118
|
-
## `/specrails:
|
|
118
|
+
## `/specrails:get-backlog-specs`
|
|
119
119
|
|
|
120
120
|
View your prioritized product backlog, ranked by VPC fit and effort.
|
|
121
121
|
|
|
122
122
|
```
|
|
123
|
-
/specrails:
|
|
124
|
-
/specrails:
|
|
123
|
+
/specrails:get-backlog-specs # Full backlog
|
|
124
|
+
/specrails:get-backlog-specs UI, API # Filter by area
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
### What it shows
|
|
@@ -151,13 +151,13 @@ Safe Implementation Order (Wave 1):
|
|
|
151
151
|
|
|
152
152
|
---
|
|
153
153
|
|
|
154
|
-
## `/specrails:
|
|
154
|
+
## `/specrails:auto-propose-backlog-specs`
|
|
155
155
|
|
|
156
156
|
Generate new feature ideas through product discovery. The Product Manager (Opus) researches your competitive landscape and generates ideas evaluated against your personas.
|
|
157
157
|
|
|
158
158
|
```
|
|
159
|
-
/specrails:
|
|
160
|
-
/specrails:
|
|
159
|
+
/specrails:auto-propose-backlog-specs # All areas
|
|
160
|
+
/specrails:auto-propose-backlog-specs UI, API # Focus areas
|
|
161
161
|
```
|
|
162
162
|
|
|
163
163
|
### What it does
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "specrails-core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "AI agent workflow system for Claude Code — installs 12 specialized agents, orchestration commands, and persona-driven product discovery into any repository",
|
|
5
5
|
"bin": {
|
|
6
6
|
"specrails-core": "bin/specrails-core.js"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sr-product-analyst
|
|
3
|
-
description: "Use this agent for read-only analysis tasks: backlog prioritization, VPC evaluation, codebase audits, spec gap analysis, dependency checks, and reporting. This agent reads specs, code, personas, and archived changes to produce structured reports. It never writes code or modifies files.\n\nExamples:\n\n- Example 1:\n user: \"/
|
|
3
|
+
description: "Use this agent for read-only analysis tasks: backlog prioritization, VPC evaluation, codebase audits, spec gap analysis, dependency checks, and reporting. This agent reads specs, code, personas, and archived changes to produce structured reports. It never writes code or modifies files.\n\nExamples:\n\n- Example 1:\n user: \"/get-backlog-specs\"\n assistant: \"Launching the product-analyst agent to read and prioritize the product backlog.\"\n\n- Example 2:\n user: \"What's the gap between our specs and actual implementation?\"\n assistant: \"Let me launch the product-analyst agent to compare specs against the codebase.\""
|
|
4
4
|
model: haiku
|
|
5
5
|
color: cyan
|
|
6
6
|
memory: project
|
|
@@ -6,7 +6,7 @@ tags: [workflow, explore, priorities, backlog, product-discovery]
|
|
|
6
6
|
model: opus
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
Analyze the project from a **product perspective** to generate new feature ideas. Syncs results to GitHub Issues labeled `product-driven-backlog`. Use `/specrails:
|
|
9
|
+
Analyze the project from a **product perspective** to generate new feature ideas. Syncs results to GitHub Issues labeled `product-driven-backlog`. Use `/specrails:get-backlog-specs` to view current ideas.
|
|
10
10
|
|
|
11
11
|
**Input:** $ARGUMENTS (optional: comma-separated areas to focus on. If empty, analyze all areas.)
|
|
12
12
|
|
|
@@ -128,7 +128,7 @@ Local tickets are always read-write. Sync directly to `$SPECRAILS_DIR/local-tick
|
|
|
128
128
|
- `metadata.user_story`: The user story text
|
|
129
129
|
- `metadata.area`: The area name (without `area:` prefix)
|
|
130
130
|
- `prerequisites`: Array of ticket IDs for any features this depends on (empty if none)
|
|
131
|
-
- `source`: `"
|
|
131
|
+
- `source`: `"get-backlog-specs"`
|
|
132
132
|
- `created_by`: `"sr-product-manager"`
|
|
133
133
|
|
|
134
134
|
6. **Report** sync results:
|
|
@@ -182,7 +182,7 @@ Local tickets are always read-write. Sync directly to `$SPECRAILS_DIR/local-tick
|
|
|
182
182
|
{Brief notes on existing infrastructure and what needs to be built}
|
|
183
183
|
|
|
184
184
|
---
|
|
185
|
-
_Auto-generated by `/specrails:
|
|
185
|
+
_Auto-generated by `/specrails:auto-propose-backlog-specs` on {DATE}_
|
|
186
186
|
EOF
|
|
187
187
|
)"
|
|
188
188
|
```
|
|
@@ -219,7 +219,7 @@ Stop and do not proceed with sync.
|
|
|
219
219
|
curl -s \
|
|
220
220
|
-H "Authorization: Basic $(printf '%s' "$JIRA_USER_EMAIL:$JIRA_API_TOKEN" | base64)" \
|
|
221
221
|
-H "Content-Type: application/json" \
|
|
222
|
-
"${JIRA_BASE_URL}/rest/api/3/search?jql=project%3D${JIRA_PROJECT_KEY}+AND+labels%
|
|
222
|
+
"${JIRA_BASE_URL}/rest/api/3/search?jql=project%3D${JIRA_PROJECT_KEY}+AND+labels%3Dget-backlog-specs+AND+issuetype%3DStory&fields=summary&maxResults=200"
|
|
223
223
|
```
|
|
224
224
|
|
|
225
225
|
Store all `summary` values. Skip any feature whose title matches an existing summary.
|
|
@@ -255,7 +255,7 @@ For each unique area:
|
|
|
255
255
|
"project": {"key": "'"${JIRA_PROJECT_KEY}"'"},
|
|
256
256
|
"issuetype": {"name": "Epic"},
|
|
257
257
|
"summary": "'"${AREA_DISPLAY_NAME}"'",
|
|
258
|
-
"labels": ["
|
|
258
|
+
"labels": ["get-backlog-specs"]
|
|
259
259
|
}
|
|
260
260
|
}'
|
|
261
261
|
```
|
|
@@ -286,7 +286,7 @@ curl -s -X POST \
|
|
|
286
286
|
"content": [{"type": "text", "text": "'"${VPC_BODY_ESCAPED}"'"}]
|
|
287
287
|
}]
|
|
288
288
|
},
|
|
289
|
-
"labels": ["
|
|
289
|
+
"labels": ["get-backlog-specs"],
|
|
290
290
|
"'"${EPIC_LINK_FIELD}"'": {"key": "'"${EPIC_KEY}"'"}
|
|
291
291
|
}
|
|
292
292
|
}'
|
|
@@ -35,7 +35,7 @@ Each check is displayed as ✅ (pass) or ❌ (fail with fix instruction).
|
|
|
35
35
|
|
|
36
36
|
On all checks passed:
|
|
37
37
|
```
|
|
38
|
-
All 6 checks passed. Run /specrails:
|
|
38
|
+
All 6 checks passed. Run /specrails:get-backlog-specs to get started.
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
On failure:
|
|
@@ -5,7 +5,7 @@ category: Workflow
|
|
|
5
5
|
tags: [workflow, backlog, viewer, product-driven]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
Display the product-driven backlog by reading issues/tickets from the configured backlog provider ({{BACKLOG_PROVIDER_NAME}}). These are feature ideas generated through VPC-based product discovery — evaluated against user personas. Use `/specrails:
|
|
8
|
+
Display the product-driven backlog by reading issues/tickets from the configured backlog provider ({{BACKLOG_PROVIDER_NAME}}). These are feature ideas generated through VPC-based product discovery — evaluated against user personas. Use `/specrails:auto-propose-backlog-specs` to generate new ideas.
|
|
9
9
|
|
|
10
10
|
**Input:** $ARGUMENTS (optional: comma-separated areas to filter. If empty, show all.)
|
|
11
11
|
|
|
@@ -156,7 +156,7 @@ The product-analyst receives this prompt:
|
|
|
156
156
|
|
|
157
157
|
10. If no issues exist:
|
|
158
158
|
```
|
|
159
|
-
No product-driven backlog issues found. Run `/specrails:
|
|
159
|
+
No product-driven backlog issues found. Run `/specrails:auto-propose-backlog-specs` to generate feature ideas.
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
7. **[Orchestrator]** After the product-analyst completes, write issue snapshots to `.claude/backlog-cache.json`.
|
|
@@ -181,7 +181,7 @@ The product-analyst receives this prompt:
|
|
|
181
181
|
- `schema_version`: `"1"`
|
|
182
182
|
- `provider`: `"local"`
|
|
183
183
|
- `last_updated`: current ISO 8601 timestamp
|
|
184
|
-
- `written_by`: `"
|
|
184
|
+
- `written_by`: `"get-backlog-specs"`
|
|
185
185
|
- `issues`: the map keyed by string ticket ID
|
|
186
186
|
|
|
187
187
|
If the write fails: print `[backlog-cache] Warning: could not write cache. Continuing.` Do not abort.
|
|
@@ -216,7 +216,7 @@ The product-analyst receives this prompt:
|
|
|
216
216
|
- `schema_version`: `"1"`
|
|
217
217
|
- `provider`: `"github"`
|
|
218
218
|
- `last_updated`: current ISO 8601 timestamp
|
|
219
|
-
- `written_by`: `"
|
|
219
|
+
- `written_by`: `"get-backlog-specs"`
|
|
220
220
|
- `issues`: the merged map keyed by string issue number
|
|
221
221
|
|
|
222
222
|
If the write fails (e.g., `.claude/` directory does not exist): print `[backlog-cache] Warning: could not write cache. Continuing.` Do not abort.
|
|
@@ -83,7 +83,7 @@ Print: `Created GitHub Issue #{number}: {title}`
|
|
|
83
83
|
|
|
84
84
|
### If provider=jira and BACKLOG_WRITE=true — Create JIRA Story
|
|
85
85
|
|
|
86
|
-
Create a JIRA Story using the same authentication and API pattern as `/specrails:
|
|
86
|
+
Create a JIRA Story using the same authentication and API pattern as `/specrails:auto-propose-backlog-specs`:
|
|
87
87
|
- Summary: The Spec Title
|
|
88
88
|
- Description: Full structured proposal in Atlassian Document Format
|
|
89
89
|
- Labels: `spec-proposal`
|
|
@@ -56,7 +56,7 @@ Read the following files to understand the current installation state:
|
|
|
56
56
|
```bash
|
|
57
57
|
ls $SPECRAILS_DIR/setup-templates/commands/specrails/
|
|
58
58
|
```
|
|
59
|
-
Command template files include `implement.md`, `batch-implement.md`, `compat-check.md`, `refactor-recommender.md`, `why.md`, `
|
|
59
|
+
Command template files include `implement.md`, `batch-implement.md`, `compat-check.md`, `refactor-recommender.md`, `why.md`, `get-backlog-specs.md`, `auto-propose-backlog-specs.md`.
|
|
60
60
|
If this directory does not exist, skip command template checking for this update.
|
|
61
61
|
|
|
62
62
|
6. Read `$SPECRAILS_DIR/backlog-config.json` if it exists — contains stored provider configuration needed for command placeholder substitution.
|
|
@@ -420,8 +420,8 @@ Core commands (always install if missing):
|
|
|
420
420
|
- `propose-spec.md`
|
|
421
421
|
- `compat-check.md`
|
|
422
422
|
- `why.md`
|
|
423
|
-
- `
|
|
424
|
-
- `
|
|
423
|
+
- `get-backlog-specs.md`
|
|
424
|
+
- `auto-propose-backlog-specs.md`
|
|
425
425
|
|
|
426
426
|
**Initialize local ticket storage** (backlog provider defaults to `local`):
|
|
427
427
|
1. Copy `templates/local-tickets-schema.json` to `$SPECRAILS_DIR/local-tickets.json` and set `last_updated` to the current ISO-8601 timestamp. Skip if the file already exists.
|
|
@@ -462,16 +462,16 @@ After generating all files, display the setup complete message.
|
|
|
462
462
|
|
|
463
463
|
Then, based on `QS_IS_EXISTING_CODEBASE`:
|
|
464
464
|
- **Existing codebase** (`true`): recommend `/specrails:refactor-recommender`
|
|
465
|
-
- **New project** (`false`): recommend `/specrails:
|
|
465
|
+
- **New project** (`false`): recommend `/specrails:get-backlog-specs`
|
|
466
466
|
|
|
467
467
|
If `QS_IS_RERUN=false`, display:
|
|
468
468
|
```
|
|
469
469
|
✅ Setup complete.
|
|
470
470
|
|
|
471
471
|
Try your first command:
|
|
472
|
-
> /specrails:
|
|
472
|
+
> /specrails:get-backlog-specs
|
|
473
473
|
```
|
|
474
|
-
(Replace `/specrails:
|
|
474
|
+
(Replace `/specrails:get-backlog-specs` with `/specrails:refactor-recommender` for existing codebases.)
|
|
475
475
|
|
|
476
476
|
If `QS_IS_RERUN=true`, display the gap-fill summary and stop:
|
|
477
477
|
```
|
|
@@ -768,7 +768,7 @@ Local tickets are always read-write — there is no "read only" mode since the f
|
|
|
768
768
|
**Status values:** `todo`, `in_progress`, `done`, `cancelled`
|
|
769
769
|
**Priority values:** `critical`, `high`, `medium`, `low`
|
|
770
770
|
**Labels:** Freeform strings following the `area:*` and `effort:*` convention
|
|
771
|
-
**Source values:** `manual`, `
|
|
771
|
+
**Source values:** `manual`, `get-backlog-specs`, `propose-spec`
|
|
772
772
|
|
|
773
773
|
**Advisory file locking protocol** (CLI agents and hub server must both follow this):
|
|
774
774
|
|
|
@@ -913,7 +913,7 @@ Store the full configuration in `.claude/backlog-config.json`:
|
|
|
913
913
|
|
|
914
914
|
#### If None
|
|
915
915
|
|
|
916
|
-
- Skip `/specrails:
|
|
916
|
+
- Skip `/specrails:get-backlog-specs` and `/specrails:auto-propose-backlog-specs` commands.
|
|
917
917
|
- The `/specrails:implement` command will still work with text descriptions.
|
|
918
918
|
|
|
919
919
|
### 3.3 Git & shipping workflow
|
|
@@ -946,8 +946,8 @@ If automatic, also check if `gh` is authenticated (for PR creation). If not, war
|
|
|
946
946
|
| /specrails:implement | Full pipeline: sr-architect → sr-developer → sr-reviewer → ship | sr-architect + sr-developer + sr-reviewer |
|
|
947
947
|
| /specrails:batch-implement | Orchestrate multiple features in dependency-aware waves | sr-architect + sr-developer + sr-reviewer |
|
|
948
948
|
| /specrails:propose-spec | Interactively propose and refine a feature spec, then create a GitHub issue | GitHub CLI |
|
|
949
|
-
| /specrails:
|
|
950
|
-
| /specrails:
|
|
949
|
+
| /specrails:get-backlog-specs | View prioritized backlog with VPC scores | sr-product-analyst + Backlog provider |
|
|
950
|
+
| /specrails:auto-propose-backlog-specs | Generate new feature ideas via product discovery | sr-product-manager + Backlog provider |
|
|
951
951
|
| /specrails:compat-check | Snapshot API surface and detect breaking changes | None |
|
|
952
952
|
| /specrails:refactor-recommender | Scan for refactoring opportunities ranked by impact/effort | None |
|
|
953
953
|
| /specrails:why | Search past architectural decisions from agent memory | None |
|
|
@@ -1081,8 +1081,8 @@ For each selected command, read the template and adapt.
|
|
|
1081
1081
|
- `setup-templates/commands/specrails/implement.md` → `.claude/commands/specrails/implement.md`
|
|
1082
1082
|
- `setup-templates/commands/specrails/batch-implement.md` → `.claude/commands/specrails/batch-implement.md`
|
|
1083
1083
|
- `setup-templates/commands/specrails/propose-spec.md` → `.claude/commands/specrails/propose-spec.md`
|
|
1084
|
-
- `setup-templates/commands/specrails/
|
|
1085
|
-
- `setup-templates/commands/specrails/
|
|
1084
|
+
- `setup-templates/commands/specrails/get-backlog-specs.md` → `.claude/commands/specrails/get-backlog-specs.md` (if `BACKLOG_PROVIDER != none`)
|
|
1085
|
+
- `setup-templates/commands/specrails/auto-propose-backlog-specs.md` → `.claude/commands/specrails/auto-propose-backlog-specs.md` (if `BACKLOG_PROVIDER != none`)
|
|
1086
1086
|
- `setup-templates/commands/specrails/compat-check.md` → `.claude/commands/specrails/compat-check.md`
|
|
1087
1087
|
- `setup-templates/commands/specrails/refactor-recommender.md` → `.claude/commands/specrails/refactor-recommender.md`
|
|
1088
1088
|
- `setup-templates/commands/specrails/why.md` → `.claude/commands/specrails/why.md`
|
|
@@ -1091,8 +1091,8 @@ For each selected command, read the template and adapt.
|
|
|
1091
1091
|
- `setup-templates/skills/sr-implement/SKILL.md` → `.agents/skills/sr-implement/SKILL.md`
|
|
1092
1092
|
- `setup-templates/skills/sr-batch-implement/SKILL.md` → `.agents/skills/sr-batch-implement/SKILL.md`
|
|
1093
1093
|
- `setup-templates/commands/specrails/propose-spec.md` → `.agents/skills/sr-propose-spec/SKILL.md` (wrap with YAML frontmatter if no skill template exists)
|
|
1094
|
-
- `setup-templates/commands/specrails/
|
|
1095
|
-
- `setup-templates/commands/specrails/
|
|
1094
|
+
- `setup-templates/commands/specrails/get-backlog-specs.md` → `.agents/skills/sr-get-backlog-specs/SKILL.md` (if `BACKLOG_PROVIDER != none`; wrap with frontmatter)
|
|
1095
|
+
- `setup-templates/commands/specrails/auto-propose-backlog-specs.md` → `.agents/skills/sr-auto-propose-backlog-specs/SKILL.md` (if `BACKLOG_PROVIDER != none`; wrap with frontmatter)
|
|
1096
1096
|
- `setup-templates/skills/sr-compat-check/SKILL.md` → `.agents/skills/sr-compat-check/SKILL.md`
|
|
1097
1097
|
- `setup-templates/skills/sr-refactor-recommender/SKILL.md` → `.agents/skills/sr-refactor-recommender/SKILL.md`
|
|
1098
1098
|
- `setup-templates/skills/sr-why/SKILL.md` → `.agents/skills/sr-why/SKILL.md`
|
|
@@ -1121,7 +1121,7 @@ Adapt:
|
|
|
1121
1121
|
|
|
1122
1122
|
#### Backlog command persona placeholder substitution
|
|
1123
1123
|
|
|
1124
|
-
When adapting `
|
|
1124
|
+
When adapting `auto-propose-backlog-specs.md` and `get-backlog-specs.md`, substitute the persona placeholders based on the full persona set (user-generated personas + Maintainer if `IS_OSS=true`):
|
|
1125
1125
|
|
|
1126
1126
|
| Placeholder | Substitution rule |
|
|
1127
1127
|
|-------------|------------------|
|
|
@@ -1174,12 +1174,12 @@ All write operations must follow the **advisory file locking protocol** defined
|
|
|
1174
1174
|
- Pre-flight check: `gh auth status`
|
|
1175
1175
|
|
|
1176
1176
|
#### JIRA (`BACKLOG_PROVIDER=jira`)
|
|
1177
|
-
- Issue fetch: `jira issue list --project {{JIRA_PROJECT_KEY}} --type Story --label
|
|
1177
|
+
- Issue fetch: `jira issue list --project {{JIRA_PROJECT_KEY}} --type Story --label get-backlog-specs --status "To Do" --plain` or equivalent JIRA REST API call via curl:
|
|
1178
1178
|
```bash
|
|
1179
1179
|
curl -s -u "$JIRA_USER_EMAIL:$JIRA_API_TOKEN" \
|
|
1180
|
-
"{{JIRA_BASE_URL}}/rest/api/3/search?jql=project={{JIRA_PROJECT_KEY}} AND labels=
|
|
1180
|
+
"{{JIRA_BASE_URL}}/rest/api/3/search?jql=project={{JIRA_PROJECT_KEY}} AND labels=get-backlog-specs AND status='To Do'&fields=summary,description,labels,priority"
|
|
1181
1181
|
```
|
|
1182
|
-
- Issue create: `jira issue create --project {{JIRA_PROJECT_KEY}} --type Story --summary "..." --label
|
|
1182
|
+
- Issue create: `jira issue create --project {{JIRA_PROJECT_KEY}} --type Story --summary "..." --label get-backlog-specs --description "..."` or equivalent REST API call
|
|
1183
1183
|
- Issue view: `jira issue view {key}` or REST API
|
|
1184
1184
|
- VPC scores stored in the issue description body (same markdown format, parsed from description)
|
|
1185
1185
|
- Pre-flight check: `jira me` or test API connectivity
|
|
@@ -1374,8 +1374,8 @@ Display the complete installation summary:
|
|
|
1374
1374
|
| /specrails:implement | .claude/commands/specrails/implement.md |
|
|
1375
1375
|
| /specrails:batch-implement | .claude/commands/specrails/batch-implement.md |
|
|
1376
1376
|
| /specrails:propose-spec | .claude/commands/specrails/propose-spec.md |
|
|
1377
|
-
| /specrails:
|
|
1378
|
-
| /specrails:
|
|
1377
|
+
| /specrails:get-backlog-specs | .claude/commands/specrails/get-backlog-specs.md |
|
|
1378
|
+
| /specrails:auto-propose-backlog-specs | .claude/commands/specrails/auto-propose-backlog-specs.md |
|
|
1379
1379
|
| /specrails:compat-check | .claude/commands/specrails/compat-check.md |
|
|
1380
1380
|
| /specrails:refactor-recommender | .claude/commands/specrails/refactor-recommender.md |
|
|
1381
1381
|
| /specrails:why | .claude/commands/specrails/why.md |
|
|
@@ -1385,8 +1385,8 @@ Display the complete installation summary:
|
|
|
1385
1385
|
| $sr-implement | .agents/skills/sr-implement/SKILL.md |
|
|
1386
1386
|
| $sr-batch-implement | .agents/skills/sr-batch-implement/SKILL.md |
|
|
1387
1387
|
| $sr-propose-spec | .agents/skills/sr-propose-spec/SKILL.md |
|
|
1388
|
-
| $sr-
|
|
1389
|
-
| $sr-
|
|
1388
|
+
| $sr-get-backlog-specs | .agents/skills/sr-get-backlog-specs/SKILL.md |
|
|
1389
|
+
| $sr-auto-propose-backlog-specs | .agents/skills/sr-auto-propose-backlog-specs/SKILL.md |
|
|
1390
1390
|
| $sr-compat-check | .agents/skills/sr-compat-check/SKILL.md |
|
|
1391
1391
|
| $sr-refactor-recommender | .agents/skills/sr-refactor-recommender/SKILL.md |
|
|
1392
1392
|
| $sr-why | .agents/skills/sr-why/SKILL.md |
|
|
@@ -1410,26 +1410,26 @@ Note: Only commands/skills selected during setup are shown. Backlog commands are
|
|
|
1410
1410
|
### Next Steps
|
|
1411
1411
|
[If cli_provider == "claude":]
|
|
1412
1412
|
1. Review the generated files in .claude/
|
|
1413
|
-
2. Run `/specrails:
|
|
1414
|
-
3. Run `/specrails:
|
|
1413
|
+
2. Run `/specrails:get-backlog-specs` to see your backlog (if GitHub Issues exist)
|
|
1414
|
+
3. Run `/specrails:auto-propose-backlog-specs` to generate feature ideas
|
|
1415
1415
|
4. Run `/specrails:implement #issue-number` to implement a feature
|
|
1416
1416
|
5. Commit the .claude/ directory to version control
|
|
1417
1417
|
[If cli_provider == "codex":]
|
|
1418
1418
|
1. Review the generated files in .codex/ and .agents/skills/
|
|
1419
|
-
2. Run `$sr-
|
|
1420
|
-
3. Run `$sr-
|
|
1419
|
+
2. Run `$sr-get-backlog-specs` to see your backlog (if GitHub Issues exist)
|
|
1420
|
+
3. Run `$sr-auto-propose-backlog-specs` to generate feature ideas
|
|
1421
1421
|
4. Run `$sr-implement #issue-number` to implement a feature
|
|
1422
1422
|
5. Commit the .codex/ and .agents/ directories to version control
|
|
1423
1423
|
|
|
1424
1424
|
### Quick Start
|
|
1425
1425
|
[If cli_provider == "claude":]
|
|
1426
1426
|
- `/specrails:implement "describe a feature"` — implement something right now
|
|
1427
|
-
- `/specrails:
|
|
1428
|
-
- `/specrails:
|
|
1427
|
+
- `/specrails:get-backlog-specs` — see prioritized feature ideas
|
|
1428
|
+
- `/specrails:auto-propose-backlog-specs` — discover new features using VPC
|
|
1429
1429
|
[If cli_provider == "codex":]
|
|
1430
1430
|
- `$sr-implement "describe a feature"` — implement something right now
|
|
1431
|
-
- `$sr-
|
|
1432
|
-
- `$sr-
|
|
1431
|
+
- `$sr-get-backlog-specs` — see prioritized feature ideas
|
|
1432
|
+
- `$sr-auto-propose-backlog-specs` — discover new features using VPC
|
|
1433
1433
|
```
|
|
1434
1434
|
|
|
1435
1435
|
## First Task Prompt (Full Wizard)
|
|
@@ -1442,9 +1442,9 @@ After displaying the setup complete summary above, detect the project type and o
|
|
|
1442
1442
|
|
|
1443
1443
|
Try your first spec:
|
|
1444
1444
|
[If cli_provider == "claude":]
|
|
1445
|
-
> /specrails:
|
|
1445
|
+
> /specrails:get-backlog-specs
|
|
1446
1446
|
[If cli_provider == "codex":]
|
|
1447
|
-
> $sr-
|
|
1447
|
+
> $sr-get-backlog-specs
|
|
1448
1448
|
```
|
|
1449
1449
|
|
|
1450
1450
|
**Existing codebase** (one or more of the above files found in root):
|
|
@@ -256,7 +256,7 @@ After all per-persona analyses are complete, look for systemic patterns.
|
|
|
256
256
|
**Orphan backlog items:** Items with no persona scores at all (neither from score data nor semantic matching). Count them. If > 20% of total backlog, flag:
|
|
257
257
|
```
|
|
258
258
|
⚠️ <N> backlog items (<N>%) have no clear persona linkage.
|
|
259
|
-
Consider running /specrails:
|
|
259
|
+
Consider running /specrails:auto-propose-backlog-specs to re-evaluate them.
|
|
260
260
|
```
|
|
261
261
|
|
|
262
262
|
Store in `CROSS_PERSONA_FINDINGS`.
|
|
@@ -378,7 +378,7 @@ After all personas:
|
|
|
378
378
|
### Next Steps
|
|
379
379
|
|
|
380
380
|
1. Review drifted attributes and decide: **update VPC** (if the product has legitimately evolved) or **add backlog items** (if the persona's needs are being neglected).
|
|
381
|
-
2. Run `/specrails:
|
|
381
|
+
2. Run `/specrails:auto-propose-backlog-specs` after updating personas to regenerate aligned feature ideas.
|
|
382
382
|
3. Re-run `/specrails:vpc-drift` after one sprint to measure improvement.
|
|
383
383
|
|
|
384
384
|
_Generated by `/specrails:vpc-drift` in {{PROJECT_NAME}} on <ISO date>_
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: sr-
|
|
3
|
-
description: "sr:
|
|
2
|
+
name: sr-auto-propose-backlog-specs
|
|
3
|
+
description: "sr:auto-propose-backlog-specs — Generate new feature ideas through product discovery, create GitHub Issues."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: "Requires GitHub CLI (gh)."
|
|
6
6
|
metadata:
|
|
@@ -9,7 +9,7 @@ metadata:
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
Analyze the project from a **product perspective** to generate new feature ideas. Syncs results to GitHub Issues labeled `product-driven-backlog`. Use `/specrails:
|
|
12
|
+
Analyze the project from a **product perspective** to generate new feature ideas. Syncs results to GitHub Issues labeled `product-driven-backlog`. Use `/specrails:get-backlog-specs` to view current ideas.
|
|
13
13
|
|
|
14
14
|
**Input:** $ARGUMENTS (optional: comma-separated areas to focus on. If empty, analyze all areas.)
|
|
15
15
|
|
|
@@ -145,7 +145,7 @@ After the Explore agent completes:
|
|
|
145
145
|
{Brief notes on existing infrastructure and what needs to be built}
|
|
146
146
|
|
|
147
147
|
---
|
|
148
|
-
_Auto-generated by `/specrails:
|
|
148
|
+
_Auto-generated by `/specrails:auto-propose-backlog-specs` on {DATE}_
|
|
149
149
|
EOF
|
|
150
150
|
)"
|
|
151
151
|
```
|
|
@@ -182,7 +182,7 @@ Stop and do not proceed with sync.
|
|
|
182
182
|
curl -s \
|
|
183
183
|
-H "Authorization: Basic $(printf '%s' "$JIRA_USER_EMAIL:$JIRA_API_TOKEN" | base64)" \
|
|
184
184
|
-H "Content-Type: application/json" \
|
|
185
|
-
"${JIRA_BASE_URL}/rest/api/3/search?jql=project%3D${JIRA_PROJECT_KEY}+AND+labels%
|
|
185
|
+
"${JIRA_BASE_URL}/rest/api/3/search?jql=project%3D${JIRA_PROJECT_KEY}+AND+labels%3Dget-backlog-specs+AND+issuetype%3DStory&fields=summary&maxResults=200"
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
Store all `summary` values. Skip any feature whose title matches an existing summary.
|
|
@@ -218,7 +218,7 @@ For each unique area:
|
|
|
218
218
|
"project": {"key": "'"${JIRA_PROJECT_KEY}"'"},
|
|
219
219
|
"issuetype": {"name": "Epic"},
|
|
220
220
|
"summary": "'"${AREA_DISPLAY_NAME}"'",
|
|
221
|
-
"labels": ["
|
|
221
|
+
"labels": ["get-backlog-specs"]
|
|
222
222
|
}
|
|
223
223
|
}'
|
|
224
224
|
```
|
|
@@ -249,7 +249,7 @@ curl -s -X POST \
|
|
|
249
249
|
"content": [{"type": "text", "text": "'"${VPC_BODY_ESCAPED}"'"}]
|
|
250
250
|
}]
|
|
251
251
|
},
|
|
252
|
-
"labels": ["
|
|
252
|
+
"labels": ["get-backlog-specs"],
|
|
253
253
|
"'"${EPIC_LINK_FIELD}"'": {"key": "'"${EPIC_KEY}"'"}
|
|
254
254
|
}
|
|
255
255
|
}'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: sr-
|
|
3
|
-
description: "sr:
|
|
2
|
+
name: sr-get-backlog-specs
|
|
3
|
+
description: "sr:get-backlog-specs — View product-driven backlog from GitHub Issues and propose top 3 for implementation."
|
|
4
4
|
license: MIT
|
|
5
5
|
compatibility: "Requires GitHub CLI (gh)."
|
|
6
6
|
metadata:
|
|
@@ -9,7 +9,7 @@ metadata:
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
Display the product-driven backlog by reading issues/tickets from the configured backlog provider ({{BACKLOG_PROVIDER_NAME}}). These are feature ideas generated through VPC-based product discovery — evaluated against user personas. Use `/specrails:
|
|
12
|
+
Display the product-driven backlog by reading issues/tickets from the configured backlog provider ({{BACKLOG_PROVIDER_NAME}}). These are feature ideas generated through VPC-based product discovery — evaluated against user personas. Use `/specrails:auto-propose-backlog-specs` to generate new ideas.
|
|
13
13
|
|
|
14
14
|
**Input:** $ARGUMENTS (optional: comma-separated areas to filter. If empty, show all.)
|
|
15
15
|
|
|
@@ -160,7 +160,7 @@ The product-analyst receives this prompt:
|
|
|
160
160
|
|
|
161
161
|
10. If no issues exist:
|
|
162
162
|
```
|
|
163
|
-
No product-driven backlog issues found. Run `/specrails:
|
|
163
|
+
No product-driven backlog issues found. Run `/specrails:auto-propose-backlog-specs` to generate feature ideas.
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
7. **[Orchestrator]** After the product-analyst completes, write issue snapshots to `.claude/backlog-cache.json`.
|
|
@@ -193,7 +193,7 @@ The product-analyst receives this prompt:
|
|
|
193
193
|
- `schema_version`: `"1"`
|
|
194
194
|
- `provider`: `"github"`
|
|
195
195
|
- `last_updated`: current ISO 8601 timestamp
|
|
196
|
-
- `written_by`: `"
|
|
196
|
+
- `written_by`: `"get-backlog-specs"`
|
|
197
197
|
- `issues`: the merged map keyed by string issue number
|
|
198
198
|
|
|
199
199
|
If the write fails (e.g., `.claude/` directory does not exist): print `[backlog-cache] Warning: could not write cache. Continuing.` Do not abort.
|
package/update.sh
CHANGED
|
@@ -417,8 +417,8 @@ do_migrate_sr_prefix() {
|
|
|
417
417
|
local workflow_commands=(
|
|
418
418
|
"implement"
|
|
419
419
|
"batch-implement"
|
|
420
|
-
"
|
|
421
|
-
"
|
|
420
|
+
"get-backlog-specs"
|
|
421
|
+
"auto-propose-backlog-specs"
|
|
422
422
|
"compat-check"
|
|
423
423
|
"refactor-recommender"
|
|
424
424
|
"why"
|