@harness-engineering/cli 1.26.0 → 1.26.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.
- package/dist/agents/skills/README.md +1 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +33 -5
- package/dist/agents/skills/claude-code/harness-execution/SKILL.md +6 -0
- package/dist/agents/skills/claude-code/harness-planning/SKILL.md +25 -1
- package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +22 -6
- package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/claude-code/initialize-test-suite-project/SKILL.md +415 -0
- package/dist/agents/skills/claude-code/initialize-test-suite-project/skill.yaml +35 -0
- package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +33 -5
- package/dist/agents/skills/codex/harness-execution/SKILL.md +6 -0
- package/dist/agents/skills/codex/harness-planning/SKILL.md +25 -1
- package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +22 -6
- package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/codex/initialize-test-suite-project/SKILL.md +415 -0
- package/dist/agents/skills/codex/initialize-test-suite-project/skill.yaml +35 -0
- package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +33 -5
- package/dist/agents/skills/cursor/harness-execution/SKILL.md +6 -0
- package/dist/agents/skills/cursor/harness-planning/SKILL.md +25 -1
- package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +22 -6
- package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/cursor/initialize-test-suite-project/SKILL.md +415 -0
- package/dist/agents/skills/cursor/initialize-test-suite-project/skill.yaml +35 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +33 -5
- package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +6 -0
- package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +25 -1
- package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +22 -6
- package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +2 -1
- package/dist/agents/skills/gemini-cli/initialize-test-suite-project/SKILL.md +415 -0
- package/dist/agents/skills/gemini-cli/initialize-test-suite-project/skill.yaml +35 -0
- package/dist/agents/skills/tests/initialize-test-suite-project.test.ts +152 -0
- package/dist/{agents-md-OPOZA5L7.js → agents-md-VI3HLR7E.js} +3 -3
- package/dist/{architecture-PMVMO6SF.js → architecture-ZDDKEVID.js} +4 -4
- package/dist/{assess-project-ZW7EKNIT.js → assess-project-Y6W7YDUA.js} +1 -1
- package/dist/bin/harness-mcp.js +16 -15
- package/dist/bin/harness.js +27 -27
- package/dist/{check-phase-gate-NTLAU3LO.js → check-phase-gate-CXR3VM22.js} +4 -4
- package/dist/{chunk-CAS3TS4Y.js → chunk-2BPPS6YQ.js} +793 -94
- package/dist/{chunk-VV2PJT4K.js → chunk-2FPUPRCY.js} +777 -598
- package/dist/{chunk-IFHAUFJX.js → chunk-3AMQYWGT.js} +2 -2
- package/dist/{chunk-FI3D6D7U.js → chunk-56A6OXVA.js} +9 -9
- package/dist/{chunk-QYSWNPXZ.js → chunk-7GY6WNEI.js} +1 -1
- package/dist/{chunk-ZBQ3ZY75.js → chunk-AMRC4FU2.js} +44 -41
- package/dist/{chunk-JZ6GORAK.js → chunk-B66LRB5M.js} +1 -1
- package/dist/{chunk-KFE2X7LG.js → chunk-BK4DJIIY.js} +4 -4
- package/dist/{chunk-G6SYTGOH.js → chunk-DBIX3X4H.js} +2 -2
- package/dist/{chunk-KXIAHHHP.js → chunk-FUND5WJR.js} +2 -2
- package/dist/{chunk-JWSVLC4I.js → chunk-JV4Y2U5F.js} +1 -1
- package/dist/{chunk-RNAGPTKF.js → chunk-K56DTX7G.js} +6 -6
- package/dist/{chunk-EXTWTJRF.js → chunk-N6B6RKQQ.js} +1 -1
- package/dist/{chunk-JBJ4AVE4.js → chunk-NY7DTZ6K.js} +3 -3
- package/dist/{chunk-Z2JORLRT.js → chunk-OLW7BJ5N.js} +1 -1
- package/dist/{chunk-HAOBHL3W.js → chunk-ORNEK65Y.js} +1 -1
- package/dist/{chunk-7JNZXJKY.js → chunk-PNNFCVW4.js} +5 -5
- package/dist/{chunk-NIOB6FTG.js → chunk-Q3ZLVMQM.js} +1 -1
- package/dist/{chunk-NVGQO4VM.js → chunk-RAVD7QLY.js} +8 -8
- package/dist/{chunk-J3O64D2A.js → chunk-TSVYBDDE.js} +1 -1
- package/dist/{chunk-KSFUJT5B.js → chunk-TY2ESLVL.js} +1 -1
- package/dist/{chunk-4KSKV5MK.js → chunk-VKS3F46M.js} +1 -1
- package/dist/{chunk-UBRD5FH4.js → chunk-WZ7UHPT3.js} +9 -9
- package/dist/{chunk-77EZGPSR.js → chunk-YC4EYIER.js} +8 -2
- package/dist/{chunk-6SCA4NEZ.js → chunk-ZN6ROTYP.js} +1 -1
- package/dist/{ci-workflow-H52EMCL6.js → ci-workflow-EW37KVPS.js} +3 -3
- package/dist/{create-skill-6QWJHQYS.js → create-skill-4T5CBSJ2.js} +2 -2
- package/dist/{dist-TG63OKA5.js → dist-CJDGASPP.js} +2 -2
- package/dist/{dist-PGQ32ZI7.js → dist-NCNAXUFD.js} +1 -1
- package/dist/{docs-GP4VUSIB.js → docs-4XI2FQW2.js} +4 -4
- package/dist/{engine-KQG5RVXX.js → engine-4L4CDTHU.js} +3 -3
- package/dist/{entropy-RXESIYKC.js → entropy-PBYSIQYS.js} +3 -3
- package/dist/{feedback-HS7ZYXOU.js → feedback-OTIFW5MK.js} +1 -1
- package/dist/{generate-agent-definitions-I4B7CVOB.js → generate-agent-definitions-CZGUXIIN.js} +4 -4
- package/dist/{graph-loader-TIVI6NQ7.js → graph-loader-RDXSEBD7.js} +1 -1
- package/dist/index.js +27 -27
- package/dist/{loader-CWAH6B4H.js → loader-UZOXCWFC.js} +3 -3
- package/dist/{mcp-KHK5KYER.js → mcp-GWVVV6LH.js} +16 -15
- package/dist/{performance-WDW5WS3J.js → performance-5UQPP3XX.js} +4 -4
- package/dist/{review-pipeline-QOZGWCTY.js → review-pipeline-65V4EO6O.js} +3 -3
- package/dist/{runtime-SFEFRPLX.js → runtime-PXX7HNB3.js} +3 -3
- package/dist/{scan-IJ7EYTF7.js → scan-WM7XDUF7.js} +1 -1
- package/dist/{security-2K7UUK6T.js → security-CAYDRZIZ.js} +1 -1
- package/dist/{validate-HXM6DXRZ.js → validate-CWGXR7QM.js} +4 -4
- package/dist/{validate-cross-check-ULQLEOME.js → validate-cross-check-BKCNLZYG.js} +3 -3
- package/package.json +4 -4
- package/dist/agents/commands/claude-code/harness/harness.md +0 -36
- package/dist/agents/commands/codex/AGENTS.md +0 -39
- package/dist/agents/commands/codex/harness/add-harness-component/SKILL.md +0 -204
- package/dist/agents/commands/codex/harness/add-harness-component/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/cleanup-dead-code/SKILL.md +0 -257
- package/dist/agents/commands/codex/harness/cleanup-dead-code/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/detect-doc-drift/SKILL.md +0 -191
- package/dist/agents/commands/codex/harness/detect-doc-drift/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/enforce-architecture/SKILL.md +0 -289
- package/dist/agents/commands/codex/harness/enforce-architecture/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-architecture-advisor/SKILL.md +0 -442
- package/dist/agents/commands/codex/harness/harness-architecture-advisor/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-autopilot/SKILL.md +0 -929
- package/dist/agents/commands/codex/harness/harness-autopilot/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-brainstorming/SKILL.md +0 -418
- package/dist/agents/commands/codex/harness/harness-brainstorming/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-code-review/SKILL.md +0 -850
- package/dist/agents/commands/codex/harness/harness-code-review/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-codebase-cleanup/SKILL.md +0 -236
- package/dist/agents/commands/codex/harness/harness-codebase-cleanup/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-debugging/SKILL.md +0 -378
- package/dist/agents/commands/codex/harness/harness-debugging/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-dependency-health/SKILL.md +0 -190
- package/dist/agents/commands/codex/harness/harness-dependency-health/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-docs-pipeline/SKILL.md +0 -472
- package/dist/agents/commands/codex/harness/harness-docs-pipeline/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-execution/SKILL.md +0 -522
- package/dist/agents/commands/codex/harness/harness-execution/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-hotspot-detector/SKILL.md +0 -172
- package/dist/agents/commands/codex/harness/harness-hotspot-detector/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-impact-analysis/SKILL.md +0 -195
- package/dist/agents/commands/codex/harness/harness-impact-analysis/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-integrity/SKILL.md +0 -178
- package/dist/agents/commands/codex/harness/harness-integrity/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-onboarding/SKILL.md +0 -299
- package/dist/agents/commands/codex/harness/harness-onboarding/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-perf/SKILL.md +0 -272
- package/dist/agents/commands/codex/harness/harness-perf/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-planning/SKILL.md +0 -592
- package/dist/agents/commands/codex/harness/harness-planning/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-refactoring/SKILL.md +0 -181
- package/dist/agents/commands/codex/harness/harness-refactoring/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-release-readiness/SKILL.md +0 -701
- package/dist/agents/commands/codex/harness/harness-release-readiness/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-roadmap/SKILL.md +0 -607
- package/dist/agents/commands/codex/harness/harness-roadmap/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-security-scan/SKILL.md +0 -147
- package/dist/agents/commands/codex/harness/harness-security-scan/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-skill-authoring/SKILL.md +0 -314
- package/dist/agents/commands/codex/harness/harness-skill-authoring/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-soundness-review/SKILL.md +0 -1280
- package/dist/agents/commands/codex/harness/harness-soundness-review/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-supply-chain-audit/SKILL.md +0 -255
- package/dist/agents/commands/codex/harness/harness-supply-chain-audit/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-tdd/SKILL.md +0 -189
- package/dist/agents/commands/codex/harness/harness-tdd/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-test-advisor/SKILL.md +0 -171
- package/dist/agents/commands/codex/harness/harness-test-advisor/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-verification/SKILL.md +0 -433
- package/dist/agents/commands/codex/harness/harness-verification/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/harness-verify/SKILL.md +0 -170
- package/dist/agents/commands/codex/harness/harness-verify/agents/openai.yaml +0 -3
- package/dist/agents/commands/codex/harness/initialize-harness-project/SKILL.md +0 -244
- package/dist/agents/commands/codex/harness/initialize-harness-project/agents/openai.yaml +0 -3
- package/dist/agents/commands/cursor/harness/add-harness-component.mdc +0 -200
- package/dist/agents/commands/cursor/harness/cleanup-dead-code.mdc +0 -253
- package/dist/agents/commands/cursor/harness/detect-doc-drift.mdc +0 -187
- package/dist/agents/commands/cursor/harness/enforce-architecture.mdc +0 -304
- package/dist/agents/commands/cursor/harness/harness-architecture-advisor.mdc +0 -457
- package/dist/agents/commands/cursor/harness/harness-autopilot.mdc +0 -924
- package/dist/agents/commands/cursor/harness/harness-brainstorming.mdc +0 -414
- package/dist/agents/commands/cursor/harness/harness-code-review.mdc +0 -865
- package/dist/agents/commands/cursor/harness/harness-codebase-cleanup.mdc +0 -232
- package/dist/agents/commands/cursor/harness/harness-debugging.mdc +0 -374
- package/dist/agents/commands/cursor/harness/harness-dependency-health.mdc +0 -187
- package/dist/agents/commands/cursor/harness/harness-docs-pipeline.mdc +0 -468
- package/dist/agents/commands/cursor/harness/harness-execution.mdc +0 -518
- package/dist/agents/commands/cursor/harness/harness-hotspot-detector.mdc +0 -169
- package/dist/agents/commands/cursor/harness/harness-impact-analysis.mdc +0 -192
- package/dist/agents/commands/cursor/harness/harness-integrity.mdc +0 -175
- package/dist/agents/commands/cursor/harness/harness-onboarding.mdc +0 -296
- package/dist/agents/commands/cursor/harness/harness-perf.mdc +0 -268
- package/dist/agents/commands/cursor/harness/harness-planning.mdc +0 -587
- package/dist/agents/commands/cursor/harness/harness-refactoring.mdc +0 -177
- package/dist/agents/commands/cursor/harness/harness-release-readiness.mdc +0 -697
- package/dist/agents/commands/cursor/harness/harness-roadmap.mdc +0 -603
- package/dist/agents/commands/cursor/harness/harness-security-scan.mdc +0 -162
- package/dist/agents/commands/cursor/harness/harness-skill-authoring.mdc +0 -300
- package/dist/agents/commands/cursor/harness/harness-soundness-review.mdc +0 -1275
- package/dist/agents/commands/cursor/harness/harness-supply-chain-audit.mdc +0 -252
- package/dist/agents/commands/cursor/harness/harness-tdd.mdc +0 -185
- package/dist/agents/commands/cursor/harness/harness-test-advisor.mdc +0 -168
- package/dist/agents/commands/cursor/harness/harness-verification.mdc +0 -429
- package/dist/agents/commands/cursor/harness/harness-verify.mdc +0 -167
- package/dist/agents/commands/cursor/harness/initialize-harness-project.mdc +0 -240
- package/dist/agents/commands/gemini-cli/harness/harness.toml +0 -277
- package/dist/{chunk-RRHUCDRD.js → chunk-ZP5E7YET.js} +3 -3
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: initialize-test-suite-project
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Scaffold or migrate a test-suite project (API, E2E/UI, or shared library) with test-suite-specific layer models, tags, reporter stack, and custom report
|
|
4
|
+
stability: static
|
|
5
|
+
cognitive_mode: constructive-architect
|
|
6
|
+
triggers:
|
|
7
|
+
- manual
|
|
8
|
+
platforms:
|
|
9
|
+
- claude-code
|
|
10
|
+
- gemini-cli
|
|
11
|
+
- cursor
|
|
12
|
+
- codex
|
|
13
|
+
tools:
|
|
14
|
+
- Bash
|
|
15
|
+
- Read
|
|
16
|
+
- Write
|
|
17
|
+
- Glob
|
|
18
|
+
cli:
|
|
19
|
+
command: harness skill run initialize-test-suite-project
|
|
20
|
+
args:
|
|
21
|
+
- name: path
|
|
22
|
+
description: Project root path
|
|
23
|
+
required: false
|
|
24
|
+
mcp:
|
|
25
|
+
tool: run_skill
|
|
26
|
+
input:
|
|
27
|
+
skill: initialize-test-suite-project
|
|
28
|
+
path: string
|
|
29
|
+
type: flexible
|
|
30
|
+
tier: 1
|
|
31
|
+
state:
|
|
32
|
+
persistent: false
|
|
33
|
+
files: []
|
|
34
|
+
depends_on:
|
|
35
|
+
- initialize-harness-project
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// agents/skills/tests/initialize-test-suite-project.test.ts
|
|
2
|
+
//
|
|
3
|
+
// Contract tests for the initialize-test-suite-project skill. Generic schema,
|
|
4
|
+
// structure, and platform-parity checks live in the sibling *.test.ts files;
|
|
5
|
+
// this file locks in invariants specific to this skill — its composition with
|
|
6
|
+
// initialize-harness-project, phase structure, and the cross-file references
|
|
7
|
+
// that make the slash command and docs discoverable.
|
|
8
|
+
|
|
9
|
+
import { describe, it, expect } from 'vitest';
|
|
10
|
+
import { readFileSync, existsSync } from 'fs';
|
|
11
|
+
import { resolve, dirname } from 'path';
|
|
12
|
+
import { fileURLToPath } from 'url';
|
|
13
|
+
import { parse } from 'yaml';
|
|
14
|
+
|
|
15
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
16
|
+
const SKILLS_DIR = resolve(__dirname, '..');
|
|
17
|
+
const REPO_ROOT = resolve(SKILLS_DIR, '..', '..');
|
|
18
|
+
|
|
19
|
+
const SKILL_NAME = 'initialize-test-suite-project';
|
|
20
|
+
const PARENT_SKILL = 'initialize-harness-project';
|
|
21
|
+
const PLATFORMS = ['claude-code', 'gemini-cli', 'cursor', 'codex'] as const;
|
|
22
|
+
|
|
23
|
+
function readSkillYaml(platform: string): Record<string, unknown> {
|
|
24
|
+
const path = resolve(SKILLS_DIR, platform, SKILL_NAME, 'skill.yaml');
|
|
25
|
+
return parse(readFileSync(path, 'utf-8'));
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function readSkillMd(platform: string): string {
|
|
29
|
+
return readFileSync(resolve(SKILLS_DIR, platform, SKILL_NAME, 'SKILL.md'), 'utf-8');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
describe('initialize-test-suite-project metadata', () => {
|
|
33
|
+
it.each(PLATFORMS)('%s skill.yaml declares correct name and tier', (platform) => {
|
|
34
|
+
const meta = readSkillYaml(platform);
|
|
35
|
+
expect(meta.name).toBe(SKILL_NAME);
|
|
36
|
+
expect(meta.tier).toBe(1);
|
|
37
|
+
expect(meta.type).toBe('flexible');
|
|
38
|
+
expect(meta.cognitive_mode).toBe('constructive-architect');
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it.each(PLATFORMS)('%s skill.yaml depends on initialize-harness-project', (platform) => {
|
|
42
|
+
const meta = readSkillYaml(platform);
|
|
43
|
+
expect(meta.depends_on).toContain(PARENT_SKILL);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it.each(PLATFORMS)('%s skill.yaml is registered for all four platforms', (platform) => {
|
|
47
|
+
const meta = readSkillYaml(platform) as { platforms: string[] };
|
|
48
|
+
for (const p of PLATFORMS) {
|
|
49
|
+
expect(meta.platforms).toContain(p);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it.each(PLATFORMS)('%s skill.yaml does not set a custom command_namespace', (platform) => {
|
|
54
|
+
const meta = readSkillYaml(platform) as Record<string, unknown>;
|
|
55
|
+
expect(meta.command_namespace).toBeUndefined();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
describe('initialize-test-suite-project SKILL.md structure', () => {
|
|
60
|
+
const REQUIRED_PHASES = [
|
|
61
|
+
'### Phase 1: CLASSIFY',
|
|
62
|
+
'### Phase 2: DECIDE',
|
|
63
|
+
'### Phase 3: CONFIGURE',
|
|
64
|
+
'### Phase 4: VALIDATE',
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
it.each(PLATFORMS)('%s SKILL.md declares all four phases', (platform) => {
|
|
68
|
+
const body = readSkillMd(platform);
|
|
69
|
+
for (const phase of REQUIRED_PHASES) {
|
|
70
|
+
expect(body, `missing phase heading "${phase}" in ${platform}`).toContain(phase);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it.each(PLATFORMS)('%s SKILL.md names all three archetypes', (platform) => {
|
|
75
|
+
const body = readSkillMd(platform);
|
|
76
|
+
expect(body).toMatch(/API test suite/i);
|
|
77
|
+
expect(body).toMatch(/E2E ?\/ ?UI/i);
|
|
78
|
+
expect(body).toMatch(/Shared test library/i);
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
it.each(PLATFORMS)('%s SKILL.md documents both layer variants A and B', (platform) => {
|
|
82
|
+
const body = readSkillMd(platform);
|
|
83
|
+
expect(body).toMatch(/Variant A/);
|
|
84
|
+
expect(body).toMatch(/Variant B/);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it.each(PLATFORMS)(
|
|
88
|
+
'%s SKILL.md includes the "Prove the guards fire" verification step',
|
|
89
|
+
(platform) => {
|
|
90
|
+
const body = readSkillMd(platform);
|
|
91
|
+
expect(body).toMatch(/Prove the [Gg]uards [Ff]ire/);
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
it.each(PLATFORMS)('%s SKILL.md describes the custom report scaffolding', (platform) => {
|
|
96
|
+
const body = readSkillMd(platform);
|
|
97
|
+
expect(body).toMatch(/scripts\/generate-reports\.ts/);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
it.each(PLATFORMS)('%s SKILL.md documents quarantine tag grepInvert', (platform) => {
|
|
101
|
+
const body = readSkillMd(platform);
|
|
102
|
+
expect(body).toMatch(/grepInvert/);
|
|
103
|
+
expect(body).toMatch(/@known-failure/);
|
|
104
|
+
expect(body).toMatch(/@wip/);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it.each(PLATFORMS)('%s SKILL.md hands control back to parent skill', (platform) => {
|
|
108
|
+
const body = readSkillMd(platform);
|
|
109
|
+
expect(body).toContain(PARENT_SKILL);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
describe('initialize-test-suite-project composition with initialize-harness-project', () => {
|
|
114
|
+
it.each(PLATFORMS)('%s parent skill dispatches to initialize-test-suite-project', (platform) => {
|
|
115
|
+
const parentPath = resolve(SKILLS_DIR, platform, PARENT_SKILL, 'SKILL.md');
|
|
116
|
+
if (!existsSync(parentPath)) return;
|
|
117
|
+
const parent = readFileSync(parentPath, 'utf-8');
|
|
118
|
+
expect(
|
|
119
|
+
parent,
|
|
120
|
+
`${platform}/${PARENT_SKILL}/SKILL.md must reference ${SKILL_NAME} for dispatch`
|
|
121
|
+
).toContain(SKILL_NAME);
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
describe('initialize-test-suite-project cross-file registration', () => {
|
|
126
|
+
it('is listed in docs/reference/skills-catalog.md under Tier 1', () => {
|
|
127
|
+
const catalog = readFileSync(
|
|
128
|
+
resolve(REPO_ROOT, 'docs', 'reference', 'skills-catalog.md'),
|
|
129
|
+
'utf-8'
|
|
130
|
+
);
|
|
131
|
+
const tier1Section = catalog.split('## Tier 2')[0] ?? '';
|
|
132
|
+
expect(tier1Section).toContain(`### ${SKILL_NAME}`);
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it('is referenced in docs/guides/qa-quickstart.md as a slash command', () => {
|
|
136
|
+
const guide = readFileSync(resolve(REPO_ROOT, 'docs', 'guides', 'qa-quickstart.md'), 'utf-8');
|
|
137
|
+
expect(guide).toContain(`/harness:${SKILL_NAME}`);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it('is referenced in docs/guides/features-overview.md', () => {
|
|
141
|
+
const overview = readFileSync(
|
|
142
|
+
resolve(REPO_ROOT, 'docs', 'guides', 'features-overview.md'),
|
|
143
|
+
'utf-8'
|
|
144
|
+
);
|
|
145
|
+
expect(overview).toContain(`/harness:${SKILL_NAME}`);
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
it('is listed in agents/skills/README.md Setup section', () => {
|
|
149
|
+
const readme = readFileSync(resolve(SKILLS_DIR, 'README.md'), 'utf-8');
|
|
150
|
+
expect(readme).toContain(SKILL_NAME);
|
|
151
|
+
});
|
|
152
|
+
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateAgentsMd
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-ZN6ROTYP.js";
|
|
4
|
+
import "./chunk-YC4EYIER.js";
|
|
5
5
|
import "./chunk-RL4VMEXL.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-2FPUPRCY.js";
|
|
7
7
|
import "./chunk-KFQGP6VL.js";
|
|
8
8
|
export {
|
|
9
9
|
generateAgentsMd
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
checkDependenciesDefinition,
|
|
3
3
|
handleCheckDependencies
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-BK4DJIIY.js";
|
|
5
|
+
import "./chunk-TSVYBDDE.js";
|
|
6
6
|
import "./chunk-EPUKTTJZ.js";
|
|
7
7
|
import "./chunk-W6Y7ZW3Y.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-YC4EYIER.js";
|
|
9
9
|
import "./chunk-RL4VMEXL.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-2FPUPRCY.js";
|
|
11
11
|
import "./chunk-KFQGP6VL.js";
|
|
12
12
|
export {
|
|
13
13
|
checkDependenciesDefinition,
|
package/dist/bin/harness-mcp.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
startServer
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-2BPPS6YQ.js";
|
|
5
|
+
import "../chunk-K56DTX7G.js";
|
|
6
6
|
import "../chunk-RC5ZY3EV.js";
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-WZ7UHPT3.js";
|
|
8
|
+
import "../chunk-3AMQYWGT.js";
|
|
9
|
+
import "../chunk-DBIX3X4H.js";
|
|
10
|
+
import "../chunk-NY7DTZ6K.js";
|
|
11
|
+
import "../chunk-BK4DJIIY.js";
|
|
12
|
+
import "../chunk-TSVYBDDE.js";
|
|
13
|
+
import "../chunk-56A6OXVA.js";
|
|
14
|
+
import "../chunk-PNNFCVW4.js";
|
|
15
|
+
import "../chunk-RAVD7QLY.js";
|
|
16
16
|
import "../chunk-EPUKTTJZ.js";
|
|
17
17
|
import "../chunk-W6Y7ZW3Y.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-VKS3F46M.js";
|
|
19
19
|
import "../chunk-3ISINLYT.js";
|
|
20
20
|
import "../chunk-6B6UN6SG.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-OLW7BJ5N.js";
|
|
22
|
+
import "../chunk-YC4EYIER.js";
|
|
23
23
|
import "../chunk-RL4VMEXL.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-2FPUPRCY.js";
|
|
25
25
|
import "../chunk-HIK6OEUF.js";
|
|
26
|
+
import "../chunk-EBJQ6N4M.js";
|
|
26
27
|
import "../chunk-3WGJMBKH.js";
|
|
27
28
|
import "../chunk-KFQGP6VL.js";
|
|
28
29
|
|
package/dist/bin/harness.js
CHANGED
|
@@ -3,44 +3,44 @@ import {
|
|
|
3
3
|
createProgram,
|
|
4
4
|
installCommandTelemetry,
|
|
5
5
|
printFirstRunWelcome
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-AMRC4FU2.js";
|
|
7
|
+
import "../chunk-ZN6ROTYP.js";
|
|
8
|
+
import "../chunk-ORNEK65Y.js";
|
|
9
|
+
import "../chunk-7GY6WNEI.js";
|
|
10
|
+
import "../chunk-B66LRB5M.js";
|
|
11
11
|
import "../chunk-CQ553GZO.js";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-N6B6RKQQ.js";
|
|
13
13
|
import "../chunk-GISMXMVL.js";
|
|
14
14
|
import "../chunk-WWACIIBA.js";
|
|
15
15
|
import "../chunk-TEFCFC4H.js";
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-FUND5WJR.js";
|
|
17
|
+
import "../chunk-TY2ESLVL.js";
|
|
18
18
|
import "../chunk-KET4QQZB.js";
|
|
19
|
-
import "../chunk-
|
|
20
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-JV4Y2U5F.js";
|
|
20
|
+
import "../chunk-Q3ZLVMQM.js";
|
|
21
21
|
import {
|
|
22
22
|
dispatchSkillsFromGit
|
|
23
|
-
} from "../chunk-
|
|
24
|
-
import "../chunk-
|
|
23
|
+
} from "../chunk-2BPPS6YQ.js";
|
|
24
|
+
import "../chunk-K56DTX7G.js";
|
|
25
25
|
import "../chunk-RC5ZY3EV.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-WZ7UHPT3.js";
|
|
27
|
+
import "../chunk-3AMQYWGT.js";
|
|
28
|
+
import "../chunk-DBIX3X4H.js";
|
|
29
|
+
import "../chunk-NY7DTZ6K.js";
|
|
30
|
+
import "../chunk-BK4DJIIY.js";
|
|
31
|
+
import "../chunk-TSVYBDDE.js";
|
|
32
|
+
import "../chunk-56A6OXVA.js";
|
|
33
|
+
import "../chunk-PNNFCVW4.js";
|
|
34
|
+
import "../chunk-RAVD7QLY.js";
|
|
35
35
|
import "../chunk-EPUKTTJZ.js";
|
|
36
36
|
import "../chunk-W6Y7ZW3Y.js";
|
|
37
37
|
import {
|
|
38
38
|
findConfigFile,
|
|
39
39
|
loadConfig
|
|
40
|
-
} from "../chunk-
|
|
40
|
+
} from "../chunk-VKS3F46M.js";
|
|
41
41
|
import "../chunk-3ISINLYT.js";
|
|
42
42
|
import "../chunk-6B6UN6SG.js";
|
|
43
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-OLW7BJ5N.js";
|
|
44
44
|
import {
|
|
45
45
|
CLI_VERSION
|
|
46
46
|
} from "../chunk-BM3PWGXQ.js";
|
|
@@ -51,12 +51,12 @@ import {
|
|
|
51
51
|
readCheckState,
|
|
52
52
|
shouldRunCheck,
|
|
53
53
|
spawnBackgroundCheck
|
|
54
|
-
} from "../chunk-
|
|
54
|
+
} from "../chunk-YC4EYIER.js";
|
|
55
55
|
import "../chunk-RL4VMEXL.js";
|
|
56
|
-
import "../chunk-
|
|
57
|
-
import "../chunk-
|
|
58
|
-
import "../chunk-EBJQ6N4M.js";
|
|
56
|
+
import "../chunk-2FPUPRCY.js";
|
|
57
|
+
import "../chunk-ZP5E7YET.js";
|
|
59
58
|
import "../chunk-HIK6OEUF.js";
|
|
59
|
+
import "../chunk-EBJQ6N4M.js";
|
|
60
60
|
import {
|
|
61
61
|
handleError
|
|
62
62
|
} from "../chunk-3WGJMBKH.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createCheckPhaseGateCommand,
|
|
3
3
|
runCheckPhaseGate
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-FUND5WJR.js";
|
|
5
|
+
import "./chunk-VKS3F46M.js";
|
|
6
|
+
import "./chunk-YC4EYIER.js";
|
|
7
7
|
import "./chunk-RL4VMEXL.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-2FPUPRCY.js";
|
|
9
9
|
import "./chunk-EBJQ6N4M.js";
|
|
10
10
|
import "./chunk-3WGJMBKH.js";
|
|
11
11
|
import "./chunk-KFQGP6VL.js";
|