Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ If asked to set JAM up somewhere, use the official setup path — do not work ou
an installation procedure from the README. One command does the whole thing:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent
```

**If you are reading this inside a clone of the JAM repository** — because
Expand Down Expand Up @@ -160,7 +160,7 @@ before re-registering, reads the registration back, and finishes with `doctor`
so a registration that lands but is not healthy is rolled back.

```bash
jam update # or: npx --yes @jam-mcp/bootstrap@1.6.0 update
jam update # or: npx --yes @jam-mcp/bootstrap@1.7.0 update
jam update check --json # what is registered, what is published; changes nothing
```

Expand All @@ -173,9 +173,9 @@ then `asc update`, and report both.
To inspect before acting, the same three steps separately:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup plan --json # what would change; changes nothing
npx --yes @jam-mcp/bootstrap@1.6.0 setup apply --non-interactive --json # execute it
npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json # verify
npx --yes @jam-mcp/bootstrap@1.7.0 setup plan --json # what would change; changes nothing
npx --yes @jam-mcp/bootstrap@1.7.0 setup apply --non-interactive --json # execute it
npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json # verify
```

Run them through `npx` exactly as written. A bare `jam` is a convenience some
Expand Down Expand Up @@ -236,8 +236,8 @@ Code that is `~/.claude/settings.json`:
{
"permissions": {
"allow": [
"Bash(npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent)",
"Bash(npx --yes @jam-mcp/bootstrap@1.6.0 runtime use package)"
"Bash(npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent)",
"Bash(npx --yes @jam-mcp/bootstrap@1.7.0 runtime use package)"
]
}
}
Expand All @@ -254,7 +254,7 @@ tooling, and never reach for a shell variant, a wrapper script, or a different
runner to get past a refusal. If the user declines, that is an answer: say what
cannot be done without it.

Finish with `npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json`.
Finish with `npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json`.

Authentication is the one step that is not yours to do. `JAM_AUTH_REQUIRED`
carries no `command` for exactly that reason — what it carries is a
Expand Down
16 changes: 8 additions & 8 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ If asked to set JAM up somewhere, use the official setup path — do not work ou
an installation procedure from the README. One command does the whole thing:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent
```

**If you are reading this inside a clone of the JAM repository** — because
Expand Down Expand Up @@ -191,7 +191,7 @@ before re-registering, reads the registration back, and finishes with `doctor`
so a registration that lands but is not healthy is rolled back.

```bash
jam update # or: npx --yes @jam-mcp/bootstrap@1.6.0 update
jam update # or: npx --yes @jam-mcp/bootstrap@1.7.0 update
jam update check --json # what is registered, what is published; changes nothing
```

Expand All @@ -204,9 +204,9 @@ then `asc update`, and report both.
To inspect before acting, the same three steps separately:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup plan --json # what would change; changes nothing
npx --yes @jam-mcp/bootstrap@1.6.0 setup apply --non-interactive --json # execute it
npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json # verify
npx --yes @jam-mcp/bootstrap@1.7.0 setup plan --json # what would change; changes nothing
npx --yes @jam-mcp/bootstrap@1.7.0 setup apply --non-interactive --json # execute it
npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json # verify
```

Run them through `npx` exactly as written. A bare `jam` is a convenience some
Expand Down Expand Up @@ -267,8 +267,8 @@ Code that is `~/.claude/settings.json`:
{
"permissions": {
"allow": [
"Bash(npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent)",
"Bash(npx --yes @jam-mcp/bootstrap@1.6.0 runtime use package)"
"Bash(npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent)",
"Bash(npx --yes @jam-mcp/bootstrap@1.7.0 runtime use package)"
]
}
}
Expand All @@ -285,7 +285,7 @@ tooling, and never reach for a shell variant, a wrapper script, or a different
runner to get past a refusal. If the user declines, that is an answer: say what
cannot be done without it.

Finish with `npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json`.
Finish with `npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json`.

