@aperant/framework 0.8.4 → 0.8.6
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/CHANGELOG.md +156 -0
- package/agents/apt-planner.md +34 -3
- package/dist/cli/commands/coverage-check.d.mts.map +1 -1
- package/dist/cli/commands/coverage-check.mjs +74 -7
- package/dist/cli/commands/coverage-check.mjs.map +1 -1
- package/dist/cli/commands/detect-runtime.d.mts.map +1 -1
- package/dist/cli/commands/detect-runtime.mjs +18 -12
- package/dist/cli/commands/detect-runtime.mjs.map +1 -1
- package/dist/cli/coverage-check/user-outcomes.d.mts +84 -0
- package/dist/cli/coverage-check/user-outcomes.d.mts.map +1 -0
- package/dist/cli/coverage-check/user-outcomes.mjs +265 -0
- package/dist/cli/coverage-check/user-outcomes.mjs.map +1 -0
- package/dist/cli/host/detect.mjs +1 -1
- package/dist/cli/host/detect.mjs.map +1 -1
- package/dist/cli/install/install-from-source.mjs +3 -3
- package/dist/cli/install/legacy-paths.d.mts.map +1 -1
- package/dist/cli/install/legacy-paths.mjs +2 -0
- package/dist/cli/install/legacy-paths.mjs.map +1 -1
- package/dist/cli/verify-proof/idl/index.d.mts +1 -1
- package/dist/cli/verify-proof/idl/index.mjs +7 -8
- package/dist/cli/verify-proof/idl/index.mjs.map +1 -1
- package/dist/cli/verify-proof/idl/types.d.ts +5 -4
- package/dist/cli/verify-proof/idl/types.d.ts.map +1 -1
- package/dist/cli/verify-proof/idl/types.js +4 -3
- package/dist/cli/verify-proof/idl/types.js.map +1 -1
- package/dist/cli/verify-proof/resolver.d.mts +63 -1
- package/dist/cli/verify-proof/resolver.d.mts.map +1 -1
- package/dist/cli/verify-proof/resolver.mjs +164 -4
- package/dist/cli/verify-proof/resolver.mjs.map +1 -1
- package/dist/cli/verify-proof/runtime-detect.d.mts +6 -3
- package/dist/cli/verify-proof/runtime-detect.d.mts.map +1 -1
- package/dist/cli/verify-proof/runtime-detect.mjs +104 -11
- package/dist/cli/verify-proof/runtime-detect.mjs.map +1 -1
- package/dist/cli/verify-proof/trust.d.mts +1 -1
- package/dist/cli/verify-proof/trust.d.mts.map +1 -1
- package/dist/cli/verify-proof/trust.mjs +1 -1
- package/dist/driver-sdk/conformance.d.ts +41 -0
- package/dist/driver-sdk/conformance.d.ts.map +1 -0
- package/dist/driver-sdk/conformance.js +123 -0
- package/dist/driver-sdk/conformance.js.map +1 -0
- package/dist/driver-sdk/errors.d.ts +75 -0
- package/dist/driver-sdk/errors.d.ts.map +1 -0
- package/dist/driver-sdk/errors.js +80 -0
- package/dist/driver-sdk/errors.js.map +1 -0
- package/dist/driver-sdk/idl.d.ts +221 -0
- package/dist/driver-sdk/idl.d.ts.map +1 -0
- package/dist/driver-sdk/idl.js +140 -0
- package/dist/driver-sdk/idl.js.map +1 -0
- package/dist/driver-sdk/index.d.ts +28 -0
- package/dist/driver-sdk/index.d.ts.map +1 -0
- package/dist/driver-sdk/index.js +28 -0
- package/dist/driver-sdk/index.js.map +1 -0
- package/dist/driver-sdk/manifest.d.ts +93 -0
- package/dist/driver-sdk/manifest.d.ts.map +1 -0
- package/dist/driver-sdk/manifest.js +12 -0
- package/dist/driver-sdk/manifest.js.map +1 -0
- package/dist/driver-sdk/retry.d.ts +33 -0
- package/dist/driver-sdk/retry.d.ts.map +1 -0
- package/dist/driver-sdk/retry.js +50 -0
- package/dist/driver-sdk/retry.js.map +1 -0
- package/dist/plugin/.claude-plugin/plugin.json +2 -1
- package/dist/plugin/agents/apt-planner.md +34 -3
- package/dist/plugin/skills/apt-plan/SKILL.md +50 -0
- package/dist/plugin/skills/apt-pr-review/SKILL.md +1 -1
- package/dist/plugin/skills/apt-research/SKILL.md +526 -0
- package/dist/plugin/skills/apt-research/appendices/budget-loop.md +397 -0
- package/dist/plugin/skills/apt-research/appendices/claim-graph-schema.md +206 -0
- package/dist/plugin/skills/apt-research/appendices/domain-tools.md +236 -0
- package/dist/plugin/skills/apt-spar/SKILL.md +19 -7
- package/dist/plugin/skills/apt-verify-proof/SKILL.md +41 -2
- package/dist/schemas/quick-task.d.ts +17 -17
- package/drivers/.gitkeep +0 -0
- package/drivers/api/README.md +40 -0
- package/drivers/api/driver.mjs +59 -0
- package/drivers/api/manifest.json +26 -0
- package/drivers/browser/README.md +105 -0
- package/drivers/browser/driver.mjs +134 -0
- package/drivers/browser/manifest.json +35 -0
- package/drivers/cli/README.md +44 -0
- package/drivers/cli/driver.mjs +62 -0
- package/drivers/cli/manifest.json +28 -0
- package/drivers/electron/README.md +64 -0
- package/drivers/electron/driver.mjs +87 -0
- package/drivers/electron/manifest.json +37 -0
- package/package.json +7 -3
- package/skills/apt-plan/SKILL.md +50 -0
- package/skills/apt-planner.md +16 -0
- package/skills/apt-pr-review/SKILL.md +1 -1
- package/skills/apt-research/SKILL.md +526 -0
- package/skills/apt-research/appendices/budget-loop.md +397 -0
- package/skills/apt-research/appendices/claim-graph-schema.md +206 -0
- package/skills/apt-research/appendices/domain-tools.md +236 -0
- package/skills/apt-spar/SKILL.md +19 -7
- package/skills/apt-verify-proof/SKILL.md +41 -2
- package/src/cli/commands/coverage-check.mjs +126 -44
- package/src/cli/commands/detect-runtime.mjs +23 -14
- package/src/cli/coverage-check/user-outcomes.mjs +273 -0
- package/src/cli/host/detect.mjs +1 -1
- package/src/cli/install/install-from-source.mjs +3 -3
- package/src/cli/install/legacy-paths.mjs +2 -0
- package/src/cli/verify-proof/idl/index.mjs +7 -8
- package/src/cli/verify-proof/idl/types.ts +5 -4
- package/src/cli/verify-proof/manifest-schema.json +2 -1
- package/src/cli/verify-proof/resolver.mjs +171 -4
- package/src/cli/verify-proof/runtime-detect.mjs +99 -10
- package/src/cli/verify-proof/trust.mjs +1 -1
- package/templates/proof-verification.md +32 -3
- package/workflows/verify-proof.md +78 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,162 @@
|
|
|
3
3
|
All notable changes to `@aperant/framework` are documented here. See
|
|
4
4
|
[`VERSIONING.md`](VERSIONING.md) for the per-tier contract.
|
|
5
5
|
|
|
6
|
+
## 0.8.6 — 2026-05-24 — Outcome-first verify-proof contract + driver-sdk inline (recovery from 0.8.4 npm 404)
|
|
7
|
+
|
|
8
|
+
> **Migration window.** This release introduces a new `## User Outcomes`
|
|
9
|
+
> section that becomes the verify-proof input contract. Specs WITHOUT
|
|
10
|
+
> the section emit a `coverage-check` **warning** on v0.8.x and a
|
|
11
|
+
> **HARD BLOCK** starting v0.9.0. Refactor-only specs SHOULD use the
|
|
12
|
+
> empty-with-note escape (`_No user-observable changes — pure
|
|
13
|
+
> refactor._`) to declare absence-of-outcomes deliberately. See spec
|
|
14
|
+
> §ID-07 of `verify-proof-monorepo-contract` for the gate table.
|
|
15
|
+
|
|
16
|
+
> **Recovery.** 0.8.4 shipped with `@aperant/driver-sdk: 0.1.0` as a
|
|
17
|
+
> direct dep, but the driver-sdk package was never published — every
|
|
18
|
+
> `npm install @aperant/framework@0.8.4` since 2026-05-22 failed with
|
|
19
|
+
> a 404 on the transitive dep. 0.8.6 inlines the 875-LOC zero-dep SDK
|
|
20
|
+
> into the framework tarball, removing the broken dep. Users on 0.8.4
|
|
21
|
+
> MUST upgrade to 0.8.6 to install successfully.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- **`@aperant/driver-sdk` inlined into framework src** (recovery from
|
|
26
|
+
the 0.8.4 npm 404). The SDK lived at `packages/framework-driver-sdk/`
|
|
27
|
+
with the contract that third-party driver authors would `pnpm add
|
|
28
|
+
@aperant/driver-sdk` and avoid pulling all of framework. The SDK
|
|
29
|
+
was never published; pnpm's `workspace:*` rewrite baked an
|
|
30
|
+
unresolvable `0.1.0` spec into framework's published `package.json`.
|
|
31
|
+
Fix: 875 LOC of zero-runtime-dep SDK moved to
|
|
32
|
+
`packages/framework/src/driver-sdk/`, framework imports rewritten to
|
|
33
|
+
relative paths, the `import-direction.test.ts` invariant repurposed
|
|
34
|
+
from a package boundary to a subdirectory boundary so re-extraction
|
|
35
|
+
stays mechanical if a real third-party driver author ever asks for a
|
|
36
|
+
standalone install. The `@aperant/driver-sdk` npm package remains
|
|
37
|
+
unpublished — no consumers existed to migrate.
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- **`## User Outcomes` PRD section** — verify-proof's input contract.
|
|
42
|
+
STANDARD/DEEP specs ship a section between `## Solution` and
|
|
43
|
+
`## Implementation Decisions` carrying one `**Epic:**` headline + N
|
|
44
|
+
atomic outcomes tagged by surface (`electron | web | cli | api |
|
|
45
|
+
electron+web`). Authors write the literal `**ON**` token; IDs are
|
|
46
|
+
POSITIONAL and synthesized by the parser (O1, O2, …). Optional
|
|
47
|
+
cross-refs via `*(requires ON N)*`. Empty-with-note refactor escape
|
|
48
|
+
for non-UX tasks. QUICK track is hard-exempt per the Fast Path
|
|
49
|
+
Guarantee (ID-05).
|
|
50
|
+
- **`drivers/browser/manifest.json:transport.skill_id = "agent-browser"`**
|
|
51
|
+
— second transport option alongside `mcp_server_id: "puppeteer"`.
|
|
52
|
+
On Claude Code / OpenCode hosts the workflow runner dispatches via
|
|
53
|
+
`Skill({skill: "agent-browser", args: ...})` (one fewer external
|
|
54
|
+
dep — no Puppeteer MCP install needed); on legacy hosts the MCP
|
|
55
|
+
path is preserved. `chooseTransport({has_skill_tool})` helper.
|
|
56
|
+
- **`resolveDriversForOutcomes(opts)`** — new resolver entrypoint that
|
|
57
|
+
returns one entry per (outcome, surface) pair. For `[electron+web]`
|
|
58
|
+
outcomes emits TWO entries with the same `outcome_id` and different
|
|
59
|
+
drivers. Delegates to existing `resolveDriver()` for scoring.
|
|
60
|
+
- **`verification.monorepo_globs: string[]`** config key (default
|
|
61
|
+
`["apps/*"]`) — `loadRuntimeCapabilities` walks each glob match's
|
|
62
|
+
`package.json` and OR-merges its capabilities with the root.
|
|
63
|
+
Disable the walk entirely with `monorepo_globs: []`.
|
|
64
|
+
- **`transport` field on `verification.json:tests[]`** — `skill | mcp
|
|
65
|
+
| binary | http`. Populated by the workflow runner from the
|
|
66
|
+
dispatcher's directive (Step 7a). Documented in
|
|
67
|
+
`templates/proof-verification.md`.
|
|
68
|
+
- **`surface` field on `verification.json:tests[]`** — `electron | web
|
|
69
|
+
| cli | api`. Drives the per-surface screenshot path and the
|
|
70
|
+
`coverage.by_surface` rollup. Cross-surface outcomes produce TWO
|
|
71
|
+
test entries sharing the same `outcome_id`.
|
|
72
|
+
|
|
73
|
+
### Changed
|
|
74
|
+
|
|
75
|
+
- **`apt-tools detect-runtime`** — now walks `apps/*/package.json` by
|
|
76
|
+
default. Fixes the canonical Aperant monorepo defect (root
|
|
77
|
+
package.json with no Electron dep + `apps/desktop/package.json`
|
|
78
|
+
carrying Electron previously returned `is_electron: false` because
|
|
79
|
+
the detector only read the root). No user-visible config change
|
|
80
|
+
needed; opt out via `verification.monorepo_globs: []`.
|
|
81
|
+
- **`apt-tools coverage-check validate`** — payload gains a
|
|
82
|
+
`user_outcomes` block when the plan is STANDARD/DEEP. Block carries
|
|
83
|
+
`header_present`, `body_kind` (`empty | empty-with-note | outcomes
|
|
84
|
+
| absent`), `outcomes_count`, `validation_warnings?`, and
|
|
85
|
+
`gate_result` (`pass | warn | block`). QUICK plans omit the block
|
|
86
|
+
entirely per Fast Path Guarantee.
|
|
87
|
+
- **`workflows/verify-proof.md` Step 7** — dispatches per outcome via
|
|
88
|
+
`resolveDriversForOutcomes()` instead of a single per-run
|
|
89
|
+
`resolveDriver()` call. Writes screenshots under
|
|
90
|
+
`${PROOF_DIR}/${surface}/screenshots/${outcome-id}.png` (per-surface
|
|
91
|
+
split tree). Step 7a gains the MUST-invoke Skill directive
|
|
92
|
+
(TD-08 grep guard pins the language).
|
|
93
|
+
|
|
94
|
+
### Deprecated
|
|
95
|
+
|
|
96
|
+
- **Specs without `## User Outcomes` (STANDARD/DEEP only).** v0.8.x
|
|
97
|
+
emits a `coverage-check` **warning** with a `migration_deadline`
|
|
98
|
+
string referencing v0.9.0. v0.9.0 will **HARD BLOCK** specs that
|
|
99
|
+
lack the section. Refactor-only specs SHOULD use the
|
|
100
|
+
empty-with-note escape (`_No user-observable changes — pure
|
|
101
|
+
refactor._`, italic underscores + em dash + period required) to
|
|
102
|
+
declare absence-of-outcomes deliberately. QUICK-track plans are
|
|
103
|
+
hard-exempt at every version.
|
|
104
|
+
|
|
105
|
+
### v0.9.0 telegraph (one-minor window)
|
|
106
|
+
|
|
107
|
+
The v0.9.0 cutover lands the hard-block on missing `## User Outcomes`
|
|
108
|
+
in STANDARD/DEEP specs. Adopters should retrofit specs in the v0.8.x
|
|
109
|
+
window OR adopt the empty-with-note escape for refactor specs. No
|
|
110
|
+
silent migration of existing specs is provided — the migration is
|
|
111
|
+
deliberate per author.
|
|
112
|
+
|
|
113
|
+
### Out-of-scope (deferred follow-ups)
|
|
114
|
+
|
|
115
|
+
- **`verify-proof-executable-runner`** — the v1 verify-proof runner is
|
|
116
|
+
the host LLM (Claude Code / Codex / OpenCode / Gemini) following
|
|
117
|
+
`workflows/verify-proof.md` as a prose recipe. The framework does
|
|
118
|
+
NOT ship an executable `apt-tools verify-proof` command in 0.8.6.
|
|
119
|
+
The `transport` field, per-outcome dispatch, and MUST-invoke
|
|
120
|
+
directive are LLM-honored conventions enforced via grep guards on
|
|
121
|
+
workflow text (TD-08) and schema assertions on `verification.json`
|
|
122
|
+
shape (AC23). Follow-up `verify-proof-executable-runner` task is
|
|
123
|
+
deferred per spec §Out of Scope; the triggers that would promote
|
|
124
|
+
Path B → Path A are documented there.
|
|
125
|
+
- **`apt-tools outcomes lint`** — sentence-shape lint for User
|
|
126
|
+
Outcomes (catches squishy outcomes, validates surface tags).
|
|
127
|
+
Deferred to a follow-up framework task.
|
|
128
|
+
|
|
129
|
+
## 0.8.5 — 2026-05-22 — `/apt:verify-proof` driver layer fixes (bundled drivers + hard override precedence)
|
|
130
|
+
|
|
131
|
+
### Fixed
|
|
132
|
+
|
|
133
|
+
- **`drivers/` missing from published tarball.** `packages/framework/package.json:files`
|
|
134
|
+
did not include `drivers/`, so the four bundled IDL drivers (`browser`,
|
|
135
|
+
`electron`, `cli`, `api` — each with `manifest.json` + `driver.mjs` +
|
|
136
|
+
`README.md`) were stripped at `pnpm pack` / `npm publish` time. Downstream
|
|
137
|
+
effect: `apt-tools detect-runtime` returned `discovered_drivers: []` and
|
|
138
|
+
`selected_driver_id: null` for every installed kernel, which made the
|
|
139
|
+
strict `/apt:verify-proof` IDL path unusable (resolver throws
|
|
140
|
+
`unsatisfied_required_capability`). Fix is a one-line `files` entry —
|
|
141
|
+
re-pack now ships 4 manifests + 4 driver modules. Self-host installs
|
|
142
|
+
fix automatically on the next `/apt:update --from-source`; npm-install
|
|
143
|
+
consumers fix on the next published version bump.
|
|
144
|
+
|
|
145
|
+
- **`verification.runtimes[]` override was decorative.** The resolver
|
|
146
|
+
in `packages/framework/src/cli/verify-proof/resolver.mjs` placed
|
|
147
|
+
override-listed drivers first in the candidate list but then sorted
|
|
148
|
+
the list by score, wiping the override order. With a Next.js root
|
|
149
|
+
`package.json` (e.g. a monorepo where Electron lives at `apps/desktop`),
|
|
150
|
+
forcing `verification.runtimes: ["electron"]` still selected `browser`
|
|
151
|
+
because the latter had higher `priority` (100 vs 90). The override
|
|
152
|
+
docstring promised "explicit driverId precedence" but delivered a
|
|
153
|
+
tie-breaker. Fix: override is now **hard precedence** — listed
|
|
154
|
+
drivers are tried in override order, first one satisfying every
|
|
155
|
+
required capability wins regardless of score; non-matching override
|
|
156
|
+
entries are recorded in `fallback_attempts` with reason
|
|
157
|
+
`override-listed but missing required capabilities: ...` and the
|
|
158
|
+
resolver then falls through to the score-based pick on remaining
|
|
159
|
+
drivers. Two test cases in `verify-proof-resolver.test.ts` lock the
|
|
160
|
+
new contract (force-pick + fall-through).
|
|
161
|
+
|
|
6
162
|
## 0.8.4 — 2026-05-22 — `/apt:update` polish + `apt:handoff`, `apt:caveman` skills + `apt:resume` HANDOFF discovery
|
|
7
163
|
|
|
8
164
|
Bundled release: five `/apt:update` fix bundles (converged from a 3-round
|
package/agents/apt-planner.md
CHANGED
|
@@ -240,6 +240,11 @@ survives the task as a second-consumer document.
|
|
|
240
240
|
|
|
241
241
|
### 4.B. STANDARD / DEEP / COMPLEX — PRD-shaped spec.md
|
|
242
242
|
|
|
243
|
+
**Three orthogonal user-facing sections — keep them distinct.** User
|
|
244
|
+
Stories (motivation prose), User Outcomes (verify-proof input contract),
|
|
245
|
+
and Acceptance Criteria (code-level invariants) serve distinct
|
|
246
|
+
purposes. Do NOT collapse them — STANDARD/DEEP specs carry all three.
|
|
247
|
+
|
|
243
248
|
```markdown
|
|
244
249
|
# Spec: {task title}
|
|
245
250
|
|
|
@@ -257,6 +262,22 @@ survives the task as a second-consumer document.
|
|
|
257
262
|
{One **US-NN (persona).** story per user-value slice. Stories map 1:1
|
|
258
263
|
onto subtasks in implementation_plan.json.}
|
|
259
264
|
|
|
265
|
+
## User Outcomes
|
|
266
|
+
{Verify-proof input contract. One bolded `**Epic:**` headline + N
|
|
267
|
+
atomic outcomes. Authors write the LITERAL string `**ON**` — IDs are
|
|
268
|
+
POSITIONAL and synthesized by the parser (first row becomes O1, second
|
|
269
|
+
O2, ...). Closed surface set: `electron | web | cli | api | electron+web`.
|
|
270
|
+
Optional cross-refs via `*(requires ON N)*`. Refactor-only specs MAY
|
|
271
|
+
use the empty-with-note escape (verbatim string,
|
|
272
|
+
italic underscores + em dash + period required):}
|
|
273
|
+
|
|
274
|
+
`_No user-observable changes — pure refactor._`
|
|
275
|
+
|
|
276
|
+
**Epic:** {one-sentence user-facing capability headline}
|
|
277
|
+
|
|
278
|
+
- **ON** [surface]: {user does X; system shows/does Y}
|
|
279
|
+
- **ON** [surface]: {user does X; system shows/does Y} *(requires ON 1)*
|
|
280
|
+
|
|
260
281
|
## Implementation Decisions
|
|
261
282
|
{Load-bearing principles carried into every subtask. Format:
|
|
262
283
|
"### ID-NN: {title}" + rationale + practical consequence.}
|
|
@@ -279,9 +300,19 @@ reference these IDs via the per-subtask `acceptance_criteria` field.}
|
|
|
279
300
|
```
|
|
280
301
|
|
|
281
302
|
**PRD section ordering is load-bearing.** `apt-tools coverage-check
|
|
282
|
-
validate` greps `## Acceptance Criteria
|
|
283
|
-
greps `## Solution` and `## User Stories`.
|
|
284
|
-
sections breaks downstream tooling and the
|
|
303
|
+
validate` greps `## Acceptance Criteria` AND `## User Outcomes`;
|
|
304
|
+
`apt-tools consistency check` greps `## Solution` and `## User Stories`.
|
|
305
|
+
Renaming or reordering these sections breaks downstream tooling and the
|
|
306
|
+
C15 consistency rules.
|
|
307
|
+
|
|
308
|
+
**`## User Outcomes` synthesis directive.** Outcomes are
|
|
309
|
+
user-observable (a user does X; the system shows/does Y); Acceptance
|
|
310
|
+
Criteria are code-level invariants (a function returns X; a config key
|
|
311
|
+
exists). Do NOT collapse them — they parse through different gates and
|
|
312
|
+
serve different consumers. STANDARD/DEEP specs carry both sections in
|
|
313
|
+
parallel. IDs are POSITIONAL: the parser counts outcome rows in
|
|
314
|
+
document order and synthesizes `O1`, `O2`, ... — authors MUST write
|
|
315
|
+
the literal `**ON**` token, never `**O1**`/`**O2**`.
|
|
285
316
|
|
|
286
317
|
**Do NOT interview the user.** The PRD is synthesized from the task
|
|
287
318
|
description + codebase investigation + AGENTS.md, not from a clarifying
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-check.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/coverage-check.mjs"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coverage-check.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/coverage-check.mjs"],"names":[],"mappings":"AAmBA,+HA6RC"}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* commands/coverage-check.mjs — plan-to-spec verification coverage validator (C29).
|
|
3
|
+
*
|
|
4
|
+
* v0.8.6 adds a second gate: `## User Outcomes` parsing + gate (see
|
|
5
|
+
* coverage-check/user-outcomes.mjs). The new gate is ADDITIVE — it does
|
|
6
|
+
* NOT change the existing AC parsing branch and does NOT block when
|
|
7
|
+
* only Acceptance Criteria are present (outcomes and ACs are
|
|
8
|
+
* independent concerns per spec §ID-01). QUICK-track plans
|
|
9
|
+
* (`complexity: "simple"` OR no `vertical_slice_schema_version`) skip
|
|
10
|
+
* the User Outcomes branch entirely per Fast Path Guarantee (ID-08).
|
|
3
11
|
*/
|
|
4
12
|
import { existsSync, readFileSync } from 'node:fs';
|
|
5
|
-
import { join, resolve } from 'node:path';
|
|
13
|
+
import { dirname, join, resolve } from 'node:path';
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
6
15
|
import { parseAcceptanceCriteria, resolveSpecPath } from '../config/coverage-ac.mjs';
|
|
16
|
+
import { parseUserOutcomes, userOutcomesGateResult } from '../coverage-check/user-outcomes.mjs';
|
|
7
17
|
import { err, ok } from '../util/result.mjs';
|
|
8
18
|
export function cmdCoverageCheck(subcommand, projectDir, extraArgs) {
|
|
9
19
|
if (!subcommand)
|
|
@@ -113,12 +123,40 @@ export function cmdCoverageCheck(subcommand, projectDir, extraArgs) {
|
|
|
113
123
|
/* use default */
|
|
114
124
|
}
|
|
115
125
|
}
|
|
126
|
+
// Build the User Outcomes payload — additive, ID-08 QUICK-exempt.
|
|
127
|
+
// Plans with `complexity: "simple"` OR no
|
|
128
|
+
// `vertical_slice_schema_version` are QUICK-track per the Fast
|
|
129
|
+
// Path Guarantee — skip the gate entirely (the payload's
|
|
130
|
+
// `user_outcomes` key is OMITTED).
|
|
131
|
+
const isQuickTrack = plan.complexity === 'simple' || !plan.vertical_slice_schema_version;
|
|
132
|
+
let userOutcomesPayload = null;
|
|
133
|
+
if (!isQuickTrack && resolvedSpec.path) {
|
|
134
|
+
const specContentForOutcomes = readFileSync(resolvedSpec.path, 'utf-8');
|
|
135
|
+
const parsedOutcomes = parseUserOutcomes(specContentForOutcomes);
|
|
136
|
+
const frameworkVersion = readFrameworkVersion();
|
|
137
|
+
const gateResult = userOutcomesGateResult(parsedOutcomes, frameworkVersion);
|
|
138
|
+
userOutcomesPayload = {
|
|
139
|
+
header_present: parsedOutcomes.header_present,
|
|
140
|
+
body_kind: parsedOutcomes.body_kind,
|
|
141
|
+
outcomes_count: parsedOutcomes.outcomes.length,
|
|
142
|
+
gate_result: gateResult,
|
|
143
|
+
};
|
|
144
|
+
if (parsedOutcomes.epic)
|
|
145
|
+
userOutcomesPayload.epic = parsedOutcomes.epic;
|
|
146
|
+
if (parsedOutcomes.validation_warnings && parsedOutcomes.validation_warnings.length > 0) {
|
|
147
|
+
userOutcomesPayload.validation_warnings = parsedOutcomes.validation_warnings;
|
|
148
|
+
}
|
|
149
|
+
if (gateResult === 'warn') {
|
|
150
|
+
userOutcomesPayload.migration_deadline =
|
|
151
|
+
'## User Outcomes section becomes a hard block in v0.9.0 — add it now, or use the empty-with-note escape (`_No user-observable changes — pure refactor._`) for refactor-only specs.';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
116
154
|
// Zero-criteria guard — do NOT silently report ok when there is
|
|
117
155
|
// nothing to verify. This is the motivating bug: zero criteria
|
|
118
156
|
// trivially pass unmapped.length === 0, which produced a false
|
|
119
157
|
// green signal. Treat it as incomplete with an explicit reason.
|
|
120
158
|
if (criteria.length === 0) {
|
|
121
|
-
return ok({
|
|
159
|
+
return ok(withUserOutcomes({
|
|
122
160
|
status: 'incomplete',
|
|
123
161
|
command: 'coverage-validate',
|
|
124
162
|
criteria_count: 0,
|
|
@@ -136,7 +174,7 @@ export function cmdCoverageCheck(subcommand, projectDir, extraArgs) {
|
|
|
136
174
|
sources_checked: sourcesChecked,
|
|
137
175
|
spec_path: resolvedSpec.path,
|
|
138
176
|
autonomy_action: autonomyLevelEarly <= 1 ? 'stop-and-ask' : 'generate-stubs',
|
|
139
|
-
});
|
|
177
|
+
}, userOutcomesPayload));
|
|
140
178
|
}
|
|
141
179
|
// Classify verification methods for each subtask (D-19)
|
|
142
180
|
function classifyVerification(verification) {
|
|
@@ -206,7 +244,7 @@ export function cmdCoverageCheck(subcommand, projectDir, extraArgs) {
|
|
|
206
244
|
}
|
|
207
245
|
}
|
|
208
246
|
if (unmapped.length > 0) {
|
|
209
|
-
return ok({
|
|
247
|
+
return ok(withUserOutcomes({
|
|
210
248
|
status: 'incomplete',
|
|
211
249
|
command: 'coverage-validate',
|
|
212
250
|
criteria_count: criteria.length,
|
|
@@ -218,9 +256,9 @@ export function cmdCoverageCheck(subcommand, projectDir, extraArgs) {
|
|
|
218
256
|
autonomy_action: autonomyLevel <= 1 ? 'stop-and-ask' : 'generate-stubs',
|
|
219
257
|
spec_path: resolvedSpec.path,
|
|
220
258
|
sources_checked: sourcesChecked,
|
|
221
|
-
});
|
|
259
|
+
}, userOutcomesPayload));
|
|
222
260
|
}
|
|
223
|
-
return ok({
|
|
261
|
+
return ok(withUserOutcomes({
|
|
224
262
|
status: 'ok',
|
|
225
263
|
command: 'coverage-validate',
|
|
226
264
|
criteria_count: criteria.length,
|
|
@@ -229,10 +267,39 @@ export function cmdCoverageCheck(subcommand, projectDir, extraArgs) {
|
|
|
229
267
|
subtask_verifications: subtaskVerifications,
|
|
230
268
|
spec_path: resolvedSpec.path,
|
|
231
269
|
sources_checked: sourcesChecked,
|
|
232
|
-
});
|
|
270
|
+
}, userOutcomesPayload));
|
|
233
271
|
}
|
|
234
272
|
default:
|
|
235
273
|
return err(`Unknown coverage-check subcommand: ${subcommand}. Available: validate`);
|
|
236
274
|
}
|
|
237
275
|
}
|
|
276
|
+
/**
|
|
277
|
+
* Attach the `user_outcomes` payload to a coverage-check envelope when
|
|
278
|
+
* present (i.e. STANDARD/DEEP plan with a spec on disk). QUICK plans
|
|
279
|
+
* pass `null` and the key is OMITTED from the envelope entirely — Fast
|
|
280
|
+
* Path Guarantee (ID-08).
|
|
281
|
+
*/
|
|
282
|
+
function withUserOutcomes(envelope, userOutcomesPayload) {
|
|
283
|
+
if (userOutcomesPayload === null)
|
|
284
|
+
return envelope;
|
|
285
|
+
return { ...envelope, user_outcomes: userOutcomesPayload };
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Read the running kernel's framework version from its own package.json.
|
|
289
|
+
* Used to gate the `## User Outcomes` missing-header behavior — warn in
|
|
290
|
+
* v0.8.x, hard-block from v0.9.0 forward. Returns `'0.0.0'` on failure
|
|
291
|
+
* so the gate fails-soft to warn (callers treat unknown version as
|
|
292
|
+
* pre-0.9.0).
|
|
293
|
+
*/
|
|
294
|
+
function readFrameworkVersion() {
|
|
295
|
+
try {
|
|
296
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
297
|
+
const pkgPath = resolve(here, '..', '..', '..', 'package.json');
|
|
298
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
299
|
+
return typeof pkg.version === 'string' ? pkg.version : '0.0.0';
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
return '0.0.0';
|
|
303
|
+
}
|
|
304
|
+
}
|
|
238
305
|
//# sourceMappingURL=coverage-check.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-check.mjs","sourceRoot":"","sources":["../../../src/cli/commands/coverage-check.mjs"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coverage-check.mjs","sourceRoot":"","sources":["../../../src/cli/commands/coverage-check.mjs"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-runtime.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/detect-runtime.mjs"],"names":[],"mappings":"AAqEA;;;GAGG;AACH,6CAHW,MAAM,WACN,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"detect-runtime.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/detect-runtime.mjs"],"names":[],"mappings":"AAqEA;;;GAGG;AACH,6CAHW,MAAM,WACN,MAAM,EAAE,8CAuElB"}
|
|
@@ -78,23 +78,16 @@ export function cmdDetectRuntime(projectDir, _extra = []) {
|
|
|
78
78
|
if (!projectDir)
|
|
79
79
|
return err('Usage: apt-tools detect-runtime <project-dir>');
|
|
80
80
|
const target = resolve(projectDir);
|
|
81
|
-
//
|
|
82
|
-
|
|
83
|
-
// Discover bundled + user drivers.
|
|
84
|
-
// __dirname-equivalent under ESM: walk up from this file to the framework
|
|
85
|
-
// package root. fileURLToPath is portable across POSIX + Windows;
|
|
86
|
-
// new URL(...).pathname returns '/C:/...' on Windows which resolve()
|
|
87
|
-
// does not handle correctly.
|
|
88
|
-
const frameworkRoot = fileURLToPath(new URL('../../..', import.meta.url));
|
|
89
|
-
const bundled = discoverBundledDrivers(frameworkRoot);
|
|
90
|
-
const user = discoverUserDrivers(target);
|
|
91
|
-
const drivers = [...bundled, ...user];
|
|
92
|
-
// Read user override from .aperant/config.json:verification.runtimes[].
|
|
81
|
+
// Read user config (used both for the monorepo walk + override).
|
|
82
|
+
let monorepoGlobs;
|
|
93
83
|
let override = [];
|
|
94
84
|
const configPath = join(target, '.aperant/config.json');
|
|
95
85
|
if (existsSync(configPath)) {
|
|
96
86
|
try {
|
|
97
87
|
const cfg = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
88
|
+
if (Array.isArray(cfg?.verification?.monorepo_globs)) {
|
|
89
|
+
monorepoGlobs = cfg.verification.monorepo_globs.filter((x) => typeof x === 'string');
|
|
90
|
+
}
|
|
98
91
|
if (Array.isArray(cfg?.verification?.runtimes)) {
|
|
99
92
|
override = cfg.verification.runtimes.filter((x) => typeof x === 'string');
|
|
100
93
|
}
|
|
@@ -103,6 +96,19 @@ export function cmdDetectRuntime(projectDir, _extra = []) {
|
|
|
103
96
|
/* malformed config — ignore */
|
|
104
97
|
}
|
|
105
98
|
}
|
|
99
|
+
// Detect runtime capabilities from project's package.json + (optionally)
|
|
100
|
+
// monorepo `apps/*` walk. Default behaviour matches the canonical
|
|
101
|
+
// Aperant layout — adopters opt out via verification.monorepo_globs: [].
|
|
102
|
+
const runtime = loadRuntimeCapabilities(target, monorepoGlobs !== undefined ? { monorepo_globs: monorepoGlobs } : undefined);
|
|
103
|
+
// Discover bundled + user drivers.
|
|
104
|
+
// __dirname-equivalent under ESM: walk up from this file to the framework
|
|
105
|
+
// package root. fileURLToPath is portable across POSIX + Windows;
|
|
106
|
+
// new URL(...).pathname returns '/C:/...' on Windows which resolve()
|
|
107
|
+
// does not handle correctly.
|
|
108
|
+
const frameworkRoot = fileURLToPath(new URL('../../..', import.meta.url));
|
|
109
|
+
const bundled = discoverBundledDrivers(frameworkRoot);
|
|
110
|
+
const user = discoverUserDrivers(target);
|
|
111
|
+
const drivers = [...bundled, ...user];
|
|
106
112
|
// Try resolving with the default minimum required capability.
|
|
107
113
|
let selected = null;
|
|
108
114
|
let fallback_attempts = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-runtime.mjs","sourceRoot":"","sources":["../../../src/cli/commands/detect-runtime.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,uFAAuF;AACvF,MAAM,6BAA6B,GAAG,CAAC,YAAY,CAAC,CAAA;AAEpD;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,aAAa;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAQ;QACvC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QACnD,CAAC;QAAC,MAAM,CAAC;YACR,8BAA8B;QAC/B,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,UAAU;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAQ;QACvC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,CAAC;QAAC,MAAM,CAAC;YACR,8BAA8B;QAC/B,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,EAAE;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAElC,
|
|
1
|
+
{"version":3,"file":"detect-runtime.mjs","sourceRoot":"","sources":["../../../src/cli/commands/detect-runtime.mjs"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAA;AAE5E,uFAAuF;AACvF,MAAM,6BAA6B,GAAG,CAAC,YAAY,CAAC,CAAA;AAEpD;;;;GAIG;AACH,SAAS,sBAAsB,CAAC,aAAa;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAQ;QACvC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QACnD,CAAC;QAAC,MAAM,CAAC;YACR,8BAA8B;QAC/B,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,UAAU;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAA;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAA;IACpB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAAE,SAAQ;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;QAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,SAAQ;QACvC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;YAC9D,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAChD,CAAC;QAAC,MAAM,CAAC;YACR,8BAA8B;QAC/B,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,EAAE;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAElC,iEAAiE;IACjE,IAAI,aAAa,CAAA;IACjB,IAAI,QAAQ,GAAG,EAAE,CAAA;IACjB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;IACvD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAA;YACzD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;gBACtD,aAAa,GAAG,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;YACrF,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAChD,QAAQ,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAA;YAC1E,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,+BAA+B;QAChC,CAAC;IACF,CAAC;IAED,yEAAyE;IACzE,kEAAkE;IAClE,yEAAyE;IACzE,MAAM,OAAO,GAAG,uBAAuB,CACtC,MAAM,EACN,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAC3E,CAAA;IAED,mCAAmC;IACnC,0EAA0E;IAC1E,kEAAkE;IAClE,qEAAqE;IACrE,6BAA6B;IAC7B,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;IAErC,8DAA8D;IAC9D,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,iBAAiB,GAAG,EAAE,CAAA;IAC1B,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,aAAa,CAAC;YAC5B,OAAO;YACP,OAAO;YACP,qBAAqB,EAAE,6BAA6B;YACpD,QAAQ;SACR,CAAC,CAAA;QACF,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAA;QACnC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC7C,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACrB,iBAAiB,GAAG,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;IAChG,CAAC;IAED,OAAO,EAAE,CAAC;QACT,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,gBAAgB;QACzB,UAAU,EAAE,MAAM;QAClB,OAAO;QACP,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACpB,CAAC,CAAC;QACH,kBAAkB,EAAE,QAAQ;QAC5B,iBAAiB;KACjB,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {Object} UserOutcome
|
|
3
|
+
* @property {string} id — synthesized positional ID (O1, O2, ...)
|
|
4
|
+
* @property {('electron'|'web'|'cli'|'api'|'electron+web')} surface
|
|
5
|
+
* @property {string} text — outcome prose (sans the surface tag and requires suffix)
|
|
6
|
+
* @property {number} [requires] — the digit captured from `*(requires ON N)*`, when present and valid
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {Object} ValidationWarning
|
|
10
|
+
* @property {'unknown_requires_target'} kind
|
|
11
|
+
* @property {string} outcome_id — synthesized ID of the outcome carrying the bad `requires`
|
|
12
|
+
* @property {number} requires — the offending digit
|
|
13
|
+
* @property {string} reason — human-readable explanation
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {Object} UserOutcomesParseResult
|
|
17
|
+
* @property {boolean} header_present
|
|
18
|
+
* @property {('absent'|'empty'|'empty-with-note'|'outcomes')} body_kind
|
|
19
|
+
* @property {string} [epic]
|
|
20
|
+
* @property {UserOutcome[]} outcomes
|
|
21
|
+
* @property {ValidationWarning[]} [validation_warnings]
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Parse the `## User Outcomes` section from a spec.md string.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} specContent
|
|
27
|
+
* @returns {UserOutcomesParseResult}
|
|
28
|
+
*/
|
|
29
|
+
export function parseUserOutcomes(specContent: string): UserOutcomesParseResult;
|
|
30
|
+
/**
|
|
31
|
+
* Compute the coverage-check gate result for a parsed user-outcomes
|
|
32
|
+
* envelope. Per §ID-07 table — warn-not-block in v0.8.x, hard-block in
|
|
33
|
+
* v0.9.0.
|
|
34
|
+
*
|
|
35
|
+
* | header_present | body_kind | v0.8.x | v0.9.0 |
|
|
36
|
+
* |----------------|-------------------|--------|--------|
|
|
37
|
+
* | false | — | warn | block |
|
|
38
|
+
* | true | empty-with-note | pass | pass |
|
|
39
|
+
* | true | outcomes (≥1) | pass | pass |
|
|
40
|
+
* | true | empty | block | block |
|
|
41
|
+
*
|
|
42
|
+
* @param {UserOutcomesParseResult} parsed
|
|
43
|
+
* @param {string} frameworkVersion — semver string from the kernel's package.json (e.g. "0.8.6")
|
|
44
|
+
* @returns {('pass'|'warn'|'block')}
|
|
45
|
+
*/
|
|
46
|
+
export function userOutcomesGateResult(parsed: UserOutcomesParseResult, frameworkVersion: string): ("pass" | "warn" | "block");
|
|
47
|
+
export type UserOutcome = {
|
|
48
|
+
/**
|
|
49
|
+
* — synthesized positional ID (O1, O2, ...)
|
|
50
|
+
*/
|
|
51
|
+
id: string;
|
|
52
|
+
surface: ("electron" | "web" | "cli" | "api" | "electron+web");
|
|
53
|
+
/**
|
|
54
|
+
* — outcome prose (sans the surface tag and requires suffix)
|
|
55
|
+
*/
|
|
56
|
+
text: string;
|
|
57
|
+
/**
|
|
58
|
+
* — the digit captured from `*(requires ON N)*`, when present and valid
|
|
59
|
+
*/
|
|
60
|
+
requires?: number | undefined;
|
|
61
|
+
};
|
|
62
|
+
export type ValidationWarning = {
|
|
63
|
+
kind: "unknown_requires_target";
|
|
64
|
+
/**
|
|
65
|
+
* — synthesized ID of the outcome carrying the bad `requires`
|
|
66
|
+
*/
|
|
67
|
+
outcome_id: string;
|
|
68
|
+
/**
|
|
69
|
+
* — the offending digit
|
|
70
|
+
*/
|
|
71
|
+
requires: number;
|
|
72
|
+
/**
|
|
73
|
+
* — human-readable explanation
|
|
74
|
+
*/
|
|
75
|
+
reason: string;
|
|
76
|
+
};
|
|
77
|
+
export type UserOutcomesParseResult = {
|
|
78
|
+
header_present: boolean;
|
|
79
|
+
body_kind: ("absent" | "empty" | "empty-with-note" | "outcomes");
|
|
80
|
+
epic?: string | undefined;
|
|
81
|
+
outcomes: UserOutcome[];
|
|
82
|
+
validation_warnings?: ValidationWarning[] | undefined;
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=user-outcomes.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-outcomes.d.mts","sourceRoot":"","sources":["../../../src/cli/coverage-check/user-outcomes.mjs"],"names":[],"mappings":"AA4CA;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,+CAHW,MAAM,GACJ,uBAAuB,CAwJnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,+CAJW,uBAAuB,oBACvB,MAAM,GACJ,CAAC,MAAM,GAAC,MAAM,GAAC,OAAO,CAAC,CAiBnC;;;;;QApNa,MAAM;aACN,CAAC,UAAU,GAAC,KAAK,GAAC,KAAK,GAAC,KAAK,GAAC,cAAc,CAAC;;;;UAC7C,MAAM;;;;;;;UAMN,yBAAyB;;;;gBACzB,MAAM;;;;cACN,MAAM;;;;YACN,MAAM;;;oBAKN,OAAO;eACP,CAAC,QAAQ,GAAC,OAAO,GAAC,iBAAiB,GAAC,UAAU,CAAC;;cAE/C,WAAW,EAAE"}
|