orbit-thread 0.0.0-stage → 1.2.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 +41 -0
- package/CONTRIBUTING.md +40 -0
- package/LICENSE +21 -0
- package/PRIVACY.md +83 -0
- package/README.md +448 -2
- package/SECURITY.md +18 -0
- package/bin/orbit-handoff.mjs +8 -0
- package/bin/orbit-thread.mjs +8 -0
- package/docs/PUBLISHING.md +118 -0
- package/docs/SUBMISSION.md +72 -0
- package/docs/VALIDATION.md +239 -0
- package/lib/cli.mjs +304 -0
- package/lib/resume.mjs +155 -0
- package/package.json +25 -4
- package/plugin/.claude-plugin/plugin.json +16 -0
- package/plugin/LICENSE +21 -0
- package/plugin/README.md +28 -0
- package/plugin/assets/icon.png +0 -0
- package/plugin/plugin.json +34 -0
- package/plugin/skills/handoff/SKILL.md +47 -0
- package/plugin/skills/handoff/agents/openai.yaml +6 -0
- package/plugin/skills/handoff/scripts/write_handoff.sh +33 -0
- package/plugin/skills/orbit-resume/SKILL.md +25 -0
- package/plugin/skills/orbit-resume/agents/openai.yaml +6 -0
- package/plugin/skills/orbit-setup/SKILL.md +42 -0
- package/plugin/skills/orbit-setup/agents/openai.yaml +6 -0
- package/plugin/skills/orbit-setup/scripts/project_config.mjs +168 -0
- package/plugin/skills/orbit-setup/scripts/setup_project.mjs +501 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.2.0 — 12 October 2026
|
|
4
|
+
|
|
5
|
+
- Add **Orbit Resume**, a third canonical skill that recovers project context at the start of a fresh Codex or Claude Code session from the latest usable handoff, current Git state and only the living docs the task needs.
|
|
6
|
+
- Add read-only `npx orbit-thread resume` for a concise terminal summary of handoff, Git state and next action.
|
|
7
|
+
- Invoke manually with `$orbit-resume` (Codex), `/orbit-resume` (Claude Code) or `/orbit-thread:orbit-resume` (Claude marketplace plugin). Invocation can also be automatic where the host supports implicit skill invocation (`allow_implicit_invocation: true`); manual invocation is the documented fallback.
|
|
8
|
+
- Treat the handoff as a lead: current Git state and tracked docs override stale details, and missing, malformed, stale or future-dated handoffs are reported rather than guessed.
|
|
9
|
+
- Security safeguards: Resume is read-only and never resets, cleans, stashes, stages, commits or otherwise changes the working tree; it strips terminal-control sequences from displayed repository and handoff text, redacts secret-looking values, and does not read `.env` files, credentials or unrelated files.
|
|
10
|
+
- Install, update, Doctor and uninstall now manage all three skills (`handoff`, `orbit-setup`, `orbit-resume`) for both agents.
|
|
11
|
+
- Backwards compatible: existing v1.1.0 installations, `HANDOFF-STATE.md` files, `.orbit-thread/config.json` and living docs keep working unchanged; `orbit-thread update` adds Resume without touching locally edited managed files, and `orbit-handoff` remains a CLI alias.
|
|
12
|
+
|
|
13
|
+
## 1.1.0 — 7 October 2026
|
|
14
|
+
|
|
15
|
+
- Rename the product from **Orbit Handoff** to **Orbit Thread**.
|
|
16
|
+
- Publish the feature release under the new npm package name `orbit-thread`; keep historical `orbit-handoff` releases immutable.
|
|
17
|
+
- Add `orbit-setup` for Codex and Claude Code.
|
|
18
|
+
- Add `npx orbit-thread setup`; keep `init` as an alias.
|
|
19
|
+
- Create only missing lightweight PRODUCT, DESIGN, ARCHITECTURE, SECURITY and ROADMAP living docs while preserving existing equivalents.
|
|
20
|
+
- Add selective context-loading, in-place living-doc updates, fresh-context recovery and bounded-subagent rules.
|
|
21
|
+
- Add `configure` for project-specific subagent model/reasoning preferences stored in `.orbit-thread/config.json`.
|
|
22
|
+
- Add `doctor` for full continuity/config/document-health checks; keep `check` as the lightweight legacy managed-skill installation check.
|
|
23
|
+
- Allow Handoff to be invoked implicitly at meaningful verified checkpoints and completed coding tasks.
|
|
24
|
+
- Keep `HANDOFF-STATE.md` overwrite-only, evidence-only and capped at 50 lines.
|
|
25
|
+
- Migrate compatible Orbit Handoff project state to Orbit Thread while preserving locally edited managed files.
|
|
26
|
+
- Reduce CI noise by running feature work on pull requests, main on push, and package/release checks once after the cross-platform test matrix.
|
|
27
|
+
|
|
28
|
+
## 1.0.1 — 5 October 2026
|
|
29
|
+
|
|
30
|
+
- Confirm successful public npm publication and make `npx orbit-handoff install` the primary installation route.
|
|
31
|
+
- Remove stale pre-publication claims and record public package smoke testing.
|
|
32
|
+
- Update release and submission artifact references; directory submissions remain pending.
|
|
33
|
+
- Keep the installer, canonical skill and handoff writer unchanged.
|
|
34
|
+
|
|
35
|
+
## 1.0.0 — 5 October 2026
|
|
36
|
+
|
|
37
|
+
- Publish the proven handoff workflow as Orbit Handoff for Codex and Claude Code.
|
|
38
|
+
- Add interactive installation and ownership-aware init, check, update and uninstall.
|
|
39
|
+
- Package one canonical skill for Claude marketplaces and portable Agent Plugins.
|
|
40
|
+
- Preserve validated atomic handoffs, the 50-line limit and the local-only runtime.
|
|
41
|
+
- Add macOS and Linux tests, release packaging and directory submission guidance.
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for helping improve Orbit Thread. Open an issue for a bug/focused proposal, or send a pull request with a clear explanation and relevant tests. Use synthetic repositories and credentials in reproductions.
|
|
4
|
+
|
|
5
|
+
Requirements: Node.js 20+, Python 3 for packaging, Git and a POSIX shell. The project has no npm runtime dependencies.
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm test
|
|
9
|
+
npm run validate
|
|
10
|
+
npm run scan:public
|
|
11
|
+
npm run build:plugin
|
|
12
|
+
npm pack
|
|
13
|
+
npm run smoke:pack
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Keep canonical skills under:
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
plugin/skills/handoff/
|
|
20
|
+
plugin/skills/orbit-setup/
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Do not create divergent Codex and Claude implementations.
|
|
24
|
+
|
|
25
|
+
Handoff changes must preserve the 50-line cap, overwrite-only current state, validation before atomic replacement, secret backstop, failed-write preservation, no temporary residue, no network calls and no Git mutation.
|
|
26
|
+
|
|
27
|
+
Setup/configuration changes must preserve existing project docs and unrelated instructions, avoid duplicate root/docs files, stay idempotent, keep living docs as current truth rather than changelogs, and keep user-configured subagent preferences inside the managed Orbit Thread block.
|
|
28
|
+
|
|
29
|
+
Installer/update tests must cover migration from compatible Orbit Handoff installations, edited-file preservation and user-owned content.
|
|
30
|
+
|
|
31
|
+
Packaging changes should also be validated with current Claude Code:
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
claude plugin validate ./plugin --strict
|
|
35
|
+
claude plugin validate . --strict
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Public-directory validation is separate from provider approval.
|
|
39
|
+
|
|
40
|
+
Use British English in documentation.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Shabih Anwar
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/PRIVACY.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Privacy Policy
|
|
2
|
+
|
|
3
|
+
Last updated: 7 October 2026
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Orbit Thread is a local-first developer tool for project setup, coding-session continuity and verified handoffs.
|
|
8
|
+
|
|
9
|
+
Orbit Thread does not operate a remote service, require an Orbit Thread account, run an MCP server, or collect telemetry or analytics.
|
|
10
|
+
|
|
11
|
+
## Data Orbit Thread processes
|
|
12
|
+
|
|
13
|
+
Orbit Thread does not collect or transmit user or repository content to an Orbit Thread-operated server.
|
|
14
|
+
|
|
15
|
+
When used in a coding project, Orbit Thread may process information that the user or coding agent makes available locally in order to:
|
|
16
|
+
|
|
17
|
+
- create or update project documentation and managed agent instructions;
|
|
18
|
+
- create and overwrite `HANDOFF-STATE.md`;
|
|
19
|
+
- store project configuration and local ownership state;
|
|
20
|
+
- record hashes and exact managed instruction blocks for safe updates and uninstall operations.
|
|
21
|
+
|
|
22
|
+
This information may include project names, source-code context, technical decisions and other information intentionally included in project documentation or handoffs.
|
|
23
|
+
|
|
24
|
+
Orbit Thread is not designed to collect or process payment-card information, protected health information, government identifiers, passwords, API keys, authentication tokens, MFA/OTP codes, recovery codes or other authentication secrets. Users should not place this information in Orbit Thread handoffs or living project documents.
|
|
25
|
+
|
|
26
|
+
Secret-pattern checks are a limited safety backstop and are not a data-loss-prevention system.
|
|
27
|
+
|
|
28
|
+
## Purposes of processing
|
|
29
|
+
|
|
30
|
+
Orbit Thread processes local project information only as necessary to:
|
|
31
|
+
|
|
32
|
+
- prepare a project for coding-agent continuity;
|
|
33
|
+
- maintain concise project and execution state;
|
|
34
|
+
- safely install, update and uninstall Orbit Thread-managed files;
|
|
35
|
+
- verify ownership of managed content and avoid overwriting unrelated or locally modified files.
|
|
36
|
+
|
|
37
|
+
Orbit Thread does not use project information for advertising, behavioural profiling, analytics, model training or sale to third parties.
|
|
38
|
+
|
|
39
|
+
## Sharing and recipients
|
|
40
|
+
|
|
41
|
+
Orbit Thread itself does not transmit repository content, handoffs or local project documentation to the developer of Orbit Thread or to an Orbit Thread-operated service.
|
|
42
|
+
|
|
43
|
+
Installation or distribution may involve third-party services such as npm, GitHub, OpenAI or Anthropic. Those services process information according to their own privacy policies and service settings.
|
|
44
|
+
|
|
45
|
+
When Orbit Thread is used through a coding agent, information intentionally provided to that agent may be processed by the agent provider under that provider's privacy settings and terms. Orbit Thread's local scripts do not independently transmit repository content to those providers.
|
|
46
|
+
|
|
47
|
+
## Data retention
|
|
48
|
+
|
|
49
|
+
Orbit Thread does not retain user or project data on developer-operated servers because Orbit Thread operates no such service.
|
|
50
|
+
|
|
51
|
+
Local data remains on the user's device or project until the user removes it or the relevant file is overwritten.
|
|
52
|
+
|
|
53
|
+
`HANDOFF-STATE.md` is overwrite-only and is replaced when a new successful checkpoint is created.
|
|
54
|
+
|
|
55
|
+
Project documentation and `.orbit-thread` configuration may remain after Orbit Thread is uninstalled so that project-owned information is not destroyed automatically. Users may delete these files at any time.
|
|
56
|
+
|
|
57
|
+
Retention by npm, GitHub, OpenAI, Anthropic or other third-party services is governed by those services' own policies.
|
|
58
|
+
|
|
59
|
+
## User controls
|
|
60
|
+
|
|
61
|
+
Users control the project information made available to Orbit Thread.
|
|
62
|
+
|
|
63
|
+
Users may inspect, edit or delete Orbit Thread-created local files at any time, including `HANDOFF-STATE.md`, project documentation and `.orbit-thread` configuration.
|
|
64
|
+
|
|
65
|
+
Orbit Thread can also be uninstalled using its CLI. Uninstall intentionally preserves project-owned documentation and configuration unless the user chooses to delete them separately.
|
|
66
|
+
|
|
67
|
+
Orbit Thread setup Git-ignores `HANDOFF-STATE.md` and local ownership state. Adding an already tracked file to `.gitignore` does not remove it from Git history or stop Git from tracking it.
|
|
68
|
+
|
|
69
|
+
## Security and sensitive information
|
|
70
|
+
|
|
71
|
+
Do not place passwords, authentication secrets, private keys, recovery codes, personal data or sensitive production information in handoffs or living project documents.
|
|
72
|
+
|
|
73
|
+
Orbit Thread includes limited pattern checks intended to reduce accidental inclusion of obvious secrets, but these checks do not guarantee detection of sensitive data.
|
|
74
|
+
|
|
75
|
+
## Changes to this policy
|
|
76
|
+
|
|
77
|
+
This policy may be updated when Orbit Thread's functionality or data practices change. Material changes will be reflected in this document and its Git history.
|
|
78
|
+
|
|
79
|
+
## Contact
|
|
80
|
+
|
|
81
|
+
Privacy or security questions can be raised through the Orbit Thread GitHub repository:
|
|
82
|
+
|
|
83
|
+
https://github.com/shab1h-gh/orbit-thread/issues
|
package/README.md
CHANGED
|
@@ -1,3 +1,449 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 🧵 Orbit Thread
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Pick up where you left off, without carrying an entire coding conversation into the next session.**
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/orbit-thread)
|
|
6
|
+
[](https://github.com/shab1h-gh/orbit-thread/actions/workflows/ci.yml)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
|
|
9
|
+
Orbit Thread helps **Codex** and **Claude Code** keep their place during long projects. It gives each project a small set of useful documents and saves a short handoff when the agent reaches a verified checkpoint.
|
|
10
|
+
|
|
11
|
+
No giant session diary. No separate account or hosted memory service. Your repository and Git history remain the source of truth.
|
|
12
|
+
|
|
13
|
+
| Skill | What it does |
|
|
14
|
+
| --- | --- |
|
|
15
|
+
| 🧭 **Orbit Setup** | Prepares project docs, agent instructions and optional subagent preferences. |
|
|
16
|
+
| 🔁 **Handoff** | Records the current objective, completed work, risks and next actions in `HANDOFF-STATE.md`. |
|
|
17
|
+
| ▶️ **Resume** | Reconstructs concise current context from the handoff and read-only Git state. |
|
|
18
|
+
|
|
19
|
+
**Jump to:** [Quick start](#quick-start) · [How it works](#how-it-works) · [Setup files](#what-setup-creates) · [Handoff and Resume](#handoff-and-resume) · [Subagents](#configure-subagents) · [Doctor](#check-your-setup) · [Commands](#command-reference) · [Help](#troubleshooting)
|
|
20
|
+
|
|
21
|
+
## Quick start
|
|
22
|
+
|
|
23
|
+
> 🚀 Run these commands **inside the project** you want to set up.
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx orbit-thread install
|
|
27
|
+
npx orbit-thread setup
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Choose Codex, Claude Code or both when prompted. To skip the questions:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx orbit-thread install --agent both --scope project --yes
|
|
34
|
+
npx orbit-thread setup --agent both --yes
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Once installed, call the skills in your coding agent:
|
|
38
|
+
|
|
39
|
+
| Where you're working | Set up a project | Save a handoff | Resume a fresh chat |
|
|
40
|
+
| --- | --- | --- | --- |
|
|
41
|
+
| Codex | `$orbit-setup` | `$handoff` | `$orbit-resume` |
|
|
42
|
+
| Claude Code | `/orbit-setup` | `/handoff` | `/orbit-resume` |
|
|
43
|
+
| Claude marketplace plugin | `/orbit-thread:orbit-setup` | `/orbit-thread:handoff` | `/orbit-thread:orbit-resume` |
|
|
44
|
+
|
|
45
|
+
The commands above are **skill invocations**, not Terminal commands. You can also ask the agent to run a handoff after a verified milestone.
|
|
46
|
+
|
|
47
|
+
## How it works
|
|
48
|
+
|
|
49
|
+
Orbit Thread keeps **lasting project knowledge** separate from **what the agent is doing right now**.
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Existing project
|
|
53
|
+
│
|
|
54
|
+
▼
|
|
55
|
+
Orbit Setup
|
|
56
|
+
│
|
|
57
|
+
├── Living docs and agent instructions
|
|
58
|
+
└── Project preferences
|
|
59
|
+
│
|
|
60
|
+
▼
|
|
61
|
+
Agent completes verified work
|
|
62
|
+
│
|
|
63
|
+
▼
|
|
64
|
+
Handoff rewrites HANDOFF-STATE.md
|
|
65
|
+
│
|
|
66
|
+
▼
|
|
67
|
+
Next session checks handoff + Git + relevant docs
|
|
68
|
+
│
|
|
69
|
+
▼
|
|
70
|
+
Continue from the last verified point
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The important distinction:
|
|
74
|
+
|
|
75
|
+
- **Git** keeps the history of code and decisions.
|
|
76
|
+
- **Living docs** describe the project as it stands today.
|
|
77
|
+
- **`HANDOFF-STATE.md`** says where the current task stands and what needs doing next.
|
|
78
|
+
|
|
79
|
+
The handoff is a checkpoint, **not** another changelog or a substitute for Git. If the handoff is stale, the current repository state wins.
|
|
80
|
+
|
|
81
|
+
## What setup creates
|
|
82
|
+
|
|
83
|
+
Orbit Setup can prepare a new project or add the workflow to an existing one. It creates missing files without duplicating equivalent documents already in the repository root or `docs/`.
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
project/
|
|
87
|
+
├── AGENTS.md
|
|
88
|
+
├── CLAUDE.md # if Claude Code is selected
|
|
89
|
+
├── .orbit-thread/
|
|
90
|
+
│ └── config.json # tracked project preferences
|
|
91
|
+
└── docs/
|
|
92
|
+
├── PRODUCT.md
|
|
93
|
+
├── DESIGN.md
|
|
94
|
+
├── ARCHITECTURE.md
|
|
95
|
+
├── SECURITY.md
|
|
96
|
+
└── ROADMAP.md
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The first successful Handoff also creates `HANDOFF-STATE.md`. That file and Orbit Thread's local ownership state are ignored by Git.
|
|
100
|
+
|
|
101
|
+
### Which document should change?
|
|
102
|
+
|
|
103
|
+
| Work completed | Update |
|
|
104
|
+
| --- | --- |
|
|
105
|
+
| Product behaviour, copy or scope | `PRODUCT.md` |
|
|
106
|
+
| Interface, layouts or user experience | `DESIGN.md` |
|
|
107
|
+
| Runtime, data flow or integrations | `ARCHITECTURE.md` |
|
|
108
|
+
| Authentication, permissions or secrets handling | `SECURITY.md` |
|
|
109
|
+
| Plans that have not been implemented | `ROADMAP.md` |
|
|
110
|
+
|
|
111
|
+
The generated instructions ask coding agents to read only the documents and source files they need. After verified changes, they should **update the relevant sections in place**, not pile new notes underneath old ones.
|
|
112
|
+
|
|
113
|
+
They also tell agents to preserve applied migrations, leave history to Git and run an appropriate check before claiming work is finished.
|
|
114
|
+
|
|
115
|
+
## Handoff and Resume
|
|
116
|
+
|
|
117
|
+
### When to save a handoff
|
|
118
|
+
|
|
119
|
+
Handoff is intended for moments that matter:
|
|
120
|
+
|
|
121
|
+
- After a verified milestone that changes the repository or lasting project information.
|
|
122
|
+
- At the end of a coding task that made those changes.
|
|
123
|
+
- Before clearing a session or stopping because of a usage or context warning.
|
|
124
|
+
|
|
125
|
+
It is not necessary for ordinary questions or tiny edits with no lasting effect. Each successful checkpoint **replaces** the previous handoff.
|
|
126
|
+
|
|
127
|
+
### What gets saved?
|
|
128
|
+
|
|
129
|
+
Handoffs are usually around 30 lines, with a **hard limit of 50 lines**.
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
# Handoff State
|
|
133
|
+
|
|
134
|
+
Updated: 07-10-2026 00:30
|
|
135
|
+
|
|
136
|
+
## Current objective
|
|
137
|
+
- Finish account security settings.
|
|
138
|
+
|
|
139
|
+
## Completed milestones
|
|
140
|
+
- Added the settings route.
|
|
141
|
+
- Connected password changes and session revocation.
|
|
142
|
+
|
|
143
|
+
## In progress
|
|
144
|
+
- Passkey management UI.
|
|
145
|
+
|
|
146
|
+
## Open issues / risks
|
|
147
|
+
- Passkey removal still needs a browser test.
|
|
148
|
+
|
|
149
|
+
## Immediate next steps
|
|
150
|
+
1. Finish passkey management.
|
|
151
|
+
2. Run the authentication suite.
|
|
152
|
+
|
|
153
|
+
## Verification
|
|
154
|
+
- Typecheck passed.
|
|
155
|
+
- Unit tests passed: 42/42.
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The writer validates the replacement before saving it, checks for recognisable secret patterns and writes the file atomically. **It makes no network requests and does not change Git.** Secret detection is a safety net, not a guarantee; never put sensitive data in a handoff.
|
|
159
|
+
|
|
160
|
+
### Starting a fresh session
|
|
161
|
+
|
|
162
|
+
Start each new coding task in a fresh chat. Orbit Setup asks the agent to invoke Resume once when the session starts (automatically where the host supports it). If it does not start automatically, use `$orbit-resume`, `/orbit-resume`, or `/orbit-thread:orbit-resume` in Claude marketplace installs. Do not invoke it repeatedly in the same session.
|
|
163
|
+
|
|
164
|
+
For a terminal summary, run:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
npx orbit-thread resume
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Resume prints the handoff objective, verified milestones, unfinished work, risks, verification, current branch and working-tree status, next steps and relevant living-doc paths. It is read-only: it does not modify files or Git, install tools, deploy, or inspect secret files. It uses current repository evidence over stale handoff details, flags a handoff that appears older than the latest commit, and preserves dirty changes. If the handoff is absent or invalid, it says what is unknown rather than guessing.
|
|
171
|
+
|
|
172
|
+
This lightweight checkpoint saves tokens by replacing repeated conversation history with a short summary and only the project documents the next task needs. It cannot recover details that were never recorded, prove that an unrecorded check passed, or determine the user's next goal when none was stated. Use the current request as the objective and say when evidence is missing.
|
|
173
|
+
|
|
174
|
+
The project instructions ask the agent to:
|
|
175
|
+
|
|
176
|
+
1. Use the Resume summary or read `HANDOFF-STATE.md` once if no summary was supplied.
|
|
177
|
+
2. Check the branch, working tree, diff summary and recent Git history.
|
|
178
|
+
3. Read only living docs relevant to the current task.
|
|
179
|
+
4. Inspect only source needed for the next action.
|
|
180
|
+
5. Preserve unfinished work and continue from the latest verified point.
|
|
181
|
+
|
|
182
|
+
You do not need to paste an old conversation into the next session.
|
|
183
|
+
|
|
184
|
+
## Configure subagents
|
|
185
|
+
|
|
186
|
+
Orbit Thread only **records preferences**. It does not launch subagents itself.
|
|
187
|
+
|
|
188
|
+
By default, agents should use helpers only when the work warrants them. The configured maximum is **two**, and helpers should not spawn further helpers.
|
|
189
|
+
|
|
190
|
+
**Set the limit:**
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
npx orbit-thread configure --max-subagents 2
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**Turn subagents off:**
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
npx orbit-thread configure --max-subagents 0
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Save preferred models and reasoning:**
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
npx orbit-thread configure --agent codex --model "GPT-6 Luna" --reasoning high
|
|
206
|
+
npx orbit-thread configure --agent claude --model "Claude Sonnet 5.5" --effort medium
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Check the saved settings:**
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
npx orbit-thread configure --show
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Reset one agent's preferences:**
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
npx orbit-thread configure --agent claude --reset-subagents
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
The settings live in `.orbit-thread/config.json` and are reflected in Orbit Thread's managed section of `AGENTS.md`. They are preferences, not requirements. If a named model is unavailable, the agent can use a suitable alternative.
|
|
222
|
+
|
|
223
|
+
## Check your setup
|
|
224
|
+
|
|
225
|
+
> 🩺 **Doctor** checks Orbit Thread itself. It does not test whether your application works.
|
|
226
|
+
|
|
227
|
+
Run it after installing, updating, changing configuration or moving to a fresh checkout:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
npx orbit-thread doctor --agent both --scope project
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Or check each integration separately:
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
npx orbit-thread doctor --agent codex --scope project
|
|
237
|
+
npx orbit-thread doctor --agent claude --scope project
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
Doctor checks skill versions (including Resume), project configuration, managed instruction blocks, living docs, Git ignore rules and handoff size.
|
|
241
|
+
|
|
242
|
+
**How do you know it passed?** A successful command exits with status `0`. To print a clear confirmation:
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
npx orbit-thread doctor --agent both --scope project && echo "Orbit Thread Doctor passed"
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
A nonzero result means the continuity setup needs attention. It does **not** necessarily mean your app or deployment is broken.
|
|
249
|
+
|
|
250
|
+
For a quicker check of installed managed skills only:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
npx orbit-thread check
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Installation options
|
|
257
|
+
|
|
258
|
+
### Requirements
|
|
259
|
+
|
|
260
|
+
- **Node.js 20 or later**
|
|
261
|
+
- **Git** for normal repository work
|
|
262
|
+
- **POSIX shell and standard Unix tools** for the handoff writer
|
|
263
|
+
|
|
264
|
+
Orbit Thread supports **macOS and Linux**. For Windows, use **WSL**; native Windows is not currently supported.
|
|
265
|
+
|
|
266
|
+
### npm for Codex or Claude Code
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
npx orbit-thread install
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
| Agent | Project skill directories |
|
|
273
|
+
| --- | --- |
|
|
274
|
+
| Codex | `.agents/skills/handoff/`, `.agents/skills/orbit-setup/` and `.agents/skills/orbit-resume/` |
|
|
275
|
+
| Claude Code | `.claude/skills/handoff/`, `.claude/skills/orbit-setup/` and `.claude/skills/orbit-resume/` |
|
|
276
|
+
|
|
277
|
+
A user level install uses the equivalent directories under `~/.agents/skills/` or `~/.claude/skills/`.
|
|
278
|
+
|
|
279
|
+
### Claude GitHub marketplace
|
|
280
|
+
|
|
281
|
+
In **Claude Code**, run:
|
|
282
|
+
|
|
283
|
+
```text
|
|
284
|
+
/plugin marketplace add shab1h-gh/orbit-thread
|
|
285
|
+
/plugin install orbit-thread@orbit-thread
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Or use these Terminal commands:
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
claude plugin marketplace add shab1h-gh/orbit-thread
|
|
292
|
+
claude plugin install orbit-thread@orbit-thread
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
This GitHub marketplace route is separate from the **official Anthropic public directory**. Installing from GitHub does not mean the plugin has been approved for that directory.
|
|
296
|
+
|
|
297
|
+
## Command reference
|
|
298
|
+
|
|
299
|
+
| Command | Purpose |
|
|
300
|
+
| --- | --- |
|
|
301
|
+
| `npx orbit-thread install` | Install the three skills for selected agents. |
|
|
302
|
+
| `npx orbit-thread setup` | Prepare or update project docs and managed instructions. |
|
|
303
|
+
| `npx orbit-thread resume` | Print a concise, read-only project and Git summary. |
|
|
304
|
+
| `npx orbit-thread configure` | Save project subagent preferences. |
|
|
305
|
+
| `npx orbit-thread doctor` | Check the project's continuity setup. |
|
|
306
|
+
| `npx orbit-thread check` | Check managed skill installation only. |
|
|
307
|
+
| `npx orbit-thread@latest update` | Update managed skills that have not been locally changed. |
|
|
308
|
+
| `npx orbit-thread uninstall` | Remove managed skills and blocks, preserving project docs and state. |
|
|
309
|
+
| `npx orbit-thread init` | Older alias for `setup`. |
|
|
310
|
+
|
|
311
|
+
Common options:
|
|
312
|
+
|
|
313
|
+
```text
|
|
314
|
+
--agent codex|claude|both
|
|
315
|
+
--scope project|user
|
|
316
|
+
--yes
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Update an existing installation
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
npx orbit-thread@latest update --agent both --scope project --yes
|
|
323
|
+
npx orbit-thread@latest setup --agent both --yes
|
|
324
|
+
npx orbit-thread doctor --agent both --scope project
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
The update command protects locally edited managed skill files. Setup updates managed project instructions and creates missing living docs without replacing existing equivalents.
|
|
328
|
+
|
|
329
|
+
### Moving from Orbit Handoff 1.0.x
|
|
330
|
+
|
|
331
|
+
Orbit Thread is the successor to **Orbit Handoff**. The v1.1 and later CLI recognises compatible older managed installations and state while preserving local edits.
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
npx orbit-thread@latest update --agent both --scope project --yes
|
|
335
|
+
npx orbit-thread@latest setup --agent both --yes
|
|
336
|
+
npx orbit-thread doctor --agent both --scope project
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
The old `orbit-handoff` binary name remains an alias inside the new package. Earlier npm releases remain unchanged.
|
|
340
|
+
|
|
341
|
+
If you installed the Claude GitHub marketplace plugin, update or reinstall it from `shab1h-gh/orbit-thread` and run `/orbit-thread:orbit-setup`.
|
|
342
|
+
|
|
343
|
+
## Troubleshooting
|
|
344
|
+
|
|
345
|
+
<details>
|
|
346
|
+
<summary><strong>Doctor reports a changed AGENTS.md or CLAUDE.md block</strong></summary>
|
|
347
|
+
|
|
348
|
+
A Markdown formatter can change whitespace inside an Orbit Thread managed block. That can fail the integrity check even when the text looks fine.
|
|
349
|
+
|
|
350
|
+
Inspect the changes first:
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
git diff -- AGENTS.md CLAUDE.md
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Only if those files have no work you need to keep**, restore them and rerun setup:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
git restore -- AGENTS.md CLAUDE.md
|
|
360
|
+
npx orbit-thread setup --agent both --yes
|
|
361
|
+
npx orbit-thread doctor --agent both --scope project
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
If you have intentional edits, do **not** restore the whole files. Repair only the affected managed block, then rerun setup and Doctor. Consider excluding `AGENTS.md` and `CLAUDE.md` from Prettier using `.prettierignore`.
|
|
365
|
+
|
|
366
|
+
</details>
|
|
367
|
+
|
|
368
|
+
<details>
|
|
369
|
+
<summary><strong>Setup refuses to overwrite a managed block</strong></summary>
|
|
370
|
+
|
|
371
|
+
That protection is deliberate. Orbit Thread will not replace a block it can no longer confirm it owns.
|
|
372
|
+
|
|
373
|
+
Review the block and its markers, preserve your own instructions, repair the managed portion and run:
|
|
374
|
+
|
|
375
|
+
```bash
|
|
376
|
+
npx orbit-thread setup --agent both --yes
|
|
377
|
+
npx orbit-thread doctor --agent both --scope project
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
Do not delete `.orbit-thread/state.json` or remove markers to get around the check.
|
|
381
|
+
|
|
382
|
+
</details>
|
|
383
|
+
|
|
384
|
+
<details>
|
|
385
|
+
<summary><strong>My handoff was rejected</strong></summary>
|
|
386
|
+
|
|
387
|
+
Keep `HANDOFF-STATE.md` at **50 lines or fewer**. Remove credentials, tokens, keys and sensitive personal or production information, then retry. The previous successful handoff is preserved when validation fails.
|
|
388
|
+
|
|
389
|
+
</details>
|
|
390
|
+
|
|
391
|
+
<details>
|
|
392
|
+
<summary><strong>Does Orbit Thread synchronise chats across agents?</strong></summary>
|
|
393
|
+
|
|
394
|
+
No. It keeps project documents and a local handoff that agents can read. It does not copy conversation history between Codex and Claude Code. A fresh session should check the handoff and Git rather than assume it has the earlier chat's context.
|
|
395
|
+
|
|
396
|
+
</details>
|
|
397
|
+
|
|
398
|
+
<details>
|
|
399
|
+
<summary><strong>What if a configured model is unavailable?</strong></summary>
|
|
400
|
+
|
|
401
|
+
The subagent model and reasoning values are suggestions, not enforced settings. Use an appropriate available model and keep the configured helper limit.
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
npx orbit-thread configure --show
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
</details>
|
|
408
|
+
|
|
409
|
+
<details>
|
|
410
|
+
<summary><strong>npm reports a cache permission error</strong></summary>
|
|
411
|
+
|
|
412
|
+
Try the Doctor command in your normal Terminal and check npm's cache before changing any permissions:
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
npm config get cache
|
|
416
|
+
npm cache verify
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
A restricted coding environment may report a permissions error even when your Mac's cache is healthy. Do not run npm with `sudo` or change ownership without identifying the failing path.
|
|
420
|
+
|
|
421
|
+
</details>
|
|
422
|
+
|
|
423
|
+
## Security and privacy
|
|
424
|
+
|
|
425
|
+
> 🔒 Orbit Thread's handoff writer runs locally. It does not send files to an Orbit Thread service, collect telemetry or alter Git.
|
|
426
|
+
|
|
427
|
+
The installer protects unmanaged skills and locally modified managed files. Setup leaves unrelated instructions and existing project documents alone.
|
|
428
|
+
|
|
429
|
+
The secret checker catches some recognisable patterns, **not every type of sensitive information**. Do not include passwords, API keys, recovery codes, personal data or production secrets in handoffs or living docs.
|
|
430
|
+
|
|
431
|
+
Installing packages or using a coding agent can still involve **npm, GitHub, OpenAI or Anthropic** under those providers' own terms and privacy policies.
|
|
432
|
+
|
|
433
|
+
Read [Security](SECURITY.md) and [Privacy](PRIVACY.md) for the details.
|
|
434
|
+
|
|
435
|
+
## Provider directories
|
|
436
|
+
|
|
437
|
+
The repository includes a portable skills plugin ZIP for the OpenAI upload flow and a Claude plugin manifest for Anthropic and GitHub distribution.
|
|
438
|
+
|
|
439
|
+
**Submission, approval and publication are separate steps.** A working npm or GitHub installation does not establish that a plugin is publicly listed by OpenAI or Anthropic. See [directory submission notes](docs/SUBMISSION.md).
|
|
440
|
+
|
|
441
|
+
## Contributing
|
|
442
|
+
|
|
443
|
+
Bug reports, documentation improvements and focused pull requests are welcome.
|
|
444
|
+
|
|
445
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md), or [open an issue](https://github.com/shab1h-gh/orbit-thread/issues).
|
|
446
|
+
|
|
447
|
+
## Licence
|
|
448
|
+
|
|
449
|
+
[MIT](LICENSE). Created by **Shabih Anwar**.
|
package/SECURITY.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Security
|
|
2
|
+
|
|
3
|
+
Orbit Thread keeps handoff and project-continuity state local.
|
|
4
|
+
|
|
5
|
+
The Handoff writer makes no network requests and does not mutate Git. It validates a temporary file before replacing the previous handoff with a same-directory atomic rename. Failed validation leaves the previous file intact and removes temporary residue. New handoffs inherit `mktemp`'s restrictive permissions.
|
|
6
|
+
|
|
7
|
+
The secret check is a backstop for recognisable credential/private-key patterns, not a complete DLP system. Rejection messages include line numbers rather than matched content.
|
|
8
|
+
|
|
9
|
+
The npm CLI copies the same canonical skills to supported agents. It records file hashes, refuses unmanaged skill collisions or locally edited managed installations, preserves edited files during uninstall and rejects symlinked destinations. Setup uses ownership-tracked instruction blocks, preserves unrelated instructions and existing living docs, and writes project subagent preferences only into Orbit Thread's managed AGENTS.md block.
|
|
10
|
+
|
|
11
|
+
There are no runtime npm dependencies or postinstall hooks.
|
|
12
|
+
|
|
13
|
+
`npx` and plugin installation may access their registries or GitHub. Your coding agent uses its own provider and permissions; Orbit Thread does not expand those permissions or sandbox the host agent.
|
|
14
|
+
|
|
15
|
+
Please report vulnerabilities privately through the repository security advisory form after the repository rename:
|
|
16
|
+
`https://github.com/shab1h-gh/orbit-thread/security/advisories/new`
|
|
17
|
+
|
|
18
|
+
Use synthetic data in reports. Never put live secrets or private project state in public issues.
|