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.
@@ -0,0 +1,118 @@
1
+ # npm publication and releases
2
+
3
+ Orbit Thread v1.2.0 adds Orbit Resume to the Orbit Thread line, which succeeded Orbit Handoff v1.0.x in v1.1.0.
4
+
5
+ `orbit-thread@1.1.0` is already published. v1.2.0 is a new version.
6
+
7
+ Historical `orbit-handoff@1.0.0`, `orbit-handoff@1.0.1` and `orbit-thread@1.1.0` releases are immutable. Do not republish, unpublish or move their release tags.
8
+
9
+ The new primary package is:
10
+
11
+ ```text
12
+ orbit-thread
13
+ ```
14
+
15
+ ## Release checks
16
+
17
+ Before publication:
18
+
19
+ ```sh
20
+ npm test
21
+ npm run validate
22
+ npm run scan:public
23
+ npm run build:plugin
24
+ npm pack
25
+ npm run smoke:pack
26
+ ```
27
+
28
+ Also validate the Claude plugin with the currently installed Claude Code release:
29
+
30
+ ```sh
31
+ claude plugin validate ./plugin --strict
32
+ claude plugin validate . --strict
33
+ ```
34
+
35
+ Inspect:
36
+
37
+ ```text
38
+ orbit-thread-1.2.0.tgz
39
+ dist/orbit-thread-plugin-1.2.0.zip
40
+ ```
41
+
42
+ The npm tarball should contain 28 files (version 1.2.0, including `lib/resume.mjs` and `plugin/skills/orbit-resume/`). The plugin ZIP should contain the portable `plugin.json`, the three canonical skills and the listing icon. Neither should contain tests, `dist/`, credentials or other build residue.
43
+
44
+ Confirm all three canonical skills are present:
45
+
46
+ ```text
47
+ plugin/skills/handoff/
48
+ plugin/skills/orbit-setup/
49
+ plugin/skills/orbit-resume/
50
+ ```
51
+
52
+ and that the packed CLI can install, setup, configure, doctor, update and uninstall in a disposable repository.
53
+
54
+ ## Publish
55
+
56
+ After release checks pass:
57
+
58
+ ```sh
59
+ npm publish ./orbit-thread-1.2.0.tgz --access public --registry https://registry.npmjs.org/
60
+ ```
61
+
62
+ Complete npm's normal browser/2FA challenge if prompted. Never weaken npm account security to automate publication.
63
+
64
+ If interactive authentication is unavailable to the release agent, stop with the verified tarball and give the publisher the exact command above.
65
+
66
+ ## Verify public distribution
67
+
68
+ After publication:
69
+
70
+ ```sh
71
+ npm view orbit-thread@latest version repository --registry https://registry.npmjs.org/
72
+ mkdir /tmp/orbit-thread-public-smoke
73
+ cd /tmp/orbit-thread-public-smoke
74
+ git init
75
+ npx orbit-thread@latest install --agent both --scope project --yes
76
+ npx orbit-thread@latest setup --agent both --yes
77
+ npx orbit-thread@latest doctor --agent both --scope project
78
+ npx orbit-thread@latest uninstall --agent both --scope project --yes
79
+ ```
80
+
81
+ Also confirm `npx orbit-thread@latest resume` runs read-only in the disposable repository. Verify `latest` resolves to `1.2.0` and package metadata points to `shab1h-gh/orbit-thread`.
82
+
83
+ ## Existing Orbit Handoff users
84
+
85
+ Because the npm package name changes, users should migrate through the new package explicitly:
86
+
87
+ ```sh
88
+ npx orbit-thread@latest update --agent both --scope project --yes
89
+ npx orbit-thread@latest setup --agent both --yes
90
+ npx orbit-thread doctor --agent both --scope project
91
+ ```
92
+
93
+ The v1.1 and later CLI accepts compatible Orbit Handoff ownership/project state and migrates it while refusing locally edited managed files.
94
+
95
+ After Orbit Thread is publicly verified, the old package may be deprecated with a migration message, but must not be unpublished:
96
+
97
+ ```sh
98
+ npm deprecate 'orbit-handoff@<=1.0.1' 'Renamed to orbit-thread. Install orbit-thread@latest.'
99
+ ```
100
+
101
+ That command also requires publisher authentication and is optional.
102
+
103
+ ## Claude GitHub-marketplace users
104
+
105
+ After the repository is renamed:
106
+
107
+ ```sh
108
+ claude plugin marketplace add shab1h-gh/orbit-thread
109
+ claude plugin install orbit-thread@orbit-thread
110
+ ```
111
+
112
+ Then run:
113
+
114
+ ```text
115
+ /orbit-thread:orbit-setup
116
+ ```
117
+
118
+ Public OpenAI and Anthropic directory publication is separate from npm/GitHub distribution. See [SUBMISSION.md](SUBMISSION.md).
@@ -0,0 +1,72 @@
1
+ # Directory submission
2
+
3
+ Updated 12 October 2026.
4
+
5
+ Provider-directory review is separate from npm, GitHub and standalone installation.
6
+
7
+ ## OpenAI / ChatGPT Plugins Directory
8
+
9
+ Orbit Thread v1.2.0 is submitted as:
10
+
11
+ ```text
12
+ dist/orbit-thread-plugin-1.2.0.zip
13
+ ```
14
+
15
+ Build it with:
16
+
17
+ ```sh
18
+ npm run build:plugin
19
+ ```
20
+
21
+ The ZIP contains portable `plugin.json`, all three canonical skills, OpenAI interface metadata, the Orbit Setup onboarding skill, listing icon and compatibility metadata. Orbit Thread needs no MCP server or external account.
22
+
23
+ ### Submission flow
24
+
25
+ 1. Complete release validation and build the final v1.2.0 ZIP from the release commit/tag.
26
+ 2. Open the OpenAI Plugins publisher dashboard:
27
+ `https://platform.openai.com/plugins`
28
+ 3. Upload `orbit-thread-plugin-1.2.0.zip`.
29
+ 4. Complete automated checks and resolve genuine findings.
30
+ 5. Review listing metadata and required policy/data-handling declarations.
31
+ 6. Choose **Submit for review**.
32
+ 7. Track **Review status** in the same dashboard.
33
+ 8. After approval, choose **Publish plugin** when ready.
34
+
35
+ Changing bundled skills or plugin metadata requires a newly uploaded ZIP; changing GitHub alone does not update an already uploaded package.
36
+
37
+ Only advertise public availability after the dashboard says the plugin is published.
38
+
39
+ ## Anthropic / Claude public directory
40
+
41
+ The GitHub marketplace route and Anthropic's public Claude directory are separate.
42
+
43
+ After the repository rename, direct GitHub installation is:
44
+
45
+ ```text
46
+ /plugin marketplace add shab1h-gh/orbit-thread
47
+ /plugin install orbit-thread@orbit-thread
48
+ ```
49
+
50
+ or:
51
+
52
+ ```sh
53
+ claude plugin marketplace add shab1h-gh/orbit-thread
54
+ claude plugin install orbit-thread@orbit-thread
55
+ ```
56
+
57
+ For public-directory publication, use Anthropic's developer directory submission portal. Anthropic announced that developers on paid Claude plans can submit plugins, track review and see usage after publication.
58
+
59
+ Before submission:
60
+
61
+ ```sh
62
+ claude plugin validate ./plugin --strict
63
+ claude plugin validate . --strict
64
+ ```
65
+
66
+ Then use the directory management/submission surface in Claude, connect the GitHub account that owns `shab1h-gh/orbit-thread`, select the repository/plugin, complete the listing details and submit it for review. Use the immutable v1.2.0 release/tag once created.
67
+
68
+ A successful GitHub marketplace installation does not mean the plugin is approved for Anthropic's public directory.
69
+
70
+ ## General rule
71
+
72
+ Provider dashboard state wins over repository documentation. Update these instructions in place if either provider changes its submission flow; Git history already records the old process.
@@ -0,0 +1,239 @@
1
+ # Release validation record
2
+
3
+ Checks performed on 5 October 2026, using disposable Git repositories.
4
+
5
+ ## Original v1.0.0 checks
6
+
7
+ ### Automated tests
8
+
9
+ All 26 tests passed locally on macOS with Node.js 24. Tests cover first creation,
10
+ overwrite, exactly 50 lines, 51-line rejection, final lines with and without a
11
+ newline, empty and synthetic secret/private-key rejection, preservation of the
12
+ old file, paths with spaces, cleanup after validation and rename failures, and
13
+ unchanged Git index/refs with network-command guards.
14
+
15
+ CLI tests cover Codex, Claude and both-agent project installs, identical copies,
16
+ reinstall, check, update across package versions, uninstall, user-scope locations
17
+ in a disposable home, init idempotency and block upgrades, ignore rules, existing
18
+ instructions, edited files/blocks, unrelated files/directories, symlinks and
19
+ invalid ownership paths. No live user installation is altered by these tests.
20
+
21
+ CI ran the suite, local package validation, source scan, ZIP build and npm pack
22
+ on macOS/Linux with Node.js 20 and 24. All four jobs passed in the
23
+ [initial public CI run](https://github.com/shab1h-gh/orbit-handoff/actions/runs/37254076291).
24
+
25
+ ### Native discovery and packaging
26
+
27
+ - Codex CLI 0.160.0 returned the installed `handoff` from its native `skills/list`
28
+ API, with display name Orbit Handoff and a `$handoff` default prompt.
29
+ - Claude Code 2.1.289 passed `claude plugin validate ./plugin --strict` and
30
+ `claude plugin validate . --strict`.
31
+ - A local marketplace install succeeded. `claude plugin details orbit-handoff`
32
+ reported one `handoff` skill, zero agents/hooks/MCP/LSP servers.
33
+ - A second isolated configuration installed `orbit-handoff@orbit-handoff` from
34
+ `shab1h-gh/orbit-handoff` on GitHub and reported version 1.0.0 enabled.
35
+ - Claude startup's `slash_commands` and `skills` arrays contained
36
+ `orbit-handoff:handoff`; its plugin metadata reported version 1.0.0.
37
+ - A standalone Claude project install registered and loaded `handoff`, confirming
38
+ the `/handoff` command independently of the plugin namespace.
39
+ - The attempted Claude model run ended with **Not logged in**. Registration and
40
+ installation are verified; an authenticated agent-driven handoff is untested.
41
+ - The portable manifest passed the official Agent Plugins 1.0.0 JSON Schema
42
+ using Ajv's draft-2020 validator. Local checks cover OpenAI listing limits,
43
+ real PNG assets, skill metadata and the absence of MCP/hooks.
44
+ - `npm pack` was inspected and the packed CLI installed both agents through
45
+ `npx --package` in a clean disposable project.
46
+ - The interactive installer was exercised in a terminal: agent selection,
47
+ project scope selection, destination preview and confirmation all completed.
48
+ - Public-source scans passed. Archives are inspected separately for unwanted
49
+ paths, credentials, test output and build residue before release.
50
+
51
+ ## Publication limits
52
+
53
+ `orbit-handoff@1.0.0` was successfully published manually. Public registry
54
+ verification on 5 October 2026 confirmed version 1.0.0, `latest` resolving to
55
+ 1.0.0 before the patch release, and repository/homepage/issue metadata pointing
56
+ to `shab1h-gh/orbit-handoff`. The previous failed publication attempt is stale
57
+ history; the registry package is available.
58
+
59
+ Neither OpenAI nor Anthropic public directory submission has been made.
60
+ Provider review, identity verification and portal checks remain publisher steps.
61
+ Native Windows, WSL-specific operation and ordinary ChatGPT execution are
62
+ unverified; the supported runtime is macOS/Linux with a POSIX shell.
63
+
64
+ ## v1.0.1 patch verification
65
+
66
+ The patch changes documentation and release version metadata only. No installer,
67
+ canonical skill, writer, tests or packaging logic changed.
68
+
69
+ ### Public v1.0.0 smoke test
70
+
71
+ Downloaded the actual public package with an isolated npm cache and ran
72
+ `npx orbit-handoff@1.0.0 install --agent both --scope project --yes` in a disposable
73
+ Git repository on macOS with Node.js 24.16.0 and npm 12.0.2. Verified:
74
+
75
+ - Codex and Claude installs contain byte-identical skill files and ownership metadata.
76
+ - The npm CLI has executable permissions. Installed writers are mode 0644 and
77
+ execute through `sh`, matching the canonical skill's invocation contract.
78
+ - `check` succeeds after install; `init` preserves existing AGENTS.md, CLAUDE.md
79
+ and .gitignore content, records ownership and ignores HANDOFF-STATE.md.
80
+ - Reinstall and repeated init preserve bytes and add no duplicate blocks.
81
+ - Init creates no handoff. The writer creates and atomically replaces the file
82
+ with restrictive permissions; empty and 51-line inputs preserve the valid file.
83
+ - No writer temporary files remain. Uninstall restores original configuration,
84
+ removes unchanged owned skills, and preserves unrelated files and the handoff.
85
+ - Edited skills and continuity blocks survive uninstall; check and reinstall
86
+ report edited files with failure status rather than overwriting them.
87
+
88
+ This smoke test exercises the CLI and shell workflow. It does not claim a new
89
+ native agent discovery test or an authenticated agent-driven handoff.
90
+
91
+ ### Local checks and packed v1.0.1 smoke test
92
+
93
+ - All 26 existing tests passed on macOS with Node.js 24.16.0.
94
+ - `npm run validate`, `npm run scan:public` and `npm run build:plugin` passed.
95
+ - Claude Code 2.1.289 passed both `claude plugin validate ./plugin --strict` and
96
+ `claude plugin validate . --strict` for the updated manifests.
97
+ - The portable manifest passed the official Agent Plugins 1.0.0 JSON Schema
98
+ with Ajv's draft-2020 validator and format checks.
99
+ - `npm pack --dry-run` and `npm pack` succeeded using a disposable cache.
100
+ The tarball contains 20 intended files, an executable CLI, version 1.0.1 and
101
+ the corrected README. No dependencies, credentials or build residue are included.
102
+ - The submission ZIP passed its integrity check and both extracted archives
103
+ passed the public/privacy scanner. No private paths or unwanted files were found.
104
+ - The packed 1.0.1 CLI passed the same disposable-repository install, check,
105
+ init, reinstall, handoff and uninstall smoke test described above, including
106
+ edited-content preservation and executable permissions.
107
+ - Complete diff review confirmed that runtime code and canonical skill bytes
108
+ are unchanged. The v1.0.0 tag and release remain untouched.
109
+
110
+ These are pre-publication checks. After publication, verify `latest` resolves to
111
+ 1.0.1 and repeat the public-registry smoke test; report its result in the GitHub
112
+ release. The original CI result above covers v1.0.0; it is not a new 1.0.1 CI claim.
113
+
114
+
115
+ ## v1.1.0 feature validation
116
+
117
+ Validation completed on 7 October 2026 for the Orbit Thread feature release.
118
+
119
+ ### Verified in GitHub CI
120
+
121
+ The final feature-branch workflow passed on macOS and Linux with Node.js 20 and 24.
122
+
123
+ The workflow verified:
124
+
125
+ - the complete Node test suite;
126
+ - package/manifest validation;
127
+ - public/privacy source scanning;
128
+ - deterministic OpenAI/plugin ZIP generation;
129
+ - `npm pack`;
130
+ - a packed-tarball smoke test in a disposable Git repository.
131
+
132
+ The packed smoke test exercised the actual `orbit-thread-1.1.0.tgz` through:
133
+
134
+ - install for Codex and Claude;
135
+ - setup;
136
+ - Claude and Codex subagent configuration;
137
+ - doctor;
138
+ - update;
139
+ - uninstall;
140
+ - preservation of living project docs/config after uninstall.
141
+
142
+ It also verified both canonical skills, the expected living-document templates, `.orbit-thread/config.json`, and that setup does not create `HANDOFF-STATE.md`.
143
+
144
+ ### Behaviour verified by tests
145
+
146
+ Coverage includes:
147
+
148
+ - Orbit Setup creation/idempotency and preservation of existing project docs/instructions;
149
+ - selective project state and Git-ignore management;
150
+ - Orbit Handoff → Orbit Thread project-state migration;
151
+ - managed skill ownership/update/uninstall safeguards;
152
+ - subagent model/reasoning configuration and AGENTS.md reflection;
153
+ - doctor detection of duplicate root/docs living documents;
154
+ - Handoff atomic overwrite, 50-line limit, secret-pattern rejection, failure preservation and no Git/network mutation.
155
+
156
+ ### Invocation policy
157
+
158
+ The canonical Handoff skill intentionally omits Claude's former
159
+ `disable-model-invocation: true` restriction and keeps OpenAI metadata
160
+ `allow_implicit_invocation: true`.
161
+
162
+ Configured Orbit Thread projects therefore permit proactive checkpoints after meaningful verified milestones and completed coding tasks, while manual `$handoff` / `/handoff` invocation remains supported.
163
+
164
+ Orbit Setup remains separately exposed as `$orbit-setup` / `/orbit-setup`.
165
+
166
+ ### Remaining release-gate checks
167
+
168
+ Before publishing/tagging v1.1.0:
169
+
170
+ - validate the final plugin with a current Claude Code installation using `claude plugin validate`;
171
+ - verify native Claude and Codex skill discovery against the final package where those CLIs are available;
172
+ - publish `orbit-thread@1.1.0` and repeat the public-registry smoke test.
173
+
174
+ Those native CLIs are not part of GitHub CI, so CI success does not claim those checks.
175
+
176
+ ### Provider directories
177
+
178
+ OpenAI and Anthropic public-directory review is separate from npm/GitHub distribution. Their publisher dashboards are authoritative after submission; local validation does not imply approval.
179
+
180
+ ## Orbit Resume v1.2.0 validation
181
+
182
+ Release validation completed on 12 October 2026 on the `feature/orbit-resume` branch (PR #3) for v1.2.0. `orbit-thread@1.1.0` was confirmed published on the public npm registry before the version bump; v1.2.0 has not been tagged, published or merged.
183
+
184
+ ### Verified locally for the v1.2.0 release candidate
185
+
186
+ - All 43 automated tests passed, including Codex and Claude project installation,
187
+ reinstall, update, Doctor, missing/invalid/stale handoffs, branch changes,
188
+ future dates, terminal-control sanitisation, secret redaction, and preservation
189
+ of dirty working trees.
190
+ - `npm run validate`, `npm run scan:public`, `npm run build:plugin` and
191
+ `git diff --check` passed.
192
+ - `claude plugin validate ./plugin --strict` and `claude plugin validate . --strict` passed.
193
+ - `npm pack` produced `orbit-thread-1.2.0.tgz` (28 files, including `lib/resume.mjs` and
194
+ `plugin/skills/orbit-resume/`), and `npm run smoke:pack` passed against it in a disposable
195
+ Git project: `resume`, install, setup, configure, Doctor, update and uninstall.
196
+ - `dist/orbit-thread-plugin-1.2.0.zip` contains 16 files: portable and Claude manifests,
197
+ all three skills, icon, licence, privacy and security documents. Both archives report
198
+ version 1.2.0 throughout, with no private paths or build residue.
199
+ - Release metadata (`package.json`, `plugin/plugin.json`, `plugin/.claude-plugin/plugin.json`
200
+ and `.claude-plugin/marketplace.json`) is consistent at 1.2.0; `npm run validate` enforces this.
201
+
202
+ ### Compatibility with v1.1.0 installations
203
+
204
+ Using the published `orbit-thread@1.1.0` from the npm registry, a disposable project was installed
205
+ and set up with `handoff` and `orbit-setup` only, then updated with the packed 1.2.0 CLI.
206
+ Update added `orbit-resume` for Codex and Claude, kept the existing `handoff` and `orbit-setup`
207
+ skills, `.orbit-thread/config.json`, local edits to living docs and user content in `AGENTS.md`, and
208
+ Doctor reported all three skills current at v1.2.0. A locally edited managed skill file was still
209
+ refused with an instruction to preserve changes. The 1.2.0 `resume` command ran read-only,
210
+ and uninstall preserved project docs and configuration.
211
+
212
+ ### Reported native agent testing (not CI)
213
+
214
+ The maintainer reported successful authenticated native testing of the feature-branch skills in fresh
215
+ Codex and Claude Code sessions, using a disposable Git project: Setup, Doctor, handoff
216
+ validation and Resume recovery scenarios passed, and both automatic and explicit manual Resume
217
+ invocation worked in each agent. This was an interactive local test recorded from the
218
+ maintainer's report; it is not part of GitHub CI and was not re-run during release preparation.
219
+ Codex emitted macOS temporary-cache warnings during Git reads but still reported branch,
220
+ status and commit.
221
+
222
+ ### Verified in GitHub CI
223
+
224
+ GitHub CI covers the macOS and Linux Node.js matrix, the test suite, package validation, the
225
+ public-source scan, plugin ZIP generation, `npm pack` and the packed-tarball smoke test. CI does not run
226
+ authenticated Codex or Claude sessions or `claude plugin validate`. The PR #3 CI run on the
227
+ previous commit passed; CI for the release commit is checked on the pull request after push.
228
+
229
+ ### Security review
230
+
231
+ A security review identified a low-risk terminal-control injection through branch metadata in a
232
+ local handoff. Resume strips terminal control sequences from displayed repository and handoff text; a
233
+ regression test confirms they do not reach terminal output.
234
+
235
+ ### Remaining release-gate checks
236
+
237
+ - Merge PR #3, then tag v1.2.0 from the merged release commit.
238
+ - Publish `orbit-thread@1.2.0` and repeat the public-registry smoke test described in
239
+ [PUBLISHING.md](PUBLISHING.md).