empirical-sdd 0.22.0 → 0.23.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 ADDED
@@ -0,0 +1,78 @@
1
+ # Changelog
2
+
3
+ All notable changes to Empirical SDD are documented in this file.
4
+
5
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
7
+ under the alpha rules in [docs/versioning.md](docs/versioning.md).
8
+
9
+ ## [Unreleased]
10
+
11
+ ### Changed
12
+
13
+ - Nothing yet.
14
+
15
+ ## [0.23.0] - 2026-08-11
16
+
17
+ This version is prepared in the repository but is not published by the version
18
+ change alone.
19
+
20
+ ### Changed
21
+
22
+ - Replaced the globally automatic `empirical` skill with the explicit,
23
+ setup-only `empirical-init` bootstrap.
24
+ - Made initialized repositories route ordinary change prompts automatically
25
+ through marker-owned local instructions and skills; read-only prompts remain
26
+ outside the workflow.
27
+ - Added explicit-only invocation metadata where supported and retained all
28
+ existing workflow, evidence, tracker, integration, and publication gates.
29
+
30
+ ### Added
31
+
32
+ - Added this changelog and a documented alpha Semantic Versioning and release
33
+ policy.
34
+
35
+ ### Migration
36
+
37
+ - After upgrading from `0.22.x`, invoke `empirical-init` once in each existing
38
+ repository to install local automatic activation. Repair preserves Schema 5
39
+ configuration, context, feature history, and evidence unless setup values are
40
+ explicitly changed.
41
+
42
+ ## [0.22.0] - 2026-08-03
43
+
44
+ ### Added
45
+
46
+ - Introduced the Schema 5 protocol, strict Policy v2 evidence, resumable
47
+ journals, capability claims, independent integration, protected delivery,
48
+ explicit publication, and a single consolidated global workflow skill.
49
+
50
+ ## [0.20.4] - 2026-07-31
51
+
52
+ ### Fixed
53
+
54
+ - Completed the `0.20.4` release and its recorded release evidence.
55
+
56
+ ## [0.20.3] - 2026-07-31
57
+
58
+ ### Fixed
59
+
60
+ - Made CI and release fixtures portable across supported operating systems,
61
+ including Windows executable-extension casing.
62
+
63
+ ### Changed
64
+
65
+ - Simplified installation guidance and clarified README commands.
66
+
67
+ ## [0.20.2] - 2026-07-30
68
+
69
+ ### Changed
70
+
71
+ - Prepared and released package version `0.20.2`.
72
+
73
+ [Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.23.0...HEAD
74
+ [0.23.0]: https://github.com/goempirical/empirical-sdd/compare/v0.22.0...v0.23.0
75
+ [0.22.0]: https://github.com/goempirical/empirical-sdd/compare/v0.20.4...v0.22.0
76
+ [0.20.4]: https://github.com/goempirical/empirical-sdd/compare/v0.20.3...v0.20.4
77
+ [0.20.3]: https://github.com/goempirical/empirical-sdd/compare/v0.20.2...v0.20.3
78
+ [0.20.2]: https://github.com/goempirical/empirical-sdd/releases/tag/v0.20.2
package/README.md CHANGED
@@ -1,20 +1,20 @@
1
1
  # Empirical SDD
2
2
 
3
3
  Agent-neutral, resumable spec-driven development with deterministic routing,
4
- immutable evidence, safe cross-worktree integration, and six agent-native
5
- skills. Empirical installs across 73 global agent targets and provides verified
6
- guidance for Codex, Claude Code, Cursor, Gemini CLI, Windsurf, and MCP clients.
4
+ immutable evidence, safe cross-worktree integration, optional external ticket
5
+ mirrors, and an explicit bootstrap that makes normal repository work automatic.
6
+ Empirical installs across 73 global agent targets and provides verified guidance
7
+ for Codex, Claude Code, Cursor, Gemini CLI, Windsurf, and MCP clients.
7
8
 
8
- > Empirical 0.22 is alpha software and intentionally introduces the breaking
9
- > Schema 5 protocol. One checkout selects at most one active feature; linked Git
10
- > worktrees isolate parallel work.
9
+ > Empirical 0.23 is alpha software. Schema 5 remains unchanged. One checkout
10
+ > selects at most one active feature; linked Git worktrees isolate parallel work.
11
11
 
12
12
  ## Install
13
13
 
14
14
  | Command | Purpose |
15
15
  | --- | --- |
16
16
  | `npm install -g empirical-sdd` | Install the CLI. Node.js 22 or newer is required. |
17
- | `empirical install` | Choose coding agents and install all six skills. |
17
+ | `empirical install` | Choose coding agents and install the single explicit `empirical-init` skill. |
18
18
  | `empirical update` | Upgrade Empirical and reconcile installed skills. |
19
19
  | `empirical uninstall` | Remove managed global skills, owned selection metadata, then the global package. |
20
20
 
@@ -29,31 +29,29 @@ cancel, while automation must use `empirical uninstall --yes` (optionally with
29
29
  history, evidence, and repository MCP/agent configuration are always preserved;
30
30
  unmanaged or unsafe global paths are also preserved and reported.
31
31
 
32
- ### Difference from the previous command surface
32
+ ### Upgrade from 0.22
33
33
 
34
- | Previous 0.21 behavior | Updated behavior |
34
+ | Previous 0.22 behavior | Updated 0.23 behavior |
35
35
  | --- | --- |
36
- | Public lifecycle exposed Install and Update only. | Public lifecycle also exposes `empirical uninstall`. |
37
- | Removing six agent skills required manual per-agent cleanup. | One command scans every unique catalog root and removes only marker-owned skills. |
38
- | Selection metadata had to be found manually. | Valid Empirical-owned metadata is removed; invalid or user-owned metadata is preserved. |
39
- | Package removal was a separate manual npm command. | Confirmed uninstall runs exact `npm uninstall -g empirical-sdd` last. |
40
- | Project preservation was implicit. | Help, confirmation, human output, and JSON explicitly report preserved project state. |
36
+ | A global `empirical` skill watched every prompt. | The global skill is explicit `empirical-init` and is limited to setup or repair. |
37
+ | Normal work required naming `empirical`. | Initialized repositories route ordinary change prompts automatically. |
38
+ | Project workflow guidance was removed. | Short marker-owned project dispatchers and detailed local skills are restored. |
39
+ | Existing repositories needed no integration repair. | Invoke `empirical-init` once per existing checkout; configuration and history are preserved. |
41
40
 
42
41
  ## Skills
43
42
 
44
43
  These are coding-agent skills, not public shell workflow commands.
45
44
 
46
- | Skill | Purpose |
45
+ | Entry | Purpose |
47
46
  | --- | --- |
48
- | `empirical <request>` | Initialize, resume, route, and run in normal mode. |
49
- | `empirical-init` | Initialize or repair repository context without starting work. |
50
- | `empirical-spec <request>` | Draft a concrete Complex contract and stop for approval. |
51
- | `empirical-socratic <idea>` | Run the durable five-pass interview, then draft the contract. |
52
- | `empirical-loop` | Resume the selected feature from its exact current revision. |
53
- | `empirical-yolo <request>` | Run autonomously to an explicit safe completion ceiling. |
47
+ | `empirical-init` | Explicitly initialize a new repository or repair an existing repository's context and integrations. |
48
+ | Ordinary change prompt | Automatically route, optionally interview or mirror, resume, and complete work in a valid initialized repository. |
54
49
 
55
- Native invocation examples include `$empirical` in Codex, `/empirical` in
56
- Claude Code, and `@empirical` in Windsurf. Reload an agent after installation.
50
+ Native bootstrap examples include `$empirical-init` in Codex,
51
+ `/empirical-init` in Claude Code, and `@empirical-init` in Windsurf. Reload an
52
+ agent after installation. Once initialized, ask normally—for example, “fix the
53
+ pagination bug.” Read-only questions remain outside Empirical, and a repository
54
+ without valid completed `.empirical/config.json` is never enrolled implicitly.
57
55
 
58
56
  ## Trust model
59
57
 
@@ -69,8 +67,8 @@ protection, force-writes Git, extracts credentials, deletes real worktrees or
69
67
  branches, replaces immutable releases, or infers publication.
70
68
 
71
69
  Fast is contract-neutral and ends at verified. Complex records an impact
72
- manifest and proceeds through Specify, Design, Plan, Implement, Verify, Review,
73
- and independent Integrate. An authorized delivery may continue through two
70
+ manifest and proceeds through Specify, Design, Plan, Implement, conditional
71
+ Context refinement, Verify, Review, and independent Integrate. An authorized delivery may continue through two
74
72
  protected GitHub PRs. Publication is always a separate explicit operation bound
75
73
  to an exact version, commit, tag, and dist-tag.
76
74
 
@@ -80,16 +78,48 @@ receipt tied to criteria, source state, and provenance. Completion reports only
80
78
  the highest proven level: implemented, verified, integrated, delivered, or
81
79
  published.
82
80
 
81
+ ## External ticket tracking
82
+
83
+ External tracking is optional and local-only by default. When enabled through
84
+ the repository-local workflow, one selected feature can create or attach one ticket in
85
+ Linear, GitHub Issues + Projects v2, or Jira Cloud. Empirical's hash-chained
86
+ local journal remains authoritative; the ticket is a one-way projection of the
87
+ committed phase, normalized status, revision, completion level, and blocker
88
+ summary.
89
+
90
+ The provider-neutral Tracker Policy v1 lives at `.empirical/tracker.json`.
91
+ It selects exactly one provider, names its board/project and normalized status
92
+ IDs, and stores only credential environment-variable names. Credential values
93
+ are injected into the Empirical runtime by the host, must carry access to the
94
+ configured provider target, and are never written to `.empirical/`. Bindings
95
+ pin the exact provider target; changing that target fails closed until explicit
96
+ replacement, while a same-target status-map change forces the committed
97
+ revision to be projected again. Bindings and durable retry operations live
98
+ under each feature's `tracker/` directory.
99
+
100
+ After every local journal commit, the skill asks the granular MCP tracker layer
101
+ to converge the remote ticket. A provider outage never rolls back or blocks
102
+ local SDD progress. Status and action packets expose `local-only`, `synced`,
103
+ `pending`, or `failed` tracker health. Ordinary retries resume the exact durable
104
+ pending operation. If ticket creation has an ambiguous outcome, Empirical does
105
+ not issue another create automatically: it first performs bounded reconciliation
106
+ using the persisted marker. If no unique match is found, attachment is required
107
+ unless the caller explicitly confirms a new attempt that may create a duplicate.
108
+ See [MCP usage](docs/mcp.md#external-ticket-mirror) for the strict provider
109
+ schemas, runtime permissions, state mapping, and recovery details.
110
+
83
111
  ## Repository model
84
112
 
85
113
  Schema 5 stores strict Policy v2 configuration, Manifest v2 knowledge
86
114
  fingerprints, impact manifests, receipts, Git-common-dir capability claims, and
87
115
  hash-chained per-feature journals. Terminal journals compact transactionally to
88
116
  a verified snapshot boundary. `empirical_doctor` diagnoses schema, journal,
89
- lock, claim, toolchain, policy, knowledge, evidence, worktree, and delivery
90
- state without mutating the repository.
117
+ lock, claim, toolchain, policy, tracker configuration, credential presence,
118
+ knowledge, evidence, worktree, and delivery state without mutating the
119
+ repository. It still validates dormant feature binding and pending files when
120
+ tracking is local-only or disabled.
91
121
 
92
- Schema 4 repositories migrate atomically on the first mutating 0.22 operation.
122
+ Schema 4 repositories migrate atomically on the first mutating Schema-5 operation.
93
123
  The migration validates a complete candidate tree before promotion and retains
94
124
  a recovery receipt. Earlier schemas must first be upgraded to Schema 4 with the
95
125
  version that created them.
@@ -114,7 +144,8 @@ The package exposes only `.`, `./protocol`, `./mcp`, and `./integrations`.
114
144
 
115
145
  [Protocol](docs/protocol.md) · [Architecture](docs/architecture.md) ·
116
146
  [MCP](docs/mcp.md) · [Demo](docs/demo.md) · [Security](docs/security.md) ·
117
- [Migration](docs/migration-v1.md)
147
+ [Migration](docs/migration-v1.md) · [Versioning](docs/versioning.md) ·
148
+ [Changelog](CHANGELOG.md)
118
149
 
119
150
  ## License
120
151
 
@@ -64,7 +64,7 @@ export declare const AGENT_SKILL_TARGETS: readonly [{
64
64
  readonly aliases: readonly ["claude"];
65
65
  readonly executables: readonly ["claude"];
66
66
  readonly invocation: "/empirical";
67
- readonly reload: "Restart Claude Code so it reloads the global Empirical skills, then invoke the desired /empirical skill.";
67
+ readonly reload: "Restart Claude Code so it reloads the global Empirical Init skill, then invoke /empirical-init for repository setup or repair.";
68
68
  readonly projectMcp: true;
69
69
  readonly handoff: true;
70
70
  }, {
@@ -104,7 +104,7 @@ export declare const AGENT_SKILL_TARGETS: readonly [{
104
104
  readonly detectPaths: readonly [".codex"];
105
105
  readonly executables: readonly ["codex"];
106
106
  readonly invocation: "$empirical";
107
- readonly reload: "Restart or reopen Codex so it rescans user skills, then invoke any installed $empirical skill.";
107
+ readonly reload: "Restart or reopen Codex so it rescans user skills, then invoke $empirical-init for repository setup or repair.";
108
108
  readonly projectMcp: true;
109
109
  readonly handoff: true;
110
110
  }, {
@@ -371,7 +371,7 @@ export declare const AGENT_SKILL_TARGETS: readonly [{
371
371
  readonly detectPaths: readonly [".codeium/windsurf"];
372
372
  readonly executables: readonly ["windsurf"];
373
373
  readonly invocation: "@empirical";
374
- readonly reload: "Reload Windsurf or start a new Cascade session, then invoke the desired @empirical skill.";
374
+ readonly reload: "Reload Windsurf or start a new Cascade session, then invoke @empirical-init for repository setup or repair.";
375
375
  readonly projectMcp: true;
376
376
  readonly handoff: true;
377
377
  }, {