specrails-core 3.7.0 → 3.8.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 CHANGED
@@ -47,17 +47,18 @@ Updates automatically: `claude plugin update sr`
47
47
  ### Scaffold method (alternative)
48
48
 
49
49
  ```bash
50
- npx specrails-core@latest init --root-dir . # TUI agent selection + install files
51
- /specrails:enrich --from-config # run AI analysis using your config
50
+ npx specrails-core@latest init --root-dir . # TUI: select agents, choose tier
52
51
  ```
53
52
 
53
+ **Quick tier** (default) — agents installed directly, ready to use immediately. No AI interaction.
54
+ **Full tier** — run `/specrails:enrich` after install for deep codebase analysis, VPC personas, and competitive research.
55
+
54
56
  ### Start building
55
57
 
56
58
  ```bash
57
59
  > /specrails:implement "add user authentication"
58
60
  > /specrails:implement #1, #2 # from local tickets (default)
59
61
  > /specrails:implement #42, #43 # from GitHub Issues (if configured)
60
- > /specrails:auto-propose-backlog-specs # discover new features with AI
61
62
  ```
62
63
 
63
64
  That's it. The pipeline takes over.
@@ -37,15 +37,29 @@ npx specrails-core@latest init --root-dir <your-project>
37
37
 
38
38
  See [installation.md](installation.md) for full details on both methods and when to use each.
39
39
 
40
- ## Run the Enrich Wizard
40
+ ## Installation Tiers
41
41
 
42
- Open Claude Code in your project and run:
42
+ ### Quick Install (default via TUI)
43
+
44
+ When you run `npx specrails-core@latest init`, the TUI installer lets you choose **Quick** tier. This places agents, commands, rules, and settings directly — no AI interaction required:
45
+
46
+ 1. Select agents to install
47
+ 2. Choose a model preset
48
+ 3. Provide a brief product description
49
+
50
+ Agents are ready to use immediately after install. Open Claude Code and start working.
51
+
52
+ > Quick install excludes VPC personas and persona-dependent agents/commands (sr-product-manager, sr-product-analyst). These require the full enrichment process.
53
+
54
+ ### Full Install (via `/specrails:enrich`)
55
+
56
+ For deeper customization, choose **Full** tier or run `/specrails:enrich` after a Quick install:
43
57
 
44
58
  ```
45
59
  /specrails:enrich
46
60
  ```
47
61
 
48
- By default, `/specrails:enrich` runs the **full 5-phase wizard** deep stack analysis, researched user personas, and fully adapted agents.
62
+ The full 5-phase wizard provides deep stack analysis, researched user personas, and fully adapted agents:
49
63
 
50
64
  | Phase | What happens |
51
65
  |-------|-------------|
@@ -55,17 +69,9 @@ By default, `/specrails:enrich` runs the **full 5-phase wizard** — deep stack
55
69
  | **4. Generate** | Generates your project data files (`.specrails/`) with project-specific context |
56
70
  | **5. Cleanup** | Removes the wizard scaffolding, leaving only your tailored workflow files |
57
71
 
58
- **In a hurry?** Run `/specrails:enrich --quick` for the quick version: three questions, sensible defaults, done in under a minute.
59
-
60
- | Question | What it configures |
61
- |----------|-------------------|
62
- | What is this project? | Agent context and CLAUDE.md |
63
- | Who are the target users? | Persona stubs for product discovery |
64
- | Git access — read-only or read-write? | Whether agents can commit |
65
-
66
- Quick mode installs the four core agents (architect, developer, reviewer, product manager), all workflow commands, and local ticket storage. You can run the full wizard later to deepen the configuration.
72
+ Full install adds VPC personas, sr-product-manager, sr-product-analyst, and persona-dependent commands.
67
73
 
68
- After either mode, your project data files are ready to use and your `/specrails:*` commands are live.
74
+ After either tier, your `/specrails:*` commands are live.
69
75
 
70
76
  ## Your first feature
71
77
 
@@ -226,24 +226,36 @@ After this phase, `/specrails:enrich` is no longer available until re-run — yo
226
226
 
227
227
  ---
228
228
 
229
- ### Quick Mode (`/specrails:enrich --quick`)
229
+ ### Quick Install (TUI → `tier: quick`)
230
230
 
