@holdyourvoice/hyv 3.5.1 → 3.6.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/Readme.md +5 -59
- package/dist/ai-editor.js +4 -20
- package/dist/cli/agents.js +108 -0
- package/dist/cli/checks.js +226 -0
- package/dist/cli/context.test.js +55 -0
- package/dist/cli/io.js +137 -0
- package/dist/cli/lifecycle.js +162 -0
- package/dist/cli/profiles.js +246 -0
- package/dist/cli/rewriting.js +111 -0
- package/dist/cli.js +5 -974
- package/dist/cli.test.js +1 -1
- package/dist/hold-your-voice.mcpb +0 -0
- package/dist/learning.js +16 -9
- package/dist/mcp-tools.js +8 -17
- package/dist/mcp.js +12 -18
- package/dist/mirror-refs.test.js +4 -4
- package/dist/pipeline.js +30 -31
- package/dist/pipeline.test.js +5 -3
- package/dist/rebuild-task.js +4 -27
- package/dist/rebuild-task.test.js +1 -1
- package/dist/rewrite-response.js +27 -0
- package/dist/rewrite-task.js +9 -35
- package/dist/rewrite-task.test.js +10 -9
- package/dist/strict-quality.js +1 -2
- package/dist/strict-quality.test.js +3 -3
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/skills/hyv-analyze/SKILL.md +1 -1
- package/skills/hyv-analyze/agents/openai.yaml +1 -1
- package/skills/hyv-apply-rebuild/SKILL.md +1 -0
- package/skills/hyv-apply-rebuild/agents/openai.yaml +1 -1
- package/skills/hyv-apply-rewrite/SKILL.md +1 -0
- package/skills/hyv-apply-rewrite/agents/openai.yaml +1 -1
- package/skills/hyv-prepare-rebuild/SKILL.md +1 -0
- package/skills/hyv-prepare-rebuild/agents/openai.yaml +1 -1
- package/skills/hyv-prepare-rewrite/SKILL.md +1 -0
- package/skills/hyv-prepare-rewrite/agents/openai.yaml +1 -1
- package/skills/hyv-rebuild-writer-request/SKILL.md +1 -0
- package/skills/hyv-rebuild-writer-request/agents/openai.yaml +1 -1
- package/skills/hyv-rewrite-prompt/SKILL.md +4 -3
- package/skills/hyv-rewrite-prompt/agent.json +1 -1
- package/skills/hyv-rewrite-prompt/agents/openai.yaml +2 -2
- package/skills/hyv-strict-check/SKILL.md +3 -3
- package/skills/hyv-verify/SKILL.md +2 -1
- package/skills/hyv-verify/agents/openai.yaml +1 -1
- package/skills/hyv-verify-spec/SKILL.md +3 -2
- package/skills/hyv-verify-spec/agent.json +1 -1
- package/skills/hyv-verify-spec/agents/openai.yaml +2 -2
package/dist/strict-quality.js
CHANGED
|
@@ -8,8 +8,7 @@ function finding(id, disposition, reason, suggestion, sentence) {
|
|
|
8
8
|
}
|
|
9
9
|
function strictFinding(source, profile) {
|
|
10
10
|
if (source.engine === 'ai_editor') {
|
|
11
|
-
|
|
12
|
-
return finding(`strict.${source.engine}.${source.id}`, disposition, source.reason, source.suggestion, source.sentence);
|
|
11
|
+
return finding(`strict.${source.engine}.${source.id}`, 'block', source.reason, source.suggestion, source.sentence);
|
|
13
12
|
}
|
|
14
13
|
if (source.engine === 'voice_dna') {
|
|
15
14
|
if (source.severity === 'red')
|
|
@@ -45,10 +45,10 @@ test('blocks an underpowered or uncalibrated voice profile before trusting voice
|
|
|
45
45
|
const mixedFormatReport = evaluateStrictQuality('The launch starts Tuesday.', profile(), mixedFormats);
|
|
46
46
|
assert.ok(mixedFormatReport.findings.some((item) => item.id === 'strict.profile.format-spread'));
|
|
47
47
|
});
|
|
48
|
-
test('
|
|
48
|
+
test('blocks every active AI Editor pattern under strict quality', () => {
|
|
49
49
|
const review = evaluateStrictQuality('We leverage the existing checklist.', profile(), samples());
|
|
50
|
-
assert.equal(review.disposition, '
|
|
51
|
-
assert.ok(review.findings.some((item) => item.id === 'strict.ai_editor.ai.leverage' && item.disposition === '
|
|
50
|
+
assert.equal(review.disposition, 'blocked');
|
|
51
|
+
assert.ok(review.findings.some((item) => item.id === 'strict.ai_editor.ai.leverage' && item.disposition === 'block'));
|
|
52
52
|
const blockedProfile = profile();
|
|
53
53
|
blockedProfile.rulePolicy['ai.leverage'] = 'blocking';
|
|
54
54
|
const blocked = evaluateStrictQuality('We leverage the existing checklist.', blockedProfile, samples());
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const HYV_VERSION = '3.
|
|
1
|
+
export const HYV_VERSION = '3.6.1';
|
package/package.json
CHANGED
|
@@ -23,4 +23,4 @@ hyv analyze draft.md profile.json [writing-brief.json]
|
|
|
23
23
|
|
|
24
24
|
## Handoff
|
|
25
25
|
|
|
26
|
-
Run `hyv analyze` directly to execute the operation.
|
|
26
|
+
Run `hyv analyze` directly to execute the operation. Follow with hyv-rewrite-prompt or hyv-prepare-rewrite: both use strict-by-default repair scope, so every active AI Editor finding becomes a required repair. For calibrated voice evidence, hand off to hyv-strict-check with a Profile v3 and the required local samples; analysis alone is not a strict-ready result.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Analyze"
|
|
3
3
|
short_description: "Run separate VoiceDNA and AI Editor checks plus a non-scoring Unicode hygiene inspection against a draft."
|
|
4
|
-
default_prompt: "Use $hyv-analyze to
|
|
4
|
+
default_prompt: "Use $hyv-analyze to inspect this draft, then use the strict-by-default rewrite workflow so every active AI Editor finding is repaired."
|
|
@@ -16,6 +16,7 @@ hyv apply-rebuild task.json response.json profile.json (--capability-stdin|--cap
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- Strict by default: evaluation rejects a rebuild candidate with any unresolved active AI Editor finding.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Apply Rebuild"
|
|
3
3
|
short_description: "Validate and evaluate a whole-document rebuild response against a prepared authorized rebuild task."
|
|
4
|
-
default_prompt: "Use $hyv-apply-rebuild to
|
|
4
|
+
default_prompt: "Use $hyv-apply-rebuild to reject a whole-document rebuild response with any unresolved active AI Editor finding."
|
|
@@ -16,6 +16,7 @@ hyv apply-rewrite task.json response.json profile.json
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- The task's default strict policy rejects the candidate at deterministic verification when an active AI Editor finding remains. A successful deterministic result is not calibrated `strict-ready` voice evidence.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Apply Rewrite"
|
|
3
3
|
short_description: "Validate and apply a model response to a prepared rewrite task, then run local gates."
|
|
4
|
-
default_prompt: "Use $hyv-apply-rewrite to validate
|
|
4
|
+
default_prompt: "Use $hyv-apply-rewrite to validate a response through the strict default local gates."
|
|
@@ -16,6 +16,7 @@ hyv prepare-rebuild draft.md profile.json reduction.json copy-spec.json task.jso
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- Strict by default: the later rebuild evaluation rejects a candidate with any unresolved active AI Editor finding.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Prepare Rebuild"
|
|
3
3
|
short_description: "Prepare a rebuild task only after an upstream REBUILD recommendation, a CopySpec, and a signed rebuild-authorization capability."
|
|
4
|
-
default_prompt: "Use $hyv-prepare-rebuild to prepare a rebuild task only after an upstream rebuild recommendation, a copyspec, and a signed rebuild-authorization capability."
|
|
4
|
+
default_prompt: "Use $hyv-prepare-rebuild to prepare a strict rebuild task only after an upstream rebuild recommendation, a copyspec, and a signed rebuild-authorization capability."
|
|
@@ -16,6 +16,7 @@ hyv prepare-rewrite draft.md profile.json task.json [copy-spec.json] [writing-br
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- Strict by default: the task authorizes repairs for every active AI Editor finding and keeps unrelated sentences locked.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Prepare Rewrite"
|
|
3
3
|
short_description: "Prepare a local, versioned, fingerprint-bound rewrite task."
|
|
4
|
-
default_prompt: "Use $hyv-prepare-rewrite to prepare a local, versioned, fingerprint-bound rewrite task."
|
|
4
|
+
default_prompt: "Use $hyv-prepare-rewrite to prepare a strict local, versioned, fingerprint-bound rewrite task."
|
|
@@ -16,6 +16,7 @@ hyv rebuild-writer-request task.json writer-request.json
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- The resulting whole-document candidate remains subject to strict default verification: every active AI Editor finding must be repaired before it can proceed.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Rebuild Writer Request"
|
|
3
3
|
short_description: "Create the writer-only payload for a prepared rebuild task."
|
|
4
|
-
default_prompt: "Use $hyv-rebuild-writer-request to create the writer-only payload for a prepared rebuild task."
|
|
4
|
+
default_prompt: "Use $hyv-rebuild-writer-request to create the writer-only payload for a prepared rebuild task that will receive strict default verification."
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hyv-rewrite-prompt
|
|
3
|
-
description: Create a constrained editing brief without rewriting the draft.
|
|
3
|
+
description: Create a strict constrained editing brief without rewriting the draft.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# hyv-rewrite-prompt
|
|
7
7
|
|
|
8
|
-
Create a constrained editing brief. It does not rewrite the draft or call a model. The brief is printed to stdout for redirect into a markdown file.
|
|
8
|
+
Create a strict constrained editing brief. It does not rewrite the draft or call a model. The brief is printed to stdout for redirect into a markdown file.
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
@@ -16,9 +16,10 @@ hyv rewrite-prompt draft.md profile.json [writing-brief.json] > rewrite-brief.md
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- Strict by default: every active AI Editor finding is a required, source-faithful repair. Do not return a candidate with an active finding unresolved; a separate calibrated `hyv-strict-check` is required only when the caller needs a `strict-ready` voice-evidence result.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
22
23
|
## Handoff
|
|
23
24
|
|
|
24
|
-
Run `hyv rewrite-prompt` directly to execute the operation. Follow-on agents: hyv-prepare-rewrite.
|
|
25
|
+
Run `hyv rewrite-prompt` directly to execute the operation. Follow-on agents: hyv-prepare-rewrite, hyv-verify.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schema_version": "1.0.0",
|
|
3
3
|
"id": "hyv-rewrite-prompt",
|
|
4
4
|
"title": "hyv-rewrite-prompt",
|
|
5
|
-
"description": "Create a constrained editing brief without rewriting the draft.",
|
|
5
|
+
"description": "Create a strict constrained editing brief without rewriting the draft.",
|
|
6
6
|
"instruction_file": "SKILL.md",
|
|
7
7
|
"role": "Brief author",
|
|
8
8
|
"workflow_phase": "plan",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Rewrite Prompt"
|
|
3
|
-
short_description: "Create a
|
|
4
|
-
default_prompt: "Use $hyv-rewrite-prompt to create a constrained editing brief
|
|
3
|
+
short_description: "Create a strict editing brief without rewriting the draft."
|
|
4
|
+
default_prompt: "Use $hyv-rewrite-prompt to create a strict constrained editing brief that requires repair of every active AI Editor finding."
|
|
@@ -5,7 +5,7 @@ description: Run the local strict AI-pattern and calibrated voice-match gate.
|
|
|
5
5
|
|
|
6
6
|
# hyv-strict-check
|
|
7
7
|
|
|
8
|
-
Run the
|
|
8
|
+
Run the calibrated strict local quality gate without changing the draft, profile, or learning state.
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
@@ -17,8 +17,8 @@ hyv strict-check draft.md profile-v3.json sample-a.md sample-b.md sample-c.md sa
|
|
|
17
17
|
|
|
18
18
|
- Requires a Profile v3 built from at least five samples, five or more local validation samples, 1,500 validation-sample words, no duplicate samples, a consistent visible format baseline, and calibrated fingerprint tolerances.
|
|
19
19
|
- Returns `strict-ready`, `needs-human-review`, or `blocked` as JSON and exits `0` only for `strict-ready`.
|
|
20
|
-
- `blocked` covers missing strict evidence,
|
|
21
|
-
- `needs-human-review`
|
|
20
|
+
- `blocked` covers missing strict evidence, every active AI Editor pattern, hard calibrated fingerprint drift, red VoiceDNA findings, and unresolved hidden text.
|
|
21
|
+
- `needs-human-review` covers remaining non-blocking VoiceDNA or editorial review findings. It is not a clean result.
|
|
22
22
|
- It remains local-first and never sends samples or drafts to a provider.
|
|
23
23
|
|
|
24
24
|
## Handoff
|
|
@@ -16,9 +16,10 @@ hyv verify original.md candidate.md profile.json [writing-brief.json]
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- Strict by default: verification fails when the candidate has any active AI Editor finding, including an advisory or judgment-required match. An explicit Profile v3 `disabled` policy remains a deliberate user exception.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
22
23
|
## Handoff
|
|
23
24
|
|
|
24
|
-
Run `hyv verify` directly to execute the operation.
|
|
25
|
+
Run `hyv verify` directly to execute the operation. For calibrated voice evidence, run hyv-strict-check before any lifecycle handoff. A passing verify report does not substitute for strict-ready. Follow-on agents: hyv-strict-check, hyv-lifecycle.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Verify"
|
|
3
3
|
short_description: "Verify a revised candidate against an original draft and portable profile."
|
|
4
|
-
default_prompt: "Use $hyv-verify to
|
|
4
|
+
default_prompt: "Use $hyv-verify to reject any revised candidate with an unresolved active AI Editor finding."
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: hyv-verify-spec
|
|
3
|
-
description: Verify a candidate against
|
|
3
|
+
description: Verify a candidate against strict default voice gates and a local CopySpec.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# hyv-verify-spec
|
|
7
7
|
|
|
8
|
-
Verify a candidate against
|
|
8
|
+
Verify a candidate against strict default voice gates and a local CopySpec. Immutable claims remain verbatim unless atoms are supplied; then each declared atom must remain. Prohibited claims fail closed.
|
|
9
9
|
|
|
10
10
|
## Usage
|
|
11
11
|
|
|
@@ -16,6 +16,7 @@ hyv verify-spec original.md candidate.md profile.json copy-spec.json [writing-br
|
|
|
16
16
|
## Behavior
|
|
17
17
|
|
|
18
18
|
- Deterministic and local-first: this command never calls a provider and never sends drafts, samples, profiles, or telemetry to a service.
|
|
19
|
+
- Strict by default: verification fails when the candidate has any active AI Editor finding, in addition to CopySpec failures.
|
|
19
20
|
- Commands that write use an explicit output path. Confirm that path before running the command.
|
|
20
21
|
- This agent describes how to invoke the command and what it returns. It does not change command behavior or exit codes.
|
|
21
22
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"schema_version": "1.0.0",
|
|
3
3
|
"id": "hyv-verify-spec",
|
|
4
4
|
"title": "hyv-verify-spec",
|
|
5
|
-
"description": "Verify a candidate against
|
|
5
|
+
"description": "Verify a candidate against strict default voice gates and a local CopySpec.",
|
|
6
6
|
"instruction_file": "SKILL.md",
|
|
7
7
|
"role": "CopySpec verifier",
|
|
8
8
|
"workflow_phase": "verify",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Hyv Verify Spec"
|
|
3
|
-
short_description: "Verify a candidate against
|
|
4
|
-
default_prompt: "Use $hyv-verify-spec to
|
|
3
|
+
short_description: "Verify a candidate against strict default voice gates and a local CopySpec."
|
|
4
|
+
default_prompt: "Use $hyv-verify-spec to reject a candidate with any active AI Editor finding or CopySpec failure."
|