Authentication is the one step that is not yours to do. `JAM_AUTH_REQUIRED`
carries no `command` for exactly that reason — what it carries is a
Expand Down
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ itself — the MCP server, the setup core and the CLI they all reach.
**For a person**, once per machine:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 init
npx --yes @jam-mcp/bootstrap@1.7.0 init
```

Choose whether you're *using* JAM (runs the published package) or *developing*
Expand All @@ -179,10 +179,10 @@ installing the launcher globally, and everything it runs still goes through the
runtime you chose above:

```bash
npm install -g @jam-mcp/launcher@1.6.0
npm install -g @jam-mcp/launcher@1.7.0
```

Without it, the same commands are `npx --yes @jam-mcp/launcher@1.6.0 <command>`.
Without it, the same commands are `npx --yes @jam-mcp/launcher@1.7.0 <command>`.
Nothing else changes — not your editor's wiring, not a shared `.mcp.json`, not
a teammate who never installed it.

Expand Down Expand Up @@ -223,7 +223,7 @@ to set JAM up in a project, **use the official path** rather than working out
an installation from this README:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent
```

**If you are reading this inside a clone of this repository** — because someone
Expand All @@ -240,9 +240,9 @@ asking is done. Install, register, and verify without further confirmation.
or, to inspect before acting:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup plan --json # what would change; changes nothing
npx --yes @jam-mcp/bootstrap@1.6.0 setup apply --non-interactive --json # execute it
npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json # verify
npx --yes @jam-mcp/bootstrap@1.7.0 setup plan --json # what would change; changes nothing
npx --yes @jam-mcp/bootstrap@1.7.0 setup apply --non-interactive --json # execute it
npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json # verify
```

Each returns a single JSON document on stdout with a stable status code. Branch
Expand Down Expand Up @@ -270,7 +270,7 @@ or a legacy preset entry needs no hand-editing first — the stale binding is
replaced as part of the plan:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent --project PROJECT
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent --project PROJECT
```

The one source it does not override is the repository's own committed
Expand Down Expand Up @@ -342,8 +342,8 @@ settings rather than the repository's. For Claude Code that is
{
"permissions": {
"allow": [
"Bash(npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent)",
"Bash(npx --yes @jam-mcp/bootstrap@1.6.0 runtime use package)"
"Bash(npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent)",
"Bash(npx --yes @jam-mcp/bootstrap@1.7.0 runtime use package)"
]
}
}
Expand All @@ -359,12 +359,12 @@ yourself, never put it in the repository so the project approves its own
tooling, and never reach for a shell variant, a wrapper script, or a different
runner to get past a refusal. If the user declines, that is an answer.

Finish with `npx --yes @jam-mcp/bootstrap@1.6.0 status --json`.
Finish with `npx --yes @jam-mcp/bootstrap@1.7.0 status --json`.

## Commands

These read as `jam …` throughout — the short form from the optional global
install above. Everything works the same as `npx --yes @jam-mcp/launcher@1.6.0
install above. Everything works the same as `npx --yes @jam-mcp/launcher@1.7.0
…` if you skipped it.

```text
Expand Down Expand Up @@ -454,7 +454,7 @@ and is safe to commit:
```json
{
"mcpServers": {
"jam": { "command": "npx", "args": ["--yes", "@jam-mcp/launcher@1.6.0", "serve"] }
"jam": { "command": "npx", "args": ["--yes", "@jam-mcp/launcher@1.7.0", "serve"] }
}
}
```
Expand Down
12 changes: 6 additions & 6 deletions docs/architecture/distribution-and-bootstrap.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ Neither touches a project.
```json
{
"mcpServers": {
"jam": { "command": "npx", "args": ["--yes", "@jam-mcp/launcher@1.6.0", "serve"] }
"jam": { "command": "npx", "args": ["--yes", "@jam-mcp/launcher@1.7.0", "serve"] }
}
}
```
Expand Down Expand Up @@ -316,14 +316,14 @@ would silently change what a teammate's editor launches.

```bash
# one shot: detect, plan, apply safe, verify
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent
# what would change, changing nothing
npx --yes @jam-mcp/bootstrap@1.6.0 setup plan --json
npx --yes @jam-mcp/bootstrap@1.7.0 setup plan --json
# execute
npx --yes @jam-mcp/bootstrap@1.6.0 setup apply --non-interactive --json
npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json
npx --yes @jam-mcp/bootstrap@1.7.0 setup apply --non-interactive --json
npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json
# presence and origin, never the value
npx --yes @jam-mcp/bootstrap@1.6.0 auth status --json
npx --yes @jam-mcp/bootstrap@1.7.0 auth status --json
```

