@harness-engineering/cli 2.3.1 → 2.4.1

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 (68) hide show
  1. package/dist/agents/skills/claude-code/harness-compliance/SKILL.md +19 -0
  2. package/dist/agents/skills/codex/harness-compliance/SKILL.md +19 -0
  3. package/dist/agents/skills/cursor/harness-compliance/SKILL.md +19 -0
  4. package/dist/agents/skills/gemini-cli/harness-compliance/SKILL.md +19 -0
  5. package/dist/agents-md-2M46KG4F.js +10 -0
  6. package/dist/{architecture-544ISXDI.js → architecture-3ZSN5RDQ.js} +5 -5
  7. package/dist/{assess-project-PBO6XFJC.js → assess-project-KZWFQEJE.js} +5 -3
  8. package/dist/bin/harness-mcp.js +16 -16
  9. package/dist/bin/harness.js +29 -27
  10. package/dist/{check-phase-gate-BZU4DGF3.js → check-phase-gate-EWV5VYTG.js} +5 -5
  11. package/dist/{chunk-YNG7BWGB.js → chunk-2TGCYJMT.js} +340 -12
  12. package/dist/{chunk-TIQU5VY7.js → chunk-5FDBXUFW.js} +1 -1
  13. package/dist/{chunk-7BNK4M23.js → chunk-5XLLIYYL.js} +1 -1
  14. package/dist/{chunk-KJR4Z2YC.js → chunk-73KZ2E47.js} +9 -9
  15. package/dist/{chunk-J4MX5DIA.js → chunk-7RZZV73V.js} +5 -5
  16. package/dist/{chunk-TIJXG4UB.js → chunk-B2ZYMQGT.js} +64 -30
  17. package/dist/{chunk-XPRGWHBL.js → chunk-BCFDGOMA.js} +1 -1
  18. package/dist/{chunk-YI6NTL72.js → chunk-GLKASJZE.js} +6 -6
  19. package/dist/{chunk-N6DVSOLZ.js → chunk-GOSUZC5H.js} +608 -211
  20. package/dist/{chunk-22OKI5QI.js → chunk-I2KULMPD.js} +10 -10
  21. package/dist/{chunk-R6GLLMRZ.js → chunk-IEHXZB6J.js} +9 -9
  22. package/dist/{chunk-U2SF3KAQ.js → chunk-KOK7BFP2.js} +3 -3
  23. package/dist/{chunk-QZ67TDLJ.js → chunk-KRQTN46U.js} +3 -3
  24. package/dist/{chunk-EMJFHTPZ.js → chunk-LHHO7AH4.js} +3 -3
  25. package/dist/{chunk-2564TBT6.js → chunk-LJF6UY4R.js} +2 -2
  26. package/dist/{chunk-DBJC4ULT.js → chunk-MXOQEI72.js} +48 -8
  27. package/dist/{chunk-JMACX5FN.js → chunk-NM3ZIWVN.js} +2 -2
  28. package/dist/{chunk-KT5PWWWO.js → chunk-NTOKQJOX.js} +2 -2
  29. package/dist/chunk-O63AAPIZ.js +190 -0
  30. package/dist/{chunk-WMZKZCCE.js → chunk-OUXYITL5.js} +2 -2
  31. package/dist/{chunk-T2ZMHXCX.js → chunk-PPQ3TY2R.js} +2 -2
  32. package/dist/{chunk-LBYGGNEZ.js → chunk-QV5EBDWA.js} +1 -1
  33. package/dist/{chunk-IYA3NS5P.js → chunk-RRTTJ3VB.js} +2 -2
  34. package/dist/{chunk-A36MGB3V.js → chunk-TPNA2I4J.js} +206 -97
  35. package/dist/{chunk-LYMPKO6N.js → chunk-UPV7VDUB.js} +2 -2
  36. package/dist/{chunk-DHWFOHPX.js → chunk-UQJV7NNM.js} +2 -2
  37. package/dist/ci-workflow-5TBUHJFC.js +10 -0
  38. package/dist/{dist-ZS3Y3YWP.js → dist-HA6IIPRC.js} +41 -3
  39. package/dist/dist-O733ZU6I.js +49 -0
  40. package/dist/{dist-SQAOKWXM.js → dist-QPWXPCPL.js} +1 -1
  41. package/dist/{docs-VW2KDPI3.js → docs-D6WI2LCF.js} +5 -5
  42. package/dist/engine-GBEVIZZQ.js +10 -0
  43. package/dist/{entropy-P62LCVJI.js → entropy-V6M4KJDC.js} +4 -4
  44. package/dist/{feedback-O3TZAPGX.js → feedback-22I4HHXM.js} +1 -1
  45. package/dist/{generate-agent-definitions-WVCOZDKI.js → generate-agent-definitions-UM7T3WLA.js} +5 -5
  46. package/dist/{glob-helper-JE3MO4UD.js → glob-helper-XE2UGEOV.js} +1 -1
  47. package/dist/{graph-loader-TJU4E7KL.js → graph-loader-EQBOIHFZ.js} +1 -1
  48. package/dist/index.d.ts +158 -2
  49. package/dist/index.js +26 -26
  50. package/dist/loader-5V72NYMF.js +12 -0
  51. package/dist/{mcp-ST26QMDK.js → mcp-5KQGFG5U.js} +16 -16
  52. package/dist/{performance-5HQG3IU6.js → performance-MVORVVMG.js} +5 -5
  53. package/dist/{review-pipeline-VRDL5A7J.js → review-pipeline-JYSVCNGJ.js} +4 -4
  54. package/dist/runtime-KZC2OQI7.js +11 -0
  55. package/dist/{scan-SFX5U3TE.js → scan-4PPP6ZXT.js} +1 -1
  56. package/dist/{security-IMFAE6MW.js → security-WOVOBLCI.js} +1 -1
  57. package/dist/{tool-tiers-7QGZ3FKY.js → tool-tiers-QVWKAZX4.js} +5 -1
  58. package/dist/{validate-GW2DG64P.js → validate-55HGQKWR.js} +5 -5
  59. package/dist/validate-cross-check-H3PSV4VY.js +10 -0
  60. package/package.json +5 -5
  61. package/dist/agents-md-5JG3AE5A.js +0 -10
  62. package/dist/chunk-RL4VMEXL.js +0 -53
  63. package/dist/ci-workflow-ZO6FPO3V.js +0 -10
  64. package/dist/dist-3EWNRFFQ.js +0 -21
  65. package/dist/engine-LFQ2JSHY.js +0 -10
  66. package/dist/loader-UB2A65DN.js +0 -12
  67. package/dist/runtime-TQQT2MWQ.js +0 -11
  68. package/dist/validate-cross-check-F5YQVXLT.js +0 -10
