threadroot 0.1.0 → 0.1.2

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.
Files changed (4) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +70 -23
  3. package/dist/index.js +3304 -2489
  4. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -4,6 +4,34 @@ All notable changes to Threadroot will be documented here.
4
4
 
5
5
  Threadroot follows semantic versioning after the first public release. While `0.x`, minor versions may include breaking changes as the harness format settles.
6
6
 
7
+ ## 0.1.2 - One-command bootstrap and session start
8
+
9
+ ### Added
10
+
11
+ - `threadroot bootstrap` as the simple first-run command for global agent setup, local-only harness initialization, health checks, and initial context.
12
+ - `threadroot start "<task>"` as the daily agent-session command for doctor, status, task context, and Threadroot command discovery.
13
+ - Package smoke coverage for the new bootstrap/start flow.
14
+
15
+ ### Changed
16
+
17
+ - The generated agent bootstrap prompt now uses `threadroot bootstrap --yes` and `threadroot start "<task>"` instead of spelling out lower-level setup commands.
18
+ - README quickstart now leads with the simplified bootstrap/start flow.
19
+
20
+ ## 0.1.1 - Clean setup and global agent bootstrap
21
+
22
+ ### Changed
23
+
24
+ - `threadroot init` now creates a local-only `.threadroot/` harness by default.
25
+ - Missing MCP config is now a doctor hint instead of a warning for local-only projects.
26
+ - Bootstrap prompts now ask before writing project-local MCP config or provider exposure files.
27
+
28
+ ### Added
29
+
30
+ - `threadroot expose` for thin project skill shims across Codex, Claude Code, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Antigravity, and OpenCode.
31
+ - `threadroot setup --global` for one-time machine-level Threadroot skills across supported agents.
32
+ - Codex global setup support for `~/.agents/skills/threadroot/SKILL.md`, `~/.codex/AGENTS.md`, and optional `~/.codex/config.toml` MCP config.
33
+ - Dry-run, check, undo, force, and MCP options for global setup.
34
+
7
35
  ## 0.1.0 - Initial OSS alpha
8
36
 
9
37
  ### Added
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Threadroot
2
2
 
3
- Threadroot is **git for your AI agent harness**: you author skills, rules, tools, and
4
- memory once in a canonical `.threadroot/` directory, and Threadroot compiles them into
5
- every vendor format (AGENTS.md, Claude, Copilot, Cursor) so your agents stay in sync.
3
+ Threadroot is **git for your AI agent harness**: you author skills, rules, tools,
4
+ memory, connections, and agent setup once in a canonical `.threadroot/` directory.
5
+ Provider-specific files are opt-in, thin exposure shims.
6
6
 
7
7
  It is local-first: a `tr` CLI for humans and CI, plus a local MCP server that exposes the
8
8
  same harness to coding agents. V1 does not require a cloud account, API key, or hosted
@@ -13,19 +13,17 @@ service.
13
13
  Run Threadroot without adding it to your project:
14
14
 
15
15
  ```bash
16
- pnpm dlx threadroot init
16
+ npx threadroot bootstrap --yes
17
17
  # or
18
- npx threadroot init
19
- # or, explicitly with npm exec
20
- npm exec --package=threadroot -- threadroot init
18
+ pnpm dlx threadroot bootstrap --yes
19
+ # or
20
+ npm exec --package=threadroot -- threadroot bootstrap --yes
21
21
  ```
22
22
 
23
23
  After initialization:
24
24
 
25
25
  ```bash
26
- threadroot doctor
27
- threadroot context "write tests"
28
- threadroot mcp setup --write
26
+ threadroot start "write tests"
29
27
  ```
30
28
 
31
29
  For local development on Threadroot itself:
@@ -39,12 +37,9 @@ node dist/index.js --help
39
37
  ## Quick start
40
38
 
41
39
  ```bash
42
- tr init # detect the repo, scaffold a harness, import existing
43
- # vendor files once, and compile
44
- tr status # authored objects vs compiled outputs, with drift
45
- tr context "write tests" # task-relevant skills, rules, tools, and memory
46
- tr doctor # health check for harness validity, drift, MCP hints, tool trust
47
- tr diff # line diff between canonical sources and vendor files
40
+ tr bootstrap --yes # one-time machine setup + local-only .threadroot/
41
+ tr start "write tests" # doctor, status, relevant context, and command map
42
+ tr expose codex # optional: write a thin project skill shim for Codex
48
43
  ```
49
44
 
50
45
  `threadroot` is the full name; `tr` is the short alias.
@@ -52,7 +47,11 @@ tr diff # line diff between canonical sources and vendor files
52
47
  ## CLI surface
53
48
 
54
49
  ```bash
55
- tr init [--force] [--no-import] [--profile <p>] [--adapters <list>]
50
+ tr bootstrap [--yes] [--agent <list>] [--task <task>] [--mcp] [--expose <list>]
51
+ tr start ["<task>"]
52
+ tr setup --global [--agent <list>] [--dry-run] [--check] [--undo] [--mcp]
53
+ tr init [--force] [--no-import] [--profile <p>] [--adapters <list>] [--expose <list>]
54
+ tr expose [agent|all] [--dry-run] [--check] [--undo] [--force]
56
55
  tr status
57
56
  tr diff
58
57
  tr doctor
@@ -91,9 +90,53 @@ The canonical, vendor-neutral source of truth:
91
90
  lock.json # provenance for installed objects (commit SHA + integrity)
92
91
  ```
93
92
 
