empirical-sdd 0.24.1 → 0.26.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 +65 -1
- package/README.md +56 -12
- package/dist/cli.js +1043 -351
- package/dist/demo-integration-repair.js +788 -286
- package/dist/demo-ticket-policy.d.ts +1 -0
- package/dist/demo-ticket-policy.js +28680 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +792 -281
- package/dist/integrations.js +59 -23
- package/dist/mcp.d.ts +7 -2
- package/dist/mcp.js +856 -295
- package/dist/protocol.d.ts +1 -1
- package/dist/protocol.js +1 -1
- package/dist/setup.d.ts +1 -1
- package/dist/tracker-auth.d.ts +31 -0
- package/dist/tracking.d.ts +321 -1
- package/dist/types.d.ts +100 -0
- package/docs/demo.md +176 -0
- package/docs/mcp.md +347 -0
- package/docs/protocol.md +255 -0
- package/docs/security.md +109 -0
- package/docs/versioning.md +7 -0
- package/package.json +8 -3
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,68 @@ under the alpha rules in [docs/versioning.md](docs/versioning.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.26.0] - 2026-08-20
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added selectable `concise` or `detailed` interaction questions across project
|
|
16
|
+
configuration, CLI, MCP, action packets, status rendering, and generated
|
|
17
|
+
agent guidance. New recommended setup is concise; existing missing fields
|
|
18
|
+
remain detailed.
|
|
19
|
+
- Added strict optional Tracker Policy v2 ticket-rule matrices, including the
|
|
20
|
+
`features+large-fixes` preset and resolved change-type/requirement status.
|
|
21
|
+
- Added a packaged provider-independent no-ticket feature demo that proves one
|
|
22
|
+
guarded create, one durable binding, and zero live-network calls.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
|
|
26
|
+
- Optional ticket work with no explicit reference now remains local before
|
|
27
|
+
authentication or provider access and no longer causes a redundant ticket
|
|
28
|
+
question; required work retains attach, marker reconciliation, and
|
|
29
|
+
exactly-once guarded creation.
|
|
30
|
+
|
|
31
|
+
### Migration
|
|
32
|
+
|
|
33
|
+
- Existing Schema 5 and Tracker Policy v1/v2 repositories require no state
|
|
34
|
+
migration. Repositories without an explicit question mode retain detailed
|
|
35
|
+
questions until configured otherwise; new setup recommends concise mode.
|
|
36
|
+
|
|
37
|
+
## [0.25.0] - 2026-08-19
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- Added a trusted-host OAuth resolver contract for Linear, GitHub, and Jira,
|
|
42
|
+
with provider tokens kept ephemeral and outside Tracker Policy, MCP tool
|
|
43
|
+
input/output, chat, logs, and repository state.
|
|
44
|
+
- Added explicit MCP URL-mode capability negotiation for out-of-band OAuth;
|
|
45
|
+
form-only, legacy-empty, absent, declined, and cancelled clients fail closed
|
|
46
|
+
to the host fallback without receiving a credential form.
|
|
47
|
+
- Added a guarded read-only user secrets file fallback at
|
|
48
|
+
`${XDG_CONFIG_HOME:-$HOME/.config}/empirical/secrets.env` on POSIX or
|
|
49
|
+
`%APPDATA%\Empirical\secrets.env` on Windows, including containment, link,
|
|
50
|
+
size, syntax, completeness, and POSIX permission checks.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Made new Linear setup default to `LINEAR_SECRET_KEY`, while preserving every
|
|
55
|
+
existing Tracker Policy v1/v2 name—including `LINEAR_API_KEY` and custom
|
|
56
|
+
valid names—without migration or repair rewrites.
|
|
57
|
+
- Made Jira OAuth use Atlassian's Cloud API base with Bearer authorization while
|
|
58
|
+
retaining tenant-origin Basic authentication for email/API-token fallback.
|
|
59
|
+
- Made Linear OAuth use its required Bearer authorization while preserving the
|
|
60
|
+
raw `Authorization` value required by existing personal API-key fallbacks.
|
|
61
|
+
- Aligned CLI, MCP, generated `empirical-init` guidance, Doctor, README, and
|
|
62
|
+
protocol/security documentation around OAuth-first setup, the exact host
|
|
63
|
+
fallback path, and the rule: `Never paste credentials into chat`.
|
|
64
|
+
|
|
65
|
+
### Fixed
|
|
66
|
+
|
|
67
|
+
- Made tracker secret-file path construction honor explicit POSIX and Windows
|
|
68
|
+
semantics, with platform-correct permission fixtures and recovery-path tests.
|
|
69
|
+
- Serialized the process-heavy release test suite so temporary Git worktree
|
|
70
|
+
tests cannot exhaust their timeout and race cleanup under parallel load, and
|
|
71
|
+
removed a redundant non-coverage pass from local CI to match the GitHub gate.
|
|
72
|
+
|
|
11
73
|
## [0.24.1] - 2026-08-19
|
|
12
74
|
|
|
13
75
|
### Fixed
|
|
@@ -121,7 +183,9 @@ Published through GitHub Actions trusted publishing with npm provenance.
|
|
|
121
183
|
|
|
122
184
|
- Prepared and released package version `0.20.2`.
|
|
123
185
|
|
|
124
|
-
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.
|
|
186
|
+
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.26.0...HEAD
|
|
187
|
+
[0.26.0]: https://github.com/goempirical/empirical-sdd/compare/v0.25.0...v0.26.0
|
|
188
|
+
[0.25.0]: https://github.com/goempirical/empirical-sdd/compare/v0.24.1...v0.25.0
|
|
125
189
|
[0.24.1]: https://github.com/goempirical/empirical-sdd/compare/v0.24.0...v0.24.1
|
|
126
190
|
[0.24.0]: https://github.com/goempirical/empirical-sdd/compare/v0.23.0...v0.24.0
|
|
127
191
|
[0.23.0]: https://github.com/goempirical/empirical-sdd/compare/v0.22.0...v0.23.0
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Agent-neutral, resumable spec-driven development for coding agents. Empirical
|
|
|
4
4
|
turns an ordinary change request into a deterministic workflow with durable
|
|
5
5
|
state, reviewable evidence, and safe Git integration.
|
|
6
6
|
|
|
7
|
-
> Empirical 0.
|
|
7
|
+
> Empirical 0.26 is alpha software. It requires Node.js 22 or newer.
|
|
8
8
|
|
|
9
9
|
## Install
|
|
10
10
|
|
|
@@ -35,6 +35,7 @@ artifacts; unmanaged or unsafe conflicts are preserved and remain visible.
|
|
|
35
35
|
- Isolated parallel work through linked Git worktrees.
|
|
36
36
|
- Guided Linear, GitHub Issues + Projects, or Jira ticket mirrors with automatic
|
|
37
37
|
binding, milestone comments, and safe evidence projection.
|
|
38
|
+
- Selectable concise or detailed agent questions and runtime summaries.
|
|
38
39
|
- Explicit, guarded delivery and npm publication boundaries.
|
|
39
40
|
|
|
40
41
|
Completion is reported only at the highest proven level: implemented,
|
|
@@ -42,17 +43,45 @@ verified, integrated, delivered, or published.
|
|
|
42
43
|
|
|
43
44
|
## Tracker setup
|
|
44
45
|
|
|
45
|
-
`empirical-init` always shows
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
`empirical-init` always shows Interaction and Tracker sections. New recommended
|
|
47
|
+
setup selects **concise** questions: agents ask only when an answer changes
|
|
48
|
+
scope, architecture, authorization, or a safety gate. **Detailed** preserves
|
|
49
|
+
the expanded guidance used by existing Schema-5 repositories. Automation can
|
|
50
|
+
set the same value with `--questions concise|detailed` or the MCP `questions`
|
|
51
|
+
field.
|
|
52
|
+
|
|
53
|
+
When no tracker choice exists, Init recommends **Track work by type** and
|
|
54
|
+
requires choosing that or **No tracking** before setup can be saved. Track work
|
|
55
|
+
selects Linear, GitHub Projects, or Jira; No tracking persists a provider-free
|
|
56
|
+
choice and makes no provider requests.
|
|
57
|
+
|
|
58
|
+
Authentication starts with OAuth when a trusted host supplies a connection.
|
|
59
|
+
MCP clients may open that connection only through explicitly negotiated
|
|
60
|
+
URL-mode elicitation; Empirical never requests a credential through a form,
|
|
61
|
+
tool argument, tool result, assistant message, or repository file. The default
|
|
62
|
+
standalone CLI has no hosted OAuth broker and truthfully proceeds to the
|
|
63
|
+
host-only fallback.
|
|
64
|
+
|
|
65
|
+
> **Never paste credentials into chat.** If OAuth is unavailable, edit the
|
|
66
|
+
> secrets file directly on the host: `${XDG_CONFIG_HOME:-$HOME/.config}/empirical/secrets.env`
|
|
67
|
+
> on POSIX or `%APPDATA%\Empirical\secrets.env` on Windows. Do not put a
|
|
68
|
+
> credential value in a shell command, process argument, tool call, or
|
|
69
|
+
> repository `.env` file.
|
|
70
|
+
|
|
71
|
+
New setup uses `LINEAR_SECRET_KEY` for Linear, `GITHUB_TOKEN` for GitHub, and
|
|
72
|
+
both `JIRA_EMAIL` and `JIRA_API_TOKEN` for Jira. The file must be a regular,
|
|
73
|
+
non-symbolic-link file outside the repository and, on POSIX, owner-only (for
|
|
74
|
+
example mode `0600`). Runtime precedence is connected host OAuth, then a
|
|
75
|
+
complete injected environment set, then the checked host file. Existing
|
|
76
|
+
Tracker Policy v1/v2 names—including `LINEAR_API_KEY` and custom names—remain
|
|
77
|
+
valid and are never rewritten automatically.
|
|
78
|
+
|
|
79
|
+
After authentication, Empirical discovers accessible targets and workflow
|
|
80
|
+
states, proposes all seven semantic mappings, and shows the complete
|
|
81
|
+
secret-free policy before saving. Ambiguous state suggestions require an
|
|
82
|
+
explicit choice; simple boards may intentionally reuse one provider state for
|
|
83
|
+
several phases. Repair preserves an existing tracker policy or explicit No
|
|
84
|
+
tracking choice unless you change it.
|
|
56
85
|
|
|
57
86
|
Tracker Policy v2 supports `off`, `manual`, and `ensure` ticket behavior plus
|
|
58
87
|
blockers/final, phase-milestone, or every-revision progress comments. `ensure`
|
|
@@ -64,6 +93,21 @@ or linked only after repository containment, media, size, and digest checks.
|
|
|
64
93
|
Existing Tracker Policy v1 files remain valid with manual binding and legacy
|
|
65
94
|
projection until deliberately upgraded.
|
|
66
95
|
|
|
96
|
+
An optional strict `ticketRules` matrix refines `ensure` by change type and
|
|
97
|
+
workflow size. The recommended `features+large-fixes` preset is:
|
|
98
|
+
|
|
99
|
+
| Work | Fast | Quick | Complex |
|
|
100
|
+
| --- | --- | --- | --- |
|
|
101
|
+
| Feature | required | required | required |
|
|
102
|
+
| Fix | optional | required | required |
|
|
103
|
+
| Chore | optional | optional | optional |
|
|
104
|
+
|
|
105
|
+
Optional work with no referenced ticket stays local without OAuth, provider
|
|
106
|
+
access, ticket creation, or a redundant question. One explicit reference is
|
|
107
|
+
attached; multiple references fail closed. See the [demo](docs/demo.md) for a
|
|
108
|
+
provider-independent new-feature run and [MCP documentation](docs/mcp.md) for
|
|
109
|
+
the complete custom JSON form.
|
|
110
|
+
|
|
67
111
|
## CLI
|
|
68
112
|
|
|
69
113
|
| Command | Purpose |
|