@garygentry/feature-forge 0.2.7 → 0.2.8

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feature-forge",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "agent": "claude",
5
5
  "generatedBy": "python3 scripts/build-adapters.py"
6
6
  }
@@ -1258,8 +1258,8 @@ def _next_steps_block(next_command: str, host: str) -> str:
1258
1258
  "I can't `/clear` for you — you have to run it yourself."
1259
1259
  )
1260
1260
  next_line = (
1261
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1262
- "`/feature-forge:forge` to let the navigator resume from disk."
1261
+ "2. Then start a fresh session and run the next stage below — or "
1262
+ "re-run `/feature-forge:forge` to let the navigator resume from disk."
1263
1263
  )
1264
1264
  else:
1265
1265
  clear_line = (
@@ -1268,10 +1268,16 @@ def _next_steps_block(next_command: str, host: str) -> str:
1268
1268
  "disk, so the work survives it."
1269
1269
  )
1270
1270
  next_line = (
1271
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1272
- "the forge navigator skill to resume from disk."
1271
+ "2. Then start a fresh session and run the next stage below — or "
1272
+ "re-run the forge navigator skill to resume from disk."
1273
1273
  )
1274
- return "\n".join(["**Next steps**", clear_line, next_line, NEXT_STEPS_SENTINEL])
1274
+ # The next-stage command goes in a fenced block so mobile/remote hosts get a
1275
+ # native copy button (inline code is not tap-to-copy). The fence sits before
1276
+ # the sentinel, so the sentinel remains the absolute last line.
1277
+ command_block = f"```\n{next_command}\n```"
1278
+ return "\n".join(
1279
+ ["**Next steps**", clear_line, next_line, "", command_block, NEXT_STEPS_SENTINEL]
1280
+ )
1275
1281
 
1276
1282
 
1277
1283
  def stage_exit(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feature-forge",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "agent": "codex",
5
5
  "generatedBy": "python3 scripts/build-adapters.py"
6
6
  }
@@ -1258,8 +1258,8 @@ def _next_steps_block(next_command: str, host: str) -> str:
1258
1258
  "I can't `/clear` for you — you have to run it yourself."
1259
1259
  )
1260
1260
  next_line = (
1261
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1262
- "`/feature-forge:forge` to let the navigator resume from disk."
1261
+ "2. Then start a fresh session and run the next stage below — or "
1262
+ "re-run `/feature-forge:forge` to let the navigator resume from disk."
1263
1263
  )
1264
1264
  else:
1265
1265
  clear_line = (
@@ -1268,10 +1268,16 @@ def _next_steps_block(next_command: str, host: str) -> str:
1268
1268
  "disk, so the work survives it."
1269
1269
  )
1270
1270
  next_line = (
1271
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1272
- "the forge navigator skill to resume from disk."
1271
+ "2. Then start a fresh session and run the next stage below — or "
1272
+ "re-run the forge navigator skill to resume from disk."
1273
1273
  )
1274
- return "\n".join(["**Next steps**", clear_line, next_line, NEXT_STEPS_SENTINEL])
1274
+ # The next-stage command goes in a fenced block so mobile/remote hosts get a
1275
+ # native copy button (inline code is not tap-to-copy). The fence sits before
1276
+ # the sentinel, so the sentinel remains the absolute last line.
1277
+ command_block = f"```\n{next_command}\n```"
1278
+ return "\n".join(
1279
+ ["**Next steps**", clear_line, next_line, "", command_block, NEXT_STEPS_SENTINEL]
1280
+ )
1275
1281
 
1276
1282
 
1277
1283
  def stage_exit(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feature-forge",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "agent": "copilot",
5
5
  "generatedBy": "python3 scripts/build-adapters.py"
6
6
  }
@@ -1258,8 +1258,8 @@ def _next_steps_block(next_command: str, host: str) -> str:
1258
1258
  "I can't `/clear` for you — you have to run it yourself."
1259
1259
  )
1260
1260
  next_line = (
1261
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1262
- "`/feature-forge:forge` to let the navigator resume from disk."
1261
+ "2. Then start a fresh session and run the next stage below — or "
1262
+ "re-run `/feature-forge:forge` to let the navigator resume from disk."
1263
1263
  )
1264
1264
  else:
1265
1265
  clear_line = (
@@ -1268,10 +1268,16 @@ def _next_steps_block(next_command: str, host: str) -> str:
1268
1268
  "disk, so the work survives it."
1269
1269
  )
1270
1270
  next_line = (
1271
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1272
- "the forge navigator skill to resume from disk."
1271
+ "2. Then start a fresh session and run the next stage below — or "
1272
+ "re-run the forge navigator skill to resume from disk."
1273
1273
  )