94
- `tr compile` turns the harness into the big-four vendor formats. Hand-authored prose in a
93
+ By default, `tr init` keeps the repo clean and writes only `.threadroot/`. `tr compile`
94
+ turns the harness into legacy vendor instruction formats only when adapters are enabled
95
+ in `harness.yaml` or when you run `tr compile --adapter <name>`. Hand-authored prose in a
95
96
  vendor file is preserved; Threadroot only owns the block it marks as generated.
96
97
 
98
+ ## Bootstrap, global setup, and exposure
99
+
100
+ The simple path is:
101
+
102
+ ```bash
103
+ tr bootstrap --yes
104
+ tr start "current task"
105
+ ```
106
+
107
+ Without `--yes`, `tr bootstrap` prints a dry-run plan. With `--yes`, it installs global
108
+ agent bootstrap skills, initializes `.threadroot/` if needed, runs doctor, and prints
109
+ task context. It does not write provider-specific project files unless you pass
110
+ `--expose`.
111
+
112
+ Global setup installs a tiny `threadroot` skill into supported agent user-skill
113
+ directories so agents know to call `threadroot bootstrap --yes` when setup is missing
114
+ and `threadroot start "<task>"` when they see `.threadroot/`.
115
+
116
+ Supported global skill targets:
117
+
118
+ | Agent | Project exposure path | Global setup path |
119
+ | --- | --- | --- |
120
+ | Codex | `.agents/skills/` | `~/.agents/skills/` |
121
+ | Claude Code | `.claude/skills/` | `~/.claude/skills/` |
122
+ | Cursor | `.cursor/skills/` | `~/.cursor/skills/` |
123
+ | GitHub Copilot | `.github/skills/` | `~/.copilot/skills/` |
124
+ | Gemini CLI | `.gemini/skills/` | `~/.gemini/skills/` |
125
+ | Windsurf | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
126
+ | Antigravity | `.agent/skills/` | `~/.gemini/antigravity/skills/` |
127
+ | OpenCode | `.opencode/skills/` | `~/.config/opencode/skills/` |
128
+
129
+ Use project exposure only when you want repo-local native skill discovery:
130
+
131
+ ```bash
132
+ tr expose codex
133
+ tr expose all
134
+ tr expose all --undo
135
+ ```
136
+
137
+ `tr expose` writes one managed `threadroot/SKILL.md` shim per provider. It does not copy
138
+ every Threadroot skill into provider directories.
139
+
97
140
  ## Built-in content
98
141
 
99
142
  `tr init` seeds a useful harness on an empty repo:
@@ -103,7 +146,9 @@ vendor file is preserved; Threadroot only owns the block it marks as generated.
103
146
  - **Starter tools:** wrapped from the repo's detected command surface (scripts, Make/just),
104
147
  auto-added to `tools.allow`.
105
148
  - **Profile presets:** node-cli, web, python, etc. (detected by the scanner).
106
- - **Adapters:** agents, claude, copilot, cursor enabled by default.
149
+ - **Adapters:** disabled by default to keep new repos local-only; use `tr expose` for
150
+ skill-compatible providers or `tr compile --adapter <name>` for legacy instruction
151
+ files.
107
152
 
108
153
  Modern skills use the Agent Skills-style folder shape:
109
154
 
@@ -193,7 +238,7 @@ Threadroot runs a local MCP server over stdio that exposes the harness to agents
193
238
  ```bash
194
239
  tr mcp
195
240
  tr mcp setup # print config snippets and a pasteable agent bootstrap prompt
196
- tr mcp setup --write # write project-local MCP config for supported agents
241
+ tr mcp setup --write # opt-in: write project-local MCP config for supported agents
197
242
  ```
198
243
 
199
244
  Tools: `context`, `skills_list`, `skills_get`, `tools_list`, `tools_check`, `tools_run`,
@@ -201,8 +246,8 @@ Tools: `context`, `skills_list`, `skills_get`, `tools_list`, `tools_check`, `too
201
246
  `memory_append`, `status`, `doctor`.
202
247
 
203
248
  `tr mcp setup` also prints a copy/paste agent prompt that follows the real CLI flow:
204
- check availability, run `threadroot init` when needed, inspect `status`, review `diff` on
205
- drift, and optionally write MCP config.
249
+ check availability, run `threadroot bootstrap --yes`, run `threadroot start "<task>"`,
250
+ and ask before writing project-local MCP config.
206
251
 
207
252
  ## Profiles
208
253
 
@@ -242,7 +287,9 @@ THREADROOT_ROOT="$(pwd)"
242
287
  TMP_REPO="$(mktemp -d /tmp/threadroot-smoke.XXXXXX)"
243
288
  rsync -a --exclude .git --exclude node_modules --exclude dist ./ "$TMP_REPO/"
244
289
  cd "$TMP_REPO"
245
- node "$THREADROOT_ROOT/dist/index.js" init --no-import
290
+ HOME="$TMP_REPO/home" node "$THREADROOT_ROOT/dist/index.js" bootstrap --yes --agent codex --no-import
291
+ HOME="$TMP_REPO/home" node "$THREADROOT_ROOT/dist/index.js" start "write tests"
292
+ node "$THREADROOT_ROOT/dist/index.js" expose codex
246
293
  node "$THREADROOT_ROOT/dist/index.js" status
247
294
  node "$THREADROOT_ROOT/dist/index.js" context "write tests"
248
295
  node "$THREADROOT_ROOT/dist/index.js" skills validate