@clemrig/factory 0.18.3 → 0.19.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.
Files changed (54) hide show
  1. package/README.md +14 -18
  2. package/dist/app/factory.d.ts +2 -0
  3. package/dist/app/factory.js +5 -1
  4. package/dist/app/factory.js.map +1 -1
  5. package/dist/app/review.d.ts +16 -0
  6. package/dist/app/review.js +87 -0
  7. package/dist/app/review.js.map +1 -0
  8. package/dist/app/workflows/implement.js +3 -7
  9. package/dist/app/workflows/implement.js.map +1 -1
  10. package/dist/app/workflows/stages/deliver.d.ts +5 -4
  11. package/dist/app/workflows/stages/deliver.js +47 -53
  12. package/dist/app/workflows/stages/deliver.js.map +1 -1
  13. package/dist/app/workflows/stages/prepare.js +11 -7
  14. package/dist/app/workflows/stages/prepare.js.map +1 -1
  15. package/dist/app/workflows/stages/resume.js +0 -4
  16. package/dist/app/workflows/stages/resume.js.map +1 -1
  17. package/dist/app/workflows/stages/run.d.ts +1 -2
  18. package/dist/app/workflows/tidy.js +2 -3
  19. package/dist/app/workflows/tidy.js.map +1 -1
  20. package/dist/cli/ui.d.ts +4 -2
  21. package/dist/cli/ui.js +17 -5
  22. package/dist/cli/ui.js.map +1 -1
  23. package/dist/domain/board.d.ts +2 -0
  24. package/dist/domain/board.js +4 -1
  25. package/dist/domain/board.js.map +1 -1
  26. package/dist/domain/description.d.ts +57 -5
  27. package/dist/domain/description.js +133 -12
  28. package/dist/domain/description.js.map +1 -1
  29. package/dist/domain/diff.d.ts +8 -0
  30. package/dist/domain/diff.js +90 -0
  31. package/dist/domain/diff.js.map +1 -0
  32. package/dist/domain/pull-request.d.ts +9 -21
  33. package/dist/domain/pull-request.js +43 -228
  34. package/dist/domain/pull-request.js.map +1 -1
  35. package/dist/domain/review-page.d.ts +171 -0
  36. package/dist/domain/review-page.js +200 -0
  37. package/dist/domain/review-page.js.map +1 -0
  38. package/dist/system/environment.d.ts +6 -0
  39. package/dist/system/environment.js +19 -0
  40. package/dist/system/environment.js.map +1 -1
  41. package/dist/system/factory.d.ts +2 -0
  42. package/dist/system/factory.js +4 -0
  43. package/dist/system/factory.js.map +1 -1
  44. package/dist/system/git.d.ts +5 -1
  45. package/dist/system/git.js +19 -2
  46. package/dist/system/git.js.map +1 -1
  47. package/dist/system/github.d.ts +3 -12
  48. package/dist/system/github.js +7 -31
  49. package/dist/system/github.js.map +1 -1
  50. package/dist/system/run-files.d.ts +14 -0
  51. package/dist/system/run-files.js +51 -8
  52. package/dist/system/run-files.js.map +1 -1
  53. package/package.json +2 -2
  54. package/prompts/describe.md +36 -15
@@ -1,10 +1,10 @@
1
1
  import { code, step } from "@clemrig/flow";
2
- import { ghVersionProblem } from "../../../domain/pull-request.js";
3
2
  import { parseSpec } from "../../../domain/spec.js";
4
3
  import { isTidyBranch, tidySlug } from "../../../domain/tidy.js";
5
4
  import { failureFeedback, } from "../../../domain/verification.js";
6
5
  import { runBrowser } from "../../../system/browser.js";
7
6
  import { runChecks } from "../../../system/checks.js";
7
+ import { uiUrl } from "../../../system/environment.js";
8
8
  import * as git from "../../../system/git.js";
9
9
  import * as github from "../../../system/github.js";
10
10
  import { artifactPath, hasArtifact, isIssue, readArtifact, } from "../../../system/issues.js";
@@ -25,14 +25,18 @@ async function baseProblems(dir, base) {
25
25
  problems.push(`${base} must match origin/${base}: push or pull first`);
26
26
  return problems;
27
27
  }
28
- /** The repository on GitHub, when gh is recent enough and logged in to open its pull request; otherwise why not. */
28
+ /**
29
+ * The repository on GitHub, when gh is logged in to open its pull request and
30
+ * the review page it links to has a valid address; otherwise why not.
31
+ */
29
32
  async function gitHubProblems(dir) {
30
33
  const problems = [];
31
- const version = await github
32
- .version(dir)
33
- .then(ghVersionProblem, (error) => message(error));
34
- if (version)
35
- problems.push(version);
34
+ try {
35
+ uiUrl();
36
+ }
37
+ catch (error) {
38
+ problems.push(message(error));
39
+ }
36
40
  if (!(await github.isAuthenticated(dir))) {
37
41
  problems.push("gh is not logged in: run gh auth login");
38
42
  return { problems };
@@ -1 +1 @@
1
- {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/prepare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prepare.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/prepare.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,6 @@ import { facts, short, specCommitOf } from "./run.js";
9
9
  export async function resumeProblem({ dir, state, }) {
10
10
  if (state.stage === "prepare")
11
11
  return undefined;
12
- // Its pull request is open: only its screenshots remain to attach, from the
13
- // run's folder, whatever the repository is on.
14
- if (state.stage === "attach")
15
- return undefined;
16
12
  // Stopped once its last stage was done, such as by Ctrl-C.
17
13
  const { pullRequest } = state.data;
18
14
  if (typeof pullRequest === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/resume.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../../src/app/workflows/stages/resume.ts"],"names":[],"mappings":"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"}
@@ -17,10 +17,9 @@ export interface Facts {
17
17
  /** The spec's Objective, which the pull request recalls. */
18
18
  objective: string;
19
19
  criteria: Criterion[];
20
- /** The repository on GitHub: its page, and whether anyone can see it. */
20
+ /** The repository on GitHub: its page. */
21
21
  repository: {
22
22
  url: string;
23
- public: boolean;
24
23
  };
25
24
  /** The agents' browser, when `.factory/` installs one. */
26
25
  browser?: string;
@@ -1,7 +1,7 @@
1
1
  import { defineWorkflow, END, node, retry } from "@clemrig/flow";
2
2
  import { TIDY } from "../../domain/tidy.js";
3
3
  import { commitSpec, judgeChoice, release, scout, survey, tidyResult, } from "./stages/choose.js";
4
- import { attach, deliver, describer, judgeDescription, } from "./stages/deliver.js";
4
+ import { deliver, describer, judgeDescription } from "./stages/deliver.js";
5
5
  import { implementer, judgeImplementation } from "./stages/implement.js";
6
6
  import { commitPlan, judgePlan, planner } from "./stages/plan.js";
7
7
  import { prepareTidy } from "./stages/prepare.js";
@@ -67,8 +67,7 @@ export function tidy(definition) {
67
67
  ok: "deliver",
68
68
  invalid: retry("describe", 2),
69
69
  }),
70
- deliver: node(deliver, { done: END, attach: "attach" }),
71
- attach: node(attach, { ok: END }),
70
+ deliver: node(deliver, { done: END }),
72
71
  },
73
72
  resumeProblem,
74
73
  // Also called for a failed run, which opened no pull request.
@@ -1 +1 @@
1
- {"version":3,"file":"tidy.js","sourceRoot":"","sources":["../../../src/app/workflows/tidy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tidy.js","sourceRoot":"","sources":["../../../src/app/workflows/tidy.ts"],"names":[],"mappings":"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"}
package/dist/cli/ui.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { Factory } from "../app/factory.js";
2
2
  /**
3
- * `factory ui`: serves the Kanban of the repository's issues, and the dashboard
4
- * of its runs under `/runs/`, until Ctrl-C, on `port` or one the system chooses.
3
+ * `factory ui`: serves the Kanban of the repository's issues, the dashboard
4
+ * of its runs under `/runs/` and each delivered run's review page, until
5
+ * Ctrl-C, on `port` or one the system chooses. It also answers the host of
6
+ * `FACTORY_UI_URL`, which a proxy such as `tailscale serve` keeps.
5
7
  */
6
8
  export declare function ui(factory: Factory, port?: number, loadError?: string): Promise<number>;
package/dist/cli/ui.js CHANGED
@@ -1,11 +1,15 @@
1
1
  import { basename } from "node:path";
2
- import { startFactoryUi } from "@clemrig/factory-ui";
2
+ import { startFactoryUi, } from "@clemrig/factory-ui";
3
3
  import { dashboardHandler } from "@clemrig/flow-ui";
4
4
  import { readBoard } from "../app/board.js";
5
+ import { uiAddress } from "../app/factory.js";
6
+ import { readReviewAnswers, readReviewPage, readReviewScreenshot, saveReviewAnswers, } from "../app/review.js";
5
7
  import { presentResult } from "../app/runs.js";
6
8
  /**
7
- * `factory ui`: serves the Kanban of the repository's issues, and the dashboard
8
- * of its runs under `/runs/`, until Ctrl-C, on `port` or one the system chooses.
9
+ * `factory ui`: serves the Kanban of the repository's issues, the dashboard
10
+ * of its runs under `/runs/` and each delivered run's review page, until
11
+ * Ctrl-C, on `port` or one the system chooses. It also answers the host of
12
+ * `FACTORY_UI_URL`, which a proxy such as `tailscale serve` keeps.
9
13
  */
10
14
  export async function ui(factory, port, loadError) {
11
15
  const label = basename(factory.dir);
@@ -17,14 +21,22 @@ export async function ui(factory, port, loadError) {
17
21
  // Mounted under `/runs/`: the Kanban is one level up.
18
22
  home: { label: "Board", href: "../" },
19
23
  });
24
+ const address = uiAddress();
20
25
  const page = await startFactoryUi({
21
26
  title: "factory",
22
27
  label,
23
- // The board the factory computes is what the page shows: checked here, where both meet.
28
+ // What the factory computes is what the pages show: checked here, where both meet.
24
29
  board: () => readBoard(factory, loadError),
25
30
  runs,
31
+ review: {
32
+ page: (run) => readReviewPage(factory, run, (file) => `api/review/${encodeURIComponent(run)}/screenshots/${encodeURIComponent(file)}`),
33
+ answers: (run) => readReviewAnswers(factory, run),
34
+ saveAnswers: (run, answers) => saveReviewAnswers(factory, run, answers),
35
+ screenshot: (run, file) => readReviewScreenshot(factory, run, file),
36
+ },
37
+ ...(address ? { hosts: [address.host] } : {}),
26
38
  }, port);
27
- process.stdout.write(`factory ui: ${page.url} (runs: ${page.url}runs/; read-only; Ctrl-C to stop)\n`);
39
+ process.stdout.write(`factory ui: ${page.url} (runs: ${page.url}runs/; review pages: ${address?.href ?? page.url}review?run=<id>; Ctrl-C to stop)\n`);
28
40
  await new Promise((resolve) => {
29
41
  const stop = () => {
30
42
  process.off("SIGINT", stop);
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAc,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,EAAE,CACtB,OAAgB,EAChB,IAAa,EACb,SAAkB;IAElB,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC;QACvD,sDAAsD;QACtD,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;KACtC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAC/B;QACE,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,wFAAwF;QACxF,KAAK,EAAE,GAAmB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;QAC1D,IAAI;KACL,EACD,IAAI,CACL,CAAC;IACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,eAAe,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,GAAG,qCAAqC,CAChF,CAAC;IACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,IAAI,GAAG,GAAG,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/cli/ui.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,8 @@ export interface IssueCard {
47
47
  waitsFor: string[];
48
48
  /** The newest pull request its deliveries recorded. */
49
49
  pullRequest?: string;
50
+ /** The run that recorded it, when it has a review page: one that described its change. */
51
+ review?: string;
50
52
  /** The last run of each shown workflow, newest first. */
51
53
  runs: RunProgress[];
52
54
  }
@@ -67,7 +67,8 @@ export function boardOf(issues, runs, shown, problems) {
67
67
  // The last delivery sets the column. A new delivery updates the same pull
68
68
  // request: the newest one recorded stays shown.
69
69
  const delivery = last(DELIVERY);
70
- const pullRequest = own.map(pullRequestOf).findLast(Boolean);
70
+ const delivered = own.findLast((run) => pullRequestOf(run) !== undefined);
71
+ const pullRequest = delivered && pullRequestOf(delivered);
71
72
  const cardRuns = shown
72
73
  .flatMap((workflow) => {
73
74
  const run = last(workflow.name);
@@ -91,6 +92,8 @@ export function boardOf(issues, runs, shown, problems) {
91
92
  .filter(({ delivered }) => !delivered)
92
93
  .map(({ slug }) => slug),
93
94
  ...(pullRequest ? { pullRequest } : {}),
95
+ // Runs delivered by an earlier factory have no description, nor its page.
96
+ ...(delivered?.data.description ? { review: delivered.id } : {}),
94
97
  runs: cardRuns,
95
98
  },
96
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/domain/board.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"board.js","sourceRoot":"","sources":["../../src/domain/board.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
1
  import { z } from "@clemrig/flow";
2
2
  import type { ChangedFile } from "./review.js";
3
- /** What GitHub draws: a mermaid diagram; a diff or a text block shows a shape as it is. */
3
+ import type { Criterion } from "./spec.js";
4
+ /** What the review page draws: a mermaid diagram; a diff or a text block shows a shape as it is. */
4
5
  export declare const visualKinds: readonly ["mermaid", "diff", "text"];
5
- /** GitHub's limit for an image attached to a pull request. */
6
+ /** The largest screenshot: the review page loads it whole, on a phone too. */
6
7
  export declare const maxScreenshotBytes: number;
8
+ /** What a decision departs from: the spec's scope, a test that existed, or the spec's letter. */
9
+ export declare const decisionKinds: readonly ["beyond_spec", "changed_test", "spec_reading"];
10
+ /** What a decision's card shows: one of these, with its own fields. */
11
+ export declare const decisionVisualKinds: readonly ["reading", "diff", "screenshots", "list"];
7
12
  /**
8
13
  * The describing agent's response: what a reader who forgot the issue needs
9
- * to review its pull request. As many items as the change calls for.
14
+ * to review its pull request, on the review page. As many items as the
15
+ * change calls for.
10
16
  */
11
17
  export declare const descriptionOutput: z.ZodObject<{
12
18
  changes: z.ZodArray<z.ZodString>;
@@ -45,7 +51,53 @@ export declare const descriptionOutput: z.ZodObject<{
45
51
  caption: z.ZodString;
46
52
  }, z.core.$strict>>;
47
53
  noScreenshots: z.ZodOptional<z.ZodString>;
54
+ decisions: z.ZodArray<z.ZodObject<{
55
+ kind: z.ZodEnum<{
56
+ beyond_spec: "beyond_spec";
57
+ changed_test: "changed_test";
58
+ spec_reading: "spec_reading";
59
+ }>;
60
+ title: z.ZodString;
61
+ criterion: z.ZodOptional<z.ZodString>;
62
+ advice: z.ZodEnum<{
63
+ accept: "accept";
64
+ revise: "revise";
65
+ }>;
66
+ recommendation: z.ZodString;
67
+ why: z.ZodString;
68
+ source: z.ZodOptional<z.ZodString>;
69
+ file: z.ZodOptional<z.ZodString>;
70
+ visual: z.ZodOptional<z.ZodObject<{
71
+ kind: z.ZodEnum<{
72
+ diff: "diff";
73
+ list: "list";
74
+ reading: "reading";
75
+ screenshots: "screenshots";
76
+ }>;
77
+ spec: z.ZodOptional<z.ZodString>;
78
+ read: z.ZodOptional<z.ZodString>;
79
+ file: z.ZodOptional<z.ZodString>;
80
+ from: z.ZodOptional<z.ZodNumber>;
81
+ to: z.ZodOptional<z.ZodNumber>;
82
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
83
+ items: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
+ }, z.core.$strict>>;
85
+ }, z.core.$strict>>;
86
+ manualChecks: z.ZodArray<z.ZodObject<{
87
+ title: z.ZodString;
88
+ expect: z.ZodString;
89
+ why: z.ZodString;
90
+ }, z.core.$strict>>;
48
91
  }, z.core.$strict>;
49
92
  export type Description = z.output<typeof descriptionOutput>;
50
- /** What is wrong with a description of these changed files, the screenshots' files aside. */
51
- export declare function descriptionProblems(description: Description, files: ChangedFile[]): string[];
93
+ /** What a description is checked against: the run's change, criteria, interpretations and deviations. */
94
+ export interface Described {
95
+ files: ChangedFile[];
96
+ /** The change's whole diff. */
97
+ diff: string;
98
+ criteria: Pick<Criterion, "id">[];
99
+ interpretations: number;
100
+ deviations: number;
101
+ }
102
+ /** What is wrong with a description of this change, the screenshots' files aside. */
103
+ export declare function descriptionProblems(description: Description, described: Described): string[];
@@ -1,14 +1,39 @@
1
1
  import { z } from "@clemrig/flow";
2
+ import { diffExcerpt } from "./diff.js";
2
3
  const text = z.string().trim().min(1);
3
- /** What GitHub draws: a mermaid diagram; a diff or a text block shows a shape as it is. */
4
+ const line = z.number().int().min(1);
5
+ /** What the review page draws: a mermaid diagram; a diff or a text block shows a shape as it is. */
4
6
  export const visualKinds = ["mermaid", "diff", "text"];
5
- /** The image files a pull request shows, as GitHub accepts them. */
7
+ /** The image files the review page shows. */
6
8
  const imageExtensions = [".png", ".jpg", ".jpeg", ".gif", ".webp"];
7
- /** GitHub's limit for an image attached to a pull request. */
9
+ /** The largest screenshot: the review page loads it whole, on a phone too. */
8
10
  export const maxScreenshotBytes = 10 * 1024 * 1024;
11
+ /** What a decision departs from: the spec's scope, a test that existed, or the spec's letter. */
12
+ export const decisionKinds = [
13
+ "beyond_spec",
14
+ "changed_test",
15
+ "spec_reading",
16
+ ];
17
+ /** What a decision's card shows: one of these, with its own fields. */
18
+ export const decisionVisualKinds = [
19
+ "reading",
20
+ "diff",
21
+ "screenshots",
22
+ "list",
23
+ ];
24
+ /** The fields each kind of visual takes. */
25
+ const visualFields = {
26
+ reading: { spec: true, read: true },
27
+ diff: { file: true, from: true, to: true },
28
+ screenshots: { files: true },
29
+ list: { items: true },
30
+ };
31
+ /** The longest excerpt of the diff a card shows, in lines of the file. */
32
+ const maxExcerptLines = 60;
9
33
  /**
10
34
  * The describing agent's response: what a reader who forgot the issue needs
11
- * to review its pull request. As many items as the change calls for.
35
+ * to review its pull request, on the review page. As many items as the
36
+ * change calls for.
12
37
  */
13
38
  export const descriptionOutput = z.strictObject({
14
39
  /** Each change of behavior, as a user, a client or an operator observes it. */
@@ -41,12 +66,110 @@ export const descriptionOutput = z.strictObject({
41
66
  screenshots: z.array(z.strictObject({ file: text, caption: text })),
42
67
  /** Why there is no screenshot, when there is none. */
43
68
  noScreenshots: text.optional(),
69
+ /**
70
+ * What a person decides before merging, one card each: every change beyond
71
+ * the spec, every existing test whose expectation changed, every reading of
72
+ * the spec beyond its letter.
73
+ */
74
+ decisions: z.array(z.strictObject({
75
+ kind: z.enum(decisionKinds),
76
+ /** The decision, in a sentence. */
77
+ title: text,
78
+ /** The criterion it bears on. */
79
+ criterion: text.optional(),
80
+ /** The answer advised. */
81
+ advice: z.enum(["accept", "revise"]),
82
+ /** Why that answer, in a sentence or two. */
83
+ recommendation: text,
84
+ /** Why it needs a person. */
85
+ why: text,
86
+ /** The interpretation (`I1`…) or deviation (`D1`…) it comes from. */
87
+ source: z
88
+ .string()
89
+ .regex(/^[ID][1-9]\d*$/)
90
+ .optional(),
91
+ /** The changed file to open. */
92
+ file: text.optional(),
93
+ /** What its card shows; the fields of its kind only. */
94
+ visual: z
95
+ .strictObject({
96
+ kind: z.enum(decisionVisualKinds),
97
+ /** `reading`: the spec's words, and the plan's reading of them. */
98
+ spec: text.optional(),
99
+ read: text.optional(),
100
+ /** `diff`: a changed file and lines of its new version (of its old one, for a deleted file). */
101
+ file: text.optional(),
102
+ from: line.optional(),
103
+ to: line.optional(),
104
+ /** `screenshots`: screenshots of the description, by file. */
105
+ files: z.array(text).min(1).optional(),
106
+ /** `list`: a few short items. */
107
+ items: z.array(text).min(1).optional(),
108
+ })
109
+ .optional(),
110
+ })),
111
+ /** What only a person can check, which the run could not: on a real device, with real data. */
112
+ manualChecks: z.array(z.strictObject({
113
+ /** What to do, in a sentence. */
114
+ title: text,
115
+ /** What should happen. */
116
+ expect: text,
117
+ /** Why the run could not check it. */
118
+ why: text,
119
+ })),
44
120
  });
45
- /** What `gh` attaches in one command. */
46
- const maxScreenshots = 50;
47
- /** What is wrong with a description of these changed files, the screenshots' files aside. */
48
- export function descriptionProblems(description, files) {
49
- const changed = new Set(files.map(({ path }) => path));
121
+ /** What is wrong with a decision's visual. */
122
+ function visualProblems(visual, where, { diff }, shots) {
123
+ const fields = Object.keys(visualFields[visual.kind]);
124
+ const given = Object.entries(visual).flatMap(([key, value]) => key !== "kind" && value !== undefined ? [key] : []);
125
+ const problems = [
126
+ ...fields
127
+ .filter((field) => !given.includes(field))
128
+ .map((field) => `${where}: ${visual.kind} needs ${field}`),
129
+ ...given
130
+ .filter((field) => !fields.includes(field))
131
+ .map((field) => `${where}: ${visual.kind} takes no ${field}`),
132
+ ];
133
+ if (problems.length > 0)
134
+ return problems;
135
+ const { file, from, to, files = [] } = visual;
136
+ if (file !== undefined && from !== undefined && to !== undefined) {
137
+ if (to < from || to - from >= maxExcerptLines)
138
+ problems.push(`${where}: from ${from} to ${to}, give at most ${maxExcerptLines} lines, in order`);
139
+ else if (!diffExcerpt(diff, file, from, to))
140
+ problems.push(`${where}: the diff changes no line of ${file} from ${from} to ${to}`);
141
+ }
142
+ for (const shot of files)
143
+ if (!shots.includes(shot))
144
+ problems.push(`${where}: ${shot} is not one of the screenshots`);
145
+ return problems;
146
+ }
147
+ /** What is wrong with the decisions: their sources, criteria, files and visuals. */
148
+ function decisionProblems({ decisions, screenshots }, described, changed) {
149
+ const shots = screenshots.map(({ file }) => file);
150
+ const ids = described.criteria.map(({ id }) => id);
151
+ return decisions.flatMap((decision, index) => {
152
+ const where = `decisions[${index}]`;
153
+ const problems = [];
154
+ if (decision.criterion !== undefined && !ids.includes(decision.criterion))
155
+ problems.push(`${where}: ${decision.criterion} is not a criterion`);
156
+ if (decision.source !== undefined) {
157
+ const count = decision.source[0] === "I"
158
+ ? described.interpretations
159
+ : described.deviations;
160
+ if (Number(decision.source.slice(1)) > count)
161
+ problems.push(`${where}: there is no ${decision.source}`);
162
+ }
163
+ if (decision.file !== undefined && !changed.has(decision.file))
164
+ problems.push(`${where}: ${decision.file} is not a changed file`);
165
+ if (decision.visual)
166
+ problems.push(...visualProblems(decision.visual, `${where}.visual`, described, shots));
167
+ return problems;
168
+ });
169
+ }
170
+ /** What is wrong with a description of this change, the screenshots' files aside. */
171
+ export function descriptionProblems(description, described) {
172
+ const changed = new Set(described.files.map(({ path }) => path));
50
173
  const problems = [];
51
174
  const { start, groups } = description.guide;
52
175
  if (!changed.has(start.file))
@@ -67,12 +190,10 @@ export function descriptionProblems(description, files) {
67
190
  if (shots.indexOf(file) !== shots.lastIndexOf(file))
68
191
  problems.push(`screenshots: ${file} is listed twice`);
69
192
  }
70
- if (shots.length > maxScreenshots)
71
- problems.push(`screenshots: ${maxScreenshots} at most`);
72
193
  if (shots.length === 0 && !description.noScreenshots)
73
194
  problems.push("noScreenshots: say why there is no screenshot");
74
195
  if (shots.length > 0 && description.noScreenshots)
75
196
  problems.push("noScreenshots: give it only when there is no screenshot");
76
- return problems;
197
+ return [...problems, ...decisionProblems(description, described, changed)];
77
198
  }
78
199
  //# sourceMappingURL=description.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"description.js","sourceRoot":"","sources":["../../src/domain/description.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"description.js","sourceRoot":"","sources":["../../src/domain/description.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The excerpt of `path`'s diff that shows lines `from` to `to` of its new
3
+ * version (of its old one, for a deleted file), with the lines removed just
4
+ * before each of them; each line keeps its mark, the common indentation
5
+ * removed, and `…` separates two hunks. `undefined` when it changes none of
6
+ * these lines.
7
+ */
8
+ export declare function diffExcerpt(diff: string, path: string, from: number, to: number): string | undefined;