shippingszn 0.9.5 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +18 -18
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # shippingszn
2
2
 
3
3
  Primary local scanner for shippingszn launch readiness. Run it inside the app
4
- you are about to ship to catch the launch blockers AI builders commonly miss:
4
+ you are about to ship to catch the launch debt AI builders commonly miss:
5
5
  leaked API keys, missing crawl assets, weak browser defenses, dangerous code
6
6
  patterns, and last-mile polish gaps.
7
7
 
package/dist/index.js CHANGED
@@ -3854,9 +3854,9 @@ var SCORE_BANDS = [
3854
3854
  id: "blocked",
3855
3855
  minScore: 0,
3856
3856
  maxScore: 59,
3857
- label: "No-go: launch blocked",
3857
+ label: "Fix now",
3858
3858
  decision: "no-go",
3859
- goNoGoLabel: "No-go"
3859
+ goNoGoLabel: "Fix now"
3860
3860
  },
3861
3861
  {
3862
3862
  id: "fix_first",
@@ -4121,7 +4121,7 @@ function coverageSummary(source, coverage) {
4121
4121
  }
4122
4122
  function defaultWhy(severity, source) {
4123
4123
  if (severity === "critical") {
4124
- return `This is treated as launch-blocking evidence from the ${sourceLabel(source)} because it can expose users, secrets, revenue, or the primary launch surface.`;
4124
+ return `This is treated as critical launch debt from the ${sourceLabel(source)} because it can expose users, secrets, revenue, or the primary launch surface.`;
4125
4125
  }
4126
4126
  if (severity === "high") {
4127
4127
  return `This can turn a launch into a trust, security, cost, or conversion problem even if the app appears to work.`;
@@ -4240,18 +4240,18 @@ function bandFor(score, counts) {
4240
4240
  }
4241
4241
  function decisionText(band, counts, source) {
4242
4242
  if (counts.critical > 0) {
4243
- return `Do not launch yet. ${counts.critical} critical blocker${counts.critical === 1 ? "" : "s"} must be fixed and rescanned before public traffic.`;
4243
+ return `Fix now. ${counts.critical} critical finding${counts.critical === 1 ? "" : "s"} should be fixed and rescanned before more public traffic.`;
4244
4244
  }
4245
4245
  if (counts.high > 0) {
4246
4246
  return `Fix the high-risk launch gaps before a real campaign, customer demo, or paid traffic.`;
4247
4247
  }
4248
4248
  if (counts.medium > 0 || counts.lower > 0) {
4249
- return `No critical or high blocker was detected, but the remaining readiness gaps should be fixed and verified before treating the ${sourceLabel(source)} as launchable.`;
4249
+ return `No critical or high finding was detected, but the remaining readiness gaps should be fixed and verified before treating the ${sourceLabel(source)} as day-1 ready.`;
4250
4250
  }
4251
4251
  if (source === "url") {
4252
- return "No public-page blockers were found. Run the CLI or GitHub Action before calling the app launch-ready.";
4252
+ return "No public-page critical findings were found. Run the CLI or GitHub Action before calling the app day-1 ready.";
4253
4253
  }
4254
- return `${band.goNoGoLabel}: no scan-detected blockers were found. Monitor first production traffic.`;
4254
+ return `${band.goNoGoLabel}: no scan-detected critical findings were found. Monitor first production traffic.`;
4255
4255
  }
4256
4256
  function topNextStep(blockers, counts, source) {
4257
4257
  const top = blockers[0];
@@ -4262,9 +4262,9 @@ function topNextStep(blockers, counts, source) {
4262
4262
  return "Run the repo scan next so secrets, auth, API routes, and generated-code risks are checked before launch.";
4263
4263
  }
4264
4264
  if (counts.medium > 0 || counts.lower > 0) {
4265
- return "Fix the remaining readiness gaps and rescan before launch.";
4265
+ return "Fix the remaining readiness gaps and rescan before the next launch push.";
4266
4266
  }
4267
- return "No obvious launch blockers caught. Monitor first production traffic and keep the paid report for higher-stakes launches.";
4267
+ return "No obvious critical launch debt caught. Monitor first production traffic and keep the paid report for higher-stakes launches.";
4268
4268
  }
4269
4269
  function aggregateConfidence(source, findings) {
4270
4270
  if (findings.some((finding2) => finding2.confidence === "low")) return "low";
@@ -4325,11 +4325,11 @@ function assessLaunchReadiness(input, promptBuilder) {
4325
4325
  var defaultPrompt = (input) => {
4326
4326
  const where = input.location ? `Likely location: ${input.location}.` : "Inspect the relevant app, deploy, and configuration files before editing.";
4327
4327
  return [
4328
- "You are fixing a shippingszn launch-readiness blocker in an AI-built app.",
4328
+ "You are fixing a shippingszn launch-readiness finding in an AI-built app.",
4329
4329
  `Severity: ${input.severity}.`,
4330
4330
  `Finding: ${input.title}.`,
4331
4331
  `What failed: ${input.whatFailed}`,
4332
- `Why it blocks launch: ${input.whyItBlocksLaunch}`,
4332
+ `Why it matters now: ${input.whyItBlocksLaunch}`,
4333
4333
  where,
4334
4334
  `Fix exactly this: ${input.fixInstructions}`,
4335
4335
  `Verification required: ${input.verificationStep}`,
@@ -4638,7 +4638,7 @@ async function run() {
4638
4638
  (item) => item.cliCoverage === "automated"
4639
4639
  ).length;
4640
4640
  const SCORE_BAND_LABEL = {
4641
- blocked: "NO-GO",
4641
+ blocked: "FIX NOW",
4642
4642
  fix_first: "FIX FIRST",
4643
4643
  verify_first: "VERIFY BEFORE LAUNCH",
4644
4644
  launchable: "LAUNCHABLE"
@@ -4718,9 +4718,9 @@ ${c.bold("shippingszn")} ${c.dim(`v${PKG_VERSION}`)}
4718
4718
  const totalFindings = totals.critical + totals.high + totals.medium + totals.lower;
4719
4719
  if (totalFindings > 0) {
4720
4720
  if (totals.critical > 0) {
4721
- process.stdout.write(c.red("Critical launch blocker found.\n"));
4721
+ process.stdout.write(c.red("Critical launch debt found.\n"));
4722
4722
  process.stdout.write(
4723
- `This scan found ${totalFindings} ${pluralize(totalFindings, "issue")} that should be fixed before launch.
4723
+ `This scan found ${totalFindings} ${pluralize(totalFindings, "issue")} that should be fixed before more public traffic.
4724
4724
 
4725
4725
  `
4726
4726
  );
@@ -4732,12 +4732,12 @@ ${c.bold("shippingszn")} ${c.dim(`v${PKG_VERSION}`)}
4732
4732
  )
4733
4733
  );
4734
4734
  } else {
4735
- process.stdout.write("No critical blockers found.\n");
4735
+ process.stdout.write("No critical findings found.\n");
4736
4736
  if (totals.high === 0) {
4737
- process.stdout.write("No high blockers found.\n");
4737
+ process.stdout.write("No high findings found.\n");
4738
4738
  }
4739
4739
  process.stdout.write(
4740
- `But ${totalFindings} ${pluralize(totalFindings, "issue")} ${findingVerb(totalFindings)} still holding this back from a clean launch.
4740
+ `But ${totalFindings} ${pluralize(totalFindings, "issue")} ${findingVerb(totalFindings)} still holding this back from a clean day-1 posture.
4741
4741
 
4742
4742
  `
4743
4743
  );
@@ -4758,7 +4758,7 @@ ${c.bold("shippingszn")} ${c.dim(`v${PKG_VERSION}`)}
4758
4758
  } else {
4759
4759
  process.stdout.write(
4760
4760
  c.dim(
4761
- "Lower launch debt usually is not launch-blocking, but it can still make the project feel rough or unfinished.\n\n"
4761
+ "Lower launch debt usually will not break the app, but it can still make the project feel rough or unfinished.\n\n"
4762
4762
  )
4763
4763
  );
4764
4764
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shippingszn",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "description": "Read-only CLI scanner that checks a project for common pre-launch issues from the shippingszn.com launch checklist.",
5
5
  "license": "MIT",
6
6
  "type": "module",