incitaciones 0.10.5 โ 0.11.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 +6 -1
- package/content/distilled/review/references/rule-of-5-universal/SKILL.md +1 -1
- package/content/distilled/review/references/rule-of-5-universal/references/typesafe-verification.md +86 -0
- package/content/distilled/whisper/SKILL.md +15 -43
- package/content/manifest.json +2 -2
- package/package.json +2 -2
- package/pi-package/prompts/whisper.md +1 -1
- package/pi-package/skills/review/references/rule-of-5-universal/SKILL.md +1 -1
- package/pi-package/skills/review/references/rule-of-5-universal/references/typesafe-verification.md +86 -0
- package/pi-package/skills/rule-of-5-universal/SKILL.md +92 -1
- package/pi-package/skills/whisper/SKILL.md +16 -44
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Incitaciones ๐ค
|
|
2
2
|
|
|
3
|
+
> **Why:** agent prompts rot โ they accumulate metadata sections, stale claims,
|
|
4
|
+
> and untraceable provenance. incitaciones keeps every prompt twice: a full
|
|
5
|
+
> source (frontmatter, tags, status, provenance) and a structurally validated
|
|
6
|
+
> distilled runtime file, gated end-to-end by `just ci`.
|
|
7
|
+
> **Status:** [experimental](docs/src/status.md) ยท corpus + export tooling evolving ยท [Motivation & design](docs/src/index.md) ยท [charly-vibes Tool Ecosystem](https://charly-vibes.github.io/dulce-de-leche/ecosystem-map.html)
|
|
3
8
|
[](https://www.npmjs.com/package/incitaciones)
|
|
4
9
|
[](https://github.com/charly-vibes/incitaciones/actions/workflows/npm-publish.yml)
|
|
5
10
|
|
|
@@ -504,7 +509,7 @@ The prompts are tool-agnostic where possible, with tool-specific variations note
|
|
|
504
509
|
|
|
505
510
|
## License
|
|
506
511
|
|
|
507
|
-
[
|
|
512
|
+
The prompts and skills in this repository are licensed under [CC-BY-4.0](LICENSE) (Attribution 4.0 International). You are free to use, share, and adapt them with attribution.
|
|
508
513
|
|
|
509
514
|
## Related Projects
|
|
510
515
|
|
|
@@ -17,7 +17,7 @@ Review any intellectual artifact (code, plans, research, issues, specs, document
|
|
|
17
17
|
- **Progressive Build:** Each stage must build on previous findings.
|
|
18
18
|
- **Specificity:** Reference exact locations (file:line, section, paragraph).
|
|
19
19
|
- **Actionability:** Suggest specific solutions, don't just identify problems.
|
|
20
|
-
- **Validation:** Confirm issues exist; do not flag "potential" issues without evidence.
|
|
20
|
+
- **Validation:** Confirm issues exist; do not flag "potential" issues without evidence. If the `TYPESAFE_API_KEY` environment variable is set, apply `references/typesafe-verification.md` in place of self-reported validation. If it is not set (or the API fails), mark findings `UNVERIFIED`, print the banner defined there, and proceed with self-reported validation.
|
|
21
21
|
- **Early Stop:** Stop if convergence criteria are met before Stage 5.
|
|
22
22
|
|
|
23
23
|
## References
|
package/content/distilled/review/references/rule-of-5-universal/references/typesafe-verification.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# TypeSafe Verification Pass (conditional)
|
|
2
|
+
|
|
3
|
+
Use this procedure **only** when the `TYPESAFE_API_KEY` environment variable is set.
|
|
4
|
+
When it is not set, or the API call fails (see Failure Handling), mark every finding
|
|
5
|
+
`UNVERIFIED`, print the banner below, and fall back to self-reported validation โ
|
|
6
|
+
do not block the review.
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
BANNER: Findings NOT verified by TypeSafe (API unavailable or key absent).
|
|
10
|
+
Self-reported validation in effect; treat false-positive estimates as unmeasured.
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Use this procedure as-is; consult the `typesafe-ai` skill or docs.typesafe.ai only
|
|
14
|
+
for SDK-language bindings beyond the HTTP call specified here. Do not re-derive
|
|
15
|
+
questions, thresholds, or request shape at review time.
|
|
16
|
+
|
|
17
|
+
## Constants (edit here, not inline)
|
|
18
|
+
|
|
19
|
+
| Constant | Value | Notes |
|
|
20
|
+
| --- | --- | --- |
|
|
21
|
+
| Endpoint | `https://api.typesafe.ai/v1/systemone` | `POST`, Bearer auth |
|
|
22
|
+
| Model | `jev-latest` | TypeSafe flagship alias |
|
|
23
|
+
| `CONFIDENCE_GATE` | `0.8` | Tunable starting point; calibrate per workflow. Below gate โ human review |
|
|
24
|
+
| `VERIFY_SEVERITIES` | `CRITICAL, HIGH` | Cost cap: MEDIUM/LOW findings stay UNVERIFIED |
|
|
25
|
+
| Batching | one request | All verification questions in a single parallel call |
|
|
26
|
+
|
|
27
|
+
## Stage A โ Mechanical pre-gate (no API)
|
|
28
|
+
|
|
29
|
+
For each finding at or above `VERIFY_SEVERITIES`, check mechanically:
|
|
30
|
+
|
|
31
|
+
1. Does the referenced location exist (file:line, section, paragraph)?
|
|
32
|
+
2. Does any quoted evidence appear verbatim in the artifact under review?
|
|
33
|
+
|
|
34
|
+
- Both pass โ send to Stage B.
|
|
35
|
+
- Location missing or quote absent โ verdict `fabricated` **without an API call**
|
|
36
|
+
(this is a CRITICAL meta-finding about the reviewer, not the artifact).
|
|
37
|
+
- No quoted evidence to check โ send to Stage B anyway; the model judges context.
|
|
38
|
+
|
|
39
|
+
## Stage B โ One parallel verification request
|
|
40
|
+
|
|
41
|
+
`state` = the artifact text plus the surviving findings (id, location, claim,
|
|
42
|
+
evidence). Ask **one Choice question per finding**, all in the same request:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"model": "jev-latest",
|
|
47
|
+
"state": { "artifact": "...", "findings": [ { "id": "CORR-001", "location": "...", "claim": "...", "evidence": "..." } ] },
|
|
48
|
+
"questions": {
|
|
49
|
+
"verify_CORR-001": {
|
|
50
|
+
"type": "choice",
|
|
51
|
+
"instructions": {
|
|
52
|
+
"finding": "`findings[0]`",
|
|
53
|
+
"question": "Does the `artifact` at the location named in `finding` contain evidence that supports `finding.claim`?"
|
|
54
|
+
},
|
|
55
|
+
"criteria": {
|
|
56
|
+
"verified": "The cited location contains evidence supporting the claim",
|
|
57
|
+
"unsupported": "The location exists but says nothing about the claim",
|
|
58
|
+
"contradicted": "The location's context says the opposite of the claim",
|
|
59
|
+
"fabricated": "The claim misrepresents what the location says"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Generate one `verify_<ID>` question per finding. Never ask about multiple findings
|
|
67
|
+
in one question.
|
|
68
|
+
|
|
69
|
+
## Stage C โ Verdict mapping
|
|
70
|
+
|
|
71
|
+
| Verdict | Action |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| `verified`, confidence โฅ gate | Finding stands; counts toward convergence |
|
|
74
|
+
| `unsupported` or `contradicted` | Drop the finding; it counts as a **measured** false positive |
|
|
75
|
+
| `fabricated` (Stage A or B) | Drop; file CRITICAL meta-finding `[META-<n>]` against the review pass |
|
|
76
|
+
| Any verdict with confidence < `CONFIDENCE_GATE` | Keep finding, mark `REVIEW_REQUIRED`, route to `ESCALATE_TO_HUMAN` |
|
|
77
|
+
| Findings below `VERIFY_SEVERITIES` | Mark `UNVERIFIED`; excluded from FP-rate arithmetic |
|
|
78
|
+
|
|
79
|
+
Convergence arithmetic (in `criteria.md`) uses these measured numbers:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
False positive rate = dropped findings / (verified + dropped findings)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This replaces the self-estimated false-positive rate. Self-estimated rates are
|
|
86
|
+
insufficient as a sole gate but remain one input alongside other convergence criteria.
|
|
@@ -1,37 +1,20 @@
|
|
|
1
|
-
# Whisper โ
|
|
1
|
+
# Whisper โ knowledge workspace (pointer)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
The canonical, versioned procedure lives in the **turu skill pack** โ
|
|
4
|
+
installed with `turu skill install` and shipped with the `turu` CLI
|
|
5
|
+
([charly-vibes/whisper](https://github.com/charly-vibes/whisper),
|
|
6
|
+
`cargo install whisper-vibes`).
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
worktree slots, and scope routing. Same inputs, same outputs โ no more
|
|
10
|
-
hand-rolled shell pipelines.
|
|
8
|
+
## Routing rule
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
| Find the write destination for a scope | `turu resolve <scope> --json` |
|
|
21
|
-
| Record knowledge (extend, don't duplicate) | `turu append <scope> --text "..."` |
|
|
22
|
-
| Create the workspace layout | `turu init --json` |
|
|
23
|
-
| Inspect paths and existence | `turu status --json` |
|
|
24
|
-
| Validate / detect legacy keys | `turu check --json` ยท `turu doctor --json` |
|
|
25
|
-
| Refresh the AGENTS.md routing block | `turu sync --json` |
|
|
26
|
-
|
|
27
|
-
Scopes: `global` (rules.md), `repo` (env.md), `branch` (notes.md),
|
|
28
|
-
`worktree` (env.md), `group` (shared workspace for a set of repos).
|
|
29
|
-
If a `<!-- TURU:START -->` block exists in `AGENTS.md`, read the routing
|
|
30
|
-
map from there instead of re-deriving paths.
|
|
31
|
-
|
|
32
|
-
3. **If no** โ use the manual fallbacks in `references/` (they remain the
|
|
33
|
-
source of truth for the shell-snippet procedures) and suggest
|
|
34
|
-
`cargo install whisper-vibes`.
|
|
10
|
+
- **If `whisper.md` sits next to this file** (the installed pack), read it and follow it as your single source of procedure. It owns everything: the session loop (`turu recall all`
|
|
11
|
+
at start, `turu append <scope> "..."` at capture), scope routing
|
|
12
|
+
(global โ group โ repo โ branch โ worktree), the command table, and all
|
|
13
|
+
modes. This pointer defers entirely and adds nothing โ never reconcile
|
|
14
|
+
the two by hand.
|
|
15
|
+
- **If the pack is absent**, `turu` is not installed: use the manual
|
|
16
|
+
fallbacks in `references/` (source of truth for the shell-snippet
|
|
17
|
+
procedures) and suggest `cargo install whisper-vibes`.
|
|
35
18
|
|
|
36
19
|
## Invariants (with or without the binary)
|
|
37
20
|
|
|
@@ -41,15 +24,4 @@ hand-rolled shell pipelines.
|
|
|
41
24
|
than creating a new one that says the same thing.
|
|
42
25
|
- **One repo, one key.** The canonical key is a pure function of the remote
|
|
43
26
|
URL; never invent a variant.
|
|
44
|
-
- **Search first.** Before creating a new entry, check if one exists.
|
|
45
|
-
|
|
46
|
-
## Modes
|
|
47
|
-
|
|
48
|
-
`/w init` โ `turu init` ยท `/w` or `/w status` โ `turu status` ยท
|
|
49
|
-
`/w check` โ `turu check` ยท `/w link` โ `subs/link-manual` (no CLI verb yet)
|
|
50
|
-
ยท `/w decommission` โ `subs/decommission-manual` ยท `/w consolidate` โ
|
|
51
|
-
`subs/consolidate-manual` (detection ships via `turu doctor`).
|
|
52
|
-
|
|
53
|
-
Manual procedures for each mode: `references/init.md`, `references/check.md`,
|
|
54
|
-
`references/status.md`, `references/link.md`, `references/decommission.md`,
|
|
55
|
-
`references/consolidate.md`.
|
|
27
|
+
- **Search first.** Before creating a new entry, check if one exists.
|
package/content/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "2026-09-
|
|
2
|
+
"version": "2026-09-30",
|
|
3
3
|
"schema_version": "1.1",
|
|
4
4
|
"prompts": [
|
|
5
5
|
{
|
|
@@ -1465,7 +1465,7 @@
|
|
|
1465
1465
|
"name": "whisper",
|
|
1466
1466
|
"type": "workflow",
|
|
1467
1467
|
"title": "Whisper โ Accumulated Operational Knowledge",
|
|
1468
|
-
"description": "
|
|
1468
|
+
"description": "Deterministic knowledge workspace: session loop (recall all / append), scope routing, distill, bundle. Delegates to the turu CLI when installed; manual fallbacks otherwise.",
|
|
1469
1469
|
"source": "content/prompt-workflow-whisper.md",
|
|
1470
1470
|
"distilled": "content/distilled/whisper/SKILL.md",
|
|
1471
1471
|
"skill_format": "progressive-disclosure",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "incitaciones",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"description": "Reusable prompts and skills for CLI LLM tools, with native pi package support.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"bugs": {
|
|
11
11
|
"url": "https://github.com/charly-vibes/incitaciones/issues"
|
|
12
12
|
},
|
|
13
|
-
"license": "
|
|
13
|
+
"license": "CC-BY-4.0",
|
|
14
14
|
"type": "module",
|
|
15
15
|
"keywords": [
|
|
16
16
|
"pi-package",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Shortcut for the whisper skill.
|
|
2
|
+
description: "Shortcut for the whisper skill. Deterministic knowledge workspace: session loop (recall all / append), scope routing, distill, bundle. Delegates to the turu CLI when installed; manual fallbacks otherwise."
|
|
3
3
|
---
|
|
4
4
|
<!-- installed-from: incitaciones -->
|
|
5
5
|
|
|
@@ -17,7 +17,7 @@ Review any intellectual artifact (code, plans, research, issues, specs, document
|
|
|
17
17
|
- **Progressive Build:** Each stage must build on previous findings.
|
|
18
18
|
- **Specificity:** Reference exact locations (file:line, section, paragraph).
|
|
19
19
|
- **Actionability:** Suggest specific solutions, don't just identify problems.
|
|
20
|
-
- **Validation:** Confirm issues exist; do not flag "potential" issues without evidence.
|
|
20
|
+
- **Validation:** Confirm issues exist; do not flag "potential" issues without evidence. If the `TYPESAFE_API_KEY` environment variable is set, apply `references/typesafe-verification.md` in place of self-reported validation. If it is not set (or the API fails), mark findings `UNVERIFIED`, print the banner defined there, and proceed with self-reported validation.
|
|
21
21
|
- **Early Stop:** Stop if convergence criteria are met before Stage 5.
|
|
22
22
|
|
|
23
23
|
## References
|
package/pi-package/skills/review/references/rule-of-5-universal/references/typesafe-verification.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# TypeSafe Verification Pass (conditional)
|
|
2
|
+
|
|
3
|
+
Use this procedure **only** when the `TYPESAFE_API_KEY` environment variable is set.
|
|
4
|
+
When it is not set, or the API call fails (see Failure Handling), mark every finding
|
|
5
|
+
`UNVERIFIED`, print the banner below, and fall back to self-reported validation โ
|
|
6
|
+
do not block the review.
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
BANNER: Findings NOT verified by TypeSafe (API unavailable or key absent).
|
|
10
|
+
Self-reported validation in effect; treat false-positive estimates as unmeasured.
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Use this procedure as-is; consult the `typesafe-ai` skill or docs.typesafe.ai only
|
|
14
|
+
for SDK-language bindings beyond the HTTP call specified here. Do not re-derive
|
|
15
|
+
questions, thresholds, or request shape at review time.
|
|
16
|
+
|
|
17
|
+
## Constants (edit here, not inline)
|
|
18
|
+
|
|
19
|
+
| Constant | Value | Notes |
|
|
20
|
+
| --- | --- | --- |
|
|
21
|
+
| Endpoint | `https://api.typesafe.ai/v1/systemone` | `POST`, Bearer auth |
|
|
22
|
+
| Model | `jev-latest` | TypeSafe flagship alias |
|
|
23
|
+
| `CONFIDENCE_GATE` | `0.8` | Tunable starting point; calibrate per workflow. Below gate โ human review |
|
|
24
|
+
| `VERIFY_SEVERITIES` | `CRITICAL, HIGH` | Cost cap: MEDIUM/LOW findings stay UNVERIFIED |
|
|
25
|
+
| Batching | one request | All verification questions in a single parallel call |
|
|
26
|
+
|
|
27
|
+
## Stage A โ Mechanical pre-gate (no API)
|
|
28
|
+
|
|
29
|
+
For each finding at or above `VERIFY_SEVERITIES`, check mechanically:
|
|
30
|
+
|
|
31
|
+
1. Does the referenced location exist (file:line, section, paragraph)?
|
|
32
|
+
2. Does any quoted evidence appear verbatim in the artifact under review?
|
|
33
|
+
|
|
34
|
+
- Both pass โ send to Stage B.
|
|
35
|
+
- Location missing or quote absent โ verdict `fabricated` **without an API call**
|
|
36
|
+
(this is a CRITICAL meta-finding about the reviewer, not the artifact).
|
|
37
|
+
- No quoted evidence to check โ send to Stage B anyway; the model judges context.
|
|
38
|
+
|
|
39
|
+
## Stage B โ One parallel verification request
|
|
40
|
+
|
|
41
|
+
`state` = the artifact text plus the surviving findings (id, location, claim,
|
|
42
|
+
evidence). Ask **one Choice question per finding**, all in the same request:
|
|
43
|
+
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"model": "jev-latest",
|
|
47
|
+
"state": { "artifact": "...", "findings": [ { "id": "CORR-001", "location": "...", "claim": "...", "evidence": "..." } ] },
|
|
48
|
+
"questions": {
|
|
49
|
+
"verify_CORR-001": {
|
|
50
|
+
"type": "choice",
|
|
51
|
+
"instructions": {
|
|
52
|
+
"finding": "`findings[0]`",
|
|
53
|
+
"question": "Does the `artifact` at the location named in `finding` contain evidence that supports `finding.claim`?"
|
|
54
|
+
},
|
|
55
|
+
"criteria": {
|
|
56
|
+
"verified": "The cited location contains evidence supporting the claim",
|
|
57
|
+
"unsupported": "The location exists but says nothing about the claim",
|
|
58
|
+
"contradicted": "The location's context says the opposite of the claim",
|
|
59
|
+
"fabricated": "The claim misrepresents what the location says"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Generate one `verify_<ID>` question per finding. Never ask about multiple findings
|
|
67
|
+
in one question.
|
|
68
|
+
|
|
69
|
+
## Stage C โ Verdict mapping
|
|
70
|
+
|
|
71
|
+
| Verdict | Action |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| `verified`, confidence โฅ gate | Finding stands; counts toward convergence |
|
|
74
|
+
| `unsupported` or `contradicted` | Drop the finding; it counts as a **measured** false positive |
|
|
75
|
+
| `fabricated` (Stage A or B) | Drop; file CRITICAL meta-finding `[META-<n>]` against the review pass |
|
|
76
|
+
| Any verdict with confidence < `CONFIDENCE_GATE` | Keep finding, mark `REVIEW_REQUIRED`, route to `ESCALATE_TO_HUMAN` |
|
|
77
|
+
| Findings below `VERIFY_SEVERITIES` | Mark `UNVERIFIED`; excluded from FP-rate arithmetic |
|
|
78
|
+
|
|
79
|
+
Convergence arithmetic (in `criteria.md`) uses these measured numbers:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
False positive rate = dropped findings / (verified + dropped findings)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This replaces the self-estimated false-positive rate. Self-estimated rates are
|
|
86
|
+
insufficient as a sole gate but remain one input alongside other convergence criteria.
|
|
@@ -31,7 +31,7 @@ Review any intellectual artifact (code, plans, research, issues, specs, document
|
|
|
31
31
|
- **Progressive Build:** Each stage must build on previous findings.
|
|
32
32
|
- **Specificity:** Reference exact locations (file:line, section, paragraph).
|
|
33
33
|
- **Actionability:** Suggest specific solutions, don't just identify problems.
|
|
34
|
-
- **Validation:** Confirm issues exist; do not flag "potential" issues without evidence.
|
|
34
|
+
- **Validation:** Confirm issues exist; do not flag "potential" issues without evidence. If the `TYPESAFE_API_KEY` environment variable is set, apply `references/typesafe-verification.md` in place of self-reported validation. If it is not set (or the API fails), mark findings `UNVERIFIED`, print the banner defined there, and proceed with self-reported validation.
|
|
35
35
|
- **Early Stop:** Stop if convergence criteria are met before Stage 5.
|
|
36
36
|
|
|
37
37
|
## References
|
|
@@ -292,3 +292,94 @@ Total Issues by Severity:
|
|
|
292
292
|
|
|
293
293
|
**Rationale:** [1-2 sentences explaining the verdict]
|
|
294
294
|
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
#### Reference: references/typesafe-verification.md
|
|
299
|
+
|
|
300
|
+
# TypeSafe Verification Pass (conditional)
|
|
301
|
+
|
|
302
|
+
Use this procedure **only** when the `TYPESAFE_API_KEY` environment variable is set.
|
|
303
|
+
When it is not set, or the API call fails (see Failure Handling), mark every finding
|
|
304
|
+
`UNVERIFIED`, print the banner below, and fall back to self-reported validation โ
|
|
305
|
+
do not block the review.
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
BANNER: Findings NOT verified by TypeSafe (API unavailable or key absent).
|
|
309
|
+
Self-reported validation in effect; treat false-positive estimates as unmeasured.
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
Use this procedure as-is; consult the `typesafe-ai` skill or docs.typesafe.ai only
|
|
313
|
+
for SDK-language bindings beyond the HTTP call specified here. Do not re-derive
|
|
314
|
+
questions, thresholds, or request shape at review time.
|
|
315
|
+
|
|
316
|
+
## Constants (edit here, not inline)
|
|
317
|
+
|
|
318
|
+
| Constant | Value | Notes |
|
|
319
|
+
| --- | --- | --- |
|
|
320
|
+
| Endpoint | `https://api.typesafe.ai/v1/systemone` | `POST`, Bearer auth |
|
|
321
|
+
| Model | `jev-latest` | TypeSafe flagship alias |
|
|
322
|
+
| `CONFIDENCE_GATE` | `0.8` | Tunable starting point; calibrate per workflow. Below gate โ human review |
|
|
323
|
+
| `VERIFY_SEVERITIES` | `CRITICAL, HIGH` | Cost cap: MEDIUM/LOW findings stay UNVERIFIED |
|
|
324
|
+
| Batching | one request | All verification questions in a single parallel call |
|
|
325
|
+
|
|
326
|
+
## Stage A โ Mechanical pre-gate (no API)
|
|
327
|
+
|
|
328
|
+
For each finding at or above `VERIFY_SEVERITIES`, check mechanically:
|
|
329
|
+
|
|
330
|
+
1. Does the referenced location exist (file:line, section, paragraph)?
|
|
331
|
+
2. Does any quoted evidence appear verbatim in the artifact under review?
|
|
332
|
+
|
|
333
|
+
- Both pass โ send to Stage B.
|
|
334
|
+
- Location missing or quote absent โ verdict `fabricated` **without an API call**
|
|
335
|
+
(this is a CRITICAL meta-finding about the reviewer, not the artifact).
|
|
336
|
+
- No quoted evidence to check โ send to Stage B anyway; the model judges context.
|
|
337
|
+
|
|
338
|
+
## Stage B โ One parallel verification request
|
|
339
|
+
|
|
340
|
+
`state` = the artifact text plus the surviving findings (id, location, claim,
|
|
341
|
+
evidence). Ask **one Choice question per finding**, all in the same request:
|
|
342
|
+
|
|
343
|
+
```json
|
|
344
|
+
{
|
|
345
|
+
"model": "jev-latest",
|
|
346
|
+
"state": { "artifact": "...", "findings": [ { "id": "CORR-001", "location": "...", "claim": "...", "evidence": "..." } ] },
|
|
347
|
+
"questions": {
|
|
348
|
+
"verify_CORR-001": {
|
|
349
|
+
"type": "choice",
|
|
350
|
+
"instructions": {
|
|
351
|
+
"finding": "`findings[0]`",
|
|
352
|
+
"question": "Does the `artifact` at the location named in `finding` contain evidence that supports `finding.claim`?"
|
|
353
|
+
},
|
|
354
|
+
"criteria": {
|
|
355
|
+
"verified": "The cited location contains evidence supporting the claim",
|
|
356
|
+
"unsupported": "The location exists but says nothing about the claim",
|
|
357
|
+
"contradicted": "The location's context says the opposite of the claim",
|
|
358
|
+
"fabricated": "The claim misrepresents what the location says"
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
Generate one `verify_<ID>` question per finding. Never ask about multiple findings
|
|
366
|
+
in one question.
|
|
367
|
+
|
|
368
|
+
## Stage C โ Verdict mapping
|
|
369
|
+
|
|
370
|
+
| Verdict | Action |
|
|
371
|
+
| --- | --- |
|
|
372
|
+
| `verified`, confidence โฅ gate | Finding stands; counts toward convergence |
|
|
373
|
+
| `unsupported` or `contradicted` | Drop the finding; it counts as a **measured** false positive |
|
|
374
|
+
| `fabricated` (Stage A or B) | Drop; file CRITICAL meta-finding `[META-<n>]` against the review pass |
|
|
375
|
+
| Any verdict with confidence < `CONFIDENCE_GATE` | Keep finding, mark `REVIEW_REQUIRED`, route to `ESCALATE_TO_HUMAN` |
|
|
376
|
+
| Findings below `VERIFY_SEVERITIES` | Mark `UNVERIFIED`; excluded from FP-rate arithmetic |
|
|
377
|
+
|
|
378
|
+
Convergence arithmetic (in `criteria.md`) uses these measured numbers:
|
|
379
|
+
|
|
380
|
+
```
|
|
381
|
+
False positive rate = dropped findings / (verified + dropped findings)
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
This replaces the self-estimated false-positive rate. Self-estimated rates are
|
|
385
|
+
insufficient as a sole gate but remain one input alongside other convergence criteria.
|
|
@@ -1,44 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: whisper
|
|
3
|
-
description: "
|
|
3
|
+
description: "Deterministic knowledge workspace: session loop (recall all / append), scope routing, distill, bundle. Delegates to the turu CLI when installed; manual fallbacks otherwise."
|
|
4
4
|
metadata:
|
|
5
5
|
installed-from: "incitaciones"
|
|
6
6
|
disable-model-invocation: true
|
|
7
7
|
---
|
|
8
|
-
# Whisper โ
|
|
8
|
+
# Whisper โ knowledge workspace (pointer)
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
The canonical, versioned procedure lives in the **turu skill pack** โ
|
|
11
|
+
installed with `turu skill install` and shipped with the `turu` CLI
|
|
12
|
+
([charly-vibes/whisper](https://github.com/charly-vibes/whisper),
|
|
13
|
+
`cargo install whisper-vibes`).
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
worktree slots, and scope routing. Same inputs, same outputs โ no more
|
|
17
|
-
hand-rolled shell pipelines.
|
|
15
|
+
## Routing rule
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
| Find the write destination for a scope | `turu resolve <scope> --json` |
|
|
28
|
-
| Record knowledge (extend, don't duplicate) | `turu append <scope> --text "..."` |
|
|
29
|
-
| Create the workspace layout | `turu init --json` |
|
|
30
|
-
| Inspect paths and existence | `turu status --json` |
|
|
31
|
-
| Validate / detect legacy keys | `turu check --json` ยท `turu doctor --json` |
|
|
32
|
-
| Refresh the AGENTS.md routing block | `turu sync --json` |
|
|
33
|
-
|
|
34
|
-
Scopes: `global` (rules.md), `repo` (env.md), `branch` (notes.md),
|
|
35
|
-
`worktree` (env.md), `group` (shared workspace for a set of repos).
|
|
36
|
-
If a `<!-- TURU:START -->` block exists in `AGENTS.md`, read the routing
|
|
37
|
-
map from there instead of re-deriving paths.
|
|
38
|
-
|
|
39
|
-
3. **If no** โ use the manual fallbacks in `references/` (they remain the
|
|
40
|
-
source of truth for the shell-snippet procedures) and suggest
|
|
41
|
-
`cargo install whisper-vibes`.
|
|
17
|
+
- **If `whisper.md` sits next to this file** (the installed pack), read it and follow it as your single source of procedure. It owns everything: the session loop (`turu recall all`
|
|
18
|
+
at start, `turu append <scope> "..."` at capture), scope routing
|
|
19
|
+
(global โ group โ repo โ branch โ worktree), the command table, and all
|
|
20
|
+
modes. This pointer defers entirely and adds nothing โ never reconcile
|
|
21
|
+
the two by hand.
|
|
22
|
+
- **If the pack is absent**, `turu` is not installed: use the manual
|
|
23
|
+
fallbacks in `references/` (source of truth for the shell-snippet
|
|
24
|
+
procedures) and suggest `cargo install whisper-vibes`.
|
|
42
25
|
|
|
43
26
|
## Invariants (with or without the binary)
|
|
44
27
|
|
|
@@ -48,15 +31,4 @@ hand-rolled shell pipelines.
|
|
|
48
31
|
than creating a new one that says the same thing.
|
|
49
32
|
- **One repo, one key.** The canonical key is a pure function of the remote
|
|
50
33
|
URL; never invent a variant.
|
|
51
|
-
- **Search first.** Before creating a new entry, check if one exists.
|
|
52
|
-
|
|
53
|
-
## Modes
|
|
54
|
-
|
|
55
|
-
`/w init` โ `turu init` ยท `/w` or `/w status` โ `turu status` ยท
|
|
56
|
-
`/w check` โ `turu check` ยท `/w link` โ `subs/link-manual` (no CLI verb yet)
|
|
57
|
-
ยท `/w decommission` โ `subs/decommission-manual` ยท `/w consolidate` โ
|
|
58
|
-
`subs/consolidate-manual` (detection ships via `turu doctor`).
|
|
59
|
-
|
|
60
|
-
Manual procedures for each mode: `references/init.md`, `references/check.md`,
|
|
61
|
-
`references/status.md`, `references/link.md`, `references/decommission.md`,
|
|
62
|
-
`references/consolidate.md`.
|
|
34
|
+
- **Search first.** Before creating a new entry, check if one exists.
|