empirical-sdd 0.28.0 → 0.30.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 +118 -1
- package/README.md +112 -130
- package/dist/agent-catalog.d.ts +2 -0
- package/dist/cli.js +5823 -661
- package/dist/core.d.ts +18 -4
- package/dist/delivery.d.ts +44 -1
- package/dist/demo-integration-repair.js +3084 -630
- package/dist/demo-ticket-policy.js +3078 -624
- package/dist/evidence.d.ts +9 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +31653 -13107
- package/dist/integrations.js +1091 -111
- package/dist/linear-mcp-oauth.d.ts +52 -0
- package/dist/mcp.d.ts +4 -0
- package/dist/mcp.js +5641 -632
- package/dist/protocol.d.ts +315 -1
- package/dist/protocol.js +117 -3
- package/dist/qa.d.ts +165 -0
- package/dist/release-runtime.d.ts +95 -0
- package/dist/release.d.ts +208 -0
- package/dist/review.d.ts +99 -0
- package/dist/runtime.d.ts +4 -0
- package/dist/setup.d.ts +4 -1
- package/dist/storage.d.ts +1 -1
- package/dist/tracking.d.ts +36 -1
- package/dist/types.d.ts +206 -3
- package/docs/demo.md +15 -5
- package/docs/mcp.md +70 -24
- package/docs/protocol.md +59 -4
- package/docs/releasing.md +316 -0
- package/docs/security.md +70 -12
- package/docs/versioning.md +69 -15
- package/package.json +6 -3
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,121 @@ under the alpha rules in [docs/versioning.md](docs/versioning.md).
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.30.0] - 2026-09-01
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- Added a zero-build, responsive project wiki with practical onboarding,
|
|
16
|
+
architecture and workflow guidance, searchable task-oriented navigation,
|
|
17
|
+
accessible Agentum motion, strict content security, reduced-motion support,
|
|
18
|
+
and meaningful no-JavaScript fallbacks.
|
|
19
|
+
- Added exact GitHub Copilot MCP configuration management that preserves
|
|
20
|
+
unrelated servers and user-owned collisions while installing and removing
|
|
21
|
+
only Empirical's managed stdio bridge.
|
|
22
|
+
- Added in-memory OAuth for Linear's official remote MCP endpoint through the
|
|
23
|
+
standalone `empirical mcp` bridge, using dynamic client registration, PKCE,
|
|
24
|
+
a state-bound ephemeral loopback callback, URL-mode elicitation, bounded
|
|
25
|
+
remote operations, sanitized failures, and complete session cleanup.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- Replaced the long-form README with a concise project introduction derived
|
|
30
|
+
from the wiki while retaining strict tracker recovery guidance and keeping
|
|
31
|
+
obsolete public integration examples out of generated onboarding.
|
|
32
|
+
- Generated initialization guidance now recommends an OAuth-capable Empirical
|
|
33
|
+
host when the current skill-only host cannot perform the browser handoff,
|
|
34
|
+
while retaining the secure host-only secret-file fallback.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- Linear discovery, lifecycle suggestion, and preview now accept any finite
|
|
39
|
+
workflow-state position, including the negative floating-point ordering
|
|
40
|
+
values Linear legitimately assigns to backlog states.
|
|
41
|
+
- Fixed standalone Linear OAuth lifecycle behavior so cancellation, timeout,
|
|
42
|
+
callback races, invalid responses, and transport shutdown remain bounded and
|
|
43
|
+
cannot leak credentials or leave callback listeners running.
|
|
44
|
+
|
|
45
|
+
### Migration
|
|
46
|
+
|
|
47
|
+
No migration required.
|
|
48
|
+
|
|
49
|
+
## [0.29.0] - 2026-08-28
|
|
50
|
+
|
|
51
|
+
### Added
|
|
52
|
+
|
|
53
|
+
- Added a disabled-by-default, protected-environment emergency release path with
|
|
54
|
+
exact administrator, incident, PR, merge, version, integrity, check, expiry,
|
|
55
|
+
and audit receipts while preserving ordinary exact protected-merge gates.
|
|
56
|
+
- Added public CLI help and README guidance explaining how Empirical routes and
|
|
57
|
+
advances work, where durable evidence lives, and how to use one consolidated
|
|
58
|
+
development setup command block.
|
|
59
|
+
- Added configurable pull-request review with a recommended independently
|
|
60
|
+
authenticated GitHub bot and an explicit fresh-context fallback, one
|
|
61
|
+
canonical criterion-complete review body, exact base/head diff binding, and
|
|
62
|
+
guided name-only credential setup.
|
|
63
|
+
- Added a guarded, idempotent `develop` to `main` release pipeline that binds
|
|
64
|
+
exact protected PR merge provenance and clean release checks to one
|
|
65
|
+
changelog-backed Git tag, non-draft GitHub Release, and npm trusted
|
|
66
|
+
publication with provenance.
|
|
67
|
+
- Added deterministic patch, minor, migration, conflict, partial-effect,
|
|
68
|
+
lost-response, duplicate, and retry fixtures plus an offline release dry run.
|
|
69
|
+
- Added a checked repository release-request shorthand and canonical playbook so
|
|
70
|
+
`make a new release` prepares every current `develop` change, verifies the
|
|
71
|
+
candidate, and creates or resumes the two guarded PR stages without granting
|
|
72
|
+
merge or direct publication authority.
|
|
73
|
+
- Added opt-in Tracker Policy v2 `strict` enforcement so deterministically
|
|
74
|
+
required work hard-stops before further source or workflow mutation until its
|
|
75
|
+
exact current revision is bound and synchronized.
|
|
76
|
+
- Added structured tracker mutation gates, exact feature-addressed terminal
|
|
77
|
+
synchronization, and crash recovery that refuses new work while strict final
|
|
78
|
+
tracking remains unresolved.
|
|
79
|
+
- Added criterion-complete risk-based QA matrices, anomaly-visible immutable
|
|
80
|
+
receipts, fresh-context and clean packaged-consumer acceptance, deterministic
|
|
81
|
+
failure-path coverage, and exact full-CI promotion gates.
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
|
|
85
|
+
- Ordinary release publication now supports solo-owned repositories without a
|
|
86
|
+
mandatory positive review while retaining `CHANGES_REQUESTED` blocking,
|
|
87
|
+
protected two-parent merge proof, complete CI and Release Gate, immutable
|
|
88
|
+
conflict refusal, protected npm environment, and trusted OIDC provenance.
|
|
89
|
+
- Made `develop` the ordinary feature/fix and source-evidence integration base;
|
|
90
|
+
protected `main` now accepts only the validated release PR from `develop`.
|
|
91
|
+
- Superseded the human-created GitHub Release boundary with exact merged-PR
|
|
92
|
+
authorization while preserving branch protection, immutable conflicts,
|
|
93
|
+
least-privilege GitHub/OIDC jobs, and token-free npm publication.
|
|
94
|
+
- Generated agent guidance now treats a blocked strict tracker gate as a hard
|
|
95
|
+
stop with OAuth/host-file, binding, reconciliation, or sync recovery, while
|
|
96
|
+
best-effort, optional, off, and Tracker Policy v1 behavior remain compatible.
|
|
97
|
+
- Approved worktree creation now resumes its returned action immediately,
|
|
98
|
+
including across a required host restart, without requesting a second
|
|
99
|
+
confirmation.
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
|
|
103
|
+
- Normalized GitHub's null and empty post-merge `reviewDecision` forms before
|
|
104
|
+
complete review-history reduction so later reconciliation matches the earlier
|
|
105
|
+
solo-owner authorization while effective change requests still block.
|
|
106
|
+
- Made mutually exclusive ordinary/emergency authorizers use explicit
|
|
107
|
+
predecessor-success conditions so an intentionally skipped sibling cannot
|
|
108
|
+
transitively skip GitHub, npm, provenance, or verification jobs.
|
|
109
|
+
- Made immutable tag reconciliation create an annotated tag object and exact
|
|
110
|
+
tag ref through authenticated GitHub APIs instead of Git transport, while
|
|
111
|
+
retaining observation-led lost-response recovery and conflict refusal.
|
|
112
|
+
- Made Release Gate authentication available only to its exact read-only
|
|
113
|
+
candidate preflight while preserving `contents: read` and rejecting GitHub,
|
|
114
|
+
npm, tag, release, push, publish, and dist-tag mutation authority.
|
|
115
|
+
- Made protected delivery keep request-changes PRs draft, refuse draft or stale
|
|
116
|
+
merges, stop after two automatic repair rounds, and accept a valid non-author
|
|
117
|
+
latest approval when GitHub leaves aggregate `reviewDecision` empty.
|
|
118
|
+
- Made guarded tracker host files decode supported single- and double-quoted
|
|
119
|
+
dotenv values across LF and CRLF while rejecting malformed or control-bearing
|
|
120
|
+
assignments before provider access.
|
|
121
|
+
|
|
122
|
+
### Migration
|
|
123
|
+
|
|
124
|
+
No migration required.
|
|
125
|
+
|
|
11
126
|
## [0.28.0] - 2026-08-24
|
|
12
127
|
|
|
13
128
|
### Added
|
|
@@ -236,7 +351,9 @@ Published through GitHub Actions trusted publishing with npm provenance.
|
|
|
236
351
|
|
|
237
352
|
- Prepared and released package version `0.20.2`.
|
|
238
353
|
|
|
239
|
-
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.
|
|
354
|
+
[Unreleased]: https://github.com/goempirical/empirical-sdd/compare/v0.30.0...HEAD
|
|
355
|
+
[0.30.0]: https://github.com/goempirical/empirical-sdd/compare/v0.29.0...v0.30.0
|
|
356
|
+
[0.29.0]: https://github.com/goempirical/empirical-sdd/compare/v0.28.0...v0.29.0
|
|
240
357
|
[0.28.0]: https://github.com/goempirical/empirical-sdd/compare/v0.27.0...v0.28.0
|
|
241
358
|
[0.27.0]: https://github.com/goempirical/empirical-sdd/compare/v0.26.1...v0.27.0
|
|
242
359
|
[0.26.1]: https://github.com/goempirical/empirical-sdd/compare/v0.26.0...v0.26.1
|
package/README.md
CHANGED
|
@@ -1,153 +1,135 @@
|
|
|
1
1
|
# Empirical SDD
|
|
2
2
|
|
|
3
|
-
Agent
|
|
4
|
-
turns an ordinary change request into a deterministic workflow with durable
|
|
5
|
-
state, reviewable evidence, and safe Git integration.
|
|
3
|
+
**Agent work that survives the chat.**
|
|
6
4
|
|
|
7
|
-
|
|
5
|
+
Empirical is a repository-native harness for coding agents. The model writes;
|
|
6
|
+
Empirical keeps the contract, progress, proof, and exact next action in Git so
|
|
7
|
+
work can resume across sessions, agents, and machines.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
> Empirical 0.29 is alpha software and requires Node.js 22 or newer.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
**[Open the practical harness guide](https://goempirical.github.io/empirical-sdd/)**
|
|
12
|
+
for the visual walkthrough, diagrams, generated-file explorer, and complete
|
|
13
|
+
workflow. Its zero-build source is [docs/index.html](docs/index.html).
|
|
14
|
+
|
|
15
|
+
## Start in three steps
|
|
16
|
+
|
|
17
|
+
1. Install the package and the agent integrations you use.
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
npm install -g empirical-sdd
|
|
21
|
+
empirical install
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. Initialize each repository once from your coding agent.
|
|
25
|
+
|
|
26
|
+
- Codex: `$empirical-init`
|
|
27
|
+
- Claude Code: `/empirical-init`
|
|
28
|
+
|
|
29
|
+
3. Ask for the change normally.
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
Add rate limiting to the public API and prove the failure path.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Repository mutations route automatically. Read-only questions remain
|
|
36
|
+
read-only. If work stops, reopen the same checkout and ask the agent to
|
|
37
|
+
continue—the committed journal provides the resume point.
|
|
15
38
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
read-only questions stay outside the workflow.
|
|
20
|
-
|
|
21
|
-
Codex uses `$empirical-init`, Claude Code uses `/empirical-init`, and Windsurf
|
|
22
|
-
uses `@empirical-init`. Existing 0.22 repositories should invoke it once after
|
|
23
|
-
upgrading; configuration, history, and evidence are preserved.
|
|
24
|
-
|
|
25
|
-
Doctor verifies that completed repositories still have every required local
|
|
26
|
-
instruction, native skill, and MCP bridge, including nested-directory and
|
|
27
|
-
linked-worktree discovery. It distinguishes missing, stale, malformed, unsafe,
|
|
28
|
-
non-canonical, shadowing, and global-collision states. Invoke `empirical-init`
|
|
29
|
-
explicitly to reconcile Empirical-owned artifacts; unmanaged or unsafe
|
|
30
|
-
conflicts are preserved. Correct files do not prove that an existing host
|
|
31
|
-
session loaded them, so Doctor reports runtime loading as unverified and gives
|
|
32
|
-
the applicable reload or fresh-session step.
|
|
33
|
-
|
|
34
|
-
## What it provides
|
|
35
|
-
|
|
36
|
-
- Deterministic Fast or Complex routing based on the request's risk.
|
|
37
|
-
- Resumable Specify, Design, Plan, Implement, Verify, Review, and Integrate phases.
|
|
38
|
-
- Immutable evidence tied to criteria, source state, and provenance.
|
|
39
|
-
- Isolated parallel work through linked Git worktrees.
|
|
40
|
-
- Guided Linear, GitHub Issues + Projects, or Jira ticket mirrors with automatic
|
|
41
|
-
binding, milestone comments, and safe evidence projection.
|
|
42
|
-
- Selectable concise or detailed agent questions and runtime summaries.
|
|
43
|
-
- Explicit, guarded delivery and npm publication boundaries.
|
|
44
|
-
|
|
45
|
-
Completion is reported only at the highest proven level: implemented,
|
|
46
|
-
verified, integrated, delivered, or published.
|
|
47
|
-
|
|
48
|
-
## Tracker setup
|
|
49
|
-
|
|
50
|
-
`empirical-init` always shows Interaction and Tracker sections. New recommended
|
|
51
|
-
setup selects **concise** questions: agents ask only when an answer changes
|
|
52
|
-
scope, architecture, authorization, or a safety gate. **Detailed** preserves
|
|
53
|
-
the expanded guidance used by existing Schema-5 repositories. Automation can
|
|
54
|
-
set the same value with `--questions concise|detailed` or the MCP `questions`
|
|
55
|
-
field.
|
|
56
|
-
|
|
57
|
-
When no tracker choice exists, Init recommends **Track work by type** and
|
|
58
|
-
requires choosing that or **No tracking** before setup can be saved. Track work
|
|
59
|
-
selects Linear, GitHub Projects, or Jira; No tracking persists a provider-free
|
|
60
|
-
choice and makes no provider requests.
|
|
61
|
-
|
|
62
|
-
Authentication starts with OAuth when a trusted host supplies a connection.
|
|
63
|
-
MCP clients may open that connection only through explicitly negotiated
|
|
64
|
-
URL-mode elicitation; Empirical never requests a credential through a form,
|
|
65
|
-
tool argument, tool result, assistant message, or repository file. The default
|
|
66
|
-
standalone CLI has no hosted OAuth broker and truthfully proceeds to the
|
|
67
|
-
host-only fallback.
|
|
68
|
-
|
|
69
|
-
> **Never paste credentials into chat.** If OAuth is unavailable, edit the
|
|
70
|
-
> secrets file directly on the host: `${XDG_CONFIG_HOME:-$HOME/.config}/empirical/secrets.env`
|
|
71
|
-
> on POSIX or `%APPDATA%\Empirical\secrets.env` on Windows. Do not put a
|
|
72
|
-
> credential value in a shell command, process argument, tool call, or
|
|
73
|
-
> repository `.env` file.
|
|
74
|
-
|
|
75
|
-
New setup uses `LINEAR_SECRET_KEY` for Linear, `GITHUB_TOKEN` for GitHub, and
|
|
76
|
-
both `JIRA_EMAIL` and `JIRA_API_TOKEN` for Jira. The file must be a regular,
|
|
77
|
-
non-symbolic-link file outside the repository and, on POSIX, owner-only (for
|
|
78
|
-
example mode `0600`). Runtime precedence is connected host OAuth, then a
|
|
79
|
-
complete injected environment set, then the checked host file. Existing
|
|
80
|
-
Tracker Policy v1/v2 names—including `LINEAR_API_KEY` and custom names—remain
|
|
81
|
-
valid and are never rewritten automatically.
|
|
82
|
-
|
|
83
|
-
After authentication, Empirical discovers accessible targets and workflow
|
|
84
|
-
states, proposes all seven semantic mappings, and shows the complete
|
|
85
|
-
secret-free policy before saving. Ambiguous state suggestions require an
|
|
86
|
-
explicit choice; simple boards may intentionally reuse one provider state for
|
|
87
|
-
several phases. Repair preserves an existing tracker policy or explicit No
|
|
88
|
-
tracking choice unless you change it.
|
|
89
|
-
|
|
90
|
-
Tracker Policy v2 supports `off`, `manual`, and `ensure` ticket behavior plus
|
|
91
|
-
blockers/final, phase-milestone, or every-revision progress comments. `ensure`
|
|
92
|
-
validates a referenced ticket, reconciles the feature marker, and creates only
|
|
93
|
-
when neither identifies one unique ticket. Local workflow state commits first;
|
|
94
|
-
provider outages leave exact retry state and never rewind local work. Comments
|
|
95
|
-
preserve user-authored descriptions, and receipt-approved evidence is uploaded
|
|
96
|
-
or linked only after repository containment, media, size, and digest checks.
|
|
97
|
-
Existing Tracker Policy v1 files remain valid with manual binding and legacy
|
|
98
|
-
projection until deliberately upgraded.
|
|
99
|
-
|
|
100
|
-
An optional strict `ticketRules` matrix refines `ensure` by change type and
|
|
101
|
-
workflow size. The recommended `features+large-fixes` preset is:
|
|
102
|
-
|
|
103
|
-
| Work | Fast | Quick | Complex |
|
|
104
|
-
| --- | --- | --- | --- |
|
|
105
|
-
| Feature | required | required | required |
|
|
106
|
-
| Fix | optional | required | required |
|
|
107
|
-
| Chore | optional | optional | optional |
|
|
108
|
-
|
|
109
|
-
Optional work with no referenced ticket stays local without OAuth, provider
|
|
110
|
-
access, ticket creation, or a redundant question. One explicit reference is
|
|
111
|
-
attached; multiple references fail closed. See the [demo](docs/demo.md) for a
|
|
112
|
-
provider-independent new-feature run and [MCP documentation](docs/mcp.md) for
|
|
113
|
-
the complete custom JSON form.
|
|
114
|
-
|
|
115
|
-
## CLI
|
|
116
|
-
|
|
117
|
-
| Command | Purpose |
|
|
39
|
+
## Why use it?
|
|
40
|
+
|
|
41
|
+
| Without a harness | With Empirical |
|
|
118
42
|
| --- | --- |
|
|
119
|
-
|
|
|
120
|
-
|
|
|
121
|
-
|
|
|
122
|
-
|
|
|
43
|
+
| Lost chat | **Continuity** — resume from repository state. |
|
|
44
|
+
| Ambiguous request | **Shared contract** — agree on observable outcomes first. |
|
|
45
|
+
| Confidence without proof | **Honest evidence** — bind claims to exact source, commands, attempts, and results. |
|
|
46
|
+
| Scope drift | **Reviewable scope** — keep decisions, diffs, failures, and gaps visible. |
|
|
47
|
+
| Unsafe convergence | **Safer integration** — isolate parallel work and validate against an independent target. |
|
|
48
|
+
| Accidental publication | **Bounded authority** — keep implementation, delivery, and publication separate. |
|
|
49
|
+
|
|
50
|
+
## How it works
|
|
123
51
|
|
|
124
|
-
|
|
125
|
-
repository configuration. Automation must confirm removal with `--yes`.
|
|
52
|
+
Empirical routes by risk, not prompt length:
|
|
126
53
|
|
|
127
|
-
|
|
54
|
+
- **Fast** handles explicit, tiny, localized, reversible, contract-neutral work
|
|
55
|
+
with focused proof.
|
|
56
|
+
- **Complex** carries material work through a durable contract, decisions,
|
|
57
|
+
verification, exact-diff review, and independent integration.
|
|
128
58
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
59
|
+
```text
|
|
60
|
+
Specify → Design → Plan → Implement → Context? → Verify → Review → Integrate
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Context runs when repository knowledge needs refinement. Failed verification or
|
|
64
|
+
requested review changes return to implementation. Evidence, review, and
|
|
65
|
+
integration are different claims, and Empirical reports only the highest level
|
|
66
|
+
actually proven: `implemented`, `verified`, `integrated`, `delivered`, or
|
|
67
|
+
`published`.
|
|
68
|
+
|
|
69
|
+
Delivery is never implied. Empirical does not infer permission to merge a pull
|
|
70
|
+
request, bypass protection, create a release, or publish a package.
|
|
71
|
+
|
|
72
|
+
## What it creates
|
|
73
|
+
|
|
74
|
+
Init installs the harness; selected work fills in the record:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
repository/
|
|
78
|
+
├── AGENTS.md / CLAUDE.md / GEMINI.md bounded activation markers
|
|
79
|
+
├── agent skill + MCP entries selected integrations
|
|
80
|
+
└── .empirical/
|
|
81
|
+
├── config.json project setup
|
|
82
|
+
├── policy.json verification and delivery policy
|
|
83
|
+
├── tracker.json secret-free tracker choice
|
|
84
|
+
├── context/ repository knowledge
|
|
85
|
+
├── specs/<feature>/
|
|
86
|
+
│ ├── spec.md + decisions.md contract and decisions
|
|
87
|
+
│ ├── design.md + plan.md Complex approach and plan
|
|
88
|
+
│ ├── impact.json affected behavior and surfaces
|
|
89
|
+
│ ├── state.json + events/ phase and resumable journal
|
|
90
|
+
│ ├── evidence/receipts/ immutable attempts and artifacts
|
|
91
|
+
│ ├── reviews/ exact-diff review, when reached
|
|
92
|
+
│ └── integration-receipt.json convergence proof, when reached
|
|
93
|
+
└── capabilities/<capability>/ living behavior after integration
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Exact host files depend on the integrations selected during install. Init
|
|
97
|
+
creates durable setup and empty work containers; a real mutation creates a
|
|
98
|
+
feature record, and conditional artifacts appear only when their phases run.
|
|
99
|
+
|
|
100
|
+
Optional tracking mirrors approved milestones to Linear, GitHub, or Jira; the
|
|
101
|
+
repository remains authoritative. Policy supports
|
|
102
|
+
`enforcement: "best-effort" | "strict"`; strict recovery retries the exact
|
|
103
|
+
feature. Credentials never belong in chat, prompts, repository files, tool
|
|
104
|
+
arguments, or evidence.
|
|
105
|
+
|
|
106
|
+
When GitHub Copilot is selected, installation also reconciles the exact
|
|
107
|
+
Empirical stdio bridge in `~/.copilot/mcp-config.json`; start a new session after
|
|
108
|
+
install or update. Linear setup then uses an in-memory OAuth client for Linear's
|
|
109
|
+
official remote MCP endpoint, with browser authorization through negotiated URL
|
|
110
|
+
elicitation. Empirical never reads Copilot's token store or persists the OAuth
|
|
111
|
+
token. The guarded `LINEAR_SECRET_KEY` host file remains a fallback, not the
|
|
112
|
+
default requirement for an OAuth-capable session.
|
|
133
113
|
|
|
134
114
|
## Documentation
|
|
135
115
|
|
|
136
|
-
[
|
|
137
|
-
|
|
138
|
-
[
|
|
139
|
-
[
|
|
116
|
+
- [Practical guide](https://goempirical.github.io/empirical-sdd/) — visual onboarding and diagrams
|
|
117
|
+
- [Demo](docs/demo.md) — installation and representative scenarios
|
|
118
|
+
- [Protocol](docs/protocol.md) — state machine, artifacts, and completion rules
|
|
119
|
+
- [Architecture](docs/architecture.md) — persistence and trust boundaries
|
|
120
|
+
- [MCP and tracking](docs/mcp.md) — agent operations and tracker configuration
|
|
121
|
+
- [Security](docs/security.md) — credentials, execution, review, and authority
|
|
122
|
+
- [Releasing](docs/releasing.md) — guarded maintainer playbook
|
|
140
123
|
|
|
141
124
|
## Development
|
|
142
125
|
|
|
143
|
-
Development requires Node.js 22+ and Bun. CI covers Node 22, 24, and 26.
|
|
144
|
-
|
|
145
126
|
```sh
|
|
146
|
-
bun install
|
|
127
|
+
bun install --frozen-lockfile
|
|
147
128
|
bun run ci
|
|
148
129
|
```
|
|
149
130
|
|
|
150
|
-
|
|
131
|
+
CI covers Node.js 22, 24, and 26. Ordinary changes target `develop`; `main` is
|
|
132
|
+
reserved for validated release pull requests.
|
|
151
133
|
|
|
152
134
|
## License
|
|
153
135
|
|
package/dist/agent-catalog.d.ts
CHANGED
|
@@ -189,6 +189,8 @@ export declare const AGENT_SKILL_TARGETS: readonly [{
|
|
|
189
189
|
readonly label: "GitHub Copilot";
|
|
190
190
|
readonly globalSkillPath: ".copilot/skills";
|
|
191
191
|
readonly detectPaths: readonly [".copilot"];
|
|
192
|
+
readonly reload: "Start a new Copilot CLI or Agent Host session so it reloads the global Empirical MCP bridge.";
|
|
193
|
+
readonly projectMcp: true;
|
|
192
194
|
}, {
|
|
193
195
|
readonly id: "goose";
|
|
194
196
|
readonly label: "Goose";
|