handoff-bridge 0.1.3 → 0.1.4
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/README.en.md +11 -0
- package/README.md +11 -0
- package/bin/cli.mjs +4 -2
- package/package.json +2 -1
- package/src/distribution-contract.mjs +2 -1
package/README.en.md
CHANGED
|
@@ -13,6 +13,7 @@ Run one command at the project root and choose exactly one agent.
|
|
|
13
13
|
```bash
|
|
14
14
|
npx handoff-bridge@latest --codex
|
|
15
15
|
npx handoff-bridge@latest --claude
|
|
16
|
+
npx handoff-bridge@latest --gemini
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
Pass a path to install into another project.
|
|
@@ -25,6 +26,7 @@ npx handoff-bridge@latest --codex /path/to/project
|
|
|
25
26
|
|---|---|
|
|
26
27
|
| Codex | `.agents/skills/handoff-bridge/` |
|
|
27
28
|
| Claude | `.claude/skills/handoff-bridge/` |
|
|
29
|
+
| Gemini CLI | `.gemini/skills/handoff-bridge/` |
|
|
28
30
|
|
|
29
31
|
The installer does not run a model and does not use an API key or Claude Subscription authentication. Only `npx` may use the network to download the npm package.
|
|
30
32
|
|
|
@@ -36,6 +38,15 @@ After installation, ask the agent:
|
|
|
36
38
|
Use handoff-bridge to create a handoff for the next session.
|
|
37
39
|
```
|
|
38
40
|
|
|
41
|
+
Gemini CLI automatically exposes a slash command for the skill, so you can also start it with:
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
/handoff-bridge
|
|
45
|
+
/handoff-bridge Save it to docs/handoff.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If Gemini CLI was already running when you installed it, run `/skills reload`. If the skill or command does not appear, confirm that you trusted the project when prompted, then check discovery with `/skills list`.
|
|
49
|
+
|
|
39
50
|
Without an explicit destination, the skill only returns validated Markdown in the conversation. To save it, include the complete destination path in your request.
|
|
40
51
|
|
|
41
52
|
## File protection
|
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
```bash
|
|
14
14
|
npx handoff-bridge@latest --codex
|
|
15
15
|
npx handoff-bridge@latest --claude
|
|
16
|
+
npx handoff-bridge@latest --gemini
|
|
16
17
|
```
|
|
17
18
|
|
|
18
19
|
別のプロジェクトへ入れる場合はパスを末尾に指定します。
|
|
@@ -27,6 +28,7 @@ npx handoff-bridge@latest --codex /path/to/project
|
|
|
27
28
|
|---|---|
|
|
28
29
|
| Codex | `.agents/skills/handoff-bridge/` |
|
|
29
30
|
| Claude | `.claude/skills/handoff-bridge/` |
|
|
31
|
+
| Gemini CLI | `.gemini/skills/handoff-bridge/` |
|
|
30
32
|
|
|
31
33
|
このインストーラーはモデルを実行せず、API キーや Claude Subscription の認証も使いません。`npx` が npm パッケージを取得する通信だけが発生する場合があります。
|
|
32
34
|
|
|
@@ -38,6 +40,15 @@ npx handoff-bridge@latest --codex /path/to/project
|
|
|
38
40
|
handoff-bridgeで次のセッションへの引き継ぎを作って。
|
|
39
41
|
```
|
|
40
42
|
|
|
43
|
+
Gemini CLIはskillからslash commandを自動的に用意するため、次の形でも起動できます。
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
/handoff-bridge
|
|
47
|
+
/handoff-bridge 保存先を docs/handoff.md にして
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
起動中のGemini CLIへインストールした場合は、`/skills reload`を実行してください。skillやcommandが表示されない場合は、最初にそのprojectを信頼する確認へ同意したか確かめてから、`/skills list`で認識状態を確認します。
|
|
51
|
+
|
|
41
52
|
保存先を明示しなければ、検証済みの Markdown を会話へ返すだけです。ファイルへ保存したい場合は、依頼の中で保存先のパスを省略せず指定してください。
|
|
42
53
|
|
|
43
54
|
## ファイル保護
|
package/bin/cli.mjs
CHANGED
|
@@ -8,14 +8,16 @@ const HELP = `handoff-bridge installs the project-local handoff skill.
|
|
|
8
8
|
Usage:
|
|
9
9
|
handoff-bridge --codex [project-root]
|
|
10
10
|
handoff-bridge --claude [project-root]
|
|
11
|
+
handoff-bridge --gemini [project-root]
|
|
11
12
|
handoff-bridge --help
|
|
12
13
|
|
|
13
14
|
Existing identical files are skipped. If any existing file differs, nothing is written.`;
|
|
14
15
|
|
|
15
16
|
function parseArguments(arguments_) {
|
|
16
17
|
if (arguments_.length === 1 && (arguments_[0] === '--help' || arguments_[0] === '-h')) return { help: true };
|
|
17
|
-
const
|
|
18
|
-
const
|
|
18
|
+
const agentFlags = new Set(['--codex', '--claude', '--gemini']);
|
|
19
|
+
const agents = arguments_.filter((value) => agentFlags.has(value));
|
|
20
|
+
const paths = arguments_.filter((value) => !agentFlags.has(value));
|
|
19
21
|
if (agents.length !== 1 || paths.length > 1 || paths.some((value) => value.startsWith('-'))) {
|
|
20
22
|
throw new DistributionContractError('invalid-arguments', HELP);
|
|
21
23
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "handoff-bridge",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Create compact, verifiable handoffs between coding-agent sessions.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"keywords": [
|
|
37
37
|
"codex",
|
|
38
38
|
"claude",
|
|
39
|
+
"gemini",
|
|
39
40
|
"handoff",
|
|
40
41
|
"session-continuity",
|
|
41
42
|
"skill"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export const AGENT_TARGETS = Object.freeze({
|
|
2
2
|
codex: '.agents/skills/handoff-bridge',
|
|
3
3
|
claude: '.claude/skills/handoff-bridge',
|
|
4
|
+
gemini: '.gemini/skills/handoff-bridge',
|
|
4
5
|
});
|
|
5
6
|
|
|
6
7
|
export class DistributionContractError extends Error {
|
|
@@ -16,7 +17,7 @@ export function getAgentTarget(agent) {
|
|
|
16
17
|
if (typeof agent !== 'string' || !Object.hasOwn(AGENT_TARGETS, agent)) {
|
|
17
18
|
throw new DistributionContractError(
|
|
18
19
|
'unsupported-agent',
|
|
19
|
-
'Choose exactly one supported agent: codex or
|
|
20
|
+
'Choose exactly one supported agent: codex, claude, or gemini.',
|
|
20
21
|
);
|
|
21
22
|
}
|
|
22
23
|
return AGENT_TARGETS[agent];
|