chore(catalog): remove Voyage from the open catalog

Operator decision 2026-11-10: v6.5 is out of date, and Voyage is not
shown again until a complete v1.0 on the new architecture. The repository
moves to ktg/voyage (private) and is registered in the private
marketplace, the same move the other plugins made on 2026-10-06. The open
catalog now lists no plugins. Manifest, README and PUBLIC_REPOS change in
the same commit, as the public-link gate requires; the CLI test's fixtures
now use this catalog's own repository, which stays on the public list.

check-public-links, check-versions (0 plugins), check-retired-refs,
check-nav-golden, check-okf-parity exit 0; 244 of 244 tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-11-10 10:18:43 +01:00
commit 4b8c3b4cfe
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
4 changed files with 6 additions and 30 deletions

View file

@ -6,18 +6,8 @@
"email": "ktg@fromaitochitta.com"
},
"metadata": {
"description": "Open-source Claude Code plugins. Currently Voyage; more are added when they are good enough.",
"description": "Open-source Claude Code plugins. None are published right now; plugins are added when they are good enough.",
"version": "1.0.0"
},
"plugins": [
{
"name": "voyage",
"source": {
"source": "url",
"url": "https://git.fromaitochitta.com/open/voyage.git",
"ref": "v6.5.0"
},
"description": "Voyage — a six-command planning pipeline: brief, research, plan, execute, review, continue. Specialized agent swarms, external research triangulation, adversarial and independent post-hoc review, and one-command multi-session resumption."
}
]
"plugins": []
}

View file

@ -1,6 +1,6 @@
# ktg-plugin-marketplace
Open-source Claude Code plugins. Currently Voyage; more are added when they are good enough.
Open-source Claude Code plugins. None are published right now; plugins are added when they are good enough.
Built for my own Claude Code workflow and shared openly for anyone who finds them useful. Solo-maintained, AI-assisted, fork-and-own. Issues are welcome as signals; pull requests are not accepted. See [GOVERNANCE.md](GOVERNANCE.md) for what upstream provides and how this is meant to be used.
@ -63,20 +63,7 @@ propagates to `plugins/known_marketplaces.json` on the next start, and `false` p
## Plugins
### [Voyage](https://git.fromaitochitta.com/open/voyage) `v6.5.0`
A six-command planning pipeline with specialized agent swarms, adversarial review, and zero-friction multi-session resumption. Renamed from `ultraplan-local`/`/ultra*-local` to avoid collision with Anthropic's `/ultraplan` and `/ultrareview`. No cloud dependency.
- **`/trekbrief`** — capture intent through a quality-gated interview; emits a reviewable brief
- **`/trekresearch`** — deep multi-source research with triangulation and confidence ratings
- **`/trekplan`** — transform the brief into an executable, manifest-verified plan
- **`/trekexecute`** — disciplined execution with independent audit and bounded failure recovery
- **`/trekreview`** — independent post-hoc review; severity-tagged findings feed back into planning
- **`/trekcontinue`** — resume the next session from saved state in one command
Per-phase effort and model dialog; `/trekbrief`, `/trekplan`, and `/trekreview` render an operator-annotation HTML view you can mark up and copy back into Claude.
24 agents · 6 commands (+1 helper) · 7 hooks · 832 tests · [Full documentation →](https://git.fromaitochitta.com/open/voyage) · [Migration guide](https://git.fromaitochitta.com/open/voyage/src/branch/main/MIGRATION.md)
None right now. A plugin is listed here again when it is good enough to depend on.
---

View file

@ -19,7 +19,6 @@ const HERE = dirname(fileURLToPath(import.meta.url));
// Org repositories the catalog may link to — the published plugins plus this catalog.
export const PUBLIC_REPOS = [
'ktg-plugin-marketplace',
'voyage',
];
// The files a reader or an installer reaches from the catalog.

View file

@ -55,11 +55,11 @@ function tmpRoot(files) {
test('CLI exits 1 on a hit and 0 on a clean surface, always printing the denominator', () => {
const run = (root) => spawnSync(process.execPath, [CLI, root], { encoding: 'utf8' });
const dirty = run(tmpRoot({ 'README.md': 'https://git.fromaitochitta.com/open/voyage\nhttps://git.fromaitochitta.com/open/gone-private\n' }));
const dirty = run(tmpRoot({ 'README.md': 'https://git.fromaitochitta.com/open/ktg-plugin-marketplace\nhttps://git.fromaitochitta.com/open/gone-private\n' }));
assert.equal(dirty.status, 1);
assert.match(dirty.stdout, /\[ERROR\] link to a repository not listed as public — README\.md:2: open\/gone-private/);
assert.match(dirty.stdout, /2 org-repo links in 1\/2 files/);
const clean = run(tmpRoot({ '.claude-plugin/marketplace.json': '"https://git.fromaitochitta.com/open/voyage.git"' }));
const clean = run(tmpRoot({ '.claude-plugin/marketplace.json': '"https://git.fromaitochitta.com/open/ktg-plugin-marketplace.git"' }));
assert.equal(clean.status, 0);
assert.match(clean.stdout, /1 org-repo links in 1\/2 files, \d+ public repos listed — 0 hit/);
});