231
- The quick path — three questions, sensible defaults, done in under a minute.
231
+ The quick path — select agents in the TUI, answer two context questions, done in seconds. No AI interaction required.
232
232
 
233
- 1. What is this project? (one sentence)
234
- 2. Who are the target users?
235
- 3. Git access for agents read-only or read-write?
233
+ 1. Select which agents to install (from 14 available)
234
+ 2. Choose a model preset (balanced, budget, or max)
235
+ 3. Provide a short product description and target users
236
236
 
237
237
  **What gets installed:**
238
238
 
239
239
  | Item | Detail |
240
240
  |------|--------|
241
- | Core agents | sr-architect, sr-developer, sr-reviewer, sr-product-manager |
242
- | All workflow commands | `/specrails:implement`, `/specrails:get-backlog-specs`, and 14 more |
243
- | Backlog storage | Local tickets (`.specrails/local-tickets.json`) no GitHub or JIRA required |
244
- | CLAUDE.md | Project-level context for agents |
241
+ | Selected agents | Placed directly in `.claude/agents/` with template defaults |
242
+ | Workflow commands | `/specrails:implement`, `/specrails:doctor`, and more (18 commands) |
243
+ | Rules & settings | Layer conventions, settings.json, security exemptions |
244
+ | Agent memory | `.claude/agent-memory/<agent>/` directories |
245
+ | Skills | OpenSpec skills in `.claude/skills/` |
245
246
 
246
- You can run the full wizard later to deepen configuration: personas, stack analysis, layer-specific conventions.
247
+ **What is NOT installed (requires full enrichment):**
248
+
249
+ | Item | Reason |
250
+ |------|--------|
251
+ | VPC personas | Require competitive research and AI analysis |
252
+ | sr-product-manager | Drives VPC persona creation — needs enrichment |
253
+ | sr-product-analyst | Analyzes personas — needs enrichment |
254
+ | `/specrails:auto-propose-backlog-specs` | Depends on personas |
255
+ | `/specrails:vpc-drift` | Depends on personas |
256
+ | `/specrails:get-backlog-specs` | References personas for prioritization |
257
+
258
+ Agents work immediately with template defaults. Run `/specrails:enrich` later to add personas, competitive analysis, and codebase-specific customization.
247
259
 
248
260
  ---
249
261
 
