@produtype/core 0.47.0 → 0.48.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.
@@ -5,7 +5,8 @@ export interface ExecutiveSummary {
5
5
  /** One sentence a non-technical reader can act on. */
6
6
  verdict: string;
7
7
  /** Whether the product can plausibly be launched as the selected profile. */
8
- launchReady: boolean;
8
+ /** `null` where the report could not judge the project at all. */
9
+ launchReady: boolean | null;
9
10
  /** The blocking themes, in plain language, worst first. */
10
11
  topRisks: string[];
11
12
  /** What the repository already does well, so the report is not only negative. */
@@ -123,7 +123,15 @@ function buildVerdict(args) {
123
123
  verdict: reason
124
124
  ? `ProdKit could not judge this project. ${reason}`
125
125
  : 'ProdKit could not recognise this project well enough to judge it. Check that the path points at application source.',
126
- launchReady: false,
126
+ /**
127
+ * `null`, not `false`.
128
+ *
129
+ * The verdict directly above says the project could not be judged, and the flag
130
+ * beside it said "not launch ready" — which the interface rendered as an amber
131
+ * badge reading exactly that. One of the two is a verdict about the product and
132
+ * the other is the absence of one; they cannot both be shown.
133
+ */
134
+ launchReady: null,
127
135
  };
128
136
  }
129
137
  if (!args.profile) {
@@ -202,7 +210,15 @@ function buildExecutiveSummary(args) {
202
210
  verdict,
203
211
  launchReady,
204
212
  topRisks,
205
- strengths: buildStrengths(args.categoryScores, args.findings),
213
+ /**
214
+ * A report that refuses to judge does not hand out compliments.
215
+ *
216
+ * A Python transcription script whose verdict read "ProdKit could not judge this
217
+ * project" listed three strengths underneath it, each of them a single check in a
218
+ * category nothing else had touched. The third place the same refusal sat next to
219
+ * the same praise.
220
+ */
221
+ strengths: args.inconclusive ? [] : buildStrengths(args.categoryScores, args.findings),
206
222
  estimatedEffort: estimateEffort(args.findings, args.profile),
207
223
  scoreExplanation,
208
224
  };
@@ -109,7 +109,7 @@ function executiveSummarySection(report) {
109
109
  '',
110
110
  summary.verdict,
111
111
  '',
112
- `- Launch ready: ${summary.launchReady ? 'yes' : 'no'}`,
112
+ `- Launch ready: ${summary.launchReady === null ? 'not judged' : summary.launchReady ? 'yes' : 'no'}`,
113
113
  `- Score: ${summary.scoreExplanation}`,
114
114
  `- Estimated effort: ${summary.estimatedEffort}`,
115
115
  '',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@produtype/core",
3
- "version": "0.47.0",
3
+ "version": "0.48.0",
4
4
  "description": "Deterministic CLI and library that analyzes a web application repository and reports how far it is from production-ready for the kind of product it is meant to be.",
5
5
  "license": "MIT",
6
6
  "bin": {