@@ -123,6 +123,25 @@
123
123
 
124
124
  ---
125
125
 
126
+ ### Phase 3.5: INTERNAL COMPLIANCE -- Project Conventions
127
+
128
+ 1. **Verify branch naming convention.** Before creating a branch and again before
129
+ opening a PR, run `harness verify` (or `harness verify --json` for parsable
130
+ output) and act on the result -- do not just describe the rule to the user.
131
+ - Default prefixes: `feat/`, `fix/`, `chore/`, `docs/`, `refactor/`, `test/`, `perf/`
132
+ - Default slug format: strict `kebab-case` (lowercase, single hyphens, no
133
+ leading/trailing hyphen), max 60 chars after the prefix
134
+ - Optional ticket form: `prefix/PROJ-123-short-desc`
135
+ - Projects may override via `compliance.branching` in `harness.config.json`
136
+ (`prefixes`, `enforceKebabCase`, `customRegex`, `ignore`, `maxLength`). If
137
+ `customRegex` is set, it fully replaces the prefix/kebab/length checks --
138
+ read the project config before suggesting a branch name.
139
+ - On a non-compliant branch, surface the suggested fix from `harness verify`
140
+ to the user and offer to rename (`git branch -m <new-name>`) before
141
+ continuing. Do not push or open a PR from a non-compliant branch.
142
+
143
+ ---
144
+
126
145
  ### Phase 4: REPORT -- Generate Gap Analysis and Remediation Plan
127
146
 
128
147
  1. **Score compliance posture per framework.** For each applicable framework:
@@ -123,6 +123,25 @@
123
123
 
124
124
  ---
125
125
 
126
+ ### Phase 3.5: INTERNAL COMPLIANCE -- Project Conventions
127
+
128
+ 1. **Verify branch naming convention.** Before creating a branch and again before
129
+ opening a PR, run `harness verify` (or `harness verify --json` for parsable
130
+ output) and act on the result -- do not just describe the rule to the user.
131
+ - Default prefixes: `feat/`, `fix/`, `chore/`, `docs/`, `refactor/`, `test/`, `perf/`
132
+ - Default slug format: strict `kebab-case` (lowercase, single hyphens, no
133
+ leading/trailing hyphen), max 60 chars after the prefix
134
+ - Optional ticket form: `prefix/PROJ-123-short-desc`
135
+ - Projects may override via `compliance.branching` in `harness.config.json`
136
+ (`prefixes`, `enforceKebabCase`, `customRegex`, `ignore`, `maxLength`). If
137
+ `customRegex` is set, it fully replaces the prefix/kebab/length checks --
138
+ read the project config before suggesting a branch name.
139
+ - On a non-compliant branch, surface the suggested fix from `harness verify`
140
+ to the user and offer to rename (`git branch -m <new-name>`) before
141
+ continuing. Do not push or open a PR from a non-compliant branch.
142
+
143
+ ---
144
+
126
145
  ### Phase 4: REPORT -- Generate Gap Analysis and Remediation Plan