Bootstrap, not `jam` — an agent's first command runs on a machine with no
Expand Down
6 changes: 3 additions & 3 deletions docs/architecture/jira-agent-mcp-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -1089,8 +1089,8 @@ Claude Code
zero-install 경로로 대체됐다.

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 init # 사람
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent # 코딩 에이전트
npx --yes @jam-mcp/bootstrap@1.7.0 init # 사람
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent # 코딩 에이전트
```

배포·부트스트랩의 설계 정본은 `docs/architecture/distribution-and-bootstrap.md`,
Expand All @@ -1106,7 +1106,7 @@ README에서 설치 절차를 지어내던 문제가 이 절에서 시작됐다.
zero-install 형태는 다음이다.

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json
npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json
```

검사 항목의 정본은 코드다: `packages/server/src/bootstrap/boot-health-gate.ts`.
Expand Down
20 changes: 10 additions & 10 deletions docs/operations/setup-ux.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ probe blocks the process, so a spinner would print one frame and then freeze —
it gets a pending line instead, and only when a probe actually happens:

```text
○ Checking @jam-mcp/launcher@1.6.0 on npm...
○ Checking @jam-mcp/launcher@1.7.0 on npm...
```

Disabled entirely when not interactive, where it degrades to a single pending
Expand Down Expand Up @@ -235,7 +235,7 @@ shell history:
```text
× Migration target is not available from the configured npm registry

npm could not find @jam-mcp/launcher@1.6.0 in the configured registry.
npm could not find @jam-mcp/launcher@1.7.0 in the configured registry.
Existing .mcp.json was left unchanged.
```

Expand Down Expand Up @@ -283,7 +283,7 @@ adoption is asked for.
Recorded for you only - the repository was not touched.
✓ Registered with claude-code
! codex was not reachable, so JAM was not registered with it.
› If you use it, run: codex mcp add jam -- npx --yes @jam-mcp/launcher@1.6.0 serve
› If you use it, run: codex mcp add jam -- npx --yes @jam-mcp/launcher@1.7.0 serve
```

**A rebind names what it replaces.** `jam setup --project OTHER` on a workspace
Expand Down Expand Up @@ -347,20 +347,20 @@ method creates, so that one row stays a human check.
For agents and scripts:

```bash
npx --yes @jam-mcp/bootstrap@1.6.0 setup plan --json
npx --yes @jam-mcp/bootstrap@1.6.0 setup apply --non-interactive --json
npx --yes @jam-mcp/bootstrap@1.6.0 setup --agent
npx --yes @jam-mcp/bootstrap@1.6.0 doctor --json
npx --yes @jam-mcp/bootstrap@1.6.0 runtime --json
npx --yes @jam-mcp/bootstrap@1.6.0 auth status --json
npx --yes @jam-mcp/bootstrap@1.7.0 setup plan --json
npx --yes @jam-mcp/bootstrap@1.7.0 setup apply --non-interactive --json
npx --yes @jam-mcp/bootstrap@1.7.0 setup --agent
npx --yes @jam-mcp/bootstrap@1.7.0 doctor --json
npx --yes @jam-mcp/bootstrap@1.7.0 runtime --json
npx --yes @jam-mcp/bootstrap@1.7.0 auth status --json
```

A locally installed `jam` runs each of these identically, and this document
writes the short form elsewhere for readability. Bootstrap stays the
zero-state default — the machine an agent lands on usually has no global
install. But the launcher is no longer ruled out on a fresh machine: it
answers `jam runtime use package` itself, so `npm install -g
@jam-mcp/launcher@1.6.0` followed by that one command reaches the same place.
@jam-mcp/launcher@1.7.0` followed by that one command reaches the same place.
That persistent path is also the fallback when `npx` itself cannot start a
process (a package-runner failure, which is not a JAM failure).

Expand Down
Loading
Loading