empirical-sdd 0.31.0 → 0.32.0
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 +59 -1
- package/README.md +33 -0
- package/dist/checkouts.d.ts +16 -1
- package/dist/cli.js +1981 -638
- package/dist/core.d.ts +11 -1
- package/dist/demo-integration-repair.js +1586 -569
- package/dist/demo-ticket-policy.js +1578 -561
- package/dist/index.js +1601 -584
- package/dist/integrations.js +595 -206
- package/dist/linear-mcp-tracking.d.ts +2 -0
- package/dist/mcp.js +1667 -611
- package/dist/mockup-preview.d.ts +26 -0
- package/dist/mockups.d.ts +104 -0
- package/dist/protocol.d.ts +7 -1
- package/dist/protocol.js +3 -1
- package/dist/qa.d.ts +2 -0
- package/dist/runtime.d.ts +23 -0
- package/dist/storage.d.ts +13 -4
- package/dist/tracker-content.d.ts +5 -0
- package/dist/tracking.d.ts +4 -0
- package/dist/types.d.ts +4 -0
- package/dist/worktrees.d.ts +6 -1
- package/docs/demo.md +1 -1
- package/docs/mcp.md +105 -1
- package/docs/protocol.md +173 -2
- package/docs/verification-performance.md +63 -0
- package/docs/versioning.md +6 -6
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,63 @@ under the alpha rules in [docs/versioning.md](docs/versioning.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.32.0] - 2026-09-08
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added a six-step initialization wizard covering Setup, Preferences, Review
|
|
16
|
+
bot, Tracking, Confirm, and Apply, with Back/Edit navigation, retained
|
|
17
|
+
choices, and explicit Save before setup changes.
|
|
18
|
+
- Added clickable app and feature mockup previews through `empirical mockups`,
|
|
19
|
+
human approval before UI contracts freeze, and fidelity checks against the
|
|
20
|
+
approved design during verification.
|
|
21
|
+
- Added explicit reuse of exact-revision QA receipts after validating source,
|
|
22
|
+
specification, policy, command, runtime, executable, and artifact identities.
|
|
23
|
+
- Added bounded verification progress and a repeatable benchmark for measuring
|
|
24
|
+
final verification without treating diagnostics as promotion evidence.
|
|
25
|
+
- Added explicit selection of existing specs and recoverable approved worktree
|
|
26
|
+
handoffs, including retries after interrupted Git creation or feature setup.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- Capability claims are now non-exclusive: specs in separate worktrees can
|
|
31
|
+
progress on the same capability while integration retains semantic conflict
|
|
32
|
+
detection against each spec's recorded base.
|
|
33
|
+
- Git worktrees now use their own selected feature instead of automatically
|
|
34
|
+
inheriting unfinished spec histories. Multiple unclaimed specs may remain
|
|
35
|
+
inactive without blocking unrelated new work.
|
|
36
|
+
- Reviewer-bot setup is optional, includes an explicit disable choice, and
|
|
37
|
+
preserves saved fresh-context review without repeated credential prompts.
|
|
38
|
+
- Linear tracking prefers authenticated sibling MCP tools, including upgrade
|
|
39
|
+
recovery from legacy API-key configuration, and derives ticket content from
|
|
40
|
+
the specification while storing recovery identities in attachment metadata.
|
|
41
|
+
|
|
42
|
+
### Fixed
|
|
43
|
+
|
|
44
|
+
- Prevented unrelated malformed or blocked feature histories and sibling
|
|
45
|
+
checkout metadata from blocking normal work in another Git checkout.
|
|
46
|
+
- Preserved strict tracker recovery obligations and checkout ownership across
|
|
47
|
+
terminal transitions, interrupted handoffs, and explicit feature selection.
|
|
48
|
+
- Bound reused verification evidence to the selected executable and runtime
|
|
49
|
+
permission metadata so changed execution conditions cannot reuse stale proof.
|
|
50
|
+
- Rejected blank mockup approvals and ambiguous fidelity fields, and preserved
|
|
51
|
+
path containment and explicit human design decisions.
|
|
52
|
+
- Preserved user-authored tracker content while validating bounded MCP recovery
|
|
53
|
+
results and avoiding repeated provider mutations after ambiguous responses.
|
|
54
|
+
|
|
55
|
+
### Migration
|
|
56
|
+
|
|
57
|
+
After upgrading, run `empirical update` to refresh installed bootstrap guidance
|
|
58
|
+
and invoke `empirical-init` in existing repositories to refresh managed local
|
|
59
|
+
workflow instructions while retaining saved settings. Schema 5 remains in use;
|
|
60
|
+
no manual data conversion is required.
|
|
61
|
+
|
|
62
|
+
A Git checkout without a selected feature now remains idle. To resume an existing
|
|
63
|
+
spec, explicitly select its feature through `empirical_select`; unclaimed specs
|
|
64
|
+
are retained. UI changes must record the mockup approval and fidelity artifacts
|
|
65
|
+
requested by the workflow. Verification receipts without matching current runtime
|
|
66
|
+
and executable identities must be rerun rather than reused.
|
|
67
|
+
|
|
11
68
|
## [0.31.0] - 2026-09-04
|
|
12
69
|
|
|
13
70
|
### Added
|
|
@@ -381,7 +438,8 @@ Published through GitHub Actions trusted publishing with npm provenance.
|
|
|
381
438
|
|
|
382
439
|
- Prepared and released package version `0.20.2`.
|
|
383
440
|
|
|
384
|
-
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.
|
|
441
|
+
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.32.0...HEAD
|
|
442
|
+
[0.32.0]: https://github.com/goempirical/empirical-sdd/compare/v0.31.0...v0.32.0
|
|
385
443
|
[0.31.0]: https://github.com/goempirical/empirical-sdd/compare/v0.30.0...v0.31.0
|
|
386
444
|
[0.30.0]: https://github.com/goempirical/empirical-sdd/compare/v0.29.0...v0.30.0
|
|
387
445
|
[0.29.0]: https://github.com/goempirical/empirical-sdd/compare/v0.28.0...v0.29.0
|
package/README.md
CHANGED
|
@@ -26,6 +26,17 @@ workflow. Its zero-build source is [docs/index.html](docs/index.html).
|
|
|
26
26
|
- Codex: `$empirical-init`
|
|
27
27
|
- Claude Code: `/empirical-init`
|
|
28
28
|
|
|
29
|
+
Init guides you through six steps in your agent chat: **Setup → Preferences →
|
|
30
|
+
Review bot → Tracking → Confirm → Apply**. It shows your current step and asks
|
|
31
|
+
one question at a time. Use **Back** or **Edit** to revisit a section while
|
|
32
|
+
keeping your other answers. Nothing is applied until you confirm **Save**.
|
|
33
|
+
|
|
34
|
+
Bot review is optional. Init offers it once; say “no,” “skip,” or “ignore”
|
|
35
|
+
to save fresh-context review without a bot token. Future init runs preserve
|
|
36
|
+
that choice. To enable it later, tell your agent “enable bot review.”
|
|
37
|
+
Fresh-context review still uses an isolated reviewer, but does not count as
|
|
38
|
+
an independent GitHub approval.
|
|
39
|
+
|
|
29
40
|
3. Ask for the change normally.
|
|
30
41
|
|
|
31
42
|
```text
|
|
@@ -60,6 +71,12 @@ Empirical routes by risk, not prompt length:
|
|
|
60
71
|
Specify → Design → Plan → Implement → Context? → Verify → Review → Integrate
|
|
61
72
|
```
|
|
62
73
|
|
|
74
|
+
A feature that shows an interface gets its mockup at Specify, while the
|
|
75
|
+
contract is still open, because seeing a screen reveals states and flows that
|
|
76
|
+
prose misses and those belong in the criteria. `empirical mockups` serves the
|
|
77
|
+
directions on a local address so a person can click through and choose one;
|
|
78
|
+
Verify then checks what was built against what was approved.
|
|
79
|
+
|
|
63
80
|
Context runs when repository knowledge needs refinement. Failed verification or
|
|
64
81
|
requested review changes return to implementation. Evidence, review, and
|
|
65
82
|
integration are different claims, and Empirical reports only the highest level
|
|
@@ -82,8 +99,10 @@ repository/
|
|
|
82
99
|
├── policy.json verification and delivery policy
|
|
83
100
|
├── tracker.json secret-free tracker choice
|
|
84
101
|
├── context/ repository knowledge
|
|
102
|
+
├── mockups/decision.md app mockups adopted or declined
|
|
85
103
|
├── specs/<feature>/
|
|
86
104
|
│ ├── spec.md + decisions.md contract and decisions
|
|
105
|
+
│ ├── mockups/ approved directions and fidelity
|
|
87
106
|
│ ├── design.md + plan.md Complex approach and plan
|
|
88
107
|
│ ├── impact.json affected behavior and surfaces
|
|
89
108
|
│ ├── state.json + events/ phase and resumable journal
|
|
@@ -138,3 +157,17 @@ reserved for validated release pull requests.
|
|
|
138
157
|
## License
|
|
139
158
|
|
|
140
159
|
[MIT](LICENSE)
|
|
160
|
+
|
|
161
|
+
### Shared specs across worktrees
|
|
162
|
+
|
|
163
|
+
Specs and capability contracts are repository artifacts. Each Git worktree
|
|
164
|
+
selects and claims its own active feature in local Git metadata; different
|
|
165
|
+
worktrees can execute different features concurrently. Unclaimed or temporarily
|
|
166
|
+
inactive specs stay in `.empirical/specs/`. They are not abandoned work.
|
|
167
|
+
|
|
168
|
+
Use the agent's `empirical_select` operation to resume an existing unclaimed
|
|
169
|
+
feature. Explicit new feature starts and repository setup/context repair are not
|
|
170
|
+
blocked by unrelated unclaimed specs. If a feature-required operation needs a
|
|
171
|
+
choice, it lists candidates rather than choosing or moving a spec. An approved
|
|
172
|
+
worktree handoff can be retried with its original input after interruption.
|
|
173
|
+
See [selection and recovery semantics](docs/protocol.md#shared-specs-and-checkout-selection).
|
package/dist/checkouts.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Serialize checkout ownership across every worktree sharing Git metadata. */
|
|
2
|
+
export declare function withCheckoutLock<T>(root: string, operation: () => Promise<T>): Promise<T>;
|
|
1
3
|
export interface CheckoutSelection {
|
|
2
4
|
feature: string | null;
|
|
3
5
|
linked: boolean;
|
|
@@ -5,4 +7,17 @@ export interface CheckoutSelection {
|
|
|
5
7
|
claimedElsewhere: Set<string>;
|
|
6
8
|
}
|
|
7
9
|
export declare function readCheckoutSelection(rootInput: string): Promise<CheckoutSelection>;
|
|
8
|
-
export declare function writeCheckoutSelection(rootInput: string, feature: string | null): Promise<void>;
|
|
10
|
+
export declare function writeCheckoutSelection(rootInput: string, feature: string | null, expectedFeature?: string): Promise<void>;
|
|
11
|
+
/** Read only this checkout's recovery anchor, never sibling selections. */
|
|
12
|
+
export declare function readCheckoutLastFeature(rootInput: string): Promise<{
|
|
13
|
+
git: boolean;
|
|
14
|
+
feature: string | null;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function readCheckoutRecoveryFeatures(rootInput: string): Promise<{
|
|
17
|
+
git: boolean;
|
|
18
|
+
features: string[];
|
|
19
|
+
}>;
|
|
20
|
+
/** Write-ahead ownership: call after validation but before a terminal journal
|
|
21
|
+
* commit, so a process exit before selector cleanup cannot orphan the effect. */
|
|
22
|
+
export declare function recordCheckoutRecoveryFeature(rootInput: string, feature: string): Promise<void>;
|
|
23
|
+
export declare function forgetCheckoutRecoveryFeatures(rootInput: string, resolvedFeatures: string[]): Promise<void>;
|