127
146
 
128
147
  1. **Score compliance posture per framework.** For each applicable framework:
@@ -123,6 +123,25 @@
123
123
 
124
124
  ---
125
125
 
126
+ ### Phase 3.5: INTERNAL COMPLIANCE -- Project Conventions
127
+
128
+ 1. **Verify branch naming convention.** Before creating a branch and again before
129
+ opening a PR, run `harness verify` (or `harness verify --json` for parsable
130
+ output) and act on the result -- do not just describe the rule to the user.
131
+ - Default prefixes: `feat/`, `fix/`, `chore/`, `docs/`, `refactor/`, `test/`, `perf/`
132
+ - Default slug format: strict `kebab-case` (lowercase, single hyphens, no
133
+ leading/trailing hyphen), max 60 chars after the prefix
134
+ - Optional ticket form: `prefix/PROJ-123-short-desc`
135
+ - Projects may override via `compliance.branching` in `harness.config.json`
136
+ (`prefixes`, `enforceKebabCase`, `customRegex`, `ignore`, `maxLength`). If
137
+ `customRegex` is set, it fully replaces the prefix/kebab/length checks --
138
+ read the project config before suggesting a branch name.
139
+ - On a non-compliant branch, surface the suggested fix from `harness verify`
140
+ to the user and offer to rename (`git branch -m <new-name>`) before
141
+ continuing. Do not push or open a PR from a non-compliant branch.
142
+
143
+ ---
144
+
126
145
  ### Phase 4: REPORT -- Generate Gap Analysis and Remediation Plan
127
146
 
128
147
  1. **Score compliance posture per framework.** For each applicable framework:
@@ -123,6 +123,25 @@
123
123
 
124
124
  ---
125
125
 
126
+ ### Phase 3.5: INTERNAL COMPLIANCE -- Project Conventions
127
+
128
+ 1. **Verify branch naming convention.** Before creating a branch and again before
129
+ opening a PR, run `harness verify` (or `harness verify --json` for parsable
130
+ output) and act on the result -- do not just describe the rule to the user.
131
+ - Default prefixes: `feat/`, `fix/`, `chore/`, `docs/`, `refactor/`, `test/`, `perf/`
132
+ - Default slug format: strict `kebab-case` (lowercase, single hyphens, no
133
+ leading/trailing hyphen), max 60 chars after the prefix
134
+ - Optional ticket form: `prefix/PROJ-123-short-desc`
135
+ - Projects may override via `compliance.branching` in `harness.config.json`
136
+ (`prefixes`, `enforceKebabCase`, `customRegex`, `ignore`, `maxLength`). If
137
+ `customRegex` is set, it fully replaces the prefix/kebab/length checks --
138
+ read the project config before suggesting a branch name.
139
+ - On a non-compliant branch, surface the suggested fix from `harness verify`
140
+ to the user and offer to rename (`git branch -m <new-name>`) before
141
+ continuing. Do not push or open a PR from a non-compliant branch.
142
+
143
+ ---
144
+
126
145
  ### Phase 4: REPORT -- Generate Gap Analysis and Remediation Plan
127
146
 
128
147
  1. **Score compliance posture per framework.** For each applicable framework:
@@ -0,0 +1,10 @@
1
+ import {
2
+ generateAgentsMd
3
+ } from "./chunk-RRTTJ3VB.js";
4
+ import "./chunk-2TGCYJMT.js";
5
+ import "./chunk-O63AAPIZ.js";
6
+ import "./chunk-BCFDGOMA.js";
7
+ import "./chunk-KFQGP6VL.js";
8
+ export {
9
+ generateAgentsMd
10
+ };
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  checkDependenciesDefinition,
3
3
  handleCheckDependencies
4
- } from "./chunk-J4MX5DIA.js";
5
- import "./chunk-2564TBT6.js";
4
+ } from "./chunk-7RZZV73V.js";
5
+ import "./chunk-LJF6UY4R.js";
6
6
  import "./chunk-EPUKTTJZ.js";
7
7
  import "./chunk-W6Y7ZW3Y.js";