@@ -256,7 +268,7 @@ Runs a fully automated installation using `.specrails/install-config.yaml`. No i
256
268
  ```yaml
257
269
  version: 1
258
270
  provider: claude # claude | codex | auto
259
- tier: full # full | quick
271
+ tier: full # full (requires /specrails:enrich) | quick (agents placed directly)
260
272
  agents:
261
273
  selected: # list of agent names to install
262
274
  - sr-architect
package/install.sh CHANGED
@@ -857,6 +857,170 @@ if [ -d "$SCRIPT_DIR/prompts" ] && [ "$(ls -A "$SCRIPT_DIR/prompts" 2>/dev/null)
857
857
  ok "Installed prompts"
858
858
  fi
859
859
 
860
+ # ─────────────────────────────────────────────
861
+ # Phase 3c: Quick-tier direct placement
862
+ # ─────────────────────────────────────────────
863
+ # For Quick tier, copy agents/commands/rules/personas/settings from
864
+ # setup-templates directly to their final locations under $SPECRAILS_DIR.
865
+ # Placeholders are stripped (enrich not required).
866
+
867
+ if [[ "$TIER" == "quick" ]]; then
868
+ step "Phase 3c: Placing agents and commands (quick install)"
869
+
870
+ _templates="${REPO_ROOT}/.specrails/setup-templates"
871
+ _project_name="$(basename "$REPO_ROOT")"
872
+ _quick_product_desc=""
873
+ _quick_target_users=""
874
+
875
+ # Read quick_context from install-config.yaml if available
876
+ _qc_file="${CONFIG_PATH:-${REPO_ROOT}/.specrails/install-config.yaml}"
877
+ if [[ -f "$_qc_file" ]]; then
878
+ _quick_product_desc=$(grep '^\s*product_description:' "$_qc_file" 2>/dev/null | head -1 | sed 's/.*product_description:[[:space:]]*//' | sed 's/^"//;s/"$//' || true)
879
+ _quick_target_users=$(grep '^\s*target_users:' "$_qc_file" 2>/dev/null | head -1 | sed 's/.*target_users:[[:space:]]*//' | sed 's/^"//;s/"$//' || true)
880
+ fi
881
+
882
+ # VPC/persona-dependent agents are excluded from Quick tier (require enrichment)
883
+ _quick_excluded_agents="sr-product-manager sr-product-analyst"
884
+
885
+ # --- Agents ---
886
+ if [[ -d "$_templates/agents" ]] && ls "$_templates/agents/"*.md &>/dev/null; then
887
+ mkdir -p "${REPO_ROOT}/${SPECRAILS_DIR}/agents"
888
+ _agent_count=0
889
+ _agent_skipped=0
890
+ for _src in "$_templates/agents/"*.md; do
891
+ [[ -f "$_src" ]] || continue
892
+ _name="$(basename "$_src" .md)"
893
+
894
+ # Skip VPC-dependent agents in Quick tier
895
+ if echo " $_quick_excluded_agents " | grep -q " ${_name} "; then
896
+ (( _agent_skipped++ )) || true
897
+ continue
898
+ fi
899
+
900
+ _dest="${REPO_ROOT}/${SPECRAILS_DIR}/agents/${_name}.md"
901
+ cp "$_src" "$_dest"
902
+
903
+ # Substitute known placeholders
904
+ sed -i.bak \
905
+ -e "s|{{PROJECT_NAME}}|${_project_name}|g" \
906
+ -e "s|{{PROJECT_DESCRIPTION}}|${_quick_product_desc}|g" \
907
+ -e "s|{{TARGET_USERS}}|${_quick_target_users}|g" \
908
+ -e "s|{{MEMORY_PATH}}|.claude/agent-memory/${_name}/|g" \
909
+ -e "s|{{SECURITY_EXEMPTIONS_PATH}}|${SPECRAILS_DIR}/security-exemptions.yaml|g" \
910
+ -e "s|{{PERSONA_DIR}}|${SPECRAILS_DIR}/agents/personas/|g" \
911
+ "$_dest" && rm -f "${_dest}.bak"
912
+
913
+ # Strip remaining {{PLACEHOLDER}} lines (leave blank line)
914
+ sed -i.bak 's/{{[A-Z_]*}}//g' "$_dest" && rm -f "${_dest}.bak"
915
+
916
+ # Create agent memory directory
917
+ mkdir -p "${REPO_ROOT}/.claude/agent-memory/${_name}"
918
+
919
+ (( _agent_count++ )) || true
920
+ done
921
+ if (( _agent_skipped > 0 )); then
922
+ ok "Installed ${_agent_count} agent(s) to ${SPECRAILS_DIR}/agents/ (skipped ${_agent_skipped} VPC-dependent)"
923
+ else
924
+ ok "Installed ${_agent_count} agent(s) to ${SPECRAILS_DIR}/agents/"
925
+ fi
926
+ fi
927
+
928
+ # Persona-dependent commands excluded from Quick tier
929
+ _quick_excluded_cmds="auto-propose-backlog-specs vpc-drift get-backlog-specs"
930
+
931
+ # --- Commands ---
932
+ if [[ -d "$_templates/commands/specrails" ]]; then
933
+ mkdir -p "${REPO_ROOT}/${SPECRAILS_DIR}/commands/specrails"
934
+ _cmd_count=0
935
+ for _src in "$_templates/commands/specrails/"*.md; do
936
+ [[ -f "$_src" ]] || continue
937
+ _cmd_name="$(basename "$_src" .md)"
938
+
939
+ # Skip persona-dependent commands in Quick tier
940
+ if echo " $_quick_excluded_cmds " | grep -q " ${_cmd_name} "; then
941
+ continue
942
+ fi
943
+
944
+ _dest="${REPO_ROOT}/${SPECRAILS_DIR}/commands/specrails/${_cmd_name}.md"
945
+ cp "$_src" "$_dest"
946
+ sed -i.bak \
947
+ -e "s|{{PROJECT_NAME}}|${_project_name}|g" \
948
+ -e "s|{{PROJECT_DESCRIPTION}}|${_quick_product_desc}|g" \
949
+ -e "s|{{TARGET_USERS}}|${_quick_target_users}|g" \
950
+ -e "s|{{MEMORY_PATH}}|.claude/agent-memory/|g" \
951
+ -e "s|{{PERSONA_DIR}}|${SPECRAILS_DIR}/agents/personas/|g" \
952
+ -e "s|{{SECURITY_EXEMPTIONS_PATH}}|${SPECRAILS_DIR}/security-exemptions.yaml|g" \
953
+ "$_dest" && rm -f "${_dest}.bak"
954
+ sed -i.bak 's/{{[A-Z_]*}}//g' "$_dest" && rm -f "${_dest}.bak"
955
+ (( _cmd_count++ )) || true
956
+ done
957
+ ok "Installed ${_cmd_count} command(s) to ${SPECRAILS_DIR}/commands/specrails/"
958
+ fi
959
+
960
+ # --- Rules ---
961
+ if [[ -d "$_templates/rules" ]]; then
962
+ mkdir -p "${REPO_ROOT}/${SPECRAILS_DIR}/rules"
963
+ for _src in "$_templates/rules/"*.md; do
964
+ [[ -f "$_src" ]] || continue
965
+ cp "$_src" "${REPO_ROOT}/${SPECRAILS_DIR}/rules/$(basename "$_src")"
966
+ done
967
+ ok "Installed rules to ${SPECRAILS_DIR}/rules/"
968
+ fi
969
+
970
+ # Personas are NOT installed in Quick tier (require VPC enrichment)
971
+
972
+ # --- Settings ---
973
+ if [[ -f "$_templates/settings/settings.json" && ! -f "${REPO_ROOT}/${SPECRAILS_DIR}/settings.json" ]]; then
974
+ cp "$_templates/settings/settings.json" "${REPO_ROOT}/${SPECRAILS_DIR}/settings.json"
975
+ ok "Installed settings.json"
976
+ fi
977
+ if [[ -f "$_templates/settings/integration-contract.json" ]]; then
978
+ cp "$_templates/settings/integration-contract.json" "${REPO_ROOT}/.specrails/integration-contract.json"
979
+ ok "Installed integration-contract.json"
980
+ fi
981
+
982
+ # --- Backlog config (default: local provider) ---
983
+ _backlog_cfg="${REPO_ROOT}/.specrails/backlog-config.json"
984
+ if [[ ! -f "$_backlog_cfg" ]]; then
985
+ mkdir -p "${REPO_ROOT}/.specrails"
986
+ cat > "$_backlog_cfg" <<'BCEOF'
987
+ {
988
+ "provider": "local",
989
+ "write_access": true,
990
+ "git_auto": true
991
+ }
992
+ BCEOF
993
+ ok "Created .specrails/backlog-config.json (provider: local, git_auto: true)"
994
+ fi
995
+
996
+ # --- Local tickets store ---
997
+ _tickets_file="${REPO_ROOT}/.specrails/local-tickets.json"
998
+ if [[ ! -f "$_tickets_file" ]]; then
999
+ _now="$(date -u +"%Y-%m-%dT%H:%M:%S.000Z")"
1000
+ cat > "$_tickets_file" <<LTEOF
1001
+ {
1002
+ "schema_version": "1.0",
1003
+ "revision": 0,
1004
+ "last_updated": "${_now}",
1005
+ "next_id": 1,
1006
+ "tickets": {}
1007
+ }
1008
+ LTEOF
1009
+ ok "Created .specrails/local-tickets.json"
1010
+ fi
1011
+
1012
+ # --- Skills (OpenSpec) ---
1013
+ if [[ -d "$_templates/skills" ]]; then
1014
+ mkdir -p "${REPO_ROOT}/${SPECRAILS_DIR}/skills"
1015
+ cp -r "$_templates/skills/"* "${REPO_ROOT}/${SPECRAILS_DIR}/skills/" 2>/dev/null || true
1016
+ ok "Installed skills to ${SPECRAILS_DIR}/skills/"
1017
+ fi
1018
+
1019
+ if [[ "$HUB_JSON" == true ]]; then
1020
+ echo "CHECKPOINT:quick_placement:done:Agents and commands placed"
1021
+ fi
1022
+ fi
1023
+
860
1024
  # Initialize OpenSpec if available and not already initialized
861
1025
  if [ "$HAS_OPENSPEC" = true ] && [ ! -d "$REPO_ROOT/openspec" ]; then
862
1026
  info "Initializing OpenSpec..."
@@ -891,46 +1055,81 @@ if [[ "$AGENT_TEAMS" == "true" ]]; then
891
1055
  echo " Agent Teams: installed (/specrails:team-review, /specrails:team-debug)"
892
1056
  echo " Feature flag: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 (required)"
893
1057
  fi
894
- echo ""
895
- echo " Files installed:"
896
- if [[ "$CLI_PROVIDER" == "codex" ]]; then
897
- echo " .agents/skills/enrich/SKILL.md The \$enrich skill"
898
- echo " .agents/skills/doctor/SKILL.md ← The \$doctor skill"
899
- else
900
- echo " $SPECRAILS_DIR/commands/specrails/enrich.md ← The /specrails:enrich command"
901
- fi
902
- echo " .specrails/setup-templates/ ← Templates: commands + skills (temporary, removed after enrich)"
903
- echo " .specrails/specrails-version ← Installed specrails version"
904
- echo " .specrails/specrails-manifest.json ← Artifact checksums for update detection"
905
- echo ""
1058
+ if [[ "$TIER" == "quick" ]]; then
1059
+ # Quick tier: agents placed directly
1060
+ _installed_agents=$(ls "${REPO_ROOT}/${SPECRAILS_DIR}/agents/"*.md 2>/dev/null | wc -l | tr -d ' ')
1061
+ _installed_commands=$(ls "${REPO_ROOT}/${SPECRAILS_DIR}/commands/specrails/"*.md 2>/dev/null | wc -l | tr -d ' ')
1062
+ echo ""
1063
+ echo " Installed:"
1064
+ echo " ${_installed_agents} agent(s) → ${SPECRAILS_DIR}/agents/"
1065
+ echo " ${_installed_commands} command(s) → ${SPECRAILS_DIR}/commands/specrails/"
1066
+ echo " .specrails/backlog-config.json (provider: local)"
1067
+ echo " .specrails/local-tickets.json"
1068
+ echo " .specrails/specrails-version"
1069
+ echo " .specrails/specrails-manifest.json"
1070
+ echo ""
906
1071
 
907
- echo -e "${BOLD}Prerequisites:${NC}"
908
- echo ""
909
- [ "$HAS_NPM" = true ] && ok "npm" || warn "npm (optional)"
910
- [ "$HAS_OPENSPEC" = true ] && ok "OpenSpec" || warn "OpenSpec (optional)"
911
- [ "$HAS_GH" = true ] && ok "GitHub CLI" || warn "GitHub CLI (optional, for GitHub Issues backlog)"
912
- [ "$HAS_JIRA" = true ] && ok "JIRA CLI" || info "JIRA CLI not found (optional, for JIRA backlog)"
913
- echo ""
1072
+ echo -e "${BOLD}Prerequisites:${NC}"
1073
+ echo ""
1074
+ [ "$HAS_NPM" = true ] && ok "npm" || warn "npm (optional)"
1075
+ [ "$HAS_OPENSPEC" = true ] && ok "OpenSpec" || warn "OpenSpec (optional)"
1076
+ [ "$HAS_GH" = true ] && ok "GitHub CLI" || warn "GitHub CLI (optional, for GitHub Issues backlog)"
1077
+ [ "$HAS_JIRA" = true ] && ok "JIRA CLI" || info "JIRA CLI not found (optional, for JIRA backlog)"
1078
+ echo ""
914
1079
 
915
- echo -e "${BOLD}${CYAN}Next steps:${NC}"
916
- echo ""
917
- echo " 1. Open $CLI_PROVIDER in this repo:"
918
- echo ""
919
- echo -e " ${BOLD}cd $REPO_ROOT && $CLI_PROVIDER${NC}"
920
- echo ""
921
- echo " 2. Run the enrich wizard:"
922
- echo ""
923
- if [[ "$CLI_PROVIDER" == "codex" ]]; then
924
- echo -e " ${BOLD}\$enrich${NC}"
925
- else
926
- echo -e " ${BOLD}/specrails:enrich${NC}"
927
- fi
928
- echo ""
929
- if [[ "$CLI_PROVIDER" == "codex" ]]; then
930
- echo " Codex will analyze your codebase, ask about your users,"
1080
+ echo -e "${BOLD}${CYAN}Next steps:${NC}"
1081
+ echo ""
1082
+ echo " 1. Open $CLI_PROVIDER in this repo:"
1083
+ echo ""
1084
+ echo -e " ${BOLD}cd $REPO_ROOT && $CLI_PROVIDER${NC}"
1085
+ echo ""
1086
+ echo " 2. Your agents are ready to use! Start working:"
1087
+ echo ""
1088
+ echo " Agents, commands, and rules are pre-configured."
1089
+ echo " No additional setup required."
1090
+ echo ""
931
1091
  else
932
- echo " Claude will analyze your codebase, ask about your users,"
1092
+ echo ""
1093
+ echo " Files installed:"
1094
+ if [[ "$CLI_PROVIDER" == "codex" ]]; then
1095
+ echo " .agents/skills/enrich/SKILL.md ← The \$enrich skill"
1096
+ echo " .agents/skills/doctor/SKILL.md ← The \$doctor skill"
1097
+ else
1098
+ echo " $SPECRAILS_DIR/commands/specrails/enrich.md ← The /specrails:enrich command"
1099
+ fi
1100
+ echo " .specrails/setup-templates/ ← Templates: commands + skills (temporary, removed after enrich)"
1101
+ echo " .specrails/specrails-version ← Installed specrails version"
1102
+ echo " .specrails/specrails-manifest.json ← Artifact checksums for update detection"
1103
+ echo ""
1104
+
1105
+ echo -e "${BOLD}Prerequisites:${NC}"
1106
+ echo ""
1107
+ [ "$HAS_NPM" = true ] && ok "npm" || warn "npm (optional)"
1108
+ [ "$HAS_OPENSPEC" = true ] && ok "OpenSpec" || warn "OpenSpec (optional)"
1109
+ [ "$HAS_GH" = true ] && ok "GitHub CLI" || warn "GitHub CLI (optional, for GitHub Issues backlog)"
1110
+ [ "$HAS_JIRA" = true ] && ok "JIRA CLI" || info "JIRA CLI not found (optional, for JIRA backlog)"
1111
+ echo ""
1112
+
1113
+ echo -e "${BOLD}${CYAN}Next steps:${NC}"
1114
+ echo ""
1115
+ echo " 1. Open $CLI_PROVIDER in this repo:"
1116
+ echo ""
1117
+ echo -e " ${BOLD}cd $REPO_ROOT && $CLI_PROVIDER${NC}"
1118
+ echo ""
1119
+ echo " 2. Run the enrich wizard:"
1120
+ echo ""
1121
+ if [[ "$CLI_PROVIDER" == "codex" ]]; then
1122
+ echo -e " ${BOLD}\$enrich${NC}"
1123
+ else
1124
+ echo -e " ${BOLD}/specrails:enrich${NC}"
1125
+ fi
1126
+ echo ""
1127
+ if [[ "$CLI_PROVIDER" == "codex" ]]; then
1128
+ echo " Codex will analyze your codebase, ask about your users,"
1129
+ else
1130
+ echo " Claude will analyze your codebase, ask about your users,"
1131
+ fi
1132
+ echo " research the competitive landscape, and generate all agents,"
1133
+ echo " commands, rules, and personas adapted to your project."
1134
+ echo ""
933
1135
  fi
934
- echo " research the competitive landscape, and generate all agents,"
935
- echo " commands, rules, and personas adapted to your project."
936
- echo ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specrails-core",
3
- "version": "3.7.0",
3
+ "version": "3.8.1",
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"
@@ -49,6 +49,8 @@ Output ONLY the following structured markdown. Do not add any preamble or explan
49
49
 
50
50
  After generating the proposal, read `.specrails/backlog-config.json` to determine `BACKLOG_PROVIDER` and `BACKLOG_WRITE`.
51
51
 
52
+ If `.specrails/backlog-config.json` does not exist, default to `provider=local` and `write_access=true`. Initialize `.specrails/local-tickets.json` if it does not exist (empty store with `schema_version: "1.0"`, `revision: 0`, `next_id: 1`, `tickets: {}`).
53
+
52
54
  ### If provider=local — Create Local Ticket
53
55
 
54
56
  Create a local ticket from the proposal output: