autonomous-sdlc-harness 0.1.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 (171) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +7 -0
  3. package/README.md +24 -0
  4. package/dist/cli.js +194 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/config.js +561 -0
  7. package/dist/commands/config.js.map +1 -0
  8. package/dist/commands/daemon.js +791 -0
  9. package/dist/commands/daemon.js.map +1 -0
  10. package/dist/commands/doctor.js +336 -0
  11. package/dist/commands/doctor.js.map +1 -0
  12. package/dist/commands/init.js +2023 -0
  13. package/dist/commands/init.js.map +1 -0
  14. package/dist/commands/registry.js +42 -0
  15. package/dist/commands/registry.js.map +1 -0
  16. package/dist/config/check.js +505 -0
  17. package/dist/config/check.js.map +1 -0
  18. package/dist/config/io.js +177 -0
  19. package/dist/config/io.js.map +1 -0
  20. package/dist/config/model.js +406 -0
  21. package/dist/config/model.js.map +1 -0
  22. package/dist/core/errors.js +71 -0
  23. package/dist/core/errors.js.map +1 -0
  24. package/dist/core/git.js +537 -0
  25. package/dist/core/git.js.map +1 -0
  26. package/dist/core/json.js +125 -0
  27. package/dist/core/json.js.map +1 -0
  28. package/dist/core/layerCoverage.js +141 -0
  29. package/dist/core/layerCoverage.js.map +1 -0
  30. package/dist/core/layerGapRemedy.js +62 -0
  31. package/dist/core/layerGapRemedy.js.map +1 -0
  32. package/dist/core/nameList.js +23 -0
  33. package/dist/core/nameList.js.map +1 -0
  34. package/dist/core/paths.js +153 -0
  35. package/dist/core/paths.js.map +1 -0
  36. package/dist/core/prompt.js +206 -0
  37. package/dist/core/prompt.js.map +1 -0
  38. package/dist/core/repoPaths.js +55 -0
  39. package/dist/core/repoPaths.js.map +1 -0
  40. package/dist/core/report.js +150 -0
  41. package/dist/core/report.js.map +1 -0
  42. package/dist/core/templating.js +88 -0
  43. package/dist/core/templating.js.map +1 -0
  44. package/dist/core/writer.js +479 -0
  45. package/dist/core/writer.js.map +1 -0
  46. package/dist/daemon/backend.js +180 -0
  47. package/dist/daemon/backend.js.map +1 -0
  48. package/dist/daemon/units.js +380 -0
  49. package/dist/daemon/units.js.map +1 -0
  50. package/dist/detect/nestedApplication.js +79 -0
  51. package/dist/detect/nestedApplication.js.map +1 -0
  52. package/dist/detect/presets.js +2033 -0
  53. package/dist/detect/presets.js.map +1 -0
  54. package/dist/detect/signals.js +1368 -0
  55. package/dist/detect/signals.js.map +1 -0
  56. package/dist/doctor/checks.js +3530 -0
  57. package/dist/doctor/checks.js.map +1 -0
  58. package/dist/generators/claudeContext.js +588 -0
  59. package/dist/generators/claudeContext.js.map +1 -0
  60. package/dist/generators/githooks.js +446 -0
  61. package/dist/generators/githooks.js.map +1 -0
  62. package/dist/generators/harnessConfig.js +632 -0
  63. package/dist/generators/harnessConfig.js.map +1 -0
  64. package/dist/generators/notifications.js +191 -0
  65. package/dist/generators/notifications.js.map +1 -0
  66. package/dist/generators/outerLoopScripts.js +165 -0
  67. package/dist/generators/outerLoopScripts.js.map +1 -0
  68. package/dist/generators/permissionProfile.js +1172 -0
  69. package/dist/generators/permissionProfile.js.map +1 -0
  70. package/dist/generators/projectSettings.js +322 -0
  71. package/dist/generators/projectSettings.js.map +1 -0
  72. package/dist/generators/repoRoot.js +417 -0
  73. package/dist/generators/repoRoot.js.map +1 -0
  74. package/dist/generators/scripts.js +557 -0
  75. package/dist/generators/scripts.js.map +1 -0
  76. package/dist/generators/stateDir.js +221 -0
  77. package/dist/generators/stateDir.js.map +1 -0
  78. package/dist/machine/paths.js +111 -0
  79. package/dist/machine/paths.js.map +1 -0
  80. package/dist/machine/plugins.js +224 -0
  81. package/dist/machine/plugins.js.map +1 -0
  82. package/dist/machine/registry.js +330 -0
  83. package/dist/machine/registry.js.map +1 -0
  84. package/package.json +23 -0
  85. package/scripts/README.md +13 -0
  86. package/scripts/daemon/launchd.plist.template +59 -0
  87. package/scripts/daemon/systemd.service.template +58 -0
  88. package/templates/README.md +15 -0
  89. package/templates/claude/CLAUDE.md +54 -0
  90. package/templates/claude/README.md +5 -0
  91. package/templates/claude/context/api.md +29 -0
  92. package/templates/claude/context/conventions.md +23 -0
  93. package/templates/claude/context/data-layer.md +28 -0
  94. package/templates/claude/context/data-storage.md +29 -0
  95. package/templates/claude/context/docs-catalog.md +29 -0
  96. package/templates/claude/context/domain.md +28 -0
  97. package/templates/claude/context/layer.md +20 -0
  98. package/templates/claude/context/module.md +30 -0
  99. package/templates/claude/context/package.md +29 -0
  100. package/templates/claude/context/presentation.md +32 -0
  101. package/templates/claude/context/state-slices.md +28 -0
  102. package/templates/claude/context/tests.md +28 -0
  103. package/templates/claude/harness-task-offer.md +58 -0
  104. package/templates/claude/push-notify.env.example +21 -0
  105. package/templates/claude/qa-accounts.env.example +38 -0
  106. package/templates/claude/qa_test_scenarios.md +110 -0
  107. package/templates/claude/settings.autonomous.json +93 -0
  108. package/templates/claude/settings.autonomous.qa.json +36 -0
  109. package/templates/githooks/README.md +3 -0
  110. package/templates/githooks/pre-push +72 -0
  111. package/templates/repo/README.md +3 -0
  112. package/templates/repo/gitattributes +16 -0
  113. package/templates/repo/gitignore +61 -0
  114. package/templates/repo/gitignore.qa +25 -0
  115. package/templates/repo/mcp.json +17 -0
  116. package/templates/scripts/README.md +5 -0
  117. package/templates/scripts/autonomous-format-stream.sh +95 -0
  118. package/templates/scripts/autonomous-notify.sh +337 -0
  119. package/templates/scripts/autonomous-watcher.sh +3087 -0
  120. package/templates/scripts/cleanup-merged-worktrees.sh +327 -0
  121. package/templates/scripts/commit-on-branch.sh +288 -0
  122. package/templates/scripts/create-worktree.sh +360 -0
  123. package/templates/scripts/deploy.sh +47 -0
  124. package/templates/scripts/lib/harness-run-lib.sh +1481 -0
  125. package/templates/scripts/push-branch.sh +140 -0
  126. package/templates/scripts/refresh-branch.sh +244 -0
  127. package/templates/scripts/restart-watcher.sh +401 -0
  128. package/templates/scripts/scratch-run.sh +302 -0
  129. package/templates/scripts/setup-worktree.sh +262 -0
  130. package/templates/scripts/start-dev-server.sh +99 -0
  131. package/templates/scripts/test.sh +50 -0
  132. package/templates/scripts/typecheck.sh +50 -0
  133. package/templates/state-dir/README-root.md +13 -0
  134. package/templates/state-dir/README.md +9 -0
  135. package/templates/state-dir/architecture_branch_review_point_reviews/README.md +9 -0
  136. package/templates/state-dir/architecture_branch_reviews/README.md +9 -0
  137. package/templates/state-dir/architecture_reviews/README.md +9 -0
  138. package/templates/state-dir/architecture_user_review_reviews/README.md +9 -0
  139. package/templates/state-dir/autonomous_inbox/README.md +9 -0
  140. package/templates/state-dir/autonomous_logs/README.md +9 -0
  141. package/templates/state-dir/branch_statistics/README.md +9 -0
  142. package/templates/state-dir/business_parity_branch_review_point_reviews/README.md +9 -0
  143. package/templates/state-dir/business_parity_branch_reviews/README.md +9 -0
  144. package/templates/state-dir/business_parity_reviews/README.md +9 -0
  145. package/templates/state-dir/business_parity_user_review_reviews/README.md +9 -0
  146. package/templates/state-dir/clarification_digests/README.md +9 -0
  147. package/templates/state-dir/clarifications/README.md +9 -0
  148. package/templates/state-dir/code_reviews/README.md +9 -0
  149. package/templates/state-dir/dispatch_additions/README.md +19 -0
  150. package/templates/state-dir/docs_catalog/README.md +9 -0
  151. package/templates/state-dir/flow_progress/README.md +9 -0
  152. package/templates/state-dir/improvement_observations/README.md +19 -0
  153. package/templates/state-dir/improvement_suggestions.md +29 -0
  154. package/templates/state-dir/lessons.md +23 -0
  155. package/templates/state-dir/qa_review_point_reviews/README.md +9 -0
  156. package/templates/state-dir/qa_reviews/README.md +9 -0
  157. package/templates/state-dir/review_plan_point_reviews/README.md +9 -0
  158. package/templates/state-dir/review_plan_reviews/README.md +9 -0
  159. package/templates/state-dir/scratch/README.md +11 -0
  160. package/templates/state-dir/skeptic_review_plan_reviews/README.md +9 -0
  161. package/templates/state-dir/skeptic_review_point_reviews/README.md +9 -0
  162. package/templates/state-dir/skeptic_reviews/README.md +9 -0
  163. package/templates/state-dir/story_plans/README.md +9 -0
  164. package/templates/state-dir/task_plan_point_reviews/README.md +9 -0
  165. package/templates/state-dir/task_plan_reviews/README.md +9 -0
  166. package/templates/state-dir/task_plans/README.md +9 -0
  167. package/templates/state-dir/task_prompts/README.md +9 -0
  168. package/templates/state-dir/ui_test_plan_reviews/README.md +9 -0
  169. package/templates/state-dir/ui_test_plans/README.md +9 -0
  170. package/templates/state-dir/user_review_fix_plan_point_reviews/README.md +9 -0
  171. package/templates/state-dir/user_reviews/README.md +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The command table: the single source for both the usage text and the dispatch check,