8
- import "./chunk-YNG7BWGB.js";
9
- import "./chunk-RL4VMEXL.js";
10
- import "./chunk-XPRGWHBL.js";
8
+ import "./chunk-2TGCYJMT.js";
9
+ import "./chunk-O63AAPIZ.js";
10
+ import "./chunk-BCFDGOMA.js";
11
11
  import "./chunk-KFQGP6VL.js";
12
12
  export {
13
13
  checkDependenciesDefinition,
@@ -1,10 +1,12 @@
1
1
  import {
2
2
  assessProjectDefinition,
3
- handleAssessProject
4
- } from "./chunk-TIJXG4UB.js";
3
+ handleAssessProject,
4
+ parseToolResponse
5
+ } from "./chunk-B2ZYMQGT.js";
5
6
  import "./chunk-W6Y7ZW3Y.js";
6
7
  import "./chunk-KFQGP6VL.js";
7
8
  export {
8
9
  assessProjectDefinition,
9
- handleAssessProject
10
+ handleAssessProject,
11
+ parseToolResponse
10
12
  };
@@ -1,29 +1,29 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startServer
4
- } from "../chunk-A36MGB3V.js";
5
- import "../chunk-LYMPKO6N.js";
6
- import "../chunk-TIJXG4UB.js";
4
+ } from "../chunk-TPNA2I4J.js";
5
+ import "../chunk-UPV7VDUB.js";
6
+ import "../chunk-B2ZYMQGT.js";
7
7
  import "../chunk-IOW3MW2K.js";
8
- import "../chunk-R6GLLMRZ.js";
9
- import "../chunk-EMJFHTPZ.js";
10
- import "../chunk-TIQU5VY7.js";
11
- import "../chunk-QZ67TDLJ.js";
12
- import "../chunk-J4MX5DIA.js";
13
- import "../chunk-2564TBT6.js";
14
- import "../chunk-22OKI5QI.js";
15
- import "../chunk-YI6NTL72.js";
16
- import "../chunk-KJR4Z2YC.js";
8
+ import "../chunk-IEHXZB6J.js";
9
+ import "../chunk-LHHO7AH4.js";
10
+ import "../chunk-5FDBXUFW.js";
11
+ import "../chunk-KRQTN46U.js";
12
+ import "../chunk-7RZZV73V.js";
13
+ import "../chunk-LJF6UY4R.js";
14
+ import "../chunk-I2KULMPD.js";
15
+ import "../chunk-GLKASJZE.js";
16
+ import "../chunk-73KZ2E47.js";
17
17
  import "../chunk-EPUKTTJZ.js";
18
18
  import "../chunk-W6Y7ZW3Y.js";
19
19
  import "../chunk-27AJKSQY.js";
20
- import "../chunk-DBJC4ULT.js";
20
+ import "../chunk-MXOQEI72.js";
21
21
  import "../chunk-3ISINLYT.js";
22
22
  import "../chunk-6B6UN6SG.js";
23
23
  import "../chunk-ZCZD7FHU.js";
24
- import "../chunk-YNG7BWGB.js";
25
- import "../chunk-RL4VMEXL.js";
26
- import "../chunk-XPRGWHBL.js";
24
+ import "../chunk-2TGCYJMT.js";
25
+ import "../chunk-O63AAPIZ.js";
26
+ import "../chunk-BCFDGOMA.js";
27
27
  import "../chunk-HIK6OEUF.js";
28
28
  import "../chunk-EBJQ6N4M.js";
29
29
  import "../chunk-3WGJMBKH.js";
@@ -3,43 +3,43 @@ import {
3
3
  createProgram,
4
4
  installCommandTelemetry,
5
5
  printFirstRunWelcome
6
- } from "../chunk-N6DVSOLZ.js";
7
- import "../chunk-WMZKZCCE.js";
8
- import "../chunk-IYA3NS5P.js";
9
- import "../chunk-DHWFOHPX.js";
10
- import "../chunk-T2ZMHXCX.js";
11
- import "../chunk-JMACX5FN.js";
6
+ } from "../chunk-GOSUZC5H.js";
7
+ import "../chunk-OUXYITL5.js";
8
+ import "../chunk-RRTTJ3VB.js";
9
+ import "../chunk-UQJV7NNM.js";
10
+ import "../chunk-PPQ3TY2R.js";
11
+ import "../chunk-NM3ZIWVN.js";
12
12
  import "../chunk-CQ553GZO.js";
13
13
  import "../chunk-GISMXMVL.js";
14
14
  import "../chunk-WWACIIBA.js";