1274
- return "\n".join(["**Next steps**", clear_line, next_line, NEXT_STEPS_SENTINEL])
1274
+ # The next-stage command goes in a fenced block so mobile/remote hosts get a
1275
+ # native copy button (inline code is not tap-to-copy). The fence sits before
1276
+ # the sentinel, so the sentinel remains the absolute last line.
1277
+ command_block = f"```\n{next_command}\n```"
1278
+ return "\n".join(
1279
+ ["**Next steps**", clear_line, next_line, "", command_block, NEXT_STEPS_SENTINEL]
1280
+ )
1275
1281
 
1276
1282
 
1277
1283
  def stage_exit(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feature-forge",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "agent": "cursor",
5
5
  "generatedBy": "python3 scripts/build-adapters.py"
6
6
  }
@@ -1258,8 +1258,8 @@ def _next_steps_block(next_command: str, host: str) -> str:
1258
1258
  "I can't `/clear` for you — you have to run it yourself."
1259
1259
  )
1260
1260
  next_line = (
1261
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1262
- "`/feature-forge:forge` to let the navigator resume from disk."
1261
+ "2. Then start a fresh session and run the next stage below — or "
1262
+ "re-run `/feature-forge:forge` to let the navigator resume from disk."
1263
1263
  )
1264
1264
  else:
1265
1265
  clear_line = (
@@ -1268,10 +1268,16 @@ def _next_steps_block(next_command: str, host: str) -> str:
1268
1268
  "disk, so the work survives it."
1269
1269
  )
1270
1270
  next_line = (
1271
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1272
- "the forge navigator skill to resume from disk."
1271
+ "2. Then start a fresh session and run the next stage below — or "
1272
+ "re-run the forge navigator skill to resume from disk."
1273
1273
  )
1274
- return "\n".join(["**Next steps**", clear_line, next_line, NEXT_STEPS_SENTINEL])
1274
+ # The next-stage command goes in a fenced block so mobile/remote hosts get a
1275
+ # native copy button (inline code is not tap-to-copy). The fence sits before
1276
+ # the sentinel, so the sentinel remains the absolute last line.
1277
+ command_block = f"```\n{next_command}\n```"
1278
+ return "\n".join(
1279
+ ["**Next steps**", clear_line, next_line, "", command_block, NEXT_STEPS_SENTINEL]
1280
+ )
1275
1281
 
1276
1282
 
1277
1283
  def stage_exit(
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feature-forge",
3
- "version": "0.12.2",
3
+ "version": "0.12.3",
4
4
  "agent": "gemini",
5
5
  "generatedBy": "python3 scripts/build-adapters.py"
6
6
  }
@@ -4,7 +4,7 @@
4
4
  "regenerate": "python3 scripts/build-adapters.py"
5
5
  },
6
6
  "name": "feature-forge",
7
- "version": "0.12.2",
7
+ "version": "0.12.3",
8
8
  "skills": [
9
9
  {
10
10
  "name": "forge-0-epic",
@@ -1258,8 +1258,8 @@ def _next_steps_block(next_command: str, host: str) -> str:
1258
1258
  "I can't `/clear` for you — you have to run it yourself."
1259
1259
  )
1260
1260
  next_line = (
1261
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1262
- "`/feature-forge:forge` to let the navigator resume from disk."
1261
+ "2. Then start a fresh session and run the next stage below — or "
1262
+ "re-run `/feature-forge:forge` to let the navigator resume from disk."
1263
1263
  )
1264
1264
  else:
1265
1265
  clear_line = (
@@ -1268,10 +1268,16 @@ def _next_steps_block(next_command: str, host: str) -> str:
1268
1268
  "disk, so the work survives it."
1269
1269
  )
1270
1270
  next_line = (
1271
- f"2. Then run `{next_command}` in the fresh session — or re-run "
1272
- "the forge navigator skill to resume from disk."
1271
+ "2. Then start a fresh session and run the next stage below — or "
1272
+ "re-run the forge navigator skill to resume from disk."
1273
1273
  )
1274
- return "\n".join(["**Next steps**", clear_line, next_line, NEXT_STEPS_SENTINEL])
1274
+ # The next-stage command goes in a fenced block so mobile/remote hosts get a
1275
+ # native copy button (inline code is not tap-to-copy). The fence sits before
1276
+ # the sentinel, so the sentinel remains the absolute last line.
1277
+ command_block = f"```\n{next_command}\n```"
1278
+ return "\n".join(
1279
+ ["**Next steps**", clear_line, next_line, "", command_block, NEXT_STEPS_SENTINEL]
1280
+ )
1275
1281
 
1276
1282
 
1277
1283
  def stage_exit(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@garygentry/feature-forge",
3
- "version": "0.2.7",
3
+ "version": "0.2.8",
4
4
  "description": "Cross-agent installer for the feature-forge skill suite — installs the canonical forge pipeline into Claude, Codex, Copilot, Cursor, or Gemini.",
5
5
  "license": "MIT",
6
6
  "type": "module",