3
+ * so the two cannot disagree. Adding a command means adding one row here — the usage
4
+ * block, the per-command `--help` and the dispatch lookup all read this array.
5
+ *
6
+ * A command is a module under `commands/` exporting its own {@link Subcommand}, added to
7
+ * {@link SUBCOMMANDS}. Nothing else has to change for the new behaviour to appear in usage,
8
+ * in the command's own `--help` and in dispatch.
9
+ *
10
+ * Such a module imports its `CommandContext` and `Subcommand` types from here, so the import
11
+ * back is **type-only** and erased at compile time — the table can list a real command's row
12
+ * without a runtime import cycle.
13
+ */
14
+ import { CONFIG_COMMAND } from './config.js';
15
+ import { DAEMON_COMMAND } from './daemon.js';
16
+ import { DOCTOR_COMMAND } from './doctor.js';
17
+ import { INIT_COMMAND } from './init.js';
18
+ export const SUBCOMMANDS = [
19
+ INIT_COMMAND,
20
+ DOCTOR_COMMAND,
21
+ CONFIG_COMMAND,
22
+ DAEMON_COMMAND,
23
+ ];
24
+ /** The dispatch check. Returns `undefined` for an unknown command. */
25
+ export function findSubcommand(name) {
26
+ return SUBCOMMANDS.find((command) => command.name === name);
27
+ }
28
+ /** The `Commands:` rows of the usage block, name-aligned. */
29
+ export function commandListLines() {
30
+ const width = Math.max(...SUBCOMMANDS.map((command) => command.name.length));
31
+ return SUBCOMMANDS.map((command) => ` ${command.name.padEnd(width)} ${command.summary}`);
32
+ }
33
+ /** One command's own usage, without the global options block the entry point appends. */
34
+ export function commandSynopsis(command) {
35
+ return [
36
+ `npx autonomous-sdlc-harness ${command.name} — ${command.summary}`,
37
+ '',
38
+ `Usage: npx autonomous-sdlc-harness ${command.name} [options]`,
39
+ ...(command.usage === undefined ? [] : ['', ...command.usage]),
40
+ ];
41
+ }
42
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAgDzC,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,YAAY;IACZ,cAAc;IACd,cAAc;IACd,cAAc;CACf,CAAC;AAEF,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,OAAmB;IACjD,OAAO;QACL,+BAA+B,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,OAAO,EAAE;QAClE,EAAE;QACF,sCAAsC,OAAO,CAAC,IAAI,YAAY;QAC9D,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,505 @@
1
+ /**
2
+ * The structural check on a `harness.config.json` value: a write guard, and `doctor`'s runtime
3
+ * re-check.
4
+ *
5
+ * **This is not a schema validator, and it must never grow into one.** The schema gate is
6
+ * `npm run validate:config`, whose validator is a workspace-root development dependency; this
7
+ * package declares no runtime dependencies and ships no JSON-Schema engine. What is here is a
8
+ * hand-written check of exactly the constraints listed below, for the two moments that gate is not
9
+ * present: before the CLI writes a config, and when `doctor` re-reads one that may have been
10
+ * hand-edited since it was last validated (`docs/config.md` §3 — "a config can be edited by hand
11
+ * after validation").
12
+ *
13
+ * **Update this file in the same change as any edit to `schemas/harness.config.schema.json`.** The
14
+ * key sets below mirror the schema's `properties` and `required`, so a key added there and not here
15
+ * is reported as unknown — a false error — and a key removed there and not here passes silently.
16
+ *
17
+ * ## What it checks
18
+ *
19
+ * The value is an object; every `required` key is present; `version` is the const `1`; no unknown
20
+ * key at any level (mirroring `additionalProperties: false`, which is set at *every* level, so an
21
+ * unknown key is a typo rather than a setting that is silently ignored); every declared key has the
22
+ * declared type; every string key is non-empty (the schema's `minLength: 1`); `forge`, `agentEffort`,
23
+ * `qa.driver`, `design.source`, `detection.preset` and `detection.review.verdict` each hold one of
24
+ * the values their schema `enum` lists; `stateDir`
25
+ * satisfies **both** of its clauses; `layers` is non-empty, each entry is complete with a legal
26
+ * `name`, and at least one entry is the catch-all row the schema's `contains` clause requires;
27
+ * `commands.typecheck` and `commands.test` are present and non-empty, with `<none>` graded on
28
+ * `commands.typecheck` as the answer *this repository has no type check* and warned about anywhere
29
+ * else it is written; `qa.portSeed` is an integer
30
+ * within the schema's bounds — the only numeric constraint the schema states anywhere.
31
+ *
32
+ * ## What it deliberately does not re-implement
33
+ *
34
+ * - **`uniqueItems`** on `protectedBranches` and `parity.toolchainCommands`. A duplicate entry is
35
+ * redundant, not harmful, and the schema gate already reports it.
36
+ * - **`$schema`'s URI form.** It is editor metadata resolved against the file's own location; the
37
+ * CLI never dereferences it.
38
+ * - **Anything about the filesystem** — whether a configured directory exists, is writable, or
39
+ * whether a `conventions` document is really there. That is `doctor`'s job, not a shape check's,
40
+ * and a shape check that touched the disk could not be run against a config held in memory.
41
+ */
42
+ import { AGENT_EFFORT_LEVELS, COMMAND_NONE_SENTINEL, CONFIG_VERSION, DESIGN_SOURCES, DETECTION_PRESET_NAMES, FORGE_KINDS, isNoneSentinel, isPlaceholder, LAYER_CATCH_ALL_PATH, LAYER_NAME_PATTERN, LAYER_REVIEW_VERDICTS, NONE_SENTINEL_KEY, PORT_SEED_MAX, PORT_SEED_MIN, QA_DRIVERS, STATE_DIR_DOT_PATTERN, STATE_DIR_PATTERN, } from './model.js';
43
+ /** The schema's top-level `properties`, in schema order. */
44
+ const TOP_LEVEL_KEYS = [
45
+ '$schema',
46
+ 'version',
47
+ 'projectName',
48
+ 'defaultBranch',
49
+ 'protectedBranches',
50
+ 'forge',
51
+ 'stateDir',
52
+ 'appDir',
53
+ 'scriptsDir',
54
+ 'githooksDir',
55
+ 'agentModel',
56
+ 'agentEffort',
57
+ 'pushEnvPath',
58
+ 'clientEnvPrefix',
59
+ 'detection',
60
+ 'layers',
61
+ 'commands',
62
+ 'phases',
63
+ 'qa',
64
+ 'docs',
65
+ 'parity',
66
+ 'deploy',
67
+ 'design',
68
+ ];
69
+ /** The schema's top-level `required`. */
70
+ const TOP_LEVEL_REQUIRED = ['version', 'defaultBranch', 'stateDir', 'layers', 'commands'];
71
+ /** Top-level keys whose value is a plain non-empty string. Checked as a group. */
72
+ const TOP_LEVEL_STRING_KEYS = [
73
+ '$schema',
74
+ 'projectName',
75
+ 'defaultBranch',
76
+ 'stateDir',
77
+ 'appDir',
78
+ 'scriptsDir',
79
+ 'githooksDir',
80
+ 'agentModel',
81
+ 'pushEnvPath',
82
+ ];
83
+ // `commandFamily` is checked as a string and deliberately **not** against `COMMAND_FAMILY_IDS`,
84
+ // unlike `detection.preset` below: it records which family answered on the run that wrote the file
85
+ // rather than routing anything, and no consumer in this release reads it — so an id retired by a
86
+ // later release would make an otherwise valid config unloadable and buy nothing.
87
+ const DETECTION_KEYS = ['preset', 'signal', 'evidence', 'commandFamily', 'review'];
88
+ const DETECTION_STRING_KEYS = ['signal', 'evidence', 'commandFamily'];
89
+ const REVIEW_KEYS = ['verdict', 'rationale', 'at'];
90
+ const REVIEW_STRING_KEYS = ['rationale', 'at'];
91
+ const LAYER_KEYS = ['name', 'path', 'conventions'];
92
+ const COMMAND_KEYS = ['typecheck', 'test', 'build', 'devServer', 'depInstall'];
93
+ const COMMAND_REQUIRED = ['typecheck', 'test'];
94
+ const PHASE_KEYS = ['qa', 'docs', 'parity'];
95
+ const QA_KEYS = ['driver', 'portSeed', 'credentialsPath', 'authProvider'];
96
+ const QA_STRING_KEYS = ['credentialsPath', 'authProvider'];
97
+ const DOCS_KEYS = ['root'];
98
+ const PARITY_KEYS = ['referenceName', 'referenceImplPath', 'toolchainCommands'];
99
+ const PARITY_STRING_KEYS = ['referenceName', 'referenceImplPath'];
100
+ const DEPLOY_KEYS = ['provider', 'target', 'command'];
101
+ const DESIGN_KEYS = ['source'];
102
+ /** A plain object — not `null`, not an array. */
103
+ function isObject(value) {
104
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
105
+ }
106
+ /**
107
+ * Collector, so every check can report and continue: the point of returning problems rather than
108
+ * throwing is that `doctor` names everything wrong with a config in one pass instead of making the
109
+ * adopter fix one thing per run.
110
+ */
111
+ class Problems {
112
+ #found = [];
113
+ error(path, message) {
114
+ this.#found.push({ path, message, severity: 'error' });
115
+ }
116
+ warn(path, message) {
117
+ this.#found.push({ path, message, severity: 'warning' });
118
+ }
119
+ get found() {
120
+ return this.#found;
121
+ }
122
+ }
123
+ /** `qa.portSeed` → `qa.portSeed`; `''` + `version` → `version`. */
124
+ function join(prefix, key) {
125
+ return prefix === '' ? key : `${prefix}.${key}`;
126
+ }
127
+ /** Report every key of `value` the schema does not declare at this level. */
128
+ function checkUnknownKeys(value, known, prefix, problems) {
129
+ for (const key of Object.keys(value)) {
130
+ if (known.includes(key))
131
+ continue;
132
+ problems.error(join(prefix, key), 'unknown key: the schema rejects unknown keys at every level, so this is a typo rather than a setting that is silently ignored');
133
+ }
134
+ }
135
+ /**
136
+ * Check one optional section: present ⇒ an object with no unknown keys. Returns the section when it
137
+ * is usable, so the caller can go on checking inside it, and `undefined` otherwise.
138
+ *
139
+ * `prefix` is the dotted path of `parent`, empty for a top-level section. A section nested inside
140
+ * another — `detection.review` — passes its parent's path, so a problem inside it is reported at the
141
+ * path an adopter would edit rather than at a bare key name that appears nowhere in the file.
142
+ */
143
+ function section(parent, key, known, problems, prefix = '') {
144
+ const value = parent[key];
145
+ if (value === undefined)
146
+ return undefined;
147
+ const path = join(prefix, key);
148
+ if (!isObject(value)) {
149
+ problems.error(path, `must be an object, not ${describe(value)}`);
150
+ return undefined;
151
+ }
152
+ checkUnknownKeys(value, known, path, problems);
153
+ return value;
154
+ }
155
+ /** What a wrong value is, for a message: `an array`, `a string`, `null`. */
156
+ function describe(value) {
157
+ if (value === null)
158
+ return 'null';
159
+ if (Array.isArray(value))
160
+ return 'an array';
161
+ const type = typeof value;
162
+ return type === 'object' ? 'an object' : `a ${type}`;
163
+ }
164
+ /** A declared string key: present ⇒ a non-empty string (the schema's `minLength: 1`). */
165
+ function checkString(parent, key, prefix, problems) {
166
+ const value = parent[key];
167
+ if (value === undefined)
168
+ return;
169
+ const path = join(prefix, key);
170
+ if (typeof value !== 'string') {
171
+ problems.error(path, `must be a string, not ${describe(value)}`);
172
+ return;
173
+ }
174
+ if (value === '')
175
+ problems.error(path, 'must not be empty');
176
+ }
177
+ /** A declared array-of-non-empty-strings key: `protectedBranches`, `parity.toolchainCommands`. */
178
+ function checkStringArray(parent, key, prefix, problems) {
179
+ const value = parent[key];
180
+ if (value === undefined)
181
+ return;
182
+ const path = join(prefix, key);
183
+ if (!Array.isArray(value)) {
184
+ problems.error(path, `must be an array of strings, not ${describe(value)}`);
185
+ return;
186
+ }
187
+ value.forEach((entry, index) => {
188
+ if (typeof entry !== 'string')
189
+ problems.error(`${path}[${index}]`, `must be a string, not ${describe(entry)}`);
190
+ else if (entry === '')
191
+ problems.error(`${path}[${index}]`, 'must not be empty');
192
+ });
193
+ }
194
+ /** A declared boolean key: the three `phases` toggles. */
195
+ function checkBoolean(parent, key, prefix, problems) {
196
+ const value = parent[key];
197
+ if (value === undefined)
198
+ return;
199
+ if (typeof value !== 'boolean')
200
+ problems.error(join(prefix, key), `must be true or false, not ${describe(value)}`);
201
+ }
202
+ /**
203
+ * A declared enum key: present ⇒ a string drawn from `allowed` (the schema's `enum`).
204
+ *
205
+ * The `allowed` set is always **imported** from `config/model.ts`, never spelled here: the enum is
206
+ * the schema's, and a set restated at the point of use is a set that can disagree with the schema
207
+ * in one of its two copies.
208
+ *
209
+ * `consequence` is the caller's one sentence about what choosing wrongly costs, appended to the
210
+ * generic "not one of" line. A bare list of legal values tells an adopter what to type but not
211
+ * which to pick, and every key this guards is one where the wrong pick is silent — an
212
+ * unfilled `forge` is a decision not yet made, the default `qa.driver` reaches a browser that a
213
+ * mobile application does not have, a value outside `agentEffort`'s set is never refused by the
214
+ * runtime either: it warns, ignores the flag and runs at its own default, so the run costs a level
215
+ * the file did not choose, an unfilled `design.source` is likewise a decision not yet made —
216
+ * nothing reports that a change has no stated design source of truth — and the two `detection`
217
+ * enums record what a run and a review concluded, which nothing re-derives afterwards.
218
+ */
219
+ function checkEnum(parent, key, prefix, allowed, consequence, problems) {
220
+ const value = parent[key];
221
+ if (value === undefined)
222
+ return;
223
+ const path = join(prefix, key);
224
+ if (typeof value !== 'string') {
225
+ problems.error(path, `must be a string, not ${describe(value)}`);
226
+ return;
227
+ }
228
+ if (allowed.includes(value))
229
+ return;
230
+ const legal = allowed.map((entry) => JSON.stringify(entry)).join(', ');
231
+ problems.error(path, `${JSON.stringify(value)} is not one of ${legal}. ${consequence}`);
232
+ }
233
+ /**
234
+ * `stateDir`'s two clauses, checked **separately and both**, exactly as the schema states them.
235
+ *
236
+ * A leading dot fails both, and both are reported: the redundancy is deliberate on the schema's
237
+ * side — so a later edit to `pattern` cannot quietly drop the prohibition — and reporting only the
238
+ * pattern failure would hide the reason that matters. The dot clause carries its own message
239
+ * naming the unattended-write cause, because an adopter who reads "does not match a pattern" will
240
+ * reasonably try to fix it by tidying the name toward a dot-directory, which is the exact change
241
+ * that risks unattended runs.
242
+ */
243
+ function checkStateDir(value, problems) {
244
+ if (typeof value !== 'string' || value === '')
245
+ return; // already reported by checkString
246
+ if (!STATE_DIR_PATTERN.test(value)) {
247
+ problems.error('stateDir', `${JSON.stringify(value)} is not a legal directory name: it must start with a letter, a digit or an underscore, may then contain letters, digits, '.', '_', '-' and '/', and may end with one '/'`);
248
+ }
249
+ if (STATE_DIR_DOT_PATTERN.test(value)) {
250
+ problems.error('stateDir', `${JSON.stringify(value)} has a path segment starting with '.': the state directory must not be dot-named or reach through a dot segment, because the run-artifact tree has to be writable by an unattended run and a dot-path is where a host reserves directories an unattended run may not write to — measured for .claude/**, where such a run completes with exit 0 having written nothing. Do not "fix" this to a dot-name`);
251
+ }
252
+ }
253
+ /**
254
+ * `layers`: a non-empty array of complete entries with legal names, one of which is the catch-all.
255
+ *
256
+ * The catch-all clause is the schema's `contains`, which asserts **at least one** matching entry.
257
+ * More than one is deliberately **not** reported: this schema is draft-07, which has no
258
+ * `maxContains`, so an upper bound is not expressible there, and this check exists to match the
259
+ * schema rather than to exceed it — a config the schema gate accepts must not be one the write
260
+ * guard refuses.
261
+ */
262
+ function checkLayers(value, problems) {
263
+ if (value === undefined)
264
+ return; // already reported as a missing required key
265
+ if (!Array.isArray(value)) {
266
+ problems.error('layers', `must be an array, not ${describe(value)}`);
267
+ return;
268
+ }
269
+ if (value.length === 0) {
270
+ problems.error('layers', 'must list at least one layer: a task is assigned to exactly one layer, so an empty list leaves no one to do the work');
271
+ return;
272
+ }
273
+ value.forEach((entry, index) => {
274
+ const prefix = `layers[${index}]`;
275
+ if (!isObject(entry)) {
276
+ problems.error(prefix, `must be an object, not ${describe(entry)}`);
277
+ return;
278
+ }
279
+ checkUnknownKeys(entry, LAYER_KEYS, prefix, problems);
280
+ for (const key of LAYER_KEYS) {
281
+ if (entry[key] === undefined)
282
+ problems.error(join(prefix, key), 'is required');
283
+ else
284
+ checkString(entry, key, prefix, problems);
285
+ }
286
+ const name = entry['name'];
287
+ if (typeof name === 'string' && name !== '' && !LAYER_NAME_PATTERN.test(name)) {
288
+ problems.error(join(prefix, 'name'), `${JSON.stringify(name)} is not a legal layer name: lower-case letters, digits and hyphens, starting with a letter — it is the routing tag a task is assigned by, and it appears in a run's dispatch labels`);
289
+ }
290
+ });
291
+ // Reached only past the two returns above, so this never piles onto "must be an array" or "must
292
+ // list at least one layer" — an adopter fixing the shape is not also told about the catch-all.
293
+ const catchAll = JSON.stringify(LAYER_CATCH_ALL_PATH);
294
+ if (!value.some((entry) => isObject(entry) && entry['path'] === LAYER_CATCH_ALL_PATH)) {
295
+ problems.error('layers', `at least one layer must have "path" set to ${catchAll}: work that matches no layer's path is assigned to that layer, and every run produces such work — its own artifacts, this config file, the scripts and hooks directories, CI files — so without the row that work has nowhere to go and the run stops on it. Add a layer with "path": ${catchAll} pointing at the shared conventions document; any name will do, and init writes it as "general"`);
296
+ }
297
+ }
298
+ /**
299
+ * Is this value a near miss for {@link COMMAND_NONE_SENTINEL} — an adopter reaching for the answer
300
+ * and not landing on it?
301
+ *
302
+ * Trimmed, stripped of one surrounding pair of matching quotes and case-folded: `none`, `<None>`
303
+ * and a quoted spelling of the sentinel all reach here, and none of them is it. Without the warning
304
+ * such a value
305
+ * is stored as a command line, a wrapper is written with `none` as its body, that wrapper is
306
+ * allow-listed, and nothing anywhere reports it until the run invokes it.
307
+ */
308
+ function isNoneNearMiss(value) {
309
+ const bare = value.trim().replace(/^(['"])([\s\S]*)\1$/, '$2').trim().toLowerCase();
310
+ return (bare === 'none' || bare === COMMAND_NONE_SENTINEL) && !isNoneSentinel(value);
311
+ }
312
+ /**
313
+ * `commands`: the two required verifiers, the answered-`none` sentinel on `commands.typecheck`, and
314
+ * the placeholder warning on any command key.
315
+ */
316
+ function checkCommands(value, problems) {
317
+ if (value === undefined)
318
+ return; // already reported as a missing required key
319
+ if (!isObject(value)) {
320
+ problems.error('commands', `must be an object, not ${describe(value)}`);
321
+ return;
322
+ }
323
+ checkUnknownKeys(value, COMMAND_KEYS, 'commands', problems);
324
+ for (const key of COMMAND_REQUIRED) {
325
+ if (value[key] === undefined) {
326
+ problems.error(join('commands', key), 'is required: the two verification commands are what "this change is done" means, so the flow cannot proceed without them');
327
+ }
328
+ }
329
+ for (const key of COMMAND_KEYS) {
330
+ checkString(value, key, 'commands', problems);
331
+ const command = value[key];
332
+ // The sentinel arm, ahead of the placeholder warning so a sentinel is never also read as a
333
+ // placeholder. `isNoneSentinel` rather than `answersNone` here — deliberately ungated, because
334
+ // this is the one site that must say something *different* on the other command keys.
335
+ if (typeof command === 'string' && isNoneSentinel(command)) {
336
+ if (key === NONE_SENTINEL_KEY) {
337
+ // Answered: no problem is emitted. Stated rather than left as a bare fall-through, because
338
+ // a silent skip is indistinguishable from the accidental silence this arm replaces — before
339
+ // it, a sentinel passed the required-key check and the placeholder test without a word.
340
+ continue;
341
+ }
342
+ problems.warn(join('commands', key), `${JSON.stringify(COMMAND_NONE_SENTINEL)} is recognised as "this repository has no such command" on commands.${NONE_SENTINEL_KEY} only. Here it is stored as a literal command line and will be run — which is what withdrawing a gate would have to look like, so it is reported rather than assumed`);
343
+ continue;
344
+ }
345
+ if (typeof command === 'string' && isNoneNearMiss(command)) {
346
+ problems.warn(join('commands', key), `${JSON.stringify(command)} looks like the answered-none sentinel but is not it: the value must be exactly ${JSON.stringify(COMMAND_NONE_SENTINEL)}, unquoted and lower-case. As written it is a command line, so a wrapper is written for it, allow-listed, and run`);
347
+ continue;
348
+ }
349
+ if (typeof command === 'string' && isPlaceholder(command)) {
350
+ problems.warn(join('commands', key), 'still holds the placeholder init wrote because it could not detect this command — replace it, or the run stops the first time it is invoked');
351
+ }
352
+ }
353
+ }
354
+ /** `qa.portSeed`: the schema's one numeric constraint. */
355
+ function checkPortSeed(qa, problems) {
356
+ const value = qa['portSeed'];
357
+ if (value === undefined)
358
+ return;
359
+ if (typeof value !== 'number') {
360
+ problems.error('qa.portSeed', `must be a whole number, not ${describe(value)}`);
361
+ return;
362
+ }
363
+ if (!Number.isInteger(value)) {
364
+ problems.error('qa.portSeed', `must be a whole number, not ${value}`);
365
+ return;
366
+ }
367
+ if (value < PORT_SEED_MIN || value > PORT_SEED_MAX) {
368
+ problems.error('qa.portSeed', `must be between ${PORT_SEED_MIN} and ${PORT_SEED_MAX}`);
369
+ }
370
+ }
371
+ /**
372
+ * A phase that is on with its section unfilled. A **warning**, not an error: the config is legal,
373
+ * and the phase may still be reachable — the value could be supplied another way, or the phase may
374
+ * fail later with a better message than a shape check can give. Blocking the write here would stop
375
+ * an adopter from enabling a phase and filling its section in the next edit.
376
+ *
377
+ * **`qa.portSeed` sits beside the two `qa` keys graded here and is deliberately not graded itself.**
378
+ * An absent `portSeed` is a *resolved* state: `3001` is its documented default, and the plugin's
379
+ * instruction files and `plugin/scripts/find-free-port.sh` all state it and resolve it without ever
380
+ * reading the key. `driver`'s consumers have no such stated fallback — they read the value and act
381
+ * on what they find — so its absence is unresolved where `portSeed`'s is not. Do not "complete" the
382
+ * set.
383
+ *
384
+ * **Presence only.** Whether a present `qa.driver` holds a legal value is
385
+ * {@link checkConfigShape}'s `checkEnum` call, which grades an out-of-set value an `error`; a second
386
+ * value check here would be a second copy of the enum's opinion.
387
+ */
388
+ function checkPhaseSections(root, phases, problems) {
389
+ const enabled = (key) => phases?.[key] === true;
390
+ const missing = (sectionKey, key) => {
391
+ const value = root[sectionKey];
392
+ return !isObject(value) || value[key] === undefined;
393
+ };
394
+ if (enabled('qa') && missing('qa', 'driver')) {
395
+ problems.warn('qa.driver', 'phases.qa is on but no driver is configured. The browser wiring is not missing — the generators fall back to the schema default — what is missing is the choice of which driver reaches this application, which nobody has been asked to make. The interactive test flow reads the value with no such fallback and stops when it is anything other than "web-playwright". Set it with `config set qa.driver <value>`, which names the values it accepts');
396
+ }
397
+ if (enabled('qa') && missing('qa', 'credentialsPath')) {
398
+ problems.warn('qa.credentialsPath', 'phases.qa is on but no credentials file is configured, so the phase cannot reach an authenticated screen');
399
+ }
400
+ if (enabled('docs') && missing('docs', 'root')) {
401
+ problems.warn('docs.root', 'phases.docs is on but no documentation root is configured, so the phase has nothing to keep current');
402
+ }
403
+ if (enabled('parity') && missing('parity', 'referenceImplPath')) {
404
+ problems.warn('parity.referenceImplPath', 'phases.parity is on but no reference implementation is configured, so there is nothing to compare against');
405
+ }
406
+ }
407
+ /**
408
+ * Check a parsed value against the shape `harness.config.json` must have, and return everything
409
+ * wrong with it — never throwing, so one pass names every problem.
410
+ *
411
+ * Takes `unknown` deliberately: its callers hold whatever `JSON.parse` produced, and the answer to
412
+ * "is this a config at all" is one of the problems it reports rather than a precondition of
413
+ * calling it.
414
+ */
415
+ export function checkConfigShape(value) {
416
+ const problems = new Problems();
417
+ if (!isObject(value)) {
418
+ problems.error('', `must be a JSON object, not ${describe(value)}`);
419
+ return problems.found;
420
+ }
421
+ checkUnknownKeys(value, TOP_LEVEL_KEYS, '', problems);
422
+ for (const key of TOP_LEVEL_REQUIRED) {
423
+ if (value[key] === undefined)
424
+ problems.error(key, 'is required');
425
+ }
426
+ if (value['version'] !== undefined && value['version'] !== CONFIG_VERSION) {
427
+ problems.error('version', `must be ${CONFIG_VERSION}, not ${JSON.stringify(value['version'])}: this release recognises no other format version`);
428
+ }
429
+ for (const key of TOP_LEVEL_STRING_KEYS)
430
+ checkString(value, key, '', problems);
431
+ checkStringArray(value, 'protectedBranches', '', problems);
432
+ checkEnum(value, 'forge', '', FORGE_KINDS, 'The key is optional and nothing reads it in this release; set "none" to say the repository has no forge integration at all — work stays on branches and no pull request is opened — rather than leaving the decision unmade.', problems);
433
+ checkEnum(value, 'agentEffort', '', AGENT_EFFORT_LEVELS, 'The key is optional; leaving it out is what selects the per-model default the runtime applies, so an unset value is a resolved state rather than a missing one. A value outside this set is not refused by the runtime either — it warns, ignores the flag and runs at that default — so the run costs a level this file did not choose and nothing but this check says so.', problems);
434
+ // The one key the schema types as a union: a prefix, or `null` for a stack that has no such rule.
435
+ const clientEnvPrefix = value['clientEnvPrefix'];
436
+ if (clientEnvPrefix !== undefined && clientEnvPrefix !== null && typeof clientEnvPrefix !== 'string') {
437
+ problems.error('clientEnvPrefix', `must be a string or null, not ${describe(clientEnvPrefix)}`);
438
+ }
439
+ else if (clientEnvPrefix === '') {
440
+ problems.error('clientEnvPrefix', 'must not be empty: use null when the stack has no such rule');
441
+ }
442
+ checkStateDir(value['stateDir'], problems);
443
+ checkLayers(value['layers'], problems);
444
+ checkCommands(value['commands'], problems);
445
+ // No required-key check inside `detection` or `detection.review`: the schema states none, so a
446
+ // record holding only a `review` — the shape a repository whose config predates the key gets from
447
+ // `config set detection.review` — is legal, and a config the schema gate accepts must not be one
448
+ // the write guard refuses.
449
+ const detection = section(value, 'detection', DETECTION_KEYS, problems);
450
+ if (detection !== undefined) {
451
+ checkEnum(detection, 'preset', 'detection', DETECTION_PRESET_NAMES, 'It records which layer preset detection selected, so a value naming no real preset makes this record describe a detection that never happened — and nothing re-derives it, because harness.config.json is exempt from --force and a plain init re-run leaves the record standing.', problems);
452
+ for (const key of DETECTION_STRING_KEYS)
453
+ checkString(detection, key, 'detection', problems);
454
+ const review = section(detection, 'review', REVIEW_KEYS, problems, 'detection');
455
+ if (review !== undefined) {
456
+ checkEnum(review, 'verdict', 'detection.review', LAYER_REVIEW_VERDICTS, "It is what doctor's layer-profile check reads to see that the profile was reviewed, so a value outside this set is a record that check cannot read: the warning the review was written to clear stands, and the reviewing was done for nothing.", problems);
457
+ for (const key of REVIEW_STRING_KEYS)
458
+ checkString(review, key, 'detection.review', problems);
459
+ }
460
+ }
461
+ const phases = section(value, 'phases', PHASE_KEYS, problems);
462
+ if (phases !== undefined)
463
+ for (const key of PHASE_KEYS)
464
+ checkBoolean(phases, key, 'phases', problems);
465
+ const qa = section(value, 'qa', QA_KEYS, problems);
466
+ if (qa !== undefined) {
467
+ checkEnum(qa, 'driver', 'qa', QA_DRIVERS, 'It selects which variant of the interactive test agent runs, and so how that agent reaches the application. The default drives a browser, so a project whose application is a mobile app has to set this key: leaving it out selects a driver that cannot reach the application at all. Both mobile values are declared but not implemented in this release: setting either makes every interactive-test dispatch return a blocker rather than run a test.', problems);
468
+ checkPortSeed(qa, problems);
469
+ for (const key of QA_STRING_KEYS)
470
+ checkString(qa, key, 'qa', problems);
471
+ }
472
+ const docs = section(value, 'docs', DOCS_KEYS, problems);
473
+ if (docs !== undefined)
474
+ for (const key of DOCS_KEYS)
475
+ checkString(docs, key, 'docs', problems);
476
+ const parity = section(value, 'parity', PARITY_KEYS, problems);
477
+ if (parity !== undefined) {
478
+ for (const key of PARITY_STRING_KEYS)
479
+ checkString(parity, key, 'parity', problems);
480
+ checkStringArray(parity, 'toolchainCommands', 'parity', problems);
481
+ }
482
+ const deploy = section(value, 'deploy', DEPLOY_KEYS, problems);
483
+ if (deploy !== undefined)
484
+ for (const key of DEPLOY_KEYS)
485
+ checkString(deploy, key, 'deploy', problems);
486
+ const design = section(value, 'design', DESIGN_KEYS, problems);
487
+ if (design !== undefined) {
488
+ checkEnum(design, 'source', 'design', DESIGN_SOURCES, 'The key is optional and nothing reads it in this release; set "none" to say the project has no design source of truth at all — a change is built against no design — rather than leaving the decision unmade.', problems);
489
+ }
490
+ checkPhaseSections(value, phases, problems);
491
+ return problems.found;
492
+ }
493
+ /** True when any problem is an `error` — the write guard's question, and `doctor`'s FAIL test. */
494
+ export function hasErrors(problems) {
495
+ return problems.some((problem) => problem.severity === 'error');
496
+ }
497
+ /**
498
+ * One problem as a line: `stateDir: ...`, or just the message for a problem about the document
499
+ * itself. Kept here so `doctor`, `config` and the write guard's refusal all render a problem the
500
+ * same way.
501
+ */
502
+ export function formatProblem(problem) {
503
+ return problem.path === '' ? problem.message : `${problem.path}: ${problem.message}`;
504
+ }
505
+ //# sourceMappingURL=check.js.map