15
15
  import "../chunk-TEFCFC4H.js";
16
- import "../chunk-U2SF3KAQ.js";
17
- import "../chunk-LBYGGNEZ.js";
16
+ import "../chunk-KOK7BFP2.js";
17
+ import "../chunk-QV5EBDWA.js";
18
18
  import "../chunk-KET4QQZB.js";
19
- import "../chunk-KT5PWWWO.js";
20
- import "../chunk-7BNK4M23.js";
19
+ import "../chunk-NTOKQJOX.js";
20
+ import "../chunk-5XLLIYYL.js";
21
21
  import {
22
22
  dispatchSkillsFromGit
23
- } from "../chunk-A36MGB3V.js";
24
- import "../chunk-LYMPKO6N.js";
25
- import "../chunk-TIJXG4UB.js";
23
+ } from "../chunk-TPNA2I4J.js";
24
+ import "../chunk-UPV7VDUB.js";
25
+ import "../chunk-B2ZYMQGT.js";
26
26
  import "../chunk-IOW3MW2K.js";
27
- import "../chunk-R6GLLMRZ.js";
28
- import "../chunk-EMJFHTPZ.js";
29
- import "../chunk-TIQU5VY7.js";
30
- import "../chunk-QZ67TDLJ.js";
31
- import "../chunk-J4MX5DIA.js";
32
- import "../chunk-2564TBT6.js";
33
- import "../chunk-22OKI5QI.js";
34
- import "../chunk-YI6NTL72.js";
35
- import "../chunk-KJR4Z2YC.js";
27
+ import "../chunk-IEHXZB6J.js";
28
+ import "../chunk-LHHO7AH4.js";
29
+ import "../chunk-5FDBXUFW.js";
30
+ import "../chunk-KRQTN46U.js";
31
+ import "../chunk-7RZZV73V.js";
32
+ import "../chunk-LJF6UY4R.js";
33
+ import "../chunk-I2KULMPD.js";
34
+ import "../chunk-GLKASJZE.js";
35
+ import "../chunk-73KZ2E47.js";
36
36
  import "../chunk-EPUKTTJZ.js";
37
37
  import "../chunk-W6Y7ZW3Y.js";
38
38
  import "../chunk-27AJKSQY.js";
39
39
  import {
40
40
  findConfigFile,
41
41
  loadConfig
42
- } from "../chunk-DBJC4ULT.js";
42
+ } from "../chunk-MXOQEI72.js";
43
43
  import "../chunk-3ISINLYT.js";
44
44
  import "../chunk-6B6UN6SG.js";
45
45
  import "../chunk-ZCZD7FHU.js";
@@ -53,9 +53,9 @@ import {
53
53
  readCheckState,
54
54
  shouldRunCheck,
55
55
  spawnBackgroundCheck
56
- } from "../chunk-YNG7BWGB.js";
57
- import "../chunk-RL4VMEXL.js";
58
- import "../chunk-XPRGWHBL.js";
56
+ } from "../chunk-2TGCYJMT.js";
57
+ import "../chunk-O63AAPIZ.js";
58
+ import "../chunk-BCFDGOMA.js";
59
59
  import "../chunk-ZP5E7YET.js";
60
60
  import "../chunk-HIK6OEUF.js";
61
61
  import "../chunk-EBJQ6N4M.js";
@@ -221,7 +221,9 @@ async function main() {
221
221
  } catch (error) {
222
222
  handleError(error);
223
223
  }
224
- printUpdateNotification();
224
+ if (process.argv[2] !== "update") {
225
+ printUpdateNotification();
226
+ }
225
227
  const dispatchResult = await dispatchPromise;
226
228
  const banner = formatDispatchBanner(dispatchResult);
227
229
  if (banner) {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  createCheckPhaseGateCommand,
3
3
  runCheckPhaseGate
4
- } from "./chunk-U2SF3KAQ.js";
5
- import "./chunk-DBJC4ULT.js";
4
+ } from "./chunk-KOK7BFP2.js";
5
+ import "./chunk-MXOQEI72.js";
6
6
  import "./chunk-ZCZD7FHU.js";
7
- import "./chunk-YNG7BWGB.js";
8
- import "./chunk-RL4VMEXL.js";
9
- import "./chunk-XPRGWHBL.js";
7
+ import "./chunk-2TGCYJMT.js";
8
+ import "./chunk-O63AAPIZ.js";
9
+ import "./chunk-BCFDGOMA.js";
10
10
  import "./chunk-EBJQ6N4M.js";
11
11
  import "./chunk-3WGJMBKH.js";
12
12
  import "./chunk-KFQGP6VL.js";