geneseed 3.12.0 → 3.13.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 +121 -0
- package/README.md +2 -2
- package/SHIPPED.md +1 -1
- package/adapters/bob/README.md +1 -1
- package/adapters/claude-code/README.md +1 -1
- package/adapters/openclaude/README.md +1 -1
- package/adapters/opencode/README.md +3 -3
- package/docs/README.md +41 -22
- package/docs/concepts/agents.md +3 -1
- package/docs/concepts/collaboration.md +3 -1
- package/docs/concepts/exclusions.md +4 -2
- package/docs/concepts/footprint.md +3 -1
- package/docs/concepts/foreman-mode.md +3 -1
- package/docs/concepts/hook-gates.md +61 -0
- package/docs/concepts/hooks.md +8 -56
- package/docs/concepts/host-matrix.md +38 -0
- package/docs/concepts/hosts.md +6 -32
- package/docs/concepts/loop-branch.md +66 -0
- package/docs/concepts/loop-bricks.md +48 -0
- package/docs/concepts/loop-contracts.md +33 -0
- package/docs/concepts/loop-gates.md +30 -0
- package/docs/concepts/loop-notes.md +43 -0
- package/docs/concepts/loop-risk.md +36 -0
- package/docs/concepts/loop-templates.md +50 -0
- package/docs/concepts/loops.md +24 -116
- package/docs/concepts/lsp.md +2 -0
- package/docs/concepts/memory.md +3 -1
- package/docs/concepts/notebook.md +3 -1
- package/docs/concepts/rules.md +4 -2
- package/docs/concepts/skills.md +3 -1
- package/docs/concepts/themes.md +3 -1
- package/docs/extending.md +23 -8
- package/docs/guides/autostart.md +3 -1
- package/docs/guides/choose-your-setup.md +5 -80
- package/docs/guides/headless.md +5 -3
- package/docs/guides/install-agent-md.md +37 -0
- package/docs/guides/install-bob.md +20 -0
- package/docs/guides/install-claude-code.md +22 -0
- package/docs/guides/install-clone.md +34 -0
- package/docs/guides/install-openclaude.md +25 -0
- package/docs/guides/install-opencode.md +35 -0
- package/docs/guides/install-scripted.md +21 -0
- package/docs/guides/install.md +9 -118
- package/docs/guides/loop-finish.md +54 -0
- package/docs/guides/loop-running.md +66 -0
- package/docs/guides/loop-which-template.md +35 -0
- package/docs/guides/mcp-filesystem.md +41 -0
- package/docs/guides/mcp-gitlab.md +66 -0
- package/docs/guides/mcp-markitdown.md +36 -0
- package/docs/guides/mcp.md +8 -137
- package/docs/guides/migrate.md +3 -1
- package/docs/guides/project-context.md +4 -2
- package/docs/guides/read-non-markdown.md +17 -0
- package/docs/guides/run-a-loop.md +64 -0
- package/docs/guides/run-anywhere.md +2 -0
- package/docs/guides/setup-doctrines.md +55 -0
- package/docs/guides/setup-footprint.md +48 -0
- package/docs/guides/uninstall.md +3 -1
- package/docs/guides/upgrade.md +3 -1
- package/docs/guides/verify.md +3 -1
- package/docs/guides/wiki.md +3 -1
- package/docs/guides/worktree.md +3 -1
- package/docs/reference/about.md +3 -1
- package/docs/reference/cli.md +2 -0
- package/docs/reference/env-context.md +40 -0
- package/docs/reference/environment.md +10 -59
- package/docs/reference/glossary.md +3 -1
- package/docs/reference/loop-actions.md +20 -0
- package/docs/reference/opencode-plugins.md +14 -118
- package/docs/reference/plugin-activity.md +20 -0
- package/docs/reference/plugin-context.md +27 -0
- package/docs/reference/plugin-guard.md +27 -0
- package/docs/reference/plugin-learn.md +27 -0
- package/docs/reference/plugin-notify.md +20 -0
- package/docs/reference/plugin-ponytail.md +19 -0
- package/docs/reference/plugin-workflow.md +25 -0
- package/docs/reference/troubleshoot-doctor.md +50 -0
- package/docs/reference/troubleshoot-hooks.md +99 -0
- package/docs/reference/troubleshoot-install.md +108 -0
- package/docs/reference/troubleshoot-tools.md +56 -0
- package/docs/reference/troubleshoot-update.md +23 -0
- package/docs/reference/troubleshoot-web.md +66 -0
- package/docs/reference/troubleshooting.md +13 -337
- package/docs/understand/a-day.md +3 -1
- package/docs/understand/enforced-vs-asked.md +3 -1
- package/docs/understand/harness.md +2 -0
- package/docs/understand/machine-bob.md +17 -0
- package/docs/understand/machine-claude.md +35 -0
- package/docs/understand/machine-opencode.md +36 -0
- package/docs/understand/on-your-machine.md +12 -55
- package/docs/understand/take-it-out.md +13 -0
- package/docs/web-ui.md +35 -15
- package/harness.config.json +1 -1
- package/js/README.md +11 -3
- package/js/cli-table.json +27 -1
- package/js/hosts/mcp.mjs +1 -1
- package/js/hosts/native.mjs +43 -5
- package/js/inspect/checks-build.mjs +28 -0
- package/js/loop/catalog.mjs +12 -1
- package/js/loop/cli.mjs +28 -6
- package/js/loop/graph.mjs +18 -0
- package/js/loop/registry.mjs +196 -0
- package/js/loop/score.mjs +45 -6
- package/js/loop/state.mjs +125 -11
- package/js/maintain/setup.mjs +1 -1
- package/js/web/actions.mjs +25 -0
- package/js/web/api.mjs +13 -0
- package/js/web/docs.mjs +64 -12
- package/js/web/routes.mjs +5 -1
- package/package.json +1 -1
- package/src/agents/explorer.md +2 -2
- package/src/agents/researcher.md +3 -3
- package/src/bricks/README.md +3 -1
- package/src/bricks/adr-challenge.md +20 -0
- package/src/bricks/adr-draft.md +15 -0
- package/src/bricks/characterize.md +17 -0
- package/src/bricks/ci-fix.md +2 -1
- package/src/bricks/ci-triage.md +20 -0
- package/src/bricks/compat-check.md +16 -0
- package/src/bricks/done-check.md +16 -0
- package/src/bricks/fitness-define.md +22 -0
- package/src/bricks/flake-check.md +17 -0
- package/src/bricks/flake-repro.md +18 -0
- package/src/bricks/identify.md +6 -3
- package/src/bricks/migration-plan.md +21 -0
- package/src/bricks/mutation-check.md +18 -0
- package/src/bricks/plan.md +6 -6
- package/src/bricks/red-test.md +16 -0
- package/src/bricks/review.md +5 -3
- package/src/bricks/spec.md +18 -0
- package/src/bricks/upgrade-scout.md +16 -0
- package/src/loops/api-endpoint.json +31 -0
- package/src/loops/architecture-decision.json +22 -0
- package/src/loops/bugfix.json +1 -0
- package/src/loops/ci-repair.json +19 -0
- package/src/loops/deps-upgrade.json +29 -0
- package/src/loops/enforce-architecture-rule.json +28 -0
- package/src/loops/feature.json +8 -5
- package/src/loops/fix-flaky-tests.json +30 -0
- package/src/loops/legacy-refactor.json +26 -0
- package/src/loops/legacy-tests.json +29 -0
- package/src/loops/refactor.json +5 -1
- package/src/loops/remove-dead-code.json +30 -0
- package/src/loops/spec-first-feature.json +29 -0
- package/src/loops/tdd.json +25 -0
- package/src/loops/update-contract.json +33 -0
- package/src/skills/brick-forge.md +3 -1
- package/src/skills/bruno-collection-generator.md +3 -3
- package/src/skills/bruno-test-writer.md +3 -3
- package/src/skills/ci-fix.md +3 -3
- package/src/skills/consolidate-memory.md +4 -4
- package/src/skills/council.md +1 -1
- package/src/skills/fresh-eyes.md +1 -1
- package/src/skills/git-archaeology.md +1 -1
- package/src/skills/git-rescue.md +4 -3
- package/src/skills/handoff.md +1 -1
- package/src/skills/herdr.md +1 -1
- package/src/skills/learn-mode.md +2 -2
- package/src/skills/loop.md +22 -10
- package/src/skills/opencode-theme.md +3 -3
- package/src/skills/ponytail.md +1 -1
- package/src/skills/profile.md +3 -4
- package/src/skills/prose.md +2 -3
- package/src/skills/quiz.md +1 -1
- package/src/skills/react-view-transitions/SKILL.md +1 -1
- package/src/skills/react-view-transitions/VENDOR.md +8 -3
- package/src/skills/research.md +3 -3
- package/src/skills/review-response.md +2 -2
- package/src/skills/rule.md +3 -3
- package/src/skills/security-audit.md +4 -4
- package/src/skills/teach.md +1 -1
- package/src/skills/wiki.md +3 -3
- package/src/skills/workflow.md +4 -4
- package/src/skills/worktree.md +2 -2
- package/web/dist/assets/Activity-Ca2Aruu7.js +1 -0
- package/web/dist/assets/ActivityDetail-Bo7v4Z_r.js +1 -0
- package/web/dist/assets/Dashboard-BuMq46aT.js +2 -0
- package/web/dist/assets/Docs-BzccCllG.js +5 -0
- package/web/dist/assets/FilterInput-CBcJBQPI.js +1 -0
- package/web/dist/assets/GreenhouseView-BCIKcnGG.js +2 -0
- package/web/dist/assets/Installs-DMFJvq7s.js +2 -0
- package/web/dist/assets/JournalView-o1rmd1_1.js +1 -0
- package/web/dist/assets/Laws-BANxq_I_.js +3 -0
- package/web/dist/assets/Library-DW4x0fbh.js +1 -0
- package/web/dist/assets/Loops-DEBibbBP.js +2 -0
- package/web/dist/assets/{Markdown-qjM2_ofS.js → Markdown-CdTX0kLe.js} +14 -14
- package/web/dist/assets/OperatorHudView-CLD0fYaA.js +2 -0
- package/web/dist/assets/Personal-6uMJvyBG.js +1 -0
- package/web/dist/assets/Tabs-BubnyZhF.js +1 -0
- package/web/dist/assets/activity-CObqyxkL.js +1 -0
- package/web/dist/assets/{api-CyMRbU2x.js → api-D_ixdyEY.js} +1 -1
- package/web/dist/assets/drawable-C_x5xncq.js +1 -0
- package/web/dist/assets/index-CMPgezFm.js +2 -0
- package/web/dist/assets/index-DMsT4Aa6.css +1 -0
- package/web/dist/assets/{react-B9Z_tXRV.js → react-Bbzhmq4v.js} +1 -1
- package/web/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/web/dist/assets/sections-Dg23Hel5.js +1 -0
- package/web/dist/assets/usePoll-BOqeunzF.js +1 -0
- package/web/dist/index.html +6 -5
- package/web/dist/assets/Activity-GaaZWXTY.js +0 -1
- package/web/dist/assets/ActivityDetail-4t7d45Du.js +0 -1
- package/web/dist/assets/Dashboard-CYn7Tp16.js +0 -2
- package/web/dist/assets/Docs-BeFKLg2T.js +0 -5
- package/web/dist/assets/FilterInput-CVyqmYWM.js +0 -1
- package/web/dist/assets/GreenhouseView-C6ibc8IE.js +0 -2
- package/web/dist/assets/Installs-DRYjYnxs.js +0 -2
- package/web/dist/assets/JournalView-1HbU1mfg.js +0 -1
- package/web/dist/assets/Laws-DFoG8JWB.js +0 -3
- package/web/dist/assets/Library-DDjgNwz_.js +0 -1
- package/web/dist/assets/Loops-D9VEoO0F.js +0 -1
- package/web/dist/assets/OperatorHudView-Bs7paWmh.js +0 -2
- package/web/dist/assets/Personal-BY5n4gTw.js +0 -1
- package/web/dist/assets/Tabs-ho-EYD8i.js +0 -1
- package/web/dist/assets/drawable-CLS9drMb.js +0 -1
- package/web/dist/assets/index-CX_hXMi5.css +0 -1
- package/web/dist/assets/index-Cjr7XCA3.js +0 -2
- package/web/dist/assets/sections-GalMS0Zv.js +0 -1
- package/web/dist/assets/usePoll-O0sJEw1Y.js +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
group: reference
|
|
3
|
-
order: 4
|
|
4
|
-
title: "Troubleshooting"
|
|
5
3
|
kind: "concept"
|
|
4
|
+
section: "Troubleshooting"
|
|
5
|
+
order: 5
|
|
6
|
+
title: "Troubleshooting"
|
|
7
|
+
description: "Problems organised by what you see, and the first command to run."
|
|
6
8
|
---
|
|
7
|
-
Find what you are seeing below. Each entry gives the likely cause, the fix, and how to confirm it worked. Messages in quotes are what Geneseed actually prints.
|
|
9
|
+
Find what you are seeing on the pages below. Each entry gives the likely cause, the fix, and how to confirm it worked. Messages in quotes are what Geneseed actually prints.
|
|
8
10
|
|
|
9
11
|
First stop for almost anything: `geneseed doctor`. It renders the harness into a temp directory and reports every problem it finds without touching your install.
|
|
10
12
|
|
|
@@ -12,339 +14,13 @@ First stop for almost anything: `geneseed doctor`. It renders the harness into a
|
|
|
12
14
|
geneseed doctor
|
|
13
15
|
```
|
|
14
16
|
|
|
15
|
-
##
|
|
16
|
-
|
|
17
|
-
### `Node.js not found` or `Node vX is too old`
|
|
18
|
-
|
|
19
|
-
The one-step installer (`./install`, `install.cmd`, `install.command`) checks Node first and stops:
|
|
20
|
-
|
|
21
|
-
> `xx Node v20.11.0 is too old — Geneseed needs 22.3 or newer.`
|
|
22
|
-
|
|
23
|
-
**Cause.** No Node on PATH, or an older one — Linux distribution packages are often behind.
|
|
24
|
-
|
|
25
|
-
**Fix.** Install the current Node.js LTS from <https://nodejs.org/> (macOS: `brew install node`; Linux: nvm or NodeSource). Open a **new** terminal, then run the installer again.
|
|
26
|
-
|
|
27
|
-
**Confirm.**
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
node --version
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
prints 22.3 or newer, and the installer's first line reads `ok Node v…`.
|
|
34
|
-
|
|
35
|
-
### `geneseed needs Node 22.3 or newer`
|
|
36
|
-
|
|
37
|
-
Run without the installer — `npx geneseed`, a global npm install, or a hook — on an older Node, every Geneseed command stops with one sentence:
|
|
38
|
-
|
|
39
|
-
> `geneseed needs Node 22.3 or newer; this is Node 20.18.1. Install a current Node from https://nodejs.org (or your package manager), then run the command again.`
|
|
40
|
-
|
|
41
|
-
**Cause.** The `node` on PATH is older than 22.3. npm only *warns* about the engine requirement, so a global install succeeds anyway. A hook prints the same sentence and lets the tool call through rather than block it, so on Claude Code, Bob or OpenClaude the hooks are off until Node is upgraded.
|
|
42
|
-
|
|
43
|
-
**Fix.** Install the current Node.js LTS (see above), open a **new** terminal, and run the command again.
|
|
44
|
-
|
|
45
|
-
**Confirm.** `geneseed version` prints the version instead of the sentence.
|
|
46
|
-
|
|
47
|
-
### `setup` says it needs an interactive terminal
|
|
48
|
-
|
|
49
|
-
> `[setup] needs an interactive terminal. Non-interactive? e.g.:`
|
|
50
|
-
> ` geneseed build --emit opencode-global --theme neutral`
|
|
51
|
-
|
|
52
|
-
**Cause.** `geneseed setup` is a wizard and refuses to run when its input is not a terminal — in CI, through a pipe, or from a tool that runs commands without a TTY.
|
|
53
|
-
|
|
54
|
-
**Fix.** Run it from a real terminal, or skip the wizard and build directly with the flags it would have asked for:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
geneseed build --emit opencode-global --theme neutral
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
See [Install](../guides/install.md) for the emit target that matches your tool.
|
|
61
|
-
|
|
62
|
-
**Confirm.** `geneseed status` lists the install.
|
|
63
|
-
|
|
64
|
-
### `setup` lists a tool as missing — or present — when it isn't
|
|
65
|
-
|
|
66
|
-
Setup opens with `AI coding tools on this machine:` and an `ok` or `--` per tool.
|
|
67
|
-
|
|
68
|
-
**Cause.** The check only asks whether the command (`opencode`, `claude`, `bob`, `openclaude`) is on your PATH. A desktop-only install with no command shows as missing; an unrelated program with the same name shows as present.
|
|
69
|
-
|
|
70
|
-
**Fix.** Nothing to fix — the line is advisory. Pick the install mode for the tool you actually use; a missing tool among several present is just a line, and you can continue without one.
|
|
71
|
-
|
|
72
|
-
**Confirm.** Open the tool and check for the readiness sigil (see "The agent never shows the readiness sigil" below).
|
|
73
|
-
|
|
74
|
-
### `Java 21+ (jdtls) missing`
|
|
75
|
-
|
|
76
|
-
Shown in setup's summary for OpenCode installs:
|
|
77
|
-
|
|
78
|
-
> `Java 21+ (jdtls) missing — install a JDK 21+ — e.g. brew install openjdk@21, SDKMAN sdk install java 21-tem, or your distro's package`
|
|
79
|
-
|
|
80
|
-
**Cause.** OpenCode's Java language server needs a JDK 21 or newer, and it is the one language server OpenCode cannot download for you. See [LSP](../concepts/lsp.md).
|
|
81
|
-
|
|
82
|
-
**Fix.** Install a JDK 21+ if you work in Java; ignore the line otherwise. Everything else works without it.
|
|
83
|
-
|
|
84
|
-
**Confirm.**
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
java -version
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
reports `version "21` or higher.
|
|
91
|
-
|
|
92
|
-
### `geneseed: command not found`
|
|
93
|
-
|
|
94
|
-
**Cause.** The `geneseed` launcher is not on your PATH. A git clone is not put there automatically (an `npm install -g geneseed` install is).
|
|
95
|
-
|
|
96
|
-
**Fix.** From the cloned folder:
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
./geneseed link
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
```bat
|
|
103
|
-
.\geneseed.cmd link
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
On Windows, `link` writes to `%LOCALAPPDATA%\Geneseed\bin` and adds it to your user PATH — only **new** terminals see it, so close and reopen yours.
|
|
107
|
-
|
|
108
|
-
**Confirm.**
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
geneseed version
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
works from any directory. See [Run anywhere](../guides/run-anywhere.md).
|
|
115
|
-
|
|
116
|
-
## Hooks, context and memory
|
|
117
|
-
|
|
118
|
-
### Hooks stopped firing
|
|
119
|
-
|
|
120
|
-
The agent loads its rules, but nothing is enforced and no memory is written — on Claude Code, Bob or OpenClaude.
|
|
121
|
-
|
|
122
|
-
Every `geneseed` command now says so first, on stderr:
|
|
123
|
-
|
|
124
|
-
> `[geneseed] ⚠ hooks are off on this machine: the hook shim points at <path>, which no longer exists. Fix: geneseed rebuild-all`
|
|
125
|
-
|
|
126
|
-
and the `gates` row of `geneseed status` reads `DEAD — hook shim points at <path>; run: geneseed rebuild-all`. A script that must not see the line can set `GENESEED_NO_SHIM_CHECK=1`.
|
|
127
|
-
|
|
128
|
-
**Cause.** Almost always a **stale hook shim**. Your tool's settings call `geneseed-hook` through one small script, `~/.geneseed/bin/geneseed-hook` (`geneseed-hook.cmd` on Windows), which holds the absolute path of your Geneseed folder. Move or delete that folder and the shim points at nothing: the hooks still fire, fail, and every gate goes silently dead. `geneseed doctor` reports it as:
|
|
129
|
-
|
|
130
|
-
> `[shim] <path> pointed at <old path>, which does not exist — every hook in every install was dead (the checkout most likely moved).`
|
|
131
|
-
|
|
132
|
-
**Fix.** Re-emit from where Geneseed lives now — any build rewrites the shim:
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
geneseed rebuild-all
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
If you moved the shim itself with `GENESEED_HOME`, set it the same way before rebuilding.
|
|
139
|
-
|
|
140
|
-
**Confirm.** `geneseed doctor` prints no `[shim]` line, and a new session opens with the readiness sigil and your project docs in context.
|
|
141
|
-
|
|
142
|
-
### The agent never shows the readiness sigil
|
|
143
|
-
|
|
144
|
-
The first reply of a session should open with the readiness sigil (`✅` in the neutral theme) — the agent's sign that it loaded the harness.
|
|
145
|
-
|
|
146
|
-
**Cause.** The tool is not loading the root file. On OpenCode, `opencode.json` `instructions` does not point at `AGENT.md`; on another tool, its rules setting does not.
|
|
147
|
-
|
|
148
|
-
**Fix.** Rebuild the install so its config is merged again:
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
geneseed rebuild-all
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
For a tool Geneseed does not wire itself, point its rules setting at the bundle's `AGENT.md`.
|
|
155
|
-
|
|
156
|
-
**Confirm.** Start a **new** session; the first reply opens with the sigil. See [Verify](../guides/verify.md).
|
|
157
|
-
|
|
158
|
-
<!--harness:opencode-->
|
|
159
|
-
*(OpenCode only)*
|
|
160
|
-
|
|
161
|
-
### The agent doesn't load my project docs
|
|
162
|
-
|
|
163
|
-
**Cause.** The `geneseed-context` plugin is not in OpenCode's plugins directory, or injection is switched off (`GENESEED_CONTEXT_INJECT=off`).
|
|
164
|
-
|
|
165
|
-
**Fix.**
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
geneseed build --emit opencode-global
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
and unset `GENESEED_CONTEXT_INJECT`.
|
|
172
|
-
|
|
173
|
-
**Confirm.** `ls ~/.config/opencode/plugins/` shows the `geneseed-*.js` files, and a session started with `GENESEED_DEBUG=1` logs what the plugin discovered. See [OpenCode plugins](opencode-plugins.md).
|
|
174
|
-
|
|
175
|
-
### `PROJECT CONTEXT` appears twice
|
|
176
|
-
|
|
177
|
-
**Cause.** Two copies of the context plugin — the global one and a leftover `.opencode/plugins/` in the repo. OpenCode loads both.
|
|
178
|
-
|
|
179
|
-
**Fix.** Delete the project copy (`.opencode/plugins/geneseed-context.js`), or uninstall the project-scoped install.
|
|
180
|
-
|
|
181
|
-
**Confirm.** A new session shows the block at most once.
|
|
182
|
-
|
|
183
|
-
### The full `PROJECT CONTEXT` block shows in the terminal
|
|
184
|
-
|
|
185
|
-
**Cause.** Either `GENESEED_CONTEXT_VISIBLE=1` (or legacy `GENESEED_CONTEXT_TRANSFORM=0`) is set, or your OpenCode build lacks the experimental hook for invisible delivery and the plugin fell back to the visible block.
|
|
186
|
-
|
|
187
|
-
**Fix.** Unset the variable. If it still shows, your OpenCode build is the reason — update OpenCode, or live with the visible block; the context is the same.
|
|
188
|
-
|
|
189
|
-
**Confirm.** Run with `GENESEED_DEBUG=1`; the plugin's log says which delivery it used.
|
|
190
|
-
|
|
191
|
-
### No memory is written after a session
|
|
192
|
-
|
|
193
|
-
**Cause.** The learn plugin found no memory directory, or it did not load.
|
|
194
|
-
|
|
195
|
-
**Fix.** Pin the store, then restart OpenCode:
|
|
196
|
-
|
|
197
|
-
```bash
|
|
198
|
-
export GENESEED_HARNESS=~/.config/opencode
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
(or `GENESEED_MEMORY` for an explicit directory), and confirm the `geneseed-*.js` files are in the plugins dir.
|
|
202
|
-
|
|
203
|
-
**Confirm.** About a minute after the session goes quiet, stderr shows `[geneseed-learn] wrote N memory file(s): …` or a `skipped:` reason. Total silence means the plugin did not load.
|
|
204
|
-
<!--/harness-->
|
|
205
|
-
|
|
206
|
-
### `could not determine a model`
|
|
207
|
-
|
|
208
|
-
**Cause.** The learn step could not read which model the session used.
|
|
209
|
-
|
|
210
|
-
**Fix.** Give it a fallback:
|
|
211
|
-
|
|
212
|
-
```bash
|
|
213
|
-
export GENESEED_MODEL=provider/model
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**Confirm.** The next session end writes memory instead of logging the message.
|
|
217
|
-
|
|
218
|
-
### A read-only agent won't run a command
|
|
219
|
-
|
|
220
|
-
**Cause.** By design: read-only agents are denied the shell. The few that must run read-only commands (the reviewer, security) are allowed it in their own spec.
|
|
221
|
-
|
|
222
|
-
**Fix.** Hand the task to an agent that can run commands, or run it yourself. See [Agents](../concepts/agents.md).
|
|
223
|
-
|
|
224
|
-
### PDFs and Office documents are ignored
|
|
225
|
-
|
|
226
|
-
**Cause.** Agents read text. Binary documents need converting first.
|
|
227
|
-
|
|
228
|
-
**Fix.** Use the `ingest` skill with a converter installed (MarkItDown, Pandoc or Docling), or wire MarkItDown as an MCP server — see [MCP servers](../guides/mcp.md).
|
|
229
|
-
|
|
230
|
-
### An MCP server is listed but won't connect
|
|
231
|
-
|
|
232
|
-
See [MCP servers](../guides/mcp.md) — each server has its own checks there.
|
|
233
|
-
|
|
234
|
-
## Updating
|
|
235
|
-
|
|
236
|
-
### `geneseed upgrade` refuses to run
|
|
237
|
-
|
|
238
|
-
The upgrade is a `git pull`, so it first checks the folder. Each refusal says what to do:
|
|
239
|
-
|
|
240
|
-
| Message | Fix |
|
|
241
|
-
| --- | --- |
|
|
242
|
-
| `git is not installed or not on PATH — install git to enable updates.` | Install git, open a new terminal, retry. |
|
|
243
|
-
| ``This Geneseed install isn't a git checkout — update it with `npm install -g geneseed@latest`, or re-clone it with git.`` | Use the npm command for an npm install; otherwise re-clone (`git clone https://github.com/Arylmera/Geneseed.git`). |
|
|
244
|
-
| `You have local changes in the Geneseed folder. Commit or stash them, then update.` | `git stash` in the Geneseed folder, upgrade, then `git stash pop`. |
|
|
245
|
-
| ``HEAD is detached (a tag/commit is checked out). Run `git checkout <branch>` to re-enable updates.`` | `git checkout main`. |
|
|
246
|
-
| ``Your branch has no upstream — set one with `git branch --set-upstream-to`.`` | `git branch --set-upstream-to=origin/main`. |
|
|
247
|
-
|
|
248
|
-
**Confirm.** `geneseed upgrade` completes and `geneseed version` shows the new version. See [Upgrade](../guides/upgrade.md).
|
|
249
|
-
|
|
250
|
-
## Doctor findings
|
|
251
|
-
|
|
252
|
-
### `unresolved token … in …`
|
|
253
|
-
|
|
254
|
-
**Cause.** A theme JSON lacks a key the templates use — usually a custom theme that fell behind.
|
|
255
|
-
|
|
256
|
-
**Fix.** Compare it with `themes/neutral.json`: every key there must exist in your theme. Then re-render:
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
geneseed build --theme <yours>
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
**Confirm.** `geneseed doctor --theme <yours>` is clean.
|
|
263
|
-
|
|
264
|
-
### A committed `Harness/` bundle drifted from `src/`
|
|
265
|
-
|
|
266
|
-
**Cause.** A bundle committed to a repo was rendered from an older `src/`, or was edited in place.
|
|
267
|
-
|
|
268
|
-
**Fix.** Re-render and commit it:
|
|
269
|
-
|
|
270
|
-
```bash
|
|
271
|
-
geneseed build
|
|
272
|
-
git add Harness
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
If the drift is your own edits, export them first — `geneseed diff` (or the console's **Changes** page) writes them up so they can be folded back into `src/`.
|
|
276
|
-
|
|
277
|
-
**Confirm.** `geneseed doctor` no longer reports the bundle.
|
|
278
|
-
|
|
279
|
-
### `registry.json unreadable` / `registry.json is not valid JSON`
|
|
280
|
-
|
|
281
|
-
> `[authoring] registry.json unreadable: …`
|
|
282
|
-
|
|
283
|
-
**Cause.** The Geneseed folder's `registry.json` is missing or damaged — typically a bad merge or a hand edit. The web console stays up, but every entity's status badge reads "unknown".
|
|
284
|
-
|
|
285
|
-
**Fix.** Restore the shipped copy (this discards any local edit to that one file):
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
git -C <geneseed folder> restore registry.json
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
**Confirm.** `geneseed doctor` no longer names `registry.json`, and the badges come back.
|
|
292
|
-
|
|
293
|
-
## Web console
|
|
294
|
-
|
|
295
|
-
### `web/dist is missing`
|
|
296
|
-
|
|
297
|
-
> `[web] web/dist is missing. Build the UI first:`
|
|
298
|
-
> ` cd web && npm install && npm run build`
|
|
299
|
-
|
|
300
|
-
**Cause.** The built console ships in the repo, so this only happens on a partial checkout. On an interactive terminal `geneseed web` offers to build it for you.
|
|
301
|
-
|
|
302
|
-
**Fix.** Build it from the Geneseed folder:
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
cd web && npm install && npm run build
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
If it instead says `web/ sources are missing`, run `geneseed upgrade` (twice on an old install).
|
|
309
|
-
|
|
310
|
-
**Confirm.** `geneseed web` opens the console.
|
|
311
|
-
|
|
312
|
-
### The console looks broken after an upgrade
|
|
313
|
-
|
|
314
|
-
Pages fail to load, or the console shows a banner: *This console is running code from before your last upgrade.* `geneseed web status` adds:
|
|
315
|
-
|
|
316
|
-
> `[web] running OLD code (started before the last upgrade) — geneseed web restart`
|
|
317
|
-
|
|
318
|
-
**Cause.** The console server serves the page it started with. An `npm install -g geneseed@latest` or a `git pull` replaces `web/dist/`, and the old page asks for files that no longer exist. `geneseed upgrade` and `geneseed rebuild-all` restart a stale console themselves; other upgrade paths do not.
|
|
319
|
-
|
|
320
|
-
**Fix.** Click **Restart** on the banner, or:
|
|
321
|
-
|
|
322
|
-
```bash
|
|
323
|
-
geneseed web restart
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
A browser refresh is not enough — the server, not the page, is out of date.
|
|
327
|
-
|
|
328
|
-
**Confirm.** `geneseed web status` prints no `OLD code` line and the banner is gone.
|
|
329
|
-
|
|
330
|
-
### The console says `no deployed harness`
|
|
331
|
-
|
|
332
|
-
> `[web] no deployed harness at <dir>.`
|
|
333
|
-
|
|
334
|
-
**Cause.** Nothing is installed where the console looks. It still serves, read-only, with most actions disabled.
|
|
335
|
-
|
|
336
|
-
**Fix.**
|
|
337
|
-
|
|
338
|
-
```bash
|
|
339
|
-
geneseed setup
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
**Confirm.** Restart the console — `geneseed web restart` — and the warning is gone.
|
|
343
|
-
|
|
344
|
-
### Skills or agents not tracked in git
|
|
345
|
-
|
|
346
|
-
**Cause.** A parent `.gitignore` blanket-ignores the bundle directory.
|
|
17
|
+
## By where it happens
|
|
347
18
|
|
|
348
|
-
|
|
19
|
+
- [Install problems](troubleshoot-install.md): Node, `setup`, `command not found`.
|
|
20
|
+
- [Hook, context and memory problems](troubleshoot-hooks.md): hooks that stop firing, missing project docs, no memory.
|
|
21
|
+
- [Model, agent and MCP problems](troubleshoot-tools.md): no model for learn, a read-only agent, ignored PDFs, an MCP server that will not connect.
|
|
22
|
+
- [Update problems](troubleshoot-update.md): when `geneseed upgrade` refuses to run.
|
|
23
|
+
- [Doctor findings](troubleshoot-doctor.md): what `geneseed doctor` reports, and the fix.
|
|
24
|
+
- [Web console problems](troubleshoot-web.md): a missing build, a stale page, no deployed harness.
|
|
349
25
|
|
|
350
|
-
|
|
26
|
+
A loop that misbehaves has its own table in [Finish a loop](../guides/loop-finish.md).
|
package/docs/understand/a-day.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
group: understand
|
|
3
|
-
order:
|
|
3
|
+
order: 7
|
|
4
4
|
title: "A day with the harness"
|
|
5
5
|
kind: "concept"
|
|
6
|
+
section: "Day to day"
|
|
7
|
+
description: "The moments you will actually meet: a push that asks first, a skill, a delegation, a memory."
|
|
6
8
|
---
|
|
7
9
|
After the install you talk to your tool the way you always did. What changes is what the agent already knows when you start, and what happens at a few specific moments. Here are four of them.
|
|
8
10
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
group: understand
|
|
3
|
-
order:
|
|
3
|
+
order: 8
|
|
4
4
|
title: "Enforced vs. asked"
|
|
5
5
|
kind: "concept"
|
|
6
|
+
section: "Day to day"
|
|
7
|
+
description: "What is guaranteed by code, and what the model is only asked to do."
|
|
6
8
|
---
|
|
7
9
|
Geneseed gives your agent two kinds of instruction, and it matters which kind you are relying on.
|
|
8
10
|
|
|
@@ -3,6 +3,8 @@ group: understand
|
|
|
3
3
|
order: 1
|
|
4
4
|
title: "What a harness is"
|
|
5
5
|
kind: "concept"
|
|
6
|
+
section: "Start here"
|
|
7
|
+
description: "Git hooks, CI and a runbook, but for your AI agent: what a harness is and why you would want one."
|
|
6
8
|
---
|
|
7
9
|
Your coding agent starts every session knowing nothing about how you work. It does not know that you never push without looking at the diff first, that secrets live in `.env`, or that this repo's docs explain the build. You tell it again, or it guesses.
|
|
8
10
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: understand
|
|
3
|
+
order: 5
|
|
4
|
+
title: "On Bob, or any AGENT.md tool"
|
|
5
|
+
kind: "concept"
|
|
6
|
+
section: "On your machine"
|
|
7
|
+
description: "Where an install lands on IBM Bob or as a plain AGENT.md bundle, and how little is enforced there."
|
|
8
|
+
---
|
|
9
|
+
Bob and the plain bundle carry the same rules, agents and skills as the other hosts. What differs is where they land and how much of it is enforced. The **Kind** words are explained in [What lands on your machine](on-your-machine.md).
|
|
10
|
+
|
|
11
|
+
**Bob.** A global install writes to `~/.bob/`, or `BOB_CONFIG_DIR`. Bob does not load a global `AGENTS.md`, so the rules go into `~/.bob/rules/geneseed.md`. A per-repo install writes `AGENTS.md` instead. Hooks live in `~/.bob/settings/settings.json`. Bob runs three of them: context at session start, one combined gate before each tool call, and learn at session end. Bob has no "ask" prompt, so the gate refuses outright, and only for credentials and destructive git. The commit/push and memory questions become log lines.
|
|
12
|
+
|
|
13
|
+
**Plain bundle.** The `files` target writes `AGENT.md` and the same folders into `./Harness/` for any tool that reads `AGENT.md`. It installs no hooks and no plugins, so nothing in it is enforced.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
**Next:** [Taking it back out](take-it-out.md)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: understand
|
|
3
|
+
order: 4
|
|
4
|
+
title: "On Claude Code and OpenClaude"
|
|
5
|
+
kind: "map"
|
|
6
|
+
harness: ["claude", "openclaude"]
|
|
7
|
+
section: "On your machine"
|
|
8
|
+
description: "Every file and hook a Claude Code or OpenClaude install writes: what it does, what it costs, how to turn it off."
|
|
9
|
+
---
|
|
10
|
+
What a Claude Code or OpenClaude install writes, piece by piece. The **Kind** words are explained in [What lands on your machine](on-your-machine.md).
|
|
11
|
+
|
|
12
|
+
| Piece | What it does for you | Kind | Cost | Turn it off |
|
|
13
|
+
|---|---|---|---|---|
|
|
14
|
+
| `CLAUDE.md` (managed block) | The rules, the pointers to agents and skills, and how memory works. Geneseed writes only its own block; your own lines in the file stay | asked | ~7.2k tokens every session | Shrink it with fewer doctrine packs (`--doctrines`); remove it with `geneseed uninstall` |
|
|
15
|
+
| `user-rules.md` | Your own standing rules, read every session. Seeded empty | asked | 0 until you write in it | Leave it empty |
|
|
16
|
+
| `PROFILE.md` | Who you are and how you like answers pitched. Fill it with the `profile` skill | asked | 0 until you fill it | Leave the seeded text untouched |
|
|
17
|
+
| context hook | At session start, and again after a resume or compaction, puts your repo's README, CONTRIBUTING and a listing of `docs/` in front of the agent, with your rules, profile, memory index and wiki | automatic | Your docs, capped at 16 KB a file and 48 KB a session | `geneseed exclude add <folder>` silences every hook in that folder |
|
|
18
|
+
| git-gate hook | Before each shell command: asks you before any `git commit` or `git push`, and before a force-push, `reset --hard`, `clean -f`, `branch -D` or `checkout --` | enforced | ~14 ms per shell call | The commit/push question goes away if you build without the **process** pack; the destructive-git question has no switch except `geneseed exclude` |
|
|
19
|
+
| rule-gate hook | Before each write or edit: asks you when the file would carry a credential-shaped string (outside `.env`), or when the agent writes to `user-rules.md` or memory | enforced | ~14 ms per write | `geneseed exclude add <folder>` |
|
|
20
|
+
| learn hook | When the agent finishes a reply, and before compaction, distils durable facts from the recent conversation into `memory/`. Off until you set `GENESEED_LLM` to a model command such as `claude -p` | automatic | One model call each time it runs, once enabled | Leave `GENESEED_LLM` unset (the default) |
|
|
21
|
+
| `skills/` | Written procedures you call by name, such as `brainstorm` or `plan` | on demand | ~4.1k tokens for names and descriptions; a skill's body loads only when called | No per-skill switch; `geneseed uninstall` removes them all |
|
|
22
|
+
| `agents/` | Specialists the agent can delegate to, such as `reviewer` or `tester` | on demand | ~0.5k tokens | `geneseed uninstall` |
|
|
23
|
+
| `memory/` | Durable facts, one per file, with a `MEMORY.md` index the context hook injects | automatic | 0 when fresh; grows as facts accumulate | `geneseed memory list`, then `geneseed memory rm <name>` |
|
|
24
|
+
| `notebook/` | The agent's own working space: plans, scratch notes, and the gate log `gates.jsonl` | automatic | 0 when fresh; its index grows with use | Delete what you do not want; it is git-ignored and yours |
|
|
25
|
+
| hook shim | `~/.geneseed/bin/geneseed-hook`, the one stable path every hook calls, so moving the Geneseed checkout does not break your hooks | automatic | Nothing on its own | Not removed by uninstall, since every install on the machine shares it. `GENESEED_HOME` moves it |
|
|
26
|
+
|
|
27
|
+
## Where the files are
|
|
28
|
+
|
|
29
|
+
**Claude Code.** A global install writes to `~/.claude/`, and its hooks go into `~/.claude/settings.json`, next to any hooks of your own. A per-repo install uses the repo's `.claude/` folder, with the hooks in `.claude/settings.local.json`.
|
|
30
|
+
|
|
31
|
+
**OpenClaude.** Same pieces as Claude Code, under `~/.openclaude/` or `OPENCLAUDE_CONFIG_DIR`. A per-repo install uses `.openclaude/`, with the hooks in `.openclaude/settings.local.json`.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
**Next:** [On Bob, or any AGENT.md tool](machine-bob.md) · [Taking it back out](take-it-out.md)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: understand
|
|
3
|
+
order: 3
|
|
4
|
+
title: "On OpenCode"
|
|
5
|
+
kind: "map"
|
|
6
|
+
harness: "opencode"
|
|
7
|
+
section: "On your machine"
|
|
8
|
+
description: "Every file and plugin an OpenCode install writes: what it does, what it costs, how to turn it off."
|
|
9
|
+
---
|
|
10
|
+
What an OpenCode install writes, piece by piece. The **Kind** words are explained in [What lands on your machine](on-your-machine.md).
|
|
11
|
+
|
|
12
|
+
| Piece | What it does for you | Kind | Cost | Turn it off |
|
|
13
|
+
|---|---|---|---|---|
|
|
14
|
+
| `AGENT.md` | The rules, the pointers to agents and skills, and how memory works | asked | ~7.2k tokens every session | Shrink it with fewer doctrine packs (`--doctrines`); remove it with `geneseed uninstall` |
|
|
15
|
+
| `user-rules.md` | Your own standing rules, read every session. Seeded empty | asked | 0 until you write in it | Leave it empty |
|
|
16
|
+
| `PROFILE.md` | Who you are and how you like answers pitched. Fill it with the `profile` skill | asked | 0 until you fill it | Leave the seeded text untouched |
|
|
17
|
+
| `opencode.json` entries | `instructions` points OpenCode at `AGENT.md`. `permission.bash` makes OpenCode ask before `rm -rf`, a force-push, `reset --hard`, `clean -f`, `branch -D` or `checkout --`, and before every commit and push when the **process** pack is on | enforced | No tokens | Edit the `permission` block yourself. The commit/push questions follow the **process** pack |
|
|
18
|
+
| context plugin | Puts your repo's README, CONTRIBUTING and a listing of `docs/` in front of the agent, with your rules, profile, memory index and wiki | automatic | Your docs, capped at 16 KB a file and 48 KB a session | `GENESEED_CONTEXT_INJECT=off` |
|
|
19
|
+
| guard plugin | Blocks writes to key and credential files (`id_rsa`, `.pem`, `.ssh/`…), catastrophic commands (`rm -rf /`, formatting a disk), and changes inside your wiki's protected folders. Refuses the first write to `user-rules.md` or memory once, so the choice is yours | enforced | No tokens | `GENESEED_GUARD=off`, or `GENESEED_GUARD=warn` to log instead of block |
|
|
20
|
+
| learn plugin | Once a session has been quiet for 60 seconds, distils durable facts into `memory/` with the model the session already uses | automatic | One model call per quiet session | `geneseed exclude add <folder>` silences it in that folder |
|
|
21
|
+
| activity plugin | Writes one small file per session that the web console's Activity view shows | automatic | No tokens | `GENESEED_ACTIVITY=off` |
|
|
22
|
+
| notify plugin | A desktop notification when a turn took longer than 30 seconds | automatic | No tokens | `GENESEED_NOTIFY=off` |
|
|
23
|
+
| ponytail plugin | Minimal-code mode. `/ponytail lite`, `full` or `ultra` adds a short ruleset to every turn until you switch it off | on demand | 0 while off, which is the default | `/ponytail off` |
|
|
24
|
+
| workflow plugin | Adds a `workflow` tool that runs saved orchestration scripts | on demand | Runs only when called | `geneseed uninstall` |
|
|
25
|
+
| `skills/` | Written procedures you call by name, such as `brainstorm` or `plan` | on demand | ~4.1k tokens for names and descriptions; a skill's body loads only when called | No per-skill switch; `geneseed uninstall` removes them all |
|
|
26
|
+
| `agents/` | Specialists the agent can delegate to, such as `reviewer` or `tester` | on demand | ~0.5k tokens | `geneseed uninstall` |
|
|
27
|
+
| `memory/` | Durable facts, one per file, with a `MEMORY.md` index the context plugin injects | automatic | 0 when fresh; grows as facts accumulate | `geneseed memory list`, then `geneseed memory rm <name>` |
|
|
28
|
+
| `notebook/` | The agent's own working space: plans, scratch notes, and the gate log `gates.jsonl` | automatic | 0 when fresh; its index grows with use | Delete what you do not want; it is git-ignored and yours |
|
|
29
|
+
|
|
30
|
+
## Where the files are
|
|
31
|
+
|
|
32
|
+
**OpenCode.** A global install writes to `~/.config/opencode/`. Setting `OPENCODE_CONFIG_DIR` or `XDG_CONFIG_HOME` moves it. Geneseed merges its entries into your existing `opencode.json` and keeps every other key. A per-repo install writes into the repo instead.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
**Next:** [On Bob, or any AGENT.md tool](machine-bob.md) · [Taking it back out](take-it-out.md)
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
group: understand
|
|
3
3
|
order: 2
|
|
4
4
|
title: "What lands on your machine"
|
|
5
|
-
kind: "
|
|
5
|
+
kind: "concept"
|
|
6
|
+
section: "On your machine"
|
|
7
|
+
description: "What an install writes and wires, and the four kinds of piece: enforced, automatic, asked, on demand."
|
|
6
8
|
---
|
|
7
|
-
An install writes a handful of files into your host's config folder and, where the host allows it, wires small programs that run at fixed moments: when a session starts, before a tool call, when a session ends.
|
|
9
|
+
An install writes a handful of files into your host's config folder and, where the host allows it, wires small programs that run at fixed moments: when a session starts, before a tool call, when a session ends. The page for your host says what each piece does for you, when it runs, what it costs, and how to turn it off. Its **Kind** column uses four words:
|
|
8
10
|
|
|
9
11
|
- **enforced**: code runs before the action and can stop it. The model cannot argue past it.
|
|
10
12
|
- **automatic**: runs by itself at a fixed moment, such as session start or session end.
|
|
@@ -13,64 +15,19 @@ An install writes a handful of files into your host's config folder and, where t
|
|
|
13
15
|
|
|
14
16
|
Token costs are for the default *lean* footprint. Before you type anything, a session carries about 12k tokens of harness. That is roughly 6% of a 200k window. A `--footprint full` build adds about 5k on the rules file. For a live figure on your own install, ask the agent to use the `token-report` skill.
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
*(Claude Code only)*
|
|
18
|
+
## One page per host
|
|
18
19
|
|
|
19
|
-
| Piece | What it does for you | Kind | Cost | Turn it off |
|
|
20
|
-
|---|---|---|---|---|
|
|
21
|
-
| `CLAUDE.md` (managed block) | The rules, the pointers to agents and skills, and how memory works. Geneseed writes only its own block; your own lines in the file stay | asked | ~7.2k tokens every session | Shrink it with fewer doctrine packs (`--doctrines`); remove it with `geneseed uninstall` |
|
|
22
|
-
| `user-rules.md` | Your own standing rules, read every session. Seeded empty | asked | 0 until you write in it | Leave it empty |
|
|
23
|
-
| `PROFILE.md` | Who you are and how you like answers pitched. Fill it with the `profile` skill | asked | 0 until you fill it | Leave the seeded text untouched |
|
|
24
|
-
| context hook | At session start, and again after a resume or compaction, puts your repo's README, CONTRIBUTING and a listing of `docs/` in front of the agent, with your rules, profile, memory index and wiki | automatic | Your docs, capped at 16 KB a file and 48 KB a session | `geneseed exclude add <folder>` silences every hook in that folder |
|
|
25
|
-
| git-gate hook | Before each shell command: asks you before any `git commit` or `git push`, and before a force-push, `reset --hard`, `clean -f`, `branch -D` or `checkout --` | enforced | ~14 ms per shell call | The commit/push question goes away if you build without the **process** pack; the destructive-git question has no switch except `geneseed exclude` |
|
|
26
|
-
| rule-gate hook | Before each write or edit: asks you when the file would carry a credential-shaped string (outside `.env`), or when the agent writes to `user-rules.md` or memory | enforced | ~14 ms per write | `geneseed exclude add <folder>` |
|
|
27
|
-
| learn hook | When the agent finishes a reply, and before compaction, distils durable facts from the recent conversation into `memory/`. Off until you set `GENESEED_LLM` to a model command such as `claude -p` | automatic | One model call each time it runs, once enabled | Leave `GENESEED_LLM` unset (the default) |
|
|
28
|
-
| `skills/` | Written procedures you call by name, such as `brainstorm` or `plan` | on demand | ~4.1k tokens for names and descriptions; a skill's body loads only when called | No per-skill switch; `geneseed uninstall` removes them all |
|
|
29
|
-
| `agents/` | Specialists the agent can delegate to, such as `reviewer` or `tester` | on demand | ~0.5k tokens | `geneseed uninstall` |
|
|
30
|
-
| `memory/` | Durable facts, one per file, with a `MEMORY.md` index the context hook injects | automatic | 0 when fresh; grows as facts accumulate | `geneseed memory list`, then `geneseed memory rm <name>` |
|
|
31
|
-
| `notebook/` | The agent's own working space: plans, scratch notes, and the gate log `gates.jsonl` | automatic | 0 when fresh; its index grows with use | Delete what you do not want; it is git-ignored and yours |
|
|
32
|
-
| hook shim | `~/.geneseed/bin/geneseed-hook`, the one stable path every hook calls, so moving the Geneseed checkout does not break your hooks | automatic | Nothing on its own | Not removed by uninstall, since every install on the machine shares it. `GENESEED_HOME` moves it |
|
|
33
|
-
|
|
34
|
-
<!--/harness-->
|
|
35
20
|
<!--harness:opencode-->
|
|
36
21
|
*(OpenCode only)*
|
|
37
22
|
|
|
38
|
-
|
|
39
|
-
|---|---|---|---|---|
|
|
40
|
-
| `AGENT.md` | The rules, the pointers to agents and skills, and how memory works | asked | ~7.2k tokens every session | Shrink it with fewer doctrine packs (`--doctrines`); remove it with `geneseed uninstall` |
|
|
41
|
-
| `user-rules.md` | Your own standing rules, read every session. Seeded empty | asked | 0 until you write in it | Leave it empty |
|
|
42
|
-
| `PROFILE.md` | Who you are and how you like answers pitched. Fill it with the `profile` skill | asked | 0 until you fill it | Leave the seeded text untouched |
|
|
43
|
-
| `opencode.json` entries | `instructions` points OpenCode at `AGENT.md`. `permission.bash` makes OpenCode ask before `rm -rf`, a force-push, `reset --hard`, `clean -f`, `branch -D` or `checkout --`, and before every commit and push when the **process** pack is on | enforced | No tokens | Edit the `permission` block yourself. The commit/push questions follow the **process** pack |
|
|
44
|
-
| context plugin | Puts your repo's README, CONTRIBUTING and a listing of `docs/` in front of the agent, with your rules, profile, memory index and wiki | automatic | Your docs, capped at 16 KB a file and 48 KB a session | `GENESEED_CONTEXT_INJECT=off` |
|
|
45
|
-
| guard plugin | Blocks writes to key and credential files (`id_rsa`, `.pem`, `.ssh/`…), catastrophic commands (`rm -rf /`, formatting a disk), and changes inside your wiki's protected folders. Refuses the first write to `user-rules.md` or memory once, so the choice is yours | enforced | No tokens | `GENESEED_GUARD=off`, or `GENESEED_GUARD=warn` to log instead of block |
|
|
46
|
-
| learn plugin | Once a session has been quiet for 60 seconds, distils durable facts into `memory/` with the model the session already uses | automatic | One model call per quiet session | `geneseed exclude add <folder>` silences it in that folder |
|
|
47
|
-
| activity plugin | Writes one small file per session that the web console's Activity view shows | automatic | No tokens | `GENESEED_ACTIVITY=off` |
|
|
48
|
-
| notify plugin | A desktop notification when a turn took longer than 30 seconds | automatic | No tokens | `GENESEED_NOTIFY=off` |
|
|
49
|
-
| ponytail plugin | Minimal-code mode. `/ponytail lite`, `full` or `ultra` adds a short ruleset to every turn until you switch it off | on demand | 0 while off, which is the default | `/ponytail off` |
|
|
50
|
-
| workflow plugin | Adds a `workflow` tool that runs saved orchestration scripts | on demand | Runs only when called | `geneseed uninstall` |
|
|
51
|
-
| `skills/` | Written procedures you call by name, such as `brainstorm` or `plan` | on demand | ~4.1k tokens for names and descriptions; a skill's body loads only when called | No per-skill switch; `geneseed uninstall` removes them all |
|
|
52
|
-
| `agents/` | Specialists the agent can delegate to, such as `reviewer` or `tester` | on demand | ~0.5k tokens | `geneseed uninstall` |
|
|
53
|
-
| `memory/` | Durable facts, one per file, with a `MEMORY.md` index the context plugin injects | automatic | 0 when fresh; grows as facts accumulate | `geneseed memory list`, then `geneseed memory rm <name>` |
|
|
54
|
-
| `notebook/` | The agent's own working space: plans, scratch notes, and the gate log `gates.jsonl` | automatic | 0 when fresh; its index grows with use | Delete what you do not want; it is git-ignored and yours |
|
|
23
|
+
- [On OpenCode](machine-opencode.md): the plugins and the `opencode.json` entries, piece by piece.
|
|
55
24
|
|
|
56
25
|
<!--/harness-->
|
|
26
|
+
<!--harness:claude,openclaude-->
|
|
27
|
+
*(Claude Code and OpenClaude only)*
|
|
57
28
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
**OpenCode.** A global install writes to `~/.config/opencode/`. Setting `OPENCODE_CONFIG_DIR` or `XDG_CONFIG_HOME` moves it. Geneseed merges its entries into your existing `opencode.json` and keeps every other key. A per-repo install writes into the repo instead.
|
|
61
|
-
|
|
62
|
-
**Claude Code.** A global install writes to `~/.claude/`, and its hooks go into `~/.claude/settings.json`, next to any hooks of your own. A per-repo install uses the repo's `.claude/` folder, with the hooks in `.claude/settings.local.json`.
|
|
63
|
-
|
|
64
|
-
**Bob.** A global install writes to `~/.bob/`, or `BOB_CONFIG_DIR`. Bob does not load a global `AGENTS.md`, so the rules go into `~/.bob/rules/geneseed.md`. A per-repo install writes `AGENTS.md` instead. Hooks live in `~/.bob/settings/settings.json`. Bob runs three of them: context at session start, one combined gate before each tool call, and learn at session end. Bob has no "ask" prompt, so the gate refuses outright, and only for credentials and destructive git. The commit/push and memory questions become log lines.
|
|
65
|
-
|
|
66
|
-
**OpenClaude.** Same pieces as Claude Code, under `~/.openclaude/` or `OPENCLAUDE_CONFIG_DIR`. A per-repo install uses `.openclaude/`, with the hooks in `.openclaude/settings.local.json`.
|
|
29
|
+
- [On Claude Code and OpenClaude](machine-claude.md): the hooks in `settings.json`, piece by piece.
|
|
67
30
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
`geneseed uninstall` removes only what Geneseed recorded writing: the rules file or its managed block, `agents/`, `skills/`, plugins, and Geneseed's own hook and config entries. It keeps `memory/` and `notebook/` in place, along with the files it seeded for you to edit (`user-rules.md`, `PROFILE.md`, `wiki.jsonc`). Add `--archive-memory` to move memory and notebook aside instead. It still deletes nothing. See [Uninstall](../guides/uninstall.md).
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
**Next:** [A day with the harness](a-day.md)
|
|
31
|
+
<!--/harness-->
|
|
32
|
+
- [On Bob, or any AGENT.md tool](machine-bob.md): where the files go, and what is enforced there.
|
|
33
|
+
- [Taking it back out](take-it-out.md): what `geneseed uninstall` removes, and what it keeps.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
group: understand
|
|
3
|
+
order: 6
|
|
4
|
+
title: "Taking it back out"
|
|
5
|
+
kind: "concept"
|
|
6
|
+
section: "On your machine"
|
|
7
|
+
description: "What geneseed uninstall removes, and what it keeps for you."
|
|
8
|
+
---
|
|
9
|
+
`geneseed uninstall` removes only what Geneseed recorded writing: the rules file or its managed block, `agents/`, `skills/`, plugins, and Geneseed's own hook and config entries. It keeps `memory/` and `notebook/` in place, along with the files it seeded for you to edit (`user-rules.md`, `PROFILE.md`, `wiki.jsonc`). Add `--archive-memory` to move memory and notebook aside instead. It still deletes nothing. See [Uninstall](../guides/uninstall.md).
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
**Next:** [A day with the harness](a-